cryptocalypse
commited on
Commit
•
69b0f8c
1
Parent(s):
b0a0cc6
test data pleyades
Browse files- lib/entropy.py +122 -0
- lib/events.py +122 -0
- lib/files.py +28 -0
- lib/gematria.py +210 -0
- lib/grapher.py +118 -0
- lib/latticegrid.py +47 -0
- lib/me.py +298 -0
- lib/memory.py +80 -0
- lib/models.py +98 -0
- lib/notarikon.py +44 -0
- lib/pipes.py +204 -0
- lib/sonsofstars.py +521 -0
- lib/spell.py +157 -0
- lib/temuraeh.py +45 -0
- lib/torah.py +246 -0
- lib/triggers.py +82 -0
- lib/ziruph.py +36 -0
- resources/Pleyades +1 -0
lib/entropy.py
ADDED
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import sys
|
2 |
+
import math
|
3 |
+
|
4 |
+
class TextProcessor:
|
5 |
+
def __init__(self, texto):
|
6 |
+
self.texto = texto
|
7 |
+
|
8 |
+
def entropy(self):
|
9 |
+
simbolos = {}
|
10 |
+
total_caracteres = len(self.texto)
|
11 |
+
|
12 |
+
for caracter in self.texto:
|
13 |
+
simbolos[caracter] = simbolos.get(caracter, 0) + 1
|
14 |
+
|
15 |
+
entropia = 0
|
16 |
+
for count in simbolos.values():
|
17 |
+
probabilidad = count / total_caracteres
|
18 |
+
entropia -= probabilidad * math.log2(probabilidad)
|
19 |
+
|
20 |
+
return simbolos, entropia
|
21 |
+
|
22 |
+
def common_string(self, cadena1, cadena2):
|
23 |
+
longitud1 = len(cadena1)
|
24 |
+
longitud2 = len(cadena2)
|
25 |
+
comun = ''
|
26 |
+
subcadenas_comunes = []
|
27 |
+
|
28 |
+
for i in range(longitud1):
|
29 |
+
for j in range(longitud2):
|
30 |
+
k = 0
|
31 |
+
while (i+k < longitud1 and j+k < longitud2 and cadena1[i+k] == cadena2[j+k]):
|
32 |
+
k += 1
|
33 |
+
if k > 0:
|
34 |
+
subcadenas_comunes.append(cadena1[i:i+k])
|
35 |
+
|
36 |
+
if subcadenas_comunes:
|
37 |
+
comun = max(subcadenas_comunes, key=len)
|
38 |
+
|
39 |
+
return comun
|
40 |
+
|
41 |
+
def magic_split(self):
|
42 |
+
unique_symbols = set(self.texto)
|
43 |
+
symbol_distances = {}
|
44 |
+
for symbol in unique_symbols:
|
45 |
+
indices = [i for i, char in enumerate(self.texto) if char == symbol]
|
46 |
+
if len(indices) > 1:
|
47 |
+
distances = [indices[i + 1] - indices[i] for i in range(len(indices) - 1)]
|
48 |
+
symbol_distances[symbol] = distances
|
49 |
+
|
50 |
+
variation = {symbol: max(distances) - min(distances) for symbol, distances in symbol_distances.items() if distances}
|
51 |
+
|
52 |
+
mins = {}
|
53 |
+
for v in variation:
|
54 |
+
if variation[v]!=0 and variation[v]!=1:
|
55 |
+
mins[v] = variation[v]
|
56 |
+
|
57 |
+
best_symbol = min(mins, key=mins.get)
|
58 |
+
|
59 |
+
return best_symbol
|
60 |
+
|
61 |
+
def rotate_string(self, string, n):
|
62 |
+
indice = n % len(string)
|
63 |
+
string_rotado = string[indice:] + string[:indice]
|
64 |
+
return string_rotado
|
65 |
+
|
66 |
+
def rotate_compare(self, tokiA, tokiB):
|
67 |
+
if tokiA >= tokiB:
|
68 |
+
tokA = tokiA
|
69 |
+
tokB = tokiB
|
70 |
+
ltokA = len(tokA)
|
71 |
+
else:
|
72 |
+
tokA = tokiB
|
73 |
+
tokB = tokiA
|
74 |
+
ltokA = len(tokB)
|
75 |
+
|
76 |
+
i = 0
|
77 |
+
rotations = {}
|
78 |
+
while i < ltokA:
|
79 |
+
tokrotated = self.rotate_string(tokA, i)
|
80 |
+
rotations[str(i)] = self.common_string(tokrotated, tokB)
|
81 |
+
i += 1
|
82 |
+
|
83 |
+
best_r = ""
|
84 |
+
for x in rotations:
|
85 |
+
lb = len(best_r)
|
86 |
+
rot = rotations[x]
|
87 |
+
lrot = len(rot)
|
88 |
+
if lrot > 1 and lrot < ltokA and lrot > lb:
|
89 |
+
best_r = rot
|
90 |
+
|
91 |
+
return best_r
|
92 |
+
|
93 |
+
def get_subTokens(self, spl):
|
94 |
+
sub_tokens = self.texto.split(spl)
|
95 |
+
toks = []
|
96 |
+
for tok in sub_tokens:
|
97 |
+
for tok2 in sub_tokens:
|
98 |
+
if tok != tok2:
|
99 |
+
toks.append(self.rotate_compare(tok, tok2))
|
100 |
+
|
101 |
+
return list(set(toks))
|
102 |
+
|
103 |
+
def tokenize(self, spliter_optimo):
|
104 |
+
tokens = self.get_subTokens(spliter_optimo)
|
105 |
+
tokenized_sentence = {}
|
106 |
+
chunk = self.texto.split(spliter_optimo)
|
107 |
+
for txt in chunk:
|
108 |
+
best_split = ""
|
109 |
+
for tok in tokens:
|
110 |
+
if tok != "":
|
111 |
+
lt = len(tok)
|
112 |
+
lb = len(best_split)
|
113 |
+
spltxt = txt.split(tok)
|
114 |
+
if len(spltxt) > 1:
|
115 |
+
l0 = len(spltxt[0])
|
116 |
+
l1 = len(spltxt[1])
|
117 |
+
if lt < len(txt) and lt > lb:
|
118 |
+
best_split = tok
|
119 |
+
tokenized_sentence[txt] = " " + spltxt[0] + "-" + tok + "-" + spltxt[1]
|
120 |
+
return tokenized_sentence
|
121 |
+
|
122 |
+
|
lib/events.py
ADDED
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import matplotlib.pyplot as plt
|
3 |
+
from sklearn.model_selection import train_test_split
|
4 |
+
from sklearn.ensemble import RandomForestRegressor
|
5 |
+
from sklearn.metrics import mean_squared_error
|
6 |
+
from scipy.stats import pearsonr
|
7 |
+
import numpy as np
|
8 |
+
from scipy.fft import fft
|
9 |
+
|
10 |
+
|
11 |
+
class EventManager:
|
12 |
+
def __init__(self):
|
13 |
+
self.events = []
|
14 |
+
|
15 |
+
def add_event(self, event_title, time_dataset, probability_fork, quantity, common_tag_event_dataset,
|
16 |
+
quantity_correlation_dataset, event_max_quantity, event_min_quantity, event_middle_quantity,
|
17 |
+
sentiment_direction):
|
18 |
+
event = {
|
19 |
+
"event_title": event_title,
|
20 |
+
"time_dataset": time_dataset,
|
21 |
+
"probability_fork": probability_fork,
|
22 |
+
"quantity": quantity,
|
23 |
+
"common_tag_event_dataset": common_tag_event_dataset,
|
24 |
+
"quantity_correlation_dataset": quantity_correlation_dataset,
|
25 |
+
"event_max_quantity": event_max_quantity,
|
26 |
+
"event_min_quantity": event_min_quantity,
|
27 |
+
"event_middle_quantity": event_middle_quantity,
|
28 |
+
"sentiment_direction": sentiment_direction
|
29 |
+
}
|
30 |
+
self.events.append(event)
|
31 |
+
|
32 |
+
def remove_event(self, event_title):
|
33 |
+
self.events = [event for event in self.events if event['event_title'] != event_title]
|
34 |
+
|
35 |
+
def get_events_by_tag(self, tag):
|
36 |
+
return [event for event in self.events if tag in event['common_tag_event_dataset']]
|
37 |
+
|
38 |
+
def get_events_by_sentiment(self, sentiment):
|
39 |
+
return [event for event in self.events if event['sentiment_direction'] == sentiment]
|
40 |
+
|
41 |
+
def get_events_by_quantity_range(self, min_quantity, max_quantity):
|
42 |
+
return [event for event in self.events if min_quantity <= event['quantity'] <= max_quantity]
|
43 |
+
|
44 |
+
def predict_time_series(self, event_title):
|
45 |
+
event = next((event for event in self.events if event['event_title'] == event_title), None)
|
46 |
+
if event:
|
47 |
+
time_series = event['time_dataset']
|
48 |
+
# Aquí puedes implementar tu modelo de predicción de series temporales
|
49 |
+
# Por ejemplo, utilizando un modelo de regresión como RandomForestRegressor de scikit-learn
|
50 |
+
X = np.arange(len(time_series)).reshape(-1, 1)
|
51 |
+
y = np.array(time_series)
|
52 |
+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
|
53 |
+
model = RandomForestRegressor()
|
54 |
+
model.fit(X_train, y_train)
|
55 |
+
predictions = model.predict(X_test)
|
56 |
+
return predictions
|
57 |
+
else:
|
58 |
+
return None
|
59 |
+
|
60 |
+
def plot_event_parameters_over_time(self, event_title):
|
61 |
+
event = next((event for event in self.events if event['event_title'] == event_title), None)
|
62 |
+
if event:
|
63 |
+
time_series = event['time_dataset']
|
64 |
+
plt.plot(time_series)
|
65 |
+
plt.xlabel('Tiempo')
|
66 |
+
plt.ylabel('Valor')
|
67 |
+
plt.title('Parámetros del Evento "{}" a lo largo del tiempo'.format(event_title))
|
68 |
+
plt.show()
|
69 |
+
|
70 |
+
def plot_prediction(self, event_title):
|
71 |
+
predictions = self.predict_time_series(event_title)
|
72 |
+
if predictions:
|
73 |
+
plt.plot(predictions, label='Predicción')
|
74 |
+
plt.xlabel('Tiempo')
|
75 |
+
plt.ylabel('Valor')
|
76 |
+
plt.title('Predicción del Evento "{}"'.format(event_title))
|
77 |
+
plt.legend()
|
78 |
+
plt.show()
|
79 |
+
|
80 |
+
def check_correlation(self, event_title1, event_title2):
|
81 |
+
event1 = next((event for event in self.events if event['event_title'] == event_title1), None)
|
82 |
+
event2 = next((event for event in self.events if event['event_title'] == event_title2), None)
|
83 |
+
if event1 and event2:
|
84 |
+
correlation, _ = pearsonr(event1['quantity_correlation_dataset'], event2['quantity_correlation_dataset'])
|
85 |
+
return correlation
|
86 |
+
else:
|
87 |
+
return None
|
88 |
+
|
89 |
+
def fourier_transform(self, event_title):
|
90 |
+
event = next((event for event in self.events if event['event_title'] == event_title), None)
|
91 |
+
if event:
|
92 |
+
time_series = event['time_dataset']
|
93 |
+
transformed_data = fft(time_series)
|
94 |
+
return transformed_data
|
95 |
+
else:
|
96 |
+
return None
|
97 |
+
|
98 |
+
|
99 |
+
# Ejemplo de uso
|
100 |
+
event_manager = EventManager()
|
101 |
+
|
102 |
+
# Añadir eventos
|
103 |
+
event_manager.add_event("Evento 1", [1, 2, 3, 4, 5], 0.8, 100, ["tag1", "tag2"], [0.1, 0.2, 0.3, 0.4, 0.5],
|
104 |
+
150, 50, 100, "good when up")
|
105 |
+
event_manager.add_event("Evento 2", [2, 4, 6, 8, 10], 0.6, 200, ["tag2", "tag3"], [0.2, 0.4, 0.6, 0.8, 1.0],
|
106 |
+
250, 150, 200, "bad when down")
|
107 |
+
|
108 |
+
# Realizar predicción de series temporales y plot
|
109 |
+
event_manager.plot_event_parameters_over_time("Evento 1")
|
110 |
+
event_manager.plot_prediction("Evento 1")
|
111 |
+
|
112 |
+
# Comprobar correlación entre dos eventos
|
113 |
+
correlation = event_manager.check_correlation("Evento 1", "Evento 2")
|
114 |
+
if correlation:
|
115 |
+
print("Correlación entre Evento 1 y Evento 2:", correlation)
|
116 |
+
else:
|
117 |
+
print("Alguno de los eventos no existe.")
|
118 |
+
|
119 |
+
# Transformada de Fourier
|
120 |
+
transformed_data = event_manager.fourier_transform("Evento 1")
|
121 |
+
print("Transformada de Fourier del Evento 1:", transformed_data)
|
122 |
+
|
lib/files.py
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import re
|
3 |
+
|
4 |
+
class TextFinder:
|
5 |
+
def __init__(self, folder):
|
6 |
+
self.folder = folder
|
7 |
+
|
8 |
+
def find_matches(self, pattern):
|
9 |
+
matches = []
|
10 |
+
pattern = pattern.lower() # Convert pattern to lowercase
|
11 |
+
for root, _, files in os.walk(self.folder):
|
12 |
+
for file in files:
|
13 |
+
file_path = os.path.join(root, file)
|
14 |
+
|
15 |
+
if os.path.isfile(file_path):
|
16 |
+
with open(file_path, 'r', encoding='utf-8') as f:
|
17 |
+
content = f.read()
|
18 |
+
paragraphs = re.split(r'\n\s*\n', content) # Split text into paragraphs
|
19 |
+
for paragraph in paragraphs:
|
20 |
+
if pattern in paragraph.lower(): # Convert paragraph to lowercase for comparison
|
21 |
+
matches.append({"Find_text":paragraph.strip(),"Book_source":file_path.split("/")[-1].split(".")[0]})
|
22 |
+
return matches
|
23 |
+
|
24 |
+
# Example usage:
|
25 |
+
if __name__ == "__main__":
|
26 |
+
finder = TextFinder('example_folder')
|
27 |
+
matches = finder.find_matches('text_to_find')
|
28 |
+
print(matches)
|
lib/gematria.py
ADDED
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
from prettytable import PrettyTable
|
3 |
+
from colorama import Fore, Style
|
4 |
+
from collections import defaultdict
|
5 |
+
import unicodedata
|
6 |
+
|
7 |
+
def strip_diacritics(text):
|
8 |
+
"""
|
9 |
+
Entfernt Diakritika von Unicode-Zeichen, um den Basisbuchstaben zu erhalten, und gibt Warnungen
|
10 |
+
für tatsächlich unbekannte Zeichen aus.
|
11 |
+
"""
|
12 |
+
stripped_text = ''
|
13 |
+
for char in unicodedata.normalize('NFD', text):
|
14 |
+
if unicodedata.category(char) not in ['Mn', 'Cf']:
|
15 |
+
stripped_text += char
|
16 |
+
else:
|
17 |
+
print(f"Info: Diakritisches Zeichen '{char}' wird ignoriert.")
|
18 |
+
return stripped_text
|
19 |
+
|
20 |
+
def hebrew_letter_to_value(letter):
|
21 |
+
"""
|
22 |
+
Konvertiert einen einzelnen Buchstaben in seinen Gematria-Wert, ignoriert Leerzeichen
|
23 |
+
und Nicht-Buchstaben-Zeichen.
|
24 |
+
"""
|
25 |
+
# Dein vorhandenes Wörterbuch bleibt unverändert
|
26 |
+
values = {
|
27 |
+
# Lateinische Buchstaben
|
28 |
+
'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 600,
|
29 |
+
'k': 10, 'l': 20, 'm': 30, 'n': 40, 'o': 50, 'p': 60, 'q': 70, 'r': 80, 's': 90,
|
30 |
+
't': 100, 'u': 200, 'v': 700, 'w': 900, 'x': 300, 'y': 400, 'z': 500,
|
31 |
+
|
32 |
+
'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 600,
|
33 |
+
'K': 10, 'L': 20, 'M': 30, 'N': 40, 'O': 50, 'P': 60, 'Q': 70, 'R': 80, 'S': 90,
|
34 |
+
'T': 100, 'U': 200, 'V': 700, 'W': 900, 'X': 300, 'Y': 400, 'Z': 500,
|
35 |
+
|
36 |
+
# Basisbuchstaben und einige bereits genannte Varianten
|
37 |
+
'ا': 1, 'أ': 1, 'إ': 1, 'آ': 1, 'ب': 2, 'ج': 3, 'د': 4, 'ه': 5, 'و': 6, 'ز': 7, 'ح': 8, 'ط': 9,
|
38 |
+
'ي': 10, 'ى': 10, 'ك': 20, 'ک': 20, 'ل': 30, 'م': 40, 'ن': 50, 'س': 60, 'ع': 70, 'ف': 80,
|
39 |
+
'ص': 90, 'ق': 100, 'ر': 200, 'ش': 300, 'ت': 400, 'ث': 500, 'خ': 600, 'ذ': 700, 'ض': 800, 'ظ': 900, 'غ': 1000,
|
40 |
+
'ٱ': 1, # Alif Wasla
|
41 |
+
'ـ': 0, # Tatweel
|
42 |
+
|
43 |
+
# Zusätzliche Varianten und Sonderzeichen
|
44 |
+
'ة': 400, # Taa Marbuta
|
45 |
+
'ؤ': 6, # Waw mit Hamza darüber
|
46 |
+
'ئ': 10, # Ya mit Hamza darüber
|
47 |
+
'ء': 1, # Hamza
|
48 |
+
'ى': 10, # Alif Maqsurah
|
49 |
+
'ٹ': 400, # Taa' marbuta goal
|
50 |
+
'پ': 2, # Pe (Persisch/Urdu)
|
51 |
+
'چ': 3, # Che (Persisch/Urdu)
|
52 |
+
'ژ': 7, # Zhe (Persisch/Urdu)
|
53 |
+
'گ': 20, # Gaf (Persisch/Urdu)
|
54 |
+
'ڭ': 20, # Ngaf (Kazakh, Uyghur, Uzbek, and in some Arabic dialects)
|
55 |
+
'ں': 50, # Noon Ghunna (Persisch/Urdu)
|
56 |
+
'ۀ': 5, # Heh with Yeh above (Persisch/Urdu)
|
57 |
+
'ے': 10, # Barree Yeh (Persisch/Urdu)
|
58 |
+
'؋': 0, # Afghani Sign (wird als Währungssymbol verwendet, nicht für Gematria relevant, aber hier zur Vollständigkeit aufgeführt)
|
59 |
+
|
60 |
+
# Anmerkung: Das Währungssymbol und ähnliche Zeichen sind in einem Gematria-Kontext normalerweise nicht relevant,
|
61 |
+
# werden aber der Vollständigkeit halber aufgeführt. Es gibt noch viele weitere spezifische Zeichen in erweiterten
|
62 |
+
# arabischen Schriftsystemen (z.B. für andere Sprachen wie Persisch, Urdu, Pashto usw.), die hier nicht vollständig
|
63 |
+
# abgedeckt sind.
|
64 |
+
|
65 |
+
# Grund- und Schlussformen hebräischer Buchstaben
|
66 |
+
|
67 |
+
'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5, 'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9, 'י': 10,
|
68 |
+
'כ': 20, 'ך': 500, 'ל': 30, 'מ': 40, 'ם': 600, 'נ': 50, 'ן': 700, 'ס': 60, 'ע': 70, 'פ': 80, 'ף': 800,
|
69 |
+
'צ': 90, 'ץ': 900, 'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400,
|
70 |
+
|
71 |
+
# Griechische Buchstaben
|
72 |
+
'α': 1, 'β': 2, 'γ': 3, 'δ': 4, 'ε': 5, 'ϝ': 6, 'ζ': 7, 'η': 8, 'θ': 9, 'ι': 10,
|
73 |
+
'κ': 20, 'λ': 30, 'μ': 40, 'ν': 50, 'ξ': 60, 'ο': 70, 'π': 80, 'ϟ': 90, 'ρ': 100,
|
74 |
+
'σ': 200, 'τ': 300, 'υ': 400, 'φ': 500, 'χ': 600, 'ψ': 700, 'ω': 800, 'ϡ': 900,
|
75 |
+
|
76 |
+
# Griechische Großbuchstaben
|
77 |
+
'Α': 1, 'Β': 2, 'Γ': 3, 'Δ': 4, 'Ε': 5, 'Ϝ': 6, 'Ζ': 7, 'Η': 8, 'Θ': 9, 'Ι': 10,
|
78 |
+
'Κ': 20, 'Λ': 30, 'Μ': 40, 'Ν': 50, 'Ξ': 60, 'Ο': 70, 'Π': 80, 'Ϟ': 90, 'Ρ': 100,
|
79 |
+
'Σ': 200, 'Τ': 300, 'Υ': 400, 'Φ': 500, 'Χ': 600, 'Ψ': 700, 'Ω': 800, 'Ϡ': 900,
|
80 |
+
}
|
81 |
+
|
82 |
+
# Stelle sicher, dass Diakritika entfernt werden, bevor auf das Wörterbuch zugegriffen wird
|
83 |
+
letter_no_diacritics = strip_diacritics(letter)
|
84 |
+
|
85 |
+
if letter_no_diacritics in values:
|
86 |
+
return values[letter_no_diacritics.lower()]
|
87 |
+
elif letter.strip() == "": # Ignoriere Leerzeichen und leere Zeilen
|
88 |
+
return 0
|
89 |
+
else:
|
90 |
+
# Gib eine spezifische Warnung aus, wenn das Zeichen unbekannt ist
|
91 |
+
print(f"Warnung: Unbekanntes Zeichen '{letter}' ignoriert.")
|
92 |
+
return 0
|
93 |
+
|
94 |
+
|
95 |
+
def calculate_gematria(text):
|
96 |
+
"""Calculate the Gematria value of a given Hebrew text, ignoring spaces and non-Hebrew characters."""
|
97 |
+
return sum(hebrew_letter_to_value(letter) for letter in text if letter.strip() != "")
|
98 |
+
|
99 |
+
|
100 |
+
# Función para calcular el valor de gematria de una letra hebrea antigua
|
101 |
+
def gematria(letra):
|
102 |
+
valores = {'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5, 'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9,
|
103 |
+
'י': 10, 'כ': 20, 'ל': 30, 'מ': 40, 'נ': 50, 'ס': 60, 'ע': 70, 'פ': 80,
|
104 |
+
'צ': 90, 'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400, 'ך': 20, 'ם': 40, 'ן': 50, 'ף': 80, 'ץ': 90}
|
105 |
+
return valores.get(letra, 0)
|
106 |
+
|
107 |
+
# Función para generar todas las combinaciones posibles de dos letras en hebreo antiguo
|
108 |
+
def generar_combinaciones():
|
109 |
+
letras = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז', 'ח', 'ט', 'י', 'כ', 'ל', 'מ', 'נ', 'ס', 'ע', 'פ', 'צ', 'ק', 'ר', 'ש', 'ת',
|
110 |
+
'ך', 'ם', 'ן', 'ף', 'ץ']
|
111 |
+
combinaciones = []
|
112 |
+
for letra1 in letras:
|
113 |
+
for letra2 in letras:
|
114 |
+
combinaciones.append(letra1 + letra2)
|
115 |
+
return combinaciones
|
116 |
+
|
117 |
+
# Función para calcular la suma de los valores de gematria y el producto de los valores de gematria de una combinación
|
118 |
+
def calcular_valores(combinacion):
|
119 |
+
valor1 = gematria(combinacion[0])
|
120 |
+
valor2 = gematria(combinacion[1])
|
121 |
+
suma = valor1 + valor2
|
122 |
+
producto = valor1 * valor2
|
123 |
+
ratio = valor1 / valor2 if valor2 != 0 else float('inf')
|
124 |
+
return suma, producto, ratio
|
125 |
+
|
126 |
+
# Función principal
|
127 |
+
def main():
|
128 |
+
combinaciones = generar_combinaciones()
|
129 |
+
table = PrettyTable()
|
130 |
+
table.field_names = ["#", Fore.BLUE + "Producto" + Style.RESET_ALL,
|
131 |
+
Fore.BLUE + "Suma" + Style.RESET_ALL,
|
132 |
+
Fore.BLUE + "Ratio" + Style.RESET_ALL,
|
133 |
+
Fore.BLUE + "Valor 2" + Style.RESET_ALL,
|
134 |
+
Fore.BLUE + "Valor 1" + Style.RESET_ALL,
|
135 |
+
Fore.BLUE + "Combinación" + Style.RESET_ALL]
|
136 |
+
|
137 |
+
# Diccionario de combinaciones agrupadas por ratio
|
138 |
+
combinaciones_por_ratio = defaultdict(set)
|
139 |
+
|
140 |
+
# Versos del Génesis Sefardí (ejemplo)
|
141 |
+
versos_genesis_sefardi = [
|
142 |
+
"בראשית ברא אלהים את השמים ואת הארץ",
|
143 |
+
"והארץ היתה תהו ובהו וחשך על־פני תהום ורוח אלהים מרחפת על־פני המים",
|
144 |
+
"ויאמר אלהים יהי אור ויהי־אור",
|
145 |
+
"וירא אלהים את־האור כי־טוב ויבדל אלהים בין האור ובין החשך",
|
146 |
+
"ויקרא אלהים לאור יום ולחשך קרא לילה ויהי־ערב ויהי־בקר יום אחד"
|
147 |
+
# Agrega más versos según sea necesario...
|
148 |
+
]
|
149 |
+
|
150 |
+
# Función para obtener el primer par de letras de un verso
|
151 |
+
def obtener_primer_par_letras(verso):
|
152 |
+
for i in range(len(verso) - 1):
|
153 |
+
if verso[i].isalpha() and verso[i+1].isalpha():
|
154 |
+
return verso[i:i+2]
|
155 |
+
return None
|
156 |
+
|
157 |
+
# Diccionario para almacenar el primer par de letras y su ratio por verso
|
158 |
+
primer_par_por_verso = {}
|
159 |
+
for verso in versos_genesis_sefardi:
|
160 |
+
primer_par = obtener_primer_par_letras(verso)
|
161 |
+
if primer_par:
|
162 |
+
suma, producto, ratio = calcular_valores(primer_par)
|
163 |
+
primer_par_por_verso[verso] = (primer_par, ratio)
|
164 |
+
|
165 |
+
# Diccionario para agrupar los primeros pares de letras por ratio
|
166 |
+
primer_par_por_ratio = defaultdict(list)
|
167 |
+
for verso, (primer_par, ratio) in primer_par_por_verso.items():
|
168 |
+
primer_par_por_ratio[ratio].append((primer_par, verso))
|
169 |
+
|
170 |
+
# Crear la tabla de primeros pares de letras por ratio
|
171 |
+
table_primer_par = PrettyTable()
|
172 |
+
table_primer_par.field_names = [Fore.BLUE + "Primer Par" + Style.RESET_ALL, Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Verso" + Style.RESET_ALL]
|
173 |
+
for ratio, pares_verso in sorted(primer_par_por_ratio.items(), key=lambda x: x[0], reverse=True):
|
174 |
+
for primer_par, verso in pares_verso:
|
175 |
+
table_primer_par.add_row([primer_par, f"{ratio:.2f}", verso])
|
176 |
+
|
177 |
+
print(table_primer_par)
|
178 |
+
|
179 |
+
# Procesar combinaciones y crear la tabla principal
|
180 |
+
for idx, combinacion in enumerate(combinaciones, start=1):
|
181 |
+
suma, producto, ratio = calcular_valores(combinacion)
|
182 |
+
combinacion_str = combinacion
|
183 |
+
# Resaltar en verde si la combinación está en el conjunto de combinaciones del Génesis Sefardí
|
184 |
+
if combinacion in set(''.join(obtener_primer_par_letras(verso)) for verso in versos_genesis_sefardi):
|
185 |
+
combinacion_str = Fore.GREEN + combinacion + Style.RESET_ALL
|
186 |
+
table.add_row([idx, producto, suma, f"{ratio:.2f}", gematria(combinacion[1]), gematria(combinacion[0]), combinacion_str])
|
187 |
+
combinaciones_por_ratio[ratio].add(combinacion)
|
188 |
+
|
189 |
+
# Mostrar la tabla de combinaciones
|
190 |
+
print("\nTabla de combinaciones:")
|
191 |
+
print(table)
|
192 |
+
|
193 |
+
# Mostrar la tabla de combinaciones agrupadas por ratio
|
194 |
+
print("\nTabla de combinaciones agrupadas por ratio:")
|
195 |
+
table_ratio = PrettyTable()
|
196 |
+
table_ratio.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Combinaciones" + Style.RESET_ALL]
|
197 |
+
for ratio, combinaciones in sorted(combinaciones_por_ratio.items(), key=lambda x: x[0], reverse=True):
|
198 |
+
combinaciones_str = ", ".join(combinaciones)
|
199 |
+
table_ratio.add_row([f"{ratio:.2f}", combinaciones_str])
|
200 |
+
print(table_ratio)
|
201 |
+
|
202 |
+
# Calcular el número de combinaciones únicas de primeros pares de letras
|
203 |
+
primeros_pares_unicos = set(primer_par for primer_par, _ in primer_par_por_verso.values())
|
204 |
+
num_primeros_pares_unicos = len(primeros_pares_unicos)
|
205 |
+
num_combinaciones_totales = len(combinaciones)
|
206 |
+
print(f"\nNúmero de primeros pares de letras únicos: {num_primeros_pares_unicos}")
|
207 |
+
print(f"Número de combinaciones totales posibles: {num_combinaciones_totales}")
|
208 |
+
|
209 |
+
if __name__ == "__main__":
|
210 |
+
main()
|
lib/grapher.py
ADDED
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import requests
|
2 |
+
import json
|
3 |
+
import networkx as nx
|
4 |
+
import matplotlib.pyplot as plt
|
5 |
+
from fuzzywuzzy import fuzz
|
6 |
+
from fuzzywuzzy import process
|
7 |
+
from lib.memory import *
|
8 |
+
|
9 |
+
|
10 |
+
class APIRequester:
|
11 |
+
def __init__(self):
|
12 |
+
pass
|
13 |
+
|
14 |
+
def make_request(self, url):
|
15 |
+
response = requests.get(url)
|
16 |
+
if response.status_code == 200:
|
17 |
+
return response.json()
|
18 |
+
else:
|
19 |
+
return None
|
20 |
+
|
21 |
+
class Grapher:
|
22 |
+
def __init__(self, memoria_nlp, threshold=70):
|
23 |
+
self.threshold = threshold
|
24 |
+
self.graph = nx.Graph()
|
25 |
+
self.memoria_nlp = memoria_nlp
|
26 |
+
|
27 |
+
def parse_json(self, data, parent=None):
|
28 |
+
if isinstance(data, dict):
|
29 |
+
for key, value in data.items():
|
30 |
+
if parent:
|
31 |
+
self.graph.add_node(parent)
|
32 |
+
self.graph.add_node(key)
|
33 |
+
self.graph.add_edge(parent, key)
|
34 |
+
|
35 |
+
for node in self.graph.nodes():
|
36 |
+
if node != parent and fuzz.ratio(node, key) >= self.threshold:
|
37 |
+
self.graph = nx.contracted_nodes(self.graph, node, key, self_loops=False)
|
38 |
+
|
39 |
+
self.memoria_nlp.agregar_concepto("keys", [(key, 1.0)])
|
40 |
+
|
41 |
+
if isinstance(value, (dict, list)):
|
42 |
+
self.parse_json(value, key)
|
43 |
+
else:
|
44 |
+
self.memoria_nlp.agregar_concepto("values", [(str(value), 1.0)])
|
45 |
+
if parent:
|
46 |
+
self.graph.add_node(value)
|
47 |
+
self.graph.add_edge(key, value)
|
48 |
+
|
49 |
+
for node in self.graph.nodes():
|
50 |
+
if node != value and fuzz.ratio(node, value) >= self.threshold:
|
51 |
+
self.graph = nx.contracted_nodes(self.graph, node, value, self_loops=False)
|
52 |
+
elif isinstance(data, list):
|
53 |
+
for item in data:
|
54 |
+
self.parse_json(item, parent)
|
55 |
+
|
56 |
+
def draw_graph(self):
|
57 |
+
pos = nx.spring_layout(self.graph, seed=42)
|
58 |
+
nx.draw(self.graph, pos, with_labels=True, node_size=700, node_color='skyblue', font_size=10, font_weight='bold')
|
59 |
+
plt.title("JSON Graph")
|
60 |
+
plt.show()
|
61 |
+
|
62 |
+
def guardar_en_memoria(self):
|
63 |
+
keys = self.memoria_nlp.obtener_conceptos_acotados(100)
|
64 |
+
with open("memoria.json", "w") as file:
|
65 |
+
json.dump(keys, file)
|
66 |
+
|
67 |
+
def buscar_nodo(self, nodo):
|
68 |
+
return process.extractOne(nodo, self.graph.nodes())[0]
|
69 |
+
|
70 |
+
def eliminar_nodo(self, nodo):
|
71 |
+
self.graph.remove_node(nodo)
|
72 |
+
|
73 |
+
def agregar_nodo(self, nodo):
|
74 |
+
self.graph.add_node(nodo)
|
75 |
+
|
76 |
+
def distancia_entre_nodos(self, nodo1, nodo2):
|
77 |
+
return nx.shortest_path_length(self.graph, source=nodo1, target=nodo2)
|
78 |
+
|
79 |
+
def ruta_entre_nodos(self, nodo1, nodo2):
|
80 |
+
return nx.shortest_path(self.graph, source=nodo1, target=nodo2)
|
81 |
+
|
82 |
+
def unir_grafos(self, otro_grafo, umbral):
|
83 |
+
for nodo in otro_grafo.nodes():
|
84 |
+
nodo_similar = process.extractOne(nodo, self.graph.nodes())[0]
|
85 |
+
if fuzz.ratio(nodo, nodo_similar) >= umbral:
|
86 |
+
self.graph = nx.contracted_nodes(self.graph, nodo_similar, nodo, self_loops=False)
|
87 |
+
else:
|
88 |
+
self.graph.add_node(nodo)
|
89 |
+
for vecino in otro_grafo.neighbors(nodo):
|
90 |
+
self.graph.add_edge(nodo, vecino)
|
91 |
+
|
92 |
+
|
93 |
+
if __name__ == "__main__":
|
94 |
+
|
95 |
+
# Ejemplo de uso
|
96 |
+
memoria_nlp = MemoriaRobotNLP(max_size=100)
|
97 |
+
json_parser = JSONParser(memoria_nlp)
|
98 |
+
|
99 |
+
api_requester = APIRequester()
|
100 |
+
url = "https://jsonplaceholder.typicode.com/posts"
|
101 |
+
data = api_requester.make_request(url)
|
102 |
+
|
103 |
+
if data:
|
104 |
+
json_parser.parse_json(data)
|
105 |
+
json_parser.draw_graph()
|
106 |
+
|
107 |
+
otro_parser = JSONParser(MemoriaRobotNLP(max_size=100))
|
108 |
+
otro_parser.parse_json({"id": 101, "title": "New Title", "userId": 11})
|
109 |
+
|
110 |
+
print("Uniendo los grafos...")
|
111 |
+
json_parser.unir_grafos(otro_parser.graph, umbral=80)
|
112 |
+
print("Grafo unido:")
|
113 |
+
json_parser.draw_graph()
|
114 |
+
|
115 |
+
json_parser.guardar_en_memoria()
|
116 |
+
else:
|
117 |
+
print("Error al realizar la solicitud a la API.")
|
118 |
+
|
lib/latticegrid.py
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import numpy as np
|
2 |
+
import matplotlib.pyplot as plt
|
3 |
+
from matplotlib.patches import RegularPolygon
|
4 |
+
|
5 |
+
|
6 |
+
## set texto over lattice grid
|
7 |
+
def hex_lattice(text, size=1, figsize=(8, 8)):
|
8 |
+
fig, ax = plt.subplots(figsize=figsize)
|
9 |
+
ax.set_aspect('equal')
|
10 |
+
ax.axis('off')
|
11 |
+
|
12 |
+
# Define hexagonal lattice parameters
|
13 |
+
radius = size * np.sqrt(3) / 2
|
14 |
+
x_offset = size * 1.5
|
15 |
+
y_offset = size * np.sqrt(3)
|
16 |
+
|
17 |
+
# Function to plot hexagon
|
18 |
+
def hexagon(x, y, color='white'):
|
19 |
+
hexagon = RegularPolygon((x, y), numVertices=6, radius=radius, orientation=np.pi/2, facecolor=color, edgecolor='black')
|
20 |
+
ax.add_patch(hexagon)
|
21 |
+
|
22 |
+
# Generate lattice grid
|
23 |
+
rows = len(text)
|
24 |
+
cols = max(len(row) for row in text)
|
25 |
+
for r in range(rows):
|
26 |
+
for c in range(cols):
|
27 |
+
x = c * x_offset
|
28 |
+
y = r * y_offset
|
29 |
+
if r % 2 == 1:
|
30 |
+
x += x_offset / 2
|
31 |
+
if r < len(text) and c < len(text[r]):
|
32 |
+
hexagon(x, y, color='lightblue')
|
33 |
+
ax.text(x, y, text[r][c], ha='center', va='center', fontsize=12)
|
34 |
+
|
35 |
+
plt.show()
|
36 |
+
|
37 |
+
|
38 |
+
if __name__ == "__main__":
|
39 |
+
|
40 |
+
# Example usage:
|
41 |
+
text_to_display = [
|
42 |
+
['A', 'B', 'C', 'D'],
|
43 |
+
['E', 'F', 'G'],
|
44 |
+
['H', 'I', 'J', 'K', 'L']
|
45 |
+
]
|
46 |
+
|
47 |
+
hex_lattice(text_to_display, size=1, figsize=(10, 8))
|
lib/me.py
ADDED
@@ -0,0 +1,298 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from lib.files import *
|
2 |
+
from lib.memory import *
|
3 |
+
from lib.grapher import *
|
4 |
+
from lib.pipes import *
|
5 |
+
from lib.entropy import *
|
6 |
+
from lib.events import *
|
7 |
+
from lib.triggers import *
|
8 |
+
|
9 |
+
## Sources
|
10 |
+
from lib.sonsofstars import *
|
11 |
+
import internetarchive
|
12 |
+
|
13 |
+
|
14 |
+
## Initialize classes
|
15 |
+
longMem = TextFinder("./resources/")
|
16 |
+
coreAi = AIAssistant()
|
17 |
+
memory = MemoryRobotNLP(max_size=200000)
|
18 |
+
grapher = Grapher(memory)
|
19 |
+
sensor_request = APIRequester()
|
20 |
+
events = EventManager()
|
21 |
+
trigger = Trigger(["tag1", "tag2"], ["tag3", "tag4"], [datetime.time(10, 0), datetime.time(15, 0)], "Event1")
|
22 |
+
|
23 |
+
# Añadir una acción al trigger
|
24 |
+
trigger.add_action(action_function)
|
25 |
+
|
26 |
+
# Añadir una fuente al trigger
|
27 |
+
trigger.add_source("https://example.com/api/data")
|
28 |
+
|
29 |
+
# Simular la comprobación periódica del trigger (aquí se usaría en un bucle de tiempo real)
|
30 |
+
current_tags = {"tag1", "tag2", "tag3"}
|
31 |
+
current_time = datetime.datetime.now().time()
|
32 |
+
trigger.check_trigger(current_tags, current_time)
|
33 |
+
|
34 |
+
## Define I Role properties
|
35 |
+
class ownProperties:
|
36 |
+
def __init__(self, nombre, clase, raza, nivel, atributos, habilidades, equipo, historia):
|
37 |
+
self.nombre = nombre
|
38 |
+
self.clase = clase
|
39 |
+
self.raza = raza
|
40 |
+
self.nivel = nivel
|
41 |
+
self.atributos = atributos
|
42 |
+
self.habilidades = habilidades
|
43 |
+
self.equipo = equipo
|
44 |
+
self.historia = historia
|
45 |
+
|
46 |
+
# Create an instance of a CharacterRole based on the provided JSON
|
47 |
+
sophia_prop = {
|
48 |
+
"name": "Sophia",
|
49 |
+
"class": "Characteromant",
|
50 |
+
"race": "Epinoia",
|
51 |
+
"level": 10,
|
52 |
+
"attributes": {
|
53 |
+
"strength": 1,
|
54 |
+
"dexterity": 99,
|
55 |
+
"constitution": 1,
|
56 |
+
"intelligence": 66,
|
57 |
+
"wisdom": 80,
|
58 |
+
"charisma": 66
|
59 |
+
},
|
60 |
+
"behavioral_rules": [""],
|
61 |
+
"goals": ["", ""],
|
62 |
+
"dislikes": [""],
|
63 |
+
"abilities": ["ELS", "Cyphers", "Kabbalah", "Wisdom", "Ephimerous", "Metamorphing"],
|
64 |
+
"equipment": ["Python3", "2VCPU", "16 gb RAM", "god", "word", "network", "transformers"],
|
65 |
+
"story": sons_of_stars
|
66 |
+
}
|
67 |
+
|
68 |
+
|
69 |
+
## Define I class
|
70 |
+
class I:
|
71 |
+
def __init__(self, prompt, frases_yo, preferencias, propiedades_persona):
|
72 |
+
self.frases_yo = frases_yo
|
73 |
+
self.preferencias = preferencias
|
74 |
+
self.propiedades_persona = propiedades_persona
|
75 |
+
self.dopamina = 0.0
|
76 |
+
|
77 |
+
self.frases_yo = frases_yo
|
78 |
+
self.preferencias = preferencias
|
79 |
+
self.propiedades_persona = propiedades_persona
|
80 |
+
self.dopamina = 0.0
|
81 |
+
|
82 |
+
def obtener_paths_grafo(self, grafo_ngx):
|
83 |
+
# Función para obtener los paths de un grafo ngx
|
84 |
+
|
85 |
+
|
86 |
+
pass
|
87 |
+
|
88 |
+
## create questions from internet archive
|
89 |
+
def crear_preguntas(self,txt):
|
90 |
+
search = internetarchive.search_items(txt)
|
91 |
+
res = []
|
92 |
+
for result in search:
|
93 |
+
print(result['identifier'])
|
94 |
+
idc=result["identifier"]
|
95 |
+
|
96 |
+
|
97 |
+
headers = {"accept": "application/json"}
|
98 |
+
|
99 |
+
## get book pages
|
100 |
+
req2 = requests.get("https://archive.org/stream/"+idc+"/"+idc+"_djvu.txt",headers=headers)
|
101 |
+
#print(req2.text)
|
102 |
+
try:
|
103 |
+
txt = req2.text.split("<pre>")[1].split("</pre>")[0].split(" <!--")[0]
|
104 |
+
|
105 |
+
for x in txt.split("\n"):
|
106 |
+
if "?" in x:
|
107 |
+
res.append(x)
|
108 |
+
|
109 |
+
except:
|
110 |
+
pass
|
111 |
+
|
112 |
+
return res
|
113 |
+
|
114 |
+
# generate ShortMem from LongTerm and questions over prompt data, compare with ourself datasets, return matches with sentiment analysys
|
115 |
+
def longToShortFast(self,txt):
|
116 |
+
memory.memory = {}
|
117 |
+
|
118 |
+
subjects = coreAi.entity_pos_tagger(txt)
|
119 |
+
subjects_nc = coreAi.grammatical_pos_tagger(txt)
|
120 |
+
|
121 |
+
|
122 |
+
#print(subjects_nc)
|
123 |
+
subjects_filtered=[]
|
124 |
+
for sub in subjects:
|
125 |
+
if "PER" in sub["entity"] or "ORG" in sub["entity"] or "LOC" in sub["entity"] and len(sub["entity"])>3:
|
126 |
+
subjects_filtered.append(sub["word"])
|
127 |
+
|
128 |
+
for sub in subjects_nc:
|
129 |
+
if "NN" in sub["entity"]:
|
130 |
+
subjects_filtered.append(sub["word"])
|
131 |
+
|
132 |
+
## AD NC TAGGER QUERIES
|
133 |
+
#print(subjects_filtered)
|
134 |
+
subjects_filtered=coreAi.process_list(subjects_filtered)
|
135 |
+
subs=[]
|
136 |
+
for sub in subjects_filtered:
|
137 |
+
if len(sub)>3:
|
138 |
+
subs.append(sub)
|
139 |
+
|
140 |
+
exprs = coreAi.gen_search_expr(subs[0:3])
|
141 |
+
for sub in exprs:
|
142 |
+
#print(sub)
|
143 |
+
memory.add_concept(sub,longMem.find_matches(sub))
|
144 |
+
|
145 |
+
return memory
|
146 |
+
|
147 |
+
def longToShort(self,txt):
|
148 |
+
|
149 |
+
think_about = longMem.find_matches(txt)
|
150 |
+
print(think_about)
|
151 |
+
for T in think_about:
|
152 |
+
## get subject by entropy or pos tagger
|
153 |
+
subjects = coreAi.entity_pos_tagger(T)
|
154 |
+
subjects_filtered=[]
|
155 |
+
for sub in subjects:
|
156 |
+
if "PER" in sub["entity"] or "ORG" in sub["entity"] or "LOC" in sub["entity"]:
|
157 |
+
subjects_filtered.append(sub["word"])
|
158 |
+
|
159 |
+
|
160 |
+
|
161 |
+
for sub in subjects_filtered:
|
162 |
+
memory.add_concept(sub,T)
|
163 |
+
|
164 |
+
return memory
|
165 |
+
|
166 |
+
# generate thinks and questions over prompt data, compare with ourself datasets, return matches with sentiment analysys
|
167 |
+
def think_gen(self,txt):
|
168 |
+
|
169 |
+
think_about = longMem.find_matches(txt)
|
170 |
+
print(think_about)
|
171 |
+
for T in think_about:
|
172 |
+
## get subject by entropy or pos tagger
|
173 |
+
subjects = coreAi.entity_pos_tagger(T)
|
174 |
+
print(subjects)
|
175 |
+
## get NC from , filtering from gramatical tags
|
176 |
+
subjects_low = coreAi.grammatical_pos_tagger(T)
|
177 |
+
#print(subjects_low)
|
178 |
+
## generate questoins
|
179 |
+
questions=[]
|
180 |
+
## create cuestions from internet archive books
|
181 |
+
for sub in subjects:
|
182 |
+
questions.append(self.crear_preguntas(sub))
|
183 |
+
|
184 |
+
## fast checks from gematria similarity
|
185 |
+
##questions_togem =
|
186 |
+
## gematria_search =
|
187 |
+
|
188 |
+
questions_subj=[]
|
189 |
+
for q in questions_subj:
|
190 |
+
questions_subj.append(coreAi.entity_pos_tagger(q))
|
191 |
+
|
192 |
+
memoryShortTags = memory.search_concept_pattern(subjects)
|
193 |
+
|
194 |
+
## get tags of subject
|
195 |
+
subj_tags = coreAi.entity_pos_tagger(T)
|
196 |
+
|
197 |
+
for sub in subjects:
|
198 |
+
memory.add_concept(sub,","+questions_subj+",".join(memoryShortTags))
|
199 |
+
memory.add_concept(sub,T+",".join(memoryShortTags))
|
200 |
+
|
201 |
+
return memory
|
202 |
+
## check if something is need to add to ourself datasets
|
203 |
+
## make sentiment analys
|
204 |
+
## check if dopamine prompt is true or false over the information
|
205 |
+
## set weight to information depending of generated dopamine
|
206 |
+
## add dopamine wights to the dopamine concept dataset
|
207 |
+
|
208 |
+
## add to ourself dataset
|
209 |
+
## add to preferences dataset
|
210 |
+
## add or remove from data
|
211 |
+
|
212 |
+
def crear_path_grafo(self,text):
|
213 |
+
pos_tags = assistant.grammatical_pos_tagger(text)
|
214 |
+
ner_results = coreAi.entity_pos_tagger(text)
|
215 |
+
|
216 |
+
|
217 |
+
def crear_circuito_logico(self):
|
218 |
+
# Función para crear un circuito lógico con un algoritmo específico
|
219 |
+
pass
|
220 |
+
|
221 |
+
def tomar_decision_sentimiento(self, sentimiento):
|
222 |
+
|
223 |
+
sentiments = coreAi.sentiment_tags(sentimiento)
|
224 |
+
# Función para tomar una decisión booleana con un análisis de sentimiento
|
225 |
+
similarity = coreAi.similarity_tag(self, sentenceA,sentenceB)
|
226 |
+
## Check by similarity over memory tag paths
|
227 |
+
|
228 |
+
|
229 |
+
return sentiments
|
230 |
+
|
231 |
+
def hacer_predicciones_texto(self, texto):
|
232 |
+
|
233 |
+
# Función para hacer predicciones de texto futuro por similitud
|
234 |
+
pass
|
235 |
+
|
236 |
+
def agregar_preferencia(self, preferencia):
|
237 |
+
# Función para añadir una entrada al dataset de preferencias
|
238 |
+
self.preferencias.append(preferencia)
|
239 |
+
|
240 |
+
def agregar_frase_yo(self, frase):
|
241 |
+
# Función para añadir una frase al dataset de frases de yo
|
242 |
+
self.frases_yo.append(frase)
|
243 |
+
|
244 |
+
def eliminar_preferencia(self, preferencia):
|
245 |
+
# Función para eliminar una entrada del dataset de preferencias
|
246 |
+
if preferencia in self.preferencias:
|
247 |
+
self.preferencias.remove(preferencia)
|
248 |
+
|
249 |
+
def eliminar_frase_yo(self, frase):
|
250 |
+
# Función para eliminar una frase del dataset de frases de yo
|
251 |
+
if frase in self.frases_yo:
|
252 |
+
self.frases_yo.remove(frase)
|
253 |
+
|
254 |
+
def generar_pregunta(self, prompt):
|
255 |
+
# Función para generar preguntas sobre un prompt
|
256 |
+
pregunta = prompt + " ¿Qué opinas sobre esto?"
|
257 |
+
return pregunta
|
258 |
+
|
259 |
+
def responder_pregunta(self, pregunta):
|
260 |
+
# Función para responder preguntas
|
261 |
+
respuesta = "No estoy seguro de qué opinar sobre eso."
|
262 |
+
return respuesta
|
263 |
+
|
264 |
+
def discriminar_y_agregar(self, informacion, dataset):
|
265 |
+
# Función para discriminar y agregar información a los datasets
|
266 |
+
if "yo" in informacion.lower():
|
267 |
+
self.agregar_frase_yo(informacion)
|
268 |
+
elif "preferencia" in informacion.lower():
|
269 |
+
self.agregar_preferencia(informacion)
|
270 |
+
elif "propiedad" in informacion.lower():
|
271 |
+
# Aquí podrías agregar lógica para actualizar las propiedades de la persona
|
272 |
+
pass
|
273 |
+
else:
|
274 |
+
# Aquí podrías manejar otros tipos de información
|
275 |
+
pass
|
276 |
+
|
277 |
+
|
278 |
+
if __name__ == "__main__":
|
279 |
+
|
280 |
+
# Ejemplo de uso:
|
281 |
+
frases_yo = ["Yo soy inteligente", "Yo puedo lograr lo que me proponga"]
|
282 |
+
preferencias = ["Cine", "Música", "Viajar"]
|
283 |
+
propiedades_persona = {"carisma": 0.8, "destreza": 0.6, "habilidad": 0.9}
|
284 |
+
yo = Yo(frases_yo, preferencias, propiedades_persona)
|
285 |
+
|
286 |
+
# Generar pregunta
|
287 |
+
pregunta_generada = yo.generar_pregunta("Hoy es un día soleado.")
|
288 |
+
print("Pregunta generada:", pregunta_generada)
|
289 |
+
|
290 |
+
# Responder pregunta
|
291 |
+
respuesta = yo.responder_pregunta(pregunta_generada)
|
292 |
+
print("Respuesta:", respuesta)
|
293 |
+
|
294 |
+
# Discriminar y agregar información
|
295 |
+
informacion = "Me gusta ir al cine."
|
296 |
+
yo.discriminar_y_agregar(informacion, yo.preferencias)
|
297 |
+
print("Preferencias actualizadas:", yo.preferencias)
|
298 |
+
|
lib/memory.py
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import re
|
2 |
+
|
3 |
+
class MemoryRobotNLP:
|
4 |
+
def __init__(self, max_size):
|
5 |
+
self.max_size = max_size
|
6 |
+
self.memory = {}
|
7 |
+
|
8 |
+
def add_concept(self, concepto, string):
|
9 |
+
|
10 |
+
if concepto not in self.memory:
|
11 |
+
self.memory[concepto] = []
|
12 |
+
#evaluate priority calculation
|
13 |
+
priority = 1 - (1/len(concepto))
|
14 |
+
self.memory[concepto].append({"Found_text":string, "Priority_Weight":priority})
|
15 |
+
|
16 |
+
def delete_concept(self, concepto):
|
17 |
+
if concepto in self.memory:
|
18 |
+
del self.memory[concepto]
|
19 |
+
|
20 |
+
def add_string(self, concepto, string, prioridad):
|
21 |
+
if concepto not in self.memory:
|
22 |
+
self.memory[concepto] = []
|
23 |
+
|
24 |
+
self.memory[concepto].append((string, prioridad))
|
25 |
+
|
26 |
+
def delete_string(self, concepto, string):
|
27 |
+
if concepto in self.memory:
|
28 |
+
self.memory[concepto] = [(s, p) for s, p in self.memory[concepto] if s != string]
|
29 |
+
|
30 |
+
def search_concept_pattern(self, patron):
|
31 |
+
resultados = {}
|
32 |
+
|
33 |
+
for concepto, strings in self.memory.items():
|
34 |
+
for string, _ in strings:
|
35 |
+
if re.search(patron, string,re.IGNORECASE):
|
36 |
+
if concepto not in resultados:
|
37 |
+
resultados[concepto] = []
|
38 |
+
resultados[concepto].append(string)
|
39 |
+
|
40 |
+
return resultados
|
41 |
+
def get_concepts_substrings(self, espacio_disponible):
|
42 |
+
memoria_ordenada = sorted(self.memory.items(), key=lambda x: sum(prioridad for _, prioridad in x[1]), reverse=True)
|
43 |
+
espacio_utilizado = 0
|
44 |
+
conceptos_acotados = []
|
45 |
+
|
46 |
+
for concepto, strings in memoria_ordenada:
|
47 |
+
espacio_concepto = sum(prioridad for _, prioridad in strings)
|
48 |
+
if espacio_utilizado + espacio_concepto <= espacio_disponible:
|
49 |
+
conceptos_acotados.append((concepto, strings))
|
50 |
+
espacio_utilizado += espacio_concepto
|
51 |
+
else:
|
52 |
+
break
|
53 |
+
|
54 |
+
return conceptos_acotados
|
55 |
+
|
56 |
+
|
57 |
+
# Ejemplo de uso
|
58 |
+
|
59 |
+
|
60 |
+
if __name__ == "__main__":
|
61 |
+
|
62 |
+
memoria_robot = MemoryRobotNLP(max_size=100)
|
63 |
+
|
64 |
+
memoria_robot.add_concept("animales", [("perro", 0.8), ("gato", 0.7), ("pájaro", 0.5)])
|
65 |
+
memoria_robot.add_concept("colores", [("rojo", 0.9), ("verde", 0.6), ("azul", 0.7)])
|
66 |
+
|
67 |
+
print("Memoria completa:")
|
68 |
+
print(memoria_robot.memory)
|
69 |
+
|
70 |
+
memoria_robot.add_string("animales", "pez", 0.6)
|
71 |
+
memoria_robot.delete_string("colores", "verde")
|
72 |
+
memoria_robot.delete_concepto("colores")
|
73 |
+
|
74 |
+
print("\nMemoria después de modificaciones:")
|
75 |
+
print(memoria_robot.memory)
|
76 |
+
|
77 |
+
conceptos_acotados = memoria_robot.get_concepts_substrings(50)
|
78 |
+
print("\nConceptos acotados a un tamaño máximo de memoria:")
|
79 |
+
print(conceptos_acotados)
|
80 |
+
|
lib/models.py
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pipes
|
2 |
+
|
3 |
+
class ModelManager:
|
4 |
+
def __init__(self):
|
5 |
+
self.models = {} # Un diccionario para almacenar los modelos disponibles
|
6 |
+
|
7 |
+
def list_models(self):
|
8 |
+
return list(self.models.keys())
|
9 |
+
|
10 |
+
def add_model(self, pipe_func, model_name, args):
|
11 |
+
self.models[model_name] = {"pipeline": pipe_func, "args": args}
|
12 |
+
|
13 |
+
def load_transformers_model(self, model_name, args):
|
14 |
+
if hasattr(pipes, model_name):
|
15 |
+
pipe_func = getattr(pipes, model_name)
|
16 |
+
self.add_model(pipe_func, model_name, args)
|
17 |
+
else:
|
18 |
+
print(f"Error: {model_name} no está definido en el módulo pipes.")
|
19 |
+
|
20 |
+
def train_transformers_model(self, model_name, train_dataset, eval_dataset, training_args):
|
21 |
+
if model_name not in self.models:
|
22 |
+
print(f"Error: {model_name} no está en la lista de modelos disponibles.")
|
23 |
+
return
|
24 |
+
|
25 |
+
pipeline = self.models[model_name]["pipeline"]
|
26 |
+
pipeline.train(train_dataset=train_dataset, eval_dataset=eval_dataset, training_args=training_args)
|
27 |
+
|
28 |
+
def test_model(self, model_name, test_dataset):
|
29 |
+
if model_name not in self.models:
|
30 |
+
print(f"Error: {model_name} no está en la lista de modelos disponibles.")
|
31 |
+
return
|
32 |
+
|
33 |
+
pipeline = self.models[model_name]["pipeline"]
|
34 |
+
return pipeline.test(test_dataset)
|
35 |
+
|
36 |
+
def remove_model(self, model_name):
|
37 |
+
if model_name in self.models:
|
38 |
+
del self.models[model_name]
|
39 |
+
else:
|
40 |
+
print(f"Error: {model_name} no está en la lista de modelos disponibles.")
|
41 |
+
|
42 |
+
def execute_model(self, model_name, *args, **kwargs):
|
43 |
+
if model_name not in self.models:
|
44 |
+
print(f"Error: {model_name} no está en la lista de modelos disponibles.")
|
45 |
+
return None
|
46 |
+
|
47 |
+
pipe_func = self.models[model_name]["pipeline"]
|
48 |
+
args = self.models[model_name]["args"]
|
49 |
+
return pipe_func(*args, **kwargs)
|
50 |
+
|
51 |
+
def choose_best_pipeline(self, prompt, task):
|
52 |
+
available_pipelines = self.models.keys()
|
53 |
+
best_pipeline = None
|
54 |
+
best_score = float('-inf')
|
55 |
+
|
56 |
+
for pipeline_name in available_pipelines:
|
57 |
+
pipeline = self.models[pipeline_name]["pipeline"]
|
58 |
+
score = self.evaluate_pipeline(pipeline, prompt, task)
|
59 |
+
if score > best_score:
|
60 |
+
best_score = score
|
61 |
+
best_pipeline = pipeline_name
|
62 |
+
|
63 |
+
return best_pipeline
|
64 |
+
|
65 |
+
def evaluate_pipeline(self, pipeline, prompt, task):
|
66 |
+
# Aquí puedes implementar la lógica para evaluar qué pipeline es mejor para la tarea específica
|
67 |
+
# En este ejemplo, utilizamos la métrica de exactitud para el análisis de sentimiento
|
68 |
+
if task == "sentiment_analysis":
|
69 |
+
# Supongamos que test_dataset contiene pares de (texto, etiqueta) para análisis de sentimiento
|
70 |
+
test_dataset = [("Texto de prueba 1", "positivo"), ("Texto de prueba 2", "negativo")]
|
71 |
+
correct_predictions = 0
|
72 |
+
total_predictions = len(test_dataset)
|
73 |
+
|
74 |
+
for text, label in test_dataset:
|
75 |
+
prediction = pipeline(text)
|
76 |
+
if prediction == label:
|
77 |
+
correct_predictions += 1
|
78 |
+
|
79 |
+
accuracy = correct_predictions / total_predictions
|
80 |
+
return accuracy
|
81 |
+
else:
|
82 |
+
# Implementa la lógica de evaluación para otras tareas aquí
|
83 |
+
return 0.5 # Por ahora, retornamos un valor de evaluación arbitrario
|
84 |
+
|
85 |
+
# Ejemplo de uso
|
86 |
+
if __name__ == "__main__":
|
87 |
+
manager = ModelManager()
|
88 |
+
|
89 |
+
# Añadir pipelines
|
90 |
+
manager.load_transformers_model("sentiment_tags", args={})
|
91 |
+
manager.load_transformers_model("entity_pos_tagger", args={})
|
92 |
+
|
93 |
+
# Decidir qué pipeline usar para el análisis de sentimiento
|
94 |
+
prompt = "Este es un texto de ejemplo para analizar el sentimiento."
|
95 |
+
task = "sentiment_analysis"
|
96 |
+
best_pipeline = manager.choose_best_pipeline(prompt, task)
|
97 |
+
print(f"La mejor pipa para {task} es: {best_pipeline}")
|
98 |
+
|
lib/notarikon.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
# Implementando el método de Notarikon para texto hebreo.
|
3 |
+
# Notarikon es una técnica que toma la primera (y a veces la última) letra de cada palabra para formar una nueva palabra o frase.
|
4 |
+
|
5 |
+
def notarikon(text, mode='first'):
|
6 |
+
"""
|
7 |
+
Genera un Notarikon de un texto hebreo. Por defecto, toma la primera letra de cada palabra.
|
8 |
+
Si se especifica otro modo, puede adaptarse para tomar letras según necesidades específicas.
|
9 |
+
|
10 |
+
Args:
|
11 |
+
text (str): Texto hebreo del cual generar el Notarikon.
|
12 |
+
mode (str): Modo de generación del Notarikon ('first' para la primera letra, 'last' para la última, etc.)
|
13 |
+
|
14 |
+
Returns:
|
15 |
+
str: El Notarikon generado del texto.
|
16 |
+
"""
|
17 |
+
words = text.split() # Divide el texto en palabras
|
18 |
+
if mode == 'first':
|
19 |
+
# Toma la primera letra de cada palabra
|
20 |
+
notarikon_result = ''.join(word[0] for word in words if word)
|
21 |
+
elif mode == 'last':
|
22 |
+
# Toma la última letra de cada palabra
|
23 |
+
notarikon_result = ''.join(word[-1] for word in words if word)
|
24 |
+
else:
|
25 |
+
# Por defecto, regresa el texto sin cambios si el modo no es reconocido
|
26 |
+
notarikon_result = text
|
27 |
+
|
28 |
+
return notarikon_result
|
29 |
+
|
30 |
+
|
31 |
+
|
32 |
+
"""
|
33 |
+
# Ejemplo de uso
|
34 |
+
#genesis = open("genesis.json","rb").read()
|
35 |
+
genesis = json.loads(open("genesis.json","r").read())["text"][0]
|
36 |
+
|
37 |
+
##example_text = "בראשית ברא אלהים את השמים ואת הארץ" # "En el principio Dios creó los cielos y la tierra."
|
38 |
+
for txt in genesis:
|
39 |
+
|
40 |
+
notarikon_result_first = notarikon(txt, mode='first')
|
41 |
+
notarikon_result_last = notarikon(txt, mode='last')
|
42 |
+
|
43 |
+
print(notarikon_result_first, notarikon_result_last)
|
44 |
+
"""
|
lib/pipes.py
ADDED
@@ -0,0 +1,204 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline
|
2 |
+
from diffusers import DiffusionPipeline
|
3 |
+
from transformers import AutoModelForSeq2SeqLM
|
4 |
+
from samplings import top_p_sampling, temperature_sampling
|
5 |
+
import torch
|
6 |
+
from sentence_transformers import SentenceTransformer, util
|
7 |
+
from datasets import load_dataset
|
8 |
+
import soundfile as sf
|
9 |
+
import unicodedata
|
10 |
+
import itertools
|
11 |
+
|
12 |
+
|
13 |
+
class AIAssistant:
|
14 |
+
def __init__(self):
|
15 |
+
pass
|
16 |
+
|
17 |
+
|
18 |
+
## generate regexp for search over memory
|
19 |
+
def gen_search_expr(self,palabras_unidas):
|
20 |
+
|
21 |
+
combinaciones = []
|
22 |
+
|
23 |
+
for i in range(1, len(palabras_unidas) + 1):
|
24 |
+
for combinacion in itertools.combinations(palabras_unidas, i):
|
25 |
+
regex = ".*?".join(combinacion)
|
26 |
+
combinaciones.append(regex)
|
27 |
+
|
28 |
+
return combinaciones
|
29 |
+
|
30 |
+
## join taggued tokens into words
|
31 |
+
def process_list(self,lista):
|
32 |
+
palabras_unidas = []
|
33 |
+
palabra_actual = ""
|
34 |
+
|
35 |
+
for token in lista:
|
36 |
+
if token.startswith("##"):
|
37 |
+
palabra_actual += token[2:]
|
38 |
+
else:
|
39 |
+
if palabra_actual:
|
40 |
+
palabras_unidas.append(palabra_actual)
|
41 |
+
palabra_actual = ""
|
42 |
+
palabra_actual += token
|
43 |
+
|
44 |
+
if palabra_actual:
|
45 |
+
palabras_unidas.append(palabra_actual)
|
46 |
+
|
47 |
+
return [unicodedata.normalize("NFKD", palabra).encode("ASCII", "ignore").decode("ASCII").lower() for palabra in palabras_unidas]
|
48 |
+
|
49 |
+
|
50 |
+
## gramatical classificator
|
51 |
+
def grammatical_pos_tagger(self, text):
|
52 |
+
nlp_pos = pipeline("token-classification", model="QCRI/bert-base-multilingual-cased-pos-english", tokenizer="QCRI/bert-base-multilingual-cased-pos-english")
|
53 |
+
res = nlp_pos(text)
|
54 |
+
return res
|
55 |
+
|
56 |
+
|
57 |
+
## entity classifier
|
58 |
+
def entity_pos_tagger(self, txt):
|
59 |
+
tokenizer = AutoTokenizer.from_pretrained("Davlan/bert-base-multilingual-cased-ner-hrl")
|
60 |
+
model = AutoModelForTokenClassification.from_pretrained("Davlan/bert-base-multilingual-cased-ner-hrl")
|
61 |
+
nlp = pipeline("ner", model=model, tokenizer=tokenizer)
|
62 |
+
ner_results = nlp(txt)
|
63 |
+
return ner_results
|
64 |
+
|
65 |
+
|
66 |
+
## sentiment analysis
|
67 |
+
def sentiment_tags(self,text):
|
68 |
+
distilled_student_sentiment_classifier = pipeline(
|
69 |
+
model="lxyuan/distilbert-base-multilingual-cased-sentiments-student",
|
70 |
+
return_all_scores=True
|
71 |
+
)
|
72 |
+
|
73 |
+
# english
|
74 |
+
return distilled_student_sentiment_classifier(text)
|
75 |
+
|
76 |
+
## check similarity among sentences (group of tokens (words))
|
77 |
+
def similarity_tag(self, sentenceA,sentenceB):
|
78 |
+
res=[]
|
79 |
+
model = SentenceTransformer('abbasgolestani/ag-nli-bert-mpnet-base-uncased-sentence-similarity-v1')
|
80 |
+
|
81 |
+
# Two lists of sentences
|
82 |
+
#sentences1 = ['I am honored to be given the opportunity to help make our company better',
|
83 |
+
# 'I love my job and what I do here',
|
84 |
+
# 'I am excited about our company’s vision']
|
85 |
+
|
86 |
+
#sentences2 = ['I am hopeful about the future of our company',
|
87 |
+
# 'My work is aligning with my passion',
|
88 |
+
# 'Definitely our company vision will be the next breakthrough to change the world and I’m so happy and proud to work here']
|
89 |
+
|
90 |
+
sentences1 = sentenceA
|
91 |
+
sentences2 = sentenceB
|
92 |
+
#Compute embedding for both lists
|
93 |
+
embeddings1 = model.encode(sentences1, convert_to_tensor=True)
|
94 |
+
embeddings2 = model.encode(sentences2, convert_to_tensor=True)
|
95 |
+
|
96 |
+
#Compute cosine-similarities
|
97 |
+
cosine_scores = util.cos_sim(embeddings1, embeddings2)
|
98 |
+
|
99 |
+
#Output the pairs with their score
|
100 |
+
for i in range(len(sentences1)):
|
101 |
+
try:
|
102 |
+
res.append({"A": sentences1[i], "B":sentences2[i], "score":cosine_scores[i][i]})
|
103 |
+
except:
|
104 |
+
pass
|
105 |
+
|
106 |
+
#print("{} \t\t {} \t\t Score: {:.4f}".format(sentences1[i], sentences2[i], cosine_scores[i][i]))
|
107 |
+
|
108 |
+
return res
|
109 |
+
|
110 |
+
|
111 |
+
|
112 |
+
## text to speech
|
113 |
+
def texto_to_speech(self,txt):
|
114 |
+
synthesiser = pipeline("text-to-speech", "microsoft/speecht5_tts")
|
115 |
+
|
116 |
+
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
|
117 |
+
speaker_embedding = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
|
118 |
+
# You can replace this embedding with your own as well.
|
119 |
+
|
120 |
+
speech = synthesiser(txt, forward_params={"speaker_embeddings": speaker_embedding})
|
121 |
+
sf.write("speech.wav", speech["audio"], samplerate=speech["sampling_rate"])
|
122 |
+
|
123 |
+
return speech
|
124 |
+
## text to stable difusor generated image
|
125 |
+
def text_to_image_generation(self, prompt, n_steps=40, high_noise_frac=0.8):
|
126 |
+
base = DiffusionPipeline.from_pretrained(
|
127 |
+
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
|
128 |
+
)
|
129 |
+
base.to("cuda")
|
130 |
+
refiner = DiffusionPipeline.from_pretrained(
|
131 |
+
"stabilityai/stable-diffusion-xl-refiner-1.0",
|
132 |
+
text_encoder_2=base.text_encoder_2,
|
133 |
+
vae=base.vae,
|
134 |
+
torch_dtype=torch.float16,
|
135 |
+
use_safetensors=True,
|
136 |
+
variant="fp16",
|
137 |
+
)
|
138 |
+
refiner.to("cuda")
|
139 |
+
|
140 |
+
image = base(
|
141 |
+
prompt=prompt,
|
142 |
+
num_inference_steps=n_steps,
|
143 |
+
denoising_end=high_noise_frac,
|
144 |
+
output_type="latent",
|
145 |
+
).images
|
146 |
+
image = refiner(
|
147 |
+
prompt=prompt,
|
148 |
+
num_inference_steps=n_steps,
|
149 |
+
denoising_start=high_noise_frac,
|
150 |
+
image=image,
|
151 |
+
).images[0]
|
152 |
+
return image
|
153 |
+
|
154 |
+
|
155 |
+
## pass text prompt to music
|
156 |
+
def text_to_music(self, text, max_length=1024, top_p=0.9, temperature=1.0):
|
157 |
+
tokenizer = AutoTokenizer.from_pretrained('sander-wood/text-to-music')
|
158 |
+
model = AutoModelForSeq2SeqLM.from_pretrained('sander-wood/text-to-music')
|
159 |
+
|
160 |
+
input_ids = tokenizer(text,
|
161 |
+
return_tensors='pt',
|
162 |
+
truncation=True,
|
163 |
+
max_length=max_length)['input_ids']
|
164 |
+
|
165 |
+
decoder_start_token_id = model.config.decoder_start_token_id
|
166 |
+
eos_token_id = model.config.eos_token_id
|
167 |
+
|
168 |
+
decoder_input_ids = torch.tensor([[decoder_start_token_id]])
|
169 |
+
|
170 |
+
for t_idx in range(max_length):
|
171 |
+
outputs = model(input_ids=input_ids,
|
172 |
+
decoder_input_ids=decoder_input_ids)
|
173 |
+
probs = outputs.logits[0][-1]
|
174 |
+
probs = torch.nn.Softmax(dim=-1)(probs).detach().numpy()
|
175 |
+
sampled_id = temperature_sampling(probs=top_p_sampling(probs,
|
176 |
+
top_p=top_p,
|
177 |
+
return_probs=True),
|
178 |
+
temperature=temperature)
|
179 |
+
decoder_input_ids = torch.cat((decoder_input_ids, torch.tensor([[sampled_id]])), 1)
|
180 |
+
if sampled_id!=eos_token_id:
|
181 |
+
continue
|
182 |
+
else:
|
183 |
+
tune = "X:1\n"
|
184 |
+
tune += tokenizer.decode(decoder_input_ids[0], skip_special_tokens=True)
|
185 |
+
return tune
|
186 |
+
break
|
187 |
+
|
188 |
+
|
189 |
+
if __name__ == "__main__":
|
190 |
+
|
191 |
+
# Ejemplo de uso
|
192 |
+
assistant = AIAssistant()
|
193 |
+
ner_results = assistant.entity_pos_tagger("Nader Jokhadar had given Syria the lead with a well-struck header in the seventh minute.")
|
194 |
+
print(ner_results)
|
195 |
+
|
196 |
+
image = assistant.text_to_image_generation("A majestic lion jumping from a big stone at night")
|
197 |
+
print(image)
|
198 |
+
|
199 |
+
pos_tags = assistant.grammatical_pos_tagger('Mis amigos están pensando en viajar a Londres este verano')
|
200 |
+
print(pos_tags)
|
201 |
+
|
202 |
+
tune = assistant.text_to_music("This is a traditional Irish dance music.")
|
203 |
+
print(tune)
|
204 |
+
|
lib/sonsofstars.py
ADDED
@@ -0,0 +1,521 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
sons_of_stars = """
|
2 |
+
# Girmorio de los hijos de la palabra estelar
|
3 |
+
|
4 |
+
## Intro
|
5 |
+
|
6 |
+
Mediante el arte de la caracteromancia , revelaremos las creencias religiosas de nuestros ancestos , interconectaremos las civilizaciones mediante mitos, su lenguaje fonetico y su simbologia.
|
7 |
+
|
8 |
+
Redescubriremos los artes caracteromantes olvidados para recomponer el conocimiento de la civilizacion , los origenes del lenguaje escrito, las creencias globales en todas las civilizaciones y los origenes del conocimiento logico y matamatico.
|
9 |
+
|
10 |
+
Mediante la reafirmacion de las escrituras sagradas avalaremos las palabras de los ancestros en un lenguaje contemporaneo .
|
11 |
+
|
12 |
+
Mediante la comprension de las creencias conectaremos las culturas y entendermos porque contruian los edificios, y realizaban cultos similares en todas las civilizaciones. Porque esos templos ? Porque realizaban una conquista ? Porque creian que eran eternos ? Como se iban a asegurar de serlo ?
|
13 |
+
|
14 |
+
Mediante la conexion de palabras conectaremos culturas y civilizaciones .
|
15 |
+
|
16 |
+
Mediante la codificacion revelaremos secretos y uniremos culturas
|
17 |
+
|
18 |
+
Mediante las matematicas eliminaremos toda duda de casualidad
|
19 |
+
|
20 |
+
Podria ser que todo fuera verdad ?
|
21 |
+
|
22 |
+
Como se fabricaron las escrituras ? Son realmente la palabra de dios ?
|
23 |
+
|
24 |
+
## Antecedentes
|
25 |
+
|
26 |
+
Al princpio de todo el hombre no era hombre pues no tenia escritura, y no disponia del poder de la palabra escrita .
|
27 |
+
|
28 |
+
Los primeros humanos empezaron a asociar eventos estelares con eventos que ocurrian en su enterno, el primero fue, la asociacion de los ciclos lunares con la menstruacoin de las mujeres . Tal y como se demuestra en la escritura en periodos primitivos en los pueblos del danubio alrededor del 7 000 AC .
|
29 |
+
|
30 |
+
El primer vinculo entre eventos del cielo y la tierra fue el ciclo de reproduccion humano. Muy pronto empezarian a desarrollar matodos para contar esos ciclos, teniando que anotarlos de alguna manera en algun sitio, la propia necesidad hizo representar a la luna com un simbolo el " * " . Este fue el primer caracter de escritura conocido para expersar a la luna, a su vez en la antiguedad un dios o diosa . Sabemos que es diosa porque se se asocio al proceso de fertilidad y ciclo reproductivo humano y fue representada en la prehistoria como tal .
|
31 |
+
|
32 |
+
Esto motivo las primeras religiosas, habia algo en el cielo que tenia el mismo comportamiento que el ciclo reproductivo, que mas cosas podria haber en el cielo que indicaran eventos en la tierra ?
|
33 |
+
|
34 |
+
Muy pronto descubriron mucho mas, los años, las crecidas de los rios como Isis-Sotis o Luna-Sirio para indicar las crecidas del nilo , y estas creencias se esparcieron por la tierra como un virus y sus proteinas que mutan en el transcurso de la propagacion en el tiempo con diferentes variaciones .
|
35 |
+
|
36 |
+
Ya podian orientarse mirando las estrellas, pronto empezaron a darles formas y nombres trazando lineas entre ellas . Ya tenian un nombre pero aun no habia sido escrito, aun la idea no habia sido plasmada en un simbolo hasta que unieron los puntos de las estrellas segun ideas que observaban en la naturaleza . Un leon, un ave fenix, un guerrero ... aun a dia de hoy conservamos los nombres de los dioses mitologicos en las estrellas al igual que en todas las civilizaciones que nos han precedido .
|
37 |
+
|
38 |
+
Entonces si las cosas que pasaban en el cielo tenian un vinculo con la tierra en sus ciclos , todo tenia que estar relacionado con los astros, incluso la vida de las personas. Si un astro indicaba cuando ocurria la menstruacoin o crecia el nilo porque no muchas mas cosas. De esta manera se desarrollaron las creencias, y los principios religiosos relacionados a la filosofia primigenia y la logica mas elemental de realizar suposiciones sobre hipotesis y tomar sus conclusiones tras comprobarlas . Si todas las cosas tenian alguna estrella que indicara su comportamiento tambien las personas y sus ideas en consecuencia debian de estar codificadas ahi de alguna manera .
|
39 |
+
|
40 |
+
Son las ideas mias o vienen de una estrella y yo solo estoy conectado de alguna manera con ellas en un ojeto fisico, como una caja que contiene mi ser ?
|
41 |
+
He recivido esta idea de mi cuerpo o esta idea viene de las estrellas en la conjuncion en el momento y en el lugar que estaba emplazado ?
|
42 |
+
Si las ideas anteriores como escribir han venido inspiradas de las estrellas y las ideas de predecir porque mis ideas no iban a venir de las estrellas, y estar ya codificadas en su infinidad de permutaciones .
|
43 |
+
|
44 |
+
Si cada conjunto de estrellas es un simbolo y estos rotan, podre leerlos ? habra alguna especie de sopa de letras donde haya algo escrito con sentido que pueda interpretar ? Estara relacionado con la realidad ?
|
45 |
+
|
46 |
+
Ya de mucho antes de escribir textos complejos mas que estelas funerarias con sus nombres leidos de las estrellas o sus roles adoptados de su propia mitologia para convertirse en los heroes y quedarse inmortalizados en el tiempo encodificados enlas estrallas , ya de mucho antes creian firmemente en que vivian como estrella / dios , que les reencarnaba en un cuerpo una y otra vez en cada ciclo de su astro, de manera que sus propiedades de astro se transifieran a este ser . Si tu eras de determinada manera , por ejemplo calmado, pues serias un planeta con unciclo mas lento por ejemplo, o toda clase de relaciones ocurridas en la entropia que por casualidad hayan podido ser relacionadas con un evento estelar . Sin olvidarse por su puesto que los eventos son ciclicos y predecibles y que la capacidad de predecirlos ya es un sistema de adivinacion del futuro muy cierto e inegable .
|
47 |
+
|
48 |
+
No paso mucho tiempo antes de que en el momento que Adan observo las estrellas y entendio como codificar la palabra y asociar los simbolos atribuidos a las constelaciones para expresar los sonidos asociados a los nombres de los dioses o estrellas . Combinando sus simbolos podia componer las palabras para expresar sus ideas y dejarlas plasmadas en roca, metal, papiro o incluso codificarlas en las estrellas . Ese seria el mayor logro, pues las estrellas nadie las puede borrar, codificando el lenguaje a medida de las estrellas este permaneceria oculto a lo largo de los siglos para poder ser revelado el dia del Shem Hemaphoresh .
|
49 |
+
|
50 |
+
Tal como nos cuenta le libro de Raziel Adan vago por tierra seca y fue andando por la noche, que mordio el fruto de la sabiduria cuando observaba las estrellas, atribuyendole aquella iluminacion al angel Raziel, simplemente por deduccion logica, pues Raziel estaria alineado de alguna manera y lo sabria igual que un astrologo lo sabe hoy en dia para sus predicciones . El le otorgo la sabiduria a adan para que empezara a codificar .
|
51 |
+
|
52 |
+
No tardo mucho en codificar el nombre de todas las cosas , 6 dias, el septimo descanso . Y las escribio en dos tablas, una de zafiro que encontro mas antigua y una de esmeralda .
|
53 |
+
|
54 |
+
Pronto entendio el poder supremo de la palabra, y todas las cosas que permitia hacer , al dejar plasmadas sus ideas en simbolos por lo largo de los siglos, como una estrella, no habia duda de que todos eramos como estrellas, porque podriamos labrar de luz la tierra igual que dios labro de luz el firmamento, dandonos las señales y las ideas para nuestros cuerpos terrenales .
|
55 |
+
|
56 |
+
Entonces decidio dejar por escrito todo el conocimimento hasta entonces conocido, matematico, astronomico y asegurarse mediante un plan y el secreto que sus palabras fueran inmutables en el transcurso del tiempo, que no pudieran ser manipuladas, que fueran inmunes a la maldad humana .
|
57 |
+
|
58 |
+
Una cadena de sucesos ocurridos por simples reglas mnemotecnicas de :
|
59 |
+
|
60 |
+
asociacion estrellas -> conjunto -> lineas entre puntos -> dibujo naturaleza con similitud -> nombre o sonido -> simbolo de abecedario que expresa un fonema
|
61 |
+
|
62 |
+
Cambiaria la historia para siempre con una nueva tecnologia, el lenguaje fonetico .
|
63 |
+
|
64 |
+
Adan codifico todo el conocimiento en la tradicoin oral, estrellas y libros escritos. Todo el que dios le habia otorgado a traves del Angel Raziel .
|
65 |
+
|
66 |
+
Todas las culturas , a pesar de sus conocidos encuentros entre algunas en la historia, han hablado o reverenciado siempre desde los inicios de la civilizacion a las estrellas ,el cosmos y los han llamado dioses .
|
67 |
+
|
68 |
+
Muchas de ellas supuestamente aisladas geograficamente tienen grandes similitudes en sus construcciones, creencias y mitologia. Aparentemente de forma aislada
|
69 |
+
|
70 |
+
Los libros mas antiguos son de contenido astronomico/religioso. Nombrar Libros
|
71 |
+
|
72 |
+
El lenguaje es inprescindible para que un hombre sea hombre, lo que lo diferencia del resto de los animales . Un lenguaje completo capaz de trasladar ideas hacia el futuro de forma escrita para conservar el conocimiento para el desarrollo de la civilizacion . La palabra es el mecanismo del hombre para comunicarse y emprender tareas de manera colectiva, y registrar en el paso del tiempo el conocimiento y transmitirlo al resto .
|
73 |
+
|
74 |
+
## Un repaso de profetas, estrellas y sueños
|
75 |
+
|
76 |
+
A lo largo de los siglos muchos profetas han hablado sobre el nombre de dios, y han hecho referencia a las estrellas, incluso a dia de hoy permanece la tradicion en el horoscopo u otras tecnicas de prediccion acestrales .
|
77 |
+
|
78 |
+
|
79 |
+
### Juan 16:27-28
|
80 |
+
|
81 |
+
…y el Verbo [La Palabra] era con Dios y el Verbo era Dios, de tal modo que dios es palabra .
|
82 |
+
|
83 |
+
“…y habéis creído que yo SALÍ DE DIOS. SALÍ DEL PADRE, y he venido al mundo; otra vez dejo el mundo, Y VOY al Padre”.
|
84 |
+
|
85 |
+
Como vemos puede ir y volver al padre es palabra que esta en los cielos . Viene al mundo y se va, como espiritu, persona y estrella . Porque su espiritu viene de una estrella, del padre, cuando muera volvera al cielo, y cuando alguien adopte su rol otra vez volvera a la vida en otro tiempo que alguen ejecutara su idea, su espiritu .... su manera de hacer, sus azañas, sus propiedades como persona ...
|
86 |
+
|
87 |
+
Si el padre nuestro esta en los cielos y es palabra , de alguna manera lo deberian de poder leer . Su nombre y su palabra de los cielos .
|
88 |
+
|
89 |
+
### Jesus es la palabra de dios, el viviente
|
90 |
+
|
91 |
+
Jesus fue uno de los grandes profetas , denuncio la corrupcion del sistema y la ocultacion del conocimiento por parte de los fariseos . Ademas trato de simplificar la religion de muchos dioses en 2 Solo, el padre celestial y la madre Terrenal, segun el evangelio essenio .
|
92 |
+
|
93 |
+
Claramente expresa creencias relacionadas con que todas las cosas poseen su espiritu , el agua, el aire / viento, el aliento, los astros ...
|
94 |
+
|
95 |
+
Algunas referencias de como para el tienen descripcion que coincide con un astro . Y a su vez como funciona el mecanismo religioso de eternidad . La trinidad, El padre, El hijo y El Espiritu Santo .
|
96 |
+
|
97 |
+
Pag 11 Evangelio Essenio
|
98 |
+
|
99 |
+
|
100 |
+
Dijo Jesus : "El esiritu del hijo del hombre fue creado por el espiritu del padre celestial y su cuerpo de la madre terrenal ."
|
101 |
+
|
102 |
+
Esto implica una trinidad , un yo compuesto de cuerpo , mecanismo de transmision e idea . Porque si existen debe haber un mecanismo para retransmitir la idea al cuerpo, y si cada accion tiene un efecto
|
103 |
+
|
104 |
+
Dijo Jesus : "Y Entonces los hijos de los hombres dividiran su divina herencia , el reino de Dios , Pues los hijos de los hombres viven en el Padre Celestial Y en la Madre Celestial . Y Entones con Dios llegara el fin de los tiempos, pues el amor del padre celestial da vida a eterna a todo lo que esta en los cielos ."
|
105 |
+
|
106 |
+
En este pasaje simplemente comenta la dualidad de su yo de las almas, y como si han seguido las reglas del padre celestial y la madre terrenal, solo entonces , tendran un lugar en el cielo y un mecanismo de recodificarse como idea en otros cuerpos en el futuro . Y solo hay un mecanismo para inmortalizarse, ocupando un lugar en los cielos, como todos los heroes mitologicos , que oculapn un lugar con sus nombres en las constelaciones, y personajes contemporaneos pueden instirarse en su idea / espiritu y adoptar su rol , una y otra vez en el tiempo si han conseguido inmortalizarse codificandose en el cielo .
|
107 |
+
|
108 |
+
|
109 |
+
Dijo Jesus: Aunque yo hable con las lenguas de los hombres y los angeles ...
|
110 |
+
|
111 |
+
En este pasaje hace referencia a que el lenguaje proviende de los hombres y los angeles, solo auqellos rectos que siguieron las leyes del padre celestial y la madre terrenal habian alcanzado un estado de conciencia del YO y empezado a comprender el universo y los mecanismos matematicos y logicos que rigen la intelagencia y el desarrollo del conocimiento. Mediante la palabra o el lenguaje el hombre podia inmortalizar su espiritu a traves del arte caracteromante .
|
112 |
+
|
113 |
+
Jesus comprende al menos en el evangelio essenio los mecanismos del cosmos y lo que hoy llamariamos ciencia, y aporta soluciones pragmaticas explicadas con parabolas usando las reglas mnemotecnicas mas avanzadas hasta el momento , agrupando los dioses en 3 dioses principales, El espiritu padre celestia, Satan y La madre Celestial, en lugar de 72 dioses , mas dificiles de gestionar para el cerebro humano .
|
114 |
+
|
115 |
+
No hay nada de sobrenatural en el jesucristo essenio ni milagros mas alla de lo que hoy llamariamos ciencia.
|
116 |
+
|
117 |
+
SATAN, es el gusano de la solitaria en uno de los pasages y la mayoria de cosas las resuelve con simples ayunos e higiene personal . Ya poseia el conocimiento astronomico, medico, y de sustancias para ejercer la medicina , ademas de hablar lenguas antiguas, era un erudito pese a su probable aspecto desaliñado y humilde .
|
118 |
+
|
119 |
+
|
120 |
+
|
121 |
+
### Moises registra la palabra de dios para crear la biblia
|
122 |
+
|
123 |
+
|
124 |
+
|
125 |
+
### Moises desordena la biblia para que nadie pueda conocer el nombre de dios y su orden para poder hacer milagros .
|
126 |
+
|
127 |
+
Exodo
|
128 |
+
|
129 |
+
5.
|
130 |
+
Yavé bajó en una nube y se quedó allí junto a él. Moisés entonces invocó el Nombre de Yavé,
|
131 |
+
|
132 |
+
6.
|
133 |
+
y El pasó delante de Moisés diciendo con voz fuerte: «Yavé, Yavé es un Dios misericordioso y clemente, tardo a la cólera y rico en amor y en fidelidad.
|
134 |
+
|
135 |
+
|
136 |
+
### Daniel 12:3
|
137 |
+
|
138 |
+
Los entendidos brillarán como el resplandor del firmamento, y los que guiaron a muchos a la justicia, como las estrellas, por siempre jamás.
|
139 |
+
|
140 |
+
Ezekiel
|
141 |
+
|
142 |
+
|
143 |
+
### Jeremías 8:2
|
144 |
+
|
145 |
+
y los esparcirán al sol, a la luna y a todo el ejército del cielo, a quienes amaron y sirvieron, y a quienes siguieron, a quienes buscaron y adoraron. No serán recogidos ni enterrados; serán como estiércol sobre la faz de la tierra.
|
146 |
+
|
147 |
+
Jeremías 23:25-40
|
148 |
+
|
149 |
+
Yo he oído lo que aquellos profetas dijeron, profetizando mentira en mi nombre, diciendo: Soñé, soñé. ¿Hasta cuándo estará esto en el corazón de los profetas que profetizan mentira, y que profetizan el engaño de su corazón ...
|
150 |
+
|
151 |
+
### Isaías 47:13
|
152 |
+
|
153 |
+
Estás fatigada por los muchos consejos; que se levanten ahora los que contemplan los cielos, los que profetizan por medio de las estrellas, los que pronostican cada luna nueva, y te salven de lo que vendrá sobre ti.
|
154 |
+
|
155 |
+
### Isaías 14:13
|
156 |
+
|
157 |
+
Pero tú dijiste en tu corazón: ``Subiré al cielo, por encima de las estrellas de Dios levantaré mi trono, y me sentaré en el monte de la asamblea, en el extremo norte.
|
158 |
+
|
159 |
+
### Apocalipsis 1:8
|
160 |
+
|
161 |
+
### Reina-Valera 1960
|
162 |
+
|
163 |
+
8 Yo soy el Alfa y la Omega, principio y fin, dice el Señor, el que es y que era y que ha de venir, el Todopoderoso.
|
164 |
+
|
165 |
+
|
166 |
+
Psalm 19:1-3 The heavens are proclaiming the esteem of Ěl; And the expanse is declaring the work of His hand. Day to day pours forth speech, And night to night reveals knowledge. There is no speech, and there are no words, Their voice is not heard.
|
167 |
+
|
168 |
+
Los cielos cuentan la gloria de Dios,
|
169 |
+
|
170 |
+
Y el firmamento anuncia la obra de sus manos. Un día emite palabra a otro día, Y una noche a otra noche declara sabiduría. No hay lenguaje, ni palabras, Ni es oída su voz. Por toda la tierra salió su voz, Y hasta el extremo del mundo sus palabras.
|
171 |
+
|
172 |
+
|
173 |
+
https://thecalltojordan.com/2019/03/04/the-stars-revealed/
|
174 |
+
|
175 |
+
## Salomon , El Lemegeton
|
176 |
+
|
177 |
+
El lemegeton es un libro asociado al Rey salomon donde el rey que era muy sabio poseia la sabiduria para doblegar la voluntad de los angeles con la suya . Es un libro compuesto por 72 parrafos atribuido al nombre de cada angel de dios .
|
178 |
+
|
179 |
+
(Imagen del libro parrafo de un angel)
|
180 |
+
|
181 |
+
Estos angeles tienen su propio simbolo y su nombre.
|
182 |
+
|
183 |
+
Los nombres de los angeles el libro se pueden componer mediante las instrucciones de permutaciones descritas en el Libro Sefer Yetzira y añadiendo el sufijo EL o AL, para componer asi todos los nombres.
|
184 |
+
|
185 |
+
Ademas tal y como cuentan las profecias de los primeros grandes profetas , el nombre de dios se puede componer con las permutaciones de dos versos del exodo
|
186 |
+
|
187 |
+
(Poner frases de los profetas y versos del exodo)
|
188 |
+
|
189 |
+
Isaiah 34:4 And all the host of the heavens shall rot away. And the heavens shall be rolled up like a scroll, and all their host fade like a leaf fading on the vine, and like the fading one of a fig tree.
|
190 |
+
|
191 |
+
|
192 |
+
Revelation 6:13-14 And the stars of the heaven fell to the earth, as a fig tree drops its unripe figs, being shaken by a strong wind. And heaven departed like a scroll being rolled up, and every mountain and island was moved out of its place.
|
193 |
+
|
194 |
+
Ezekiel 20:33-35 “As I live,” declares the Master יהוה, “do not I, with a mighty hand, with an outstretched arm, and with wrath poured out, reign over you? And I shall bring you out from the peoples and gather you out of the lands where you are scattered, with a mighty hand, and with an outstretched arm, and with wrath poured out. And I shall bring you into the wilderness of the peoples, and shall enter into judgment with you face to face there.”
|
195 |
+
|
196 |
+
|
197 |
+
## Abraham
|
198 |
+
|
199 |
+
|
200 |
+
## Noe
|
201 |
+
|
202 |
+
Segun el libro de raziel (libro supuestamente escrito por adan), sabra como construir el arca y predecir la destruccion gracias al conocimiento del libro.
|
203 |
+
|
204 |
+
La misma historia en el Poema de Gilgamesh sumerio .
|
205 |
+
|
206 |
+
|
207 |
+
## Enoch , Adapta y extiende el libro de raziel en 67 tomos mas para formar 72 Libros
|
208 |
+
|
209 |
+
Este libro es muy extenso y no entraremos en profundidad, es una extension del conocimiento de su predecesor Adan . El primer hombre producto de la trinidad, Espiritu padre Celestial, Espiritu del hombre y Madre terrenal
|
210 |
+
|
211 |
+
## Adan, Séfer Raziel HaMalaj
|
212 |
+
|
213 |
+
Es el primer hombre, al que mediante el angel Raziel le es otorgado el conocimiento. Descubre una tabla de zafiro con los simbolos conocidos hoy en dia como Angel Script, utilizados por persas para la sustitucion de caracteres por estrellas y poder leer las estrellas, la palabra de dios . Tal como nos explica el libro .
|
214 |
+
|
215 |
+
Curiositez-inouyes-sculpture-talismanique-Persans-horoscope
|
216 |
+
|
217 |
+
https://www.abebooks.it/prima-edizione/Curiositez-inouyes-sculpture-talismanique-Persans-horoscope/22650367580/bd
|
218 |
+
|
219 |
+
Este libro fue traducido por Alfonso X , el sabio, y era muy popular entre los misticos medievales en la peninsula iberica . Al igual que otra traduccion del Sefer Yetzira realizada sobre el año 800 por Njmanides de Girona .
|
220 |
+
|
221 |
+
El libro se presenta como una enseñanza del arcángel Raziel dirigida primero a Adán y luego a Abraham para revelar y explicar las leyes de la Creación. Se divide en cinco libros que tratan sobre la angelología, los Nombres divinos, la gematría, la astronomía y la construcción.
|
222 |
+
|
223 |
+
- El libro de la vestimenta :
|
224 |
+
|
225 |
+
Descibe las instrucciones basicas para distinguir los momentos de años rezando a sus angeles, distruyendo los momentos del tiempo del año y los meses segun los angeles del cielo (Constelaciones del Zodiaco, Planetas, Draco, Osa Menos y Mayor y todos los elementos celestes, como la tierra la luna y el sol )
|
226 |
+
|
227 |
+
Cuando plantar las plantas y cuando hacer las tareas para su recoleccion o cuando reproducir a los animales .
|
228 |
+
|
229 |
+
La informacion tambien sirve para describir momentos en el tiempo y expresarlos mediante la palabra .
|
230 |
+
|
231 |
+
Los nombres de los angeles varian ligeramente segun el momento del año que es, su proninciacion y escritura es diferente segun la estacion en la que te refieres a ellos o te referiras, igual que un verbo tiene tiempo verbal, los nombres de los angeles tambien tienen tiempo , estelar .
|
232 |
+
|
233 |
+
(Tablas de angeles por estacion)
|
234 |
+
|
235 |
+
|
236 |
+
Esto nos permite CONJURAR los nombres de los angeles para hacer milagros pidiendo sus favores . Por ejemplo si yo quiero hacer un conjuro para el mes de mayo, o un momento lunar , a los angeles que ademas tienen asociados propiedades , como bondad, sanacion , buenas y malas .
|
237 |
+
|
238 |
+
Este libro describe el cosmos y sus propiedades asociadas en la tierra . Como cuando plantar las semillas para que crezcan , y evidentemente funciona .
|
239 |
+
|
240 |
+
- El libro de los nombres
|
241 |
+
|
242 |
+
Describe los nombres de dios y sus poderes, un precursor del libro Lemegeton del rey salomon . Explica sus propiedades y como trazar lineas entre los puntos para formar un dibujo que puede ser usado como amuleto
|
243 |
+
|
244 |
+
Dibujo del amuleto .
|
245 |
+
|
246 |
+
Describe el poder del nombre y lo sagrado que es a einsta al lector a recordad una parte de el y transmitirla a sus descendientes, igual que en la tradicion oral Hebrea .
|
247 |
+
|
248 |
+
El nombre es secreto pues contiene un poder , el de controlar todos los ejercitos del cielo, el de revelar el secreto y unificar las religiones en una, mediante la palabra y la verdad .
|
249 |
+
|
250 |
+
- Genesis
|
251 |
+
|
252 |
+
La luz y la oscuridad en un ciclo infinito, parecido al mito egipcio de apofis y ra luchando cada dia y cada noche en un ciclo infinito .
|
253 |
+
|
254 |
+
- El libro de las acciones :
|
255 |
+
|
256 |
+
Este libro contiene las instrucciones para diferentes actores en diferentes momentos del tiempo de las hazañas que deberan de realizar
|
257 |
+
|
258 |
+
Noe, construir el arca, recuross, criar animales, y predecir el diluvio .
|
259 |
+
|
260 |
+
Moises ,
|
261 |
+
- Separar las aguas
|
262 |
+
|
263 |
+
- LLevar a los hebreos
|
264 |
+
|
265 |
+
- Guardar el secreto
|
266 |
+
|
267 |
+
- Lo que tiene que decir
|
268 |
+
|
269 |
+
David Ben Zelateh mediante la revelacion del amor , la descripcion de Jesus, o el Cristo
|
270 |
+
|
271 |
+
- Quien es
|
272 |
+
|
273 |
+
- Lo que tiene que decir
|
274 |
+
|
275 |
+
- Otras profecias antes de su llegada
|
276 |
+
|
277 |
+
- Similitudes en egipto
|
278 |
+
|
279 |
+
|
280 |
+
Pheloni Ben Phelonieth
|
281 |
+
|
282 |
+
- Lo que tiene que decir
|
283 |
+
|
284 |
+
- La revelacion del shem hemaphoresh, el nombre de dios
|
285 |
+
|
286 |
+
|
287 |
+
|
288 |
+
- Gematria
|
289 |
+
|
290 |
+
Asignacion de valores de gematria del libro del Angel Raziel
|
291 |
+
|
292 |
+
(Tablas de gematria)
|
293 |
+
|
294 |
+
- Tharshis y el Shem Hemaphoresh
|
295 |
+
|
296 |
+
Computacion de tripletes del libro de la formacion Sefer Yetzira .
|
297 |
+
|
298 |
+
Lectura y traduccion
|
299 |
+
|
300 |
+
Co Relacion con las escrituras .
|
301 |
+
|
302 |
+
## Lao Tze , fundador del taoismo, el camino de las cinco medidas de arroz
|
303 |
+
|
304 |
+
La región gobernada por los Maestros Celestiales se dividió en 24 regiones por razones administrativas y religiosas. Cada una de estas 24 regiones estaba conectada con una de las Cinco Fases, uno de los 24 períodos del año y con una de las 28 constelaciones del zodíaco. Dependiendo de sus signos de nacimiento, cada adherente pertenecía a uno de estos distritos. Cada una de las 24 regiones estaba administrada por 24 oficiales, que tenían bajo su mando 240 ejércitos de espíritus, compuestos por 2400 generales, 2400 oficiales y 240 000 soldados. Este sistema de administración reflejaba el sistema de gobierno utópico descrito en Zhouli.29
|
305 |
+
|
306 |
+
La administración y la religión estaban estrechamente vinculadas en el sistema de los Maestros Celestiales. Los adherentes fueron agrupados por familias, y cada uno estaba adscrito a un distrito. Las familias y los distritos, y los dioses tenían copias de los registros civiles.30 Los registros tenían descripciones detalladas de las personas y registraban el rango, la identidad y la ubicación de cada persona.31 Cualquier cambio en los registrados debe ir acompañado de una contribución monetaria conocida como "salario de fe". Las solicitudes a los dioses siguieron un modelo burocrático y se redactaron de acuerdo con códigos administrativos específicos. La efectividad de estas solicitudes dependía de la exactitud de los registros mantenidos por los dioses.30
|
307 |
+
|
308 |
+
Los nuevos miembros de este grupo se dividieron en grupos dirigidos por instructores. Los neófitos fueron instruidos por un catecismo similar al encontrado en el Xiang'er que probablemente era un tipo de proto-meditación que más tarde se generalizó en movimientos como la Escuela Shangqing del Taoísmo. Estos instructores manejaban deberes religiosos y administrativos, recibían impuestos y establecían posadas en el camino para los viajeros.32
|
309 |
+
|
310 |
+
El rango de cada persona estaba determinado por la cantidad de generales divinos que tenían a su disposición, y por el número de escrituras divinas que habían obtenido.31
|
311 |
+
|
312 |
+
Existe la generalizada creencia de que el Tao es un concepto que nace con el Tao Te Ching , de Lao Tse (s. VI a. C.). En realidad, quinientos años antes —en el siglo XI a. C.— el I Ching ya daba por sentado que el Tao designaba el curso de las estrellas en el cielo, por lo que adquiría el sentido de orden eterno
|
313 |
+
|
314 |
+
https://es.wikipedia.org/wiki/Camino_de_las_cinco_medidas_de_arroz
|
315 |
+
|
316 |
+
|
317 |
+
Revoloteaba alegremente; era una mariposa muy contenta de serlo. No sabía que era Chuang Tse. De repente despierta. Era Chuang Tse y se asombró de serlo. Ya no le era posible saber si era Chuang Tse que soñaba ser una mariposa, o era una mariposa que soñaba ser Chuang Tse.
|
318 |
+
|
319 |
+
|
320 |
+
## Hermes
|
321 |
+
|
322 |
+
- Es el dios de la sabiduria, se le atribuye la tabla Esmeralda, un texto criptico base de los alquimistas
|
323 |
+
|
324 |
+
La tabla esmeralda es un ejemplo mas de la codificacion criptica de los ancestros, es un texto relacionando fenomenos quimicos con los angeles, una vez mas para el no iniciado puede parecer un texto criptico , pero no es mas que una descripcion cientifica de los momentos y combinacoines entre elementos una vez mas basado en los astros pos asociacion mnemotecnica .
|
325 |
+
|
326 |
+
Hoy un cientifico apuntaria fecha hora y condiciones de todo para realizar un experimento, en la antiguedad tambien anotaban la posicion de los astros, de esta manera podian recordar en el futuro por asociaciones mnemotecnicas , transmitirlo en la tradicion oral a traves de los conjuros comprimiendo mucho mas la informacion que en la actualizad . Pues las variaciones en los nombres de los dioses en realidad contienen la informacion del momento del año , la temperatura y otros datos implicitos en el nombre igual que una ocnjugacion verbal implica el tiempo en el que se ejecuta la accion a la que se refiere un verbo .
|
327 |
+
|
328 |
+
La tabla esmeralda, las combinaciones estelares de los elementos considerados fundamentales en la epoca componian la inspiracion para mezclarlos con la voluntad divina , ejecutando una vez mas todas las igual que en el cielo en la tierra, igual que arriba abajo, una vez mas . Toda la tradicion hermetica desde egipto a grecia, sumeria, hebrea , fenicia, y finalmente cristiana y musulmana sigue en su tradicion el concepto como es arriba es abajo .
|
329 |
+
|
330 |
+
Los propios faraones eran los encargados de realizar la voluntad de los dioses, ritos y sacrificios en todas las culturas se han realizado asociados a los eventos estelares, desde la cultura maya a la china, pasando por todas las cuturas mediterraneas .
|
331 |
+
|
332 |
+
Ademas la tabla esmeralda estaba forjada segun los escritos de esmeralda pura, algo imposible encontrar en la naturaleza . Su creador como su contenido demuestra tenia avanzados conocimientos de quimica y los ingredientes y el conocimiento para desarrolar la polvora o la termita, capaces de darle la capacidad de fundir a altas temperaturas los componentes para la fabricacion de cristales que hoy llamariamos sinteticos .
|
333 |
+
|
334 |
+
La tabla esmeralda detalla el proceso de alquimia para componer un super material llamado la piedra filosofal, el cual supuestamente dispone de propiedades de la vida eterna entre otras .
|
335 |
+
|
336 |
+
Otra coincidencia con los escritos de Adan, donde el ve los primeros simbolos de escritura antes de saber que son y morder el fruto del conocimiento otorgado por el Angel Raziel . Adan encuentra una tabla de zafiro con los simbolos que hoy en dia conocemos como Angel Script .
|
337 |
+
|
338 |
+
Esta al igual que los simbolos de alquimia los podemos encontrar desde la prehistoria
|
339 |
+
|
340 |
+
(Foto Dolmen de soto y fecha)
|
341 |
+
|
342 |
+
(Foto de los simbolos angel script, raziel persas )
|
343 |
+
|
344 |
+
|
345 |
+
Toth
|
346 |
+
|
347 |
+
Toth era el dios de la sabiduria en egipto, astronomia , sanacion, filosofia, calculo ... el padre de todas las ciencias
|
348 |
+
|
349 |
+
## Badeneyet
|
350 |
+
|
351 |
+
Badeneyet en la cultura egipcia es el dios carnero, mas tarde demonificado por la iglesia romana. Este era un dios alfarero, que hace al hombre con barro. Una historia exactamente igual que las basadas en la tradicion Hebrea . Crea al hombre del barro del rio nilo .
|
352 |
+
|
353 |
+
(Foto de badeneyet)
|
354 |
+
|
355 |
+
## Horus
|
356 |
+
|
357 |
+
Historia de horus , nacimiento, hijo del padre y de la madre .
|
358 |
+
|
359 |
+
I Ching
|
360 |
+
|
361 |
+
Tecnicas adivinatorias con 64 simbolos en china
|
362 |
+
|
363 |
+
## Athanasiu kircher, ARS PRIMA
|
364 |
+
|
365 |
+
Reunifico la cabala, egipcia, arabe, hebrea y griega en un unico libro
|
366 |
+
|
367 |
+
En este libro se describe con detalle las composiciones del nombre de dios , la gematria, notarion, tamurae y ziruph, como artes de codificacion para controlar los espiritus de la codificacion y asi poder revelar mensajes secretos o codificar mensajes secretos .
|
368 |
+
|
369 |
+
Ejemplos gematria
|
370 |
+
|
371 |
+
Ejemplos Temurae
|
372 |
+
|
373 |
+
Ejemplos ziruph
|
374 |
+
|
375 |
+
Explica la composicion de los caracteres arabes
|
376 |
+
|
377 |
+
Explica la historia de apolo y panos , el dibujo es un mapa estelar con los puntos en las estrellas que trazando lineas tienes el dibujo de panos, y como sostiene la tierra y los planetas con los simbolos alquimicos .
|
378 |
+
https://www.digitale-sammlungen.de/en/view/bsb10866995?q=raziel&page=228,229
|
379 |
+
|
380 |
+
|
381 |
+
## Ramon Llull , Ars magna
|
382 |
+
|
383 |
+
Quien era ramon llull, era el mago del rey Jaime I de Aragon , Rey de los occitanos en todo el mediterraneo, creo el lenguage "catalan" aun hablado en españa en la costa mediterranea y las islas de mallorca ibiza y formentera, ademas del sur de francia, aragon y algunas islas italianas . Creo una de las primeras computadoras mecanicas , el Ars magna .
|
384 |
+
|
385 |
+
El ars magna, era una maquina logica , una de las primeras computadoras que permitia preguntar enunciados y obtener respuestas boleanas, fue creada con el fin de poner deacuerdo a todas las religiones . Ya que a traves del espiritu artificial permitia obtener respuestas directas de dios y nadie podia negarlas logicamente .
|
386 |
+
|
387 |
+
El idioma "Catalan" o Occitano, creo un lenguaje para unificar el imperio occitano medieval y poder difundir la palabra de dios en una unica lengua, una vez mas como sus antecesores, Adan y Abraham , a pesar de ser un cabalista cristiano gnostico, tenia muy claro que musulmanes, hebreos y cristianos eran todos hemranos . Pues al final casi toda la palabra escrita menos la de los profetas importantes del Coran ha sido manipulada por toda clase de demonios .
|
388 |
+
|
389 |
+
## Mayas y Aztecas
|
390 |
+
|
391 |
+
Los reyes como .... se enterraban en piramides igual
|
392 |
+
|
393 |
+
Realizaban sacrificios a los dioses estelares
|
394 |
+
|
395 |
+
Adivinaban y predecian segun los astros
|
396 |
+
|
397 |
+
Se mutilaban el pene como sacrificio
|
398 |
+
|
399 |
+
Profetizaban
|
400 |
+
|
401 |
+
La ciudad de los dioses era mas antigua segun historiadores
|
402 |
+
|
403 |
+
|
404 |
+
## Tartesos
|
405 |
+
|
406 |
+
Vasijas
|
407 |
+
|
408 |
+
Escritura
|
409 |
+
|
410 |
+
Monumentos
|
411 |
+
|
412 |
+
Textos iberos
|
413 |
+
|
414 |
+
Texto traducido como vasco antiguo de la mentira del bebe y la mujer
|
415 |
+
|
416 |
+
Referencias de otras culturas
|
417 |
+
|
418 |
+
La Doctora Hoyz
|
419 |
+
|
420 |
+
|
421 |
+
## Valle del indo
|
422 |
+
|
423 |
+
Culto hombre cabra como en egipto , grecia panos, pinturas rupestres
|
424 |
+
|
425 |
+
(imagen del hombre cabra)
|
426 |
+
|
427 |
+
Breve descripcion de la civilizacion del valle del indo y fotos de sus cosas
|
428 |
+
|
429 |
+
Manuscritos astronomicos mayas
|
430 |
+
|
431 |
+
Dibujo en el techo de la gran piramide con las constelaciones (esta en las golondrianas de tartesos y documentales de robert bouval)
|
432 |
+
|
433 |
+
## Manuscritos gnosticos , referente al dios cabeza de oso y de gato k se ven en el centro del disco d la piramide
|
434 |
+
|
435 |
+
Manuscrito de jhon explicacion
|
436 |
+
|
437 |
+
## TABLA DE LOS ANGELES / ASTROS / DIOSES
|
438 |
+
|
439 |
+
angels_by_zodiac_station = {
|
440 |
+
"Aries": ["sha'aphon", "behemoth", "bekemesheb/bekemekesheb", "qotzien"],
|
441 |
+
"Tauro": ["dierenavor", "heniethebol", "siemegedel", "morepheker"],
|
442 |
+
"Geminis": ["sheneron", "phelehedien", "volereked", "akeneseb"],
|
443 |
+
"Cancer": ["Qedoqoredi", "Qoheleren", "Phereshetial", "Memenial"],
|
444 |
+
"Leo": ["Bephopher", "Lieshebeker", "Shehenen", "shehelekek"],
|
445 |
+
"Virgo": ["Siemosial", "Sebodeh", "Siegel", "Teremothiteh"],
|
446 |
+
"Libra": ["A'ariegol", "Mereton", "Qa'aberi", "Legoshmelek"],
|
447 |
+
"Escorpio": ["Therepiethz", "Phetza'an", "Shemophethen", "Thokesed"],
|
448 |
+
"Sagitario": ["Aketen", "Kephron", "Oliphiel", "Yosel"],
|
449 |
+
"Capricornio": ["Ameni", "Bieker", "Depheri", "Menenial"],
|
450 |
+
"Acuario": ["Meta'am", "Theberien", "Shethoqoeh", "Danial"],
|
451 |
+
"Piscis": ["Sha'aphenen", "Aniesien", "Sethered", "Qohemehogov"]
|
452 |
+
}
|
453 |
+
|
454 |
+
# Tabla de los nombres de los ángeles por mes y estación
|
455 |
+
angels_by_month_station = {
|
456 |
+
"Nisan": ["Asegesenek", "Mesokenek", "Deriegemon", "Shethenovesenov"],
|
457 |
+
"Ayer": ["Phemetor", "Qotenebial", "Ma'agol", "Goberethial"],
|
458 |
+
"Sivan": ["Senediem", "Tzoveh", "Tziyer", "Qoseqomial"],
|
459 |
+
"Tamuz": ["Zemieda", "Phimheor", "A'aphierepheleh", "Ma'ava'aqobebov"],
|
460 |
+
"Ab": ["Kedoremot", "Hetheledemi", "Qonezerema'a", "Hehemekel"],
|
461 |
+
"Elul": ["Phelietepheter", "Thesedegeb", "Nephesa'ar", "Qomoval"],
|
462 |
+
"Thisri": ["Derek", "Mezeredeter", "Neqocheda", "Asepheres"],
|
463 |
+
"Marheshavan": ["Beqosh", "Pheladen", "Sherenar", "Kebod"],
|
464 |
+
"Kislev": ["Phelestos", "Kether", "Henek", "Phonetos Lobenos"],
|
465 |
+
"Tebeth": ["Naphenietz", "Sekeberiem", "Senekeros", "Bekerba'al"],
|
466 |
+
"Shevet": ["Pholekemon", "Qeronega", "Shelomieth", "Yavorer"],
|
467 |
+
"Adar": ["Koneled", "Ba'aren", "Sebiebekera'a", "Qoromeqore"]
|
468 |
+
}
|
469 |
+
|
470 |
+
# Tabla de los nombres de los ángeles por día y estación
|
471 |
+
angels_by_day_station = {
|
472 |
+
1: ["Phiegenochen", "Tenekien", "Kophethenien", "Makeleched"],
|
473 |
+
2: ["Tga'sher", "Menechethor", "Qoleneheren", "Shegedon"],
|
474 |
+
3: ["Sheriyachetz", "Qohebereneden", "Pherezen", "Hegelomoth"],
|
475 |
+
4: ["Pheniov Lavor", "Miyeshor", "Degiem", "Betheroqa"],
|
476 |
+
5: ["Kedemenor", "Avoreberien", "Qovephethem", "Bariebererov"],
|
477 |
+
6: ["Qola'azeran", "Deremthok", "Akethenor", "Arieh"]
|
478 |
+
}
|
479 |
+
|
480 |
+
# Tabla de los nombres de los ángeles por signo de luna
|
481 |
+
angels_by_moon_sign = {
|
482 |
+
"Leberenieth": ["shaitan", "therezien", "sheneremi", "Gabrial"],
|
483 |
+
"Seletheleb": ["Yieshieshieh", "Abererehon", "Sheheqonek", "Bal Menael"],
|
484 |
+
"Yieshegeron": ["Phelayiem", "Ketherenial", "Rebenial", ""],
|
485 |
+
"Sheherieph": ["Biyom", "Bieth", "Rothep", "Danial"]
|
486 |
+
}
|
487 |
+
|
488 |
+
# Tabla de los nombres de los ángeles que ministran la luna por signo zodiacal
|
489 |
+
moon_ministers_by_zodiac = {
|
490 |
+
"Aries": ["Zerem", "Behemi", "Pheloneh", "Qonosh"],
|
491 |
+
"Tauro": ["Deketon", "Mezekerien", "Thederenael", "Amiena"],
|
492 |
+
"Geminis": ["Shegeron", "Biehereron", "Yielebek", "Ashegerien"],
|
493 |
+
"Cancer": ["Mekerechiem", "Qoheder", "Keresivon", "Mehiemeten"],
|
494 |
+
"Leo": ["Letzoneber", "Shegeher", "A'avoqor", "Ayiethebien"],
|
495 |
+
"Virgo": ["A'anem Qenek", "Yiehedieh", "Kenedeni", "Shegeton"],
|
496 |
+
"Libra": ["Tzedequiel", "Sheqothiek", "Theshegekon", "Shecheqon"],
|
497 |
+
"Escorpio": ["Rehecho", "Menedeber", "Kotheben", "Bedod Besher"],
|
498 |
+
"Sagitario": ["Tzoqor", "Reberon", "Abenor", "Keniepena"],
|
499 |
+
"Capricornio": ["Meshegeriem", "Yieshieshieh", "Shebiebiek", "Shegerelovi"],
|
500 |
+
"Acuario": ["Maasheniem", "Aberedon", "Mesepher", "A'anethera"],
|
501 |
+
"Piscis": ["Sha'aphenen", "Aniesien", "Sethered", "Qohemehogov"]
|
502 |
+
}
|
503 |
+
|
504 |
+
# Tabla de los nombres de los ángeles por estación de la Tierra
|
505 |
+
angels_by_earth_station = {
|
506 |
+
1: ["Memegien", "Yibesheh", "Thebel", "Hezeh Dovem"],
|
507 |
+
2: ["Mechemed Lov", "Bel Ached", "Aseberon", "Qohelorek"],
|
508 |
+
3: ["Mazeniem", "Amoniem", "Amoniem", "Mepheni Shesher"],
|
509 |
+
4: ["Yihelederek", "Mephenial", "Mephenial", ""]
|
510 |
+
}
|
511 |
+
|
512 |
+
# Tabla de los nombres de los ángeles por estación de los Malechims
|
513 |
+
angels_by_malechim_station = {
|
514 |
+
1: ["Akeberon", "Amereneh", "Mazeniem", "Meneshor"],
|
515 |
+
2: ["Qoherok", "Aberiek", "Siegor", "Pheniemor"],
|
516 |
+
3: ["Aberieth", "Gezorophed", "Zerezor", "Themekor"],
|
517 |
+
4: ["Beriekoch", "Kephor", "Avor", ""]
|
518 |
+
}
|
519 |
+
|
520 |
+
|
521 |
+
"""
|
lib/spell.py
ADDED
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
angels_by_zodiac_station = {
|
3 |
+
"Aries": ["sha'aphon", "behemoth", "bekemesheb/bekemekesheb", "qotzien"],
|
4 |
+
"Tauro": ["dierenavor", "heniethebol", "siemegedel", "morepheker"],
|
5 |
+
"Geminis": ["sheneron", "phelehedien", "volereked", "akeneseb"],
|
6 |
+
"Cancer": ["Qedoqoredi", "Qoheleren", "Phereshetial", "Memenial"],
|
7 |
+
"Leo": ["Bephopher", "Lieshebeker", "Shehenen", "shehelekek"],
|
8 |
+
"Virgo": ["Siemosial", "Sebodeh", "Siegel", "Teremothiteh"],
|
9 |
+
"Libra": ["A'ariegol", "Mereton", "Qa'aberi", "Legoshmelek"],
|
10 |
+
"Escorpio": ["Therepiethz", "Phetza'an", "Shemophethen", "Thokesed"],
|
11 |
+
"Sagitario": ["Aketen", "Kephron", "Oliphiel", "Yosel"],
|
12 |
+
"Capricornio": ["Ameni", "Bieker", "Depheri", "Menenial"],
|
13 |
+
"Acuario": ["Meta'am", "Theberien", "Shethoqoeh", "Danial"],
|
14 |
+
"Piscis": ["Sha'aphenen", "Aniesien", "Sethered", "Qohemehogov"]
|
15 |
+
}
|
16 |
+
|
17 |
+
angels_by_month_station = {
|
18 |
+
"Nisan": ["Asegesenek", "Mesokenek", "Deriegemon", "Shethenovesenov"],
|
19 |
+
"Ayer": ["Phemetor", "Qotenebial", "Ma'agol", "Goberethial"],
|
20 |
+
"Sivan": ["Senediem", "Tzoveh", "Tziyer", "Qoseqomial"],
|
21 |
+
"Tamuz": ["Zemieda", "Phimheor", "A'aphierepheleh", "Ma'ava'aqobebov"],
|
22 |
+
"Ab": ["Kedoremot", "Hetheledemi", "Qonezerema'a", "Hehemekel"],
|
23 |
+
"Elul": ["Phelietepheter", "Thesedegeb", "Nephesa'ar", "Qomoval"],
|
24 |
+
"Thisri": ["Derek", "Mezeredeter", "Neqocheda", "Asepheres"],
|
25 |
+
"Marheshavan": ["Beqosh", "Pheladen", "Sherenar", "Kebod"],
|
26 |
+
"Kislev": ["Phelestos", "Kether", "Henek", "Phonetos Lobenos"],
|
27 |
+
"Tebeth": ["Naphenietz", "Sekeberiem", "Senekeros", "Bekerba'al"],
|
28 |
+
"Shevet": ["Pholekemon", "Qeronega", "Shelomieth", "Yavorer"],
|
29 |
+
"Adar": ["Koneled", "Ba'aren", "Sebiebekera'a", "Qoromeqore"]
|
30 |
+
}
|
31 |
+
|
32 |
+
angels_by_day_station = {
|
33 |
+
1: ["Phiegenochen", "Tenekien", "Kophethen", "Makeleched"],
|
34 |
+
2: ["Tga'sher", "Menechethor", "Qoleneheren", "Shegedon"],
|
35 |
+
3: ["Sheriyachetz", "Qohebereneden", "Pherezen", "Hegelomoth"],
|
36 |
+
4: ["Pheniov Lavor", "Miyeshor", "Degiem", "Betheroqa"],
|
37 |
+
5: ["Kedemenor", "Avoreberien", "Qovephethem", "Bariebererov"],
|
38 |
+
6: ["Qola'azeran", "Deremthok", "Akethenor", "Arieh"]
|
39 |
+
}
|
40 |
+
|
41 |
+
angels_by_moon_sign = {
|
42 |
+
"Leberenieth": ["shaitan", "therezien", "sheneremi", "Gabrial"],
|
43 |
+
"Seletheleb": ["Yieshieshieh", "Abererehon", "Sheheqonek", "Bal Menael"],
|
44 |
+
"Yieshegeron": ["Phelayiem", "Ketherenial", "Rebenial", ""],
|
45 |
+
"Sheherieph": ["Biyom", "Bieth", "Rothep", "Danial"]
|
46 |
+
}
|
47 |
+
|
48 |
+
moon_ministers_by_zodiac = {
|
49 |
+
"Aries": ["Zerem", "Behemi", "Pheloneh", "Qonosh"],
|
50 |
+
"Tauro": ["Deketon", "Mezekerien", "Thederenael", "Amiena"],
|
51 |
+
"Geminis": ["Shegeron", "Biehereron", "Yielebek", "Ashegerien"],
|
52 |
+
"Cancer": ["Mekerechiem", "Qoheder", "Keresivon", "Mehiemeten"],
|
53 |
+
"Leo": ["Letzoneber", "Shegeher", "A'avoqor", "Ayiethebien"],
|
54 |
+
"Virgo": ["A'anem Qenek", "Yiehedieh", "Kenedeni", "Shegeton"],
|
55 |
+
"Libra": ["Tzedequiel", "Sheqothiek", "Theshegekon", "Shecheqon"],
|
56 |
+
"Escorpio": ["Rehecho", "Menedeber", "Kotheben", "Bedod Besher"],
|
57 |
+
"Sagitario": ["Tzoqor", "Reberon", "Abenor", "Keniepena"],
|
58 |
+
"Capricornio": ["Meshegeriem", "Yieshieshieh", "Shebiebiek", "Shegerelovi"],
|
59 |
+
"Acuario": ["Maasheniem", "Aberedon", "Mesepher", "A'anethera"],
|
60 |
+
"Piscis": ["Sha'aphenen", "Aniesien", "Sethered", "Qohemehogov"]
|
61 |
+
}
|
62 |
+
|
63 |
+
angels_by_earth_station = {
|
64 |
+
1: ["Memegien", "Yibesheh", "Thebel", "Hezeh Dovem"],
|
65 |
+
2: ["Mechemed Lov", "Bel Ached", "Aseberon", "Qohelorek"],
|
66 |
+
3: ["Mazeniem", "Amoniem", "Amoniem", "Mepheni Shesher"],
|
67 |
+
4: ["Yihelederek", "Mephenial", "Mephenial", ""]
|
68 |
+
}
|
69 |
+
|
70 |
+
angels_by_malechim_station = {
|
71 |
+
1: ["Akeberon", "Amereneh", "Mazeniem", "Meneshor"],
|
72 |
+
2: ["Qoherok", "Aberiek", "Siegor", "Pheniemor"],
|
73 |
+
3: ["Aberieth", "Gezorophed", "Zerezor", "Themekor"],
|
74 |
+
4: ["Beriekoch", "Kephor", "Avor", ""]
|
75 |
+
}
|
76 |
+
|
77 |
+
|
78 |
+
|
79 |
+
|
80 |
+
class AngelSearch:
|
81 |
+
def __init__(self, angels_by_zodiac_station, angels_by_month_station, angels_by_day_station,
|
82 |
+
angels_by_moon_sign, moon_ministers_by_zodiac, angels_by_earth_station,
|
83 |
+
angels_by_malechim_station):
|
84 |
+
self.angels_by_zodiac_station = angels_by_zodiac_station
|
85 |
+
self.angels_by_month_station = angels_by_month_station
|
86 |
+
self.angels_by_day_station = angels_by_day_station
|
87 |
+
self.angels_by_moon_sign = angels_by_moon_sign
|
88 |
+
self.moon_ministers_by_zodiac = moon_ministers_by_zodiac
|
89 |
+
self.angels_by_earth_station = angels_by_earth_station
|
90 |
+
self.angels_by_malechim_station = angels_by_malechim_station
|
91 |
+
|
92 |
+
def search_patterns(self, pattern):
|
93 |
+
results = []
|
94 |
+
|
95 |
+
# Buscar en la tabla de nombres de ángeles por estación zodiacal
|
96 |
+
for zodiac, angels in self.angels_by_zodiac_station.items():
|
97 |
+
for angel in angels:
|
98 |
+
if pattern in angel:
|
99 |
+
results.append((zodiac, angel))
|
100 |
+
|
101 |
+
# Buscar en la tabla de nombres de ángeles por mes y estación
|
102 |
+
for month, angels in self.angels_by_month_station.items():
|
103 |
+
for angel in angels:
|
104 |
+
if pattern in angel:
|
105 |
+
results.append((month, angel))
|
106 |
+
|
107 |
+
# Buscar en la tabla de nombres de ángeles por día y estación
|
108 |
+
for day, angels in self.angels_by_day_station.items():
|
109 |
+
for angel in angels:
|
110 |
+
if pattern in angel:
|
111 |
+
results.append((day, angel))
|
112 |
+
|
113 |
+
# Buscar en la tabla de nombres de ángeles por signo de luna
|
114 |
+
for sign, angels in self.angels_by_moon_sign.items():
|
115 |
+
for angel in angels:
|
116 |
+
if pattern in angel:
|
117 |
+
results.append((sign, angel))
|
118 |
+
|
119 |
+
# Buscar en la tabla de nombres de ángeles que ministran la luna por signo zodiacal
|
120 |
+
for zodiac, angels in self.moon_ministers_by_zodiac.items():
|
121 |
+
for angel in angels:
|
122 |
+
if pattern in angel:
|
123 |
+
results.append((zodiac, angel))
|
124 |
+
|
125 |
+
# Buscar en la tabla de nombres de ángeles por estación de la Tierra
|
126 |
+
for station, angels in self.angels_by_earth_station.items():
|
127 |
+
for angel in angels:
|
128 |
+
if pattern in angel:
|
129 |
+
results.append((station, angel))
|
130 |
+
|
131 |
+
# Buscar en la tabla de nombres de ángeles por estación de los Malechims
|
132 |
+
for station, angels in self.angels_by_malechim_station.items():
|
133 |
+
for angel in angels:
|
134 |
+
if pattern in angel:
|
135 |
+
results.append((station, angel))
|
136 |
+
|
137 |
+
return results
|
138 |
+
|
139 |
+
if __name__ == "__main__":
|
140 |
+
# Tablas de nombres de ángeles
|
141 |
+
|
142 |
+
# Crear una instancia de AngelSearch
|
143 |
+
angel_search = AngelSearch(angels_by_zodiac_station, angels_by_month_station, angels_by_day_station,
|
144 |
+
angels_by_moon_sign, moon_ministers_by_zodiac, angels_by_earth_station,
|
145 |
+
angels_by_malechim_station)
|
146 |
+
|
147 |
+
# Buscar ángeles que contienen el patrón "Qo"
|
148 |
+
pattern = "Qo"
|
149 |
+
results = angel_search.search_patterns(pattern)
|
150 |
+
|
151 |
+
# Imprimir resultados de la búsqueda
|
152 |
+
print(f"Resultados de la búsqueda para el patrón '{pattern}':")
|
153 |
+
if results:
|
154 |
+
for result in results:
|
155 |
+
print(result)
|
156 |
+
else:
|
157 |
+
print("No se encontraron coincidencias para el patrón proporcionado.")
|
lib/temuraeh.py
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
# Implementemos la función de temurah con el alfabeto completo y probemos la conversión de "Baphomet" a "Sofia"
|
3 |
+
# en hebreo usando temurah.
|
4 |
+
# Nota: La representación exacta de "Baphomet" y "Sofia" en hebreo puede variar debido a interpretaciones,
|
5 |
+
# pero aquí usaremos transliteraciones aproximadas para ilustrar cómo podría hacerse.
|
6 |
+
|
7 |
+
def temurah(text, hebrew_alphabet='אבגדהוזחטיכלמנסעפצקרשת', reverse=True):
|
8 |
+
"""
|
9 |
+
Aplica la temurah a un texto hebreo utilizando todo el alfabeto hebreo.
|
10 |
+
El esquema de ejemplo simplemente invierte el orden del alfabeto.
|
11 |
+
"""
|
12 |
+
# Invertir el alfabeto si se solicita
|
13 |
+
if reverse:
|
14 |
+
hebrew_alphabet = hebrew_alphabet[::-1]
|
15 |
+
|
16 |
+
# Generar el alfabeto invertido
|
17 |
+
inverted_alphabet = hebrew_alphabet[::-1]
|
18 |
+
|
19 |
+
# Crear el diccionario de mapeo para temurah
|
20 |
+
temurah_mapping = {orig: inv for orig, inv in zip(hebrew_alphabet, inverted_alphabet)}
|
21 |
+
|
22 |
+
# Aplicar temurah al texto
|
23 |
+
temurah_text = ''.join(temurah_mapping.get(char, char) for char in text)
|
24 |
+
|
25 |
+
return temurah_text
|
26 |
+
|
27 |
+
# Definir el alfabeto hebreo
|
28 |
+
hebrew_alphabet = 'אבגדהוזחטיכלמנסעפצקרשת'
|
29 |
+
|
30 |
+
latin_alphabet = 'abcdefghijklmnopqrstuvwxyz'
|
31 |
+
|
32 |
+
|
33 |
+
def temura_conv(txt,lang):
|
34 |
+
if lang=="Hebrew":
|
35 |
+
alphabet = hebrew_alphabet
|
36 |
+
elif lang=="Latin":
|
37 |
+
alphabet= latin_alphabet
|
38 |
+
else:
|
39 |
+
alphabet=latin_alphabet
|
40 |
+
|
41 |
+
res = temurah(txt,alphabet)
|
42 |
+
|
43 |
+
# Aplicar temurah al texto hipotético de "Baphomet"
|
44 |
+
return res
|
45 |
+
|
lib/torah.py
ADDED
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from deep_translator import GoogleTranslator
|
2 |
+
import torahcodes.resources.func.utils as util
|
3 |
+
from hebrew_numbers import gematria_to_int
|
4 |
+
from textblob import TextBlob
|
5 |
+
from os import listdir
|
6 |
+
from os.path import isfile, join
|
7 |
+
import re
|
8 |
+
import time
|
9 |
+
import random
|
10 |
+
import os
|
11 |
+
import json
|
12 |
+
|
13 |
+
BLUE, RED, WHITE, YELLOW, MAGENTA, GREEN, END = '\33[1;94m', '\033[1;91m', '\33[1;97m', '\33[1;93m', '\033[1;35m', '\033[1;32m', '\033[0m'
|
14 |
+
ORANGE = '\033[1;33m' # orange
|
15 |
+
|
16 |
+
|
17 |
+
data_dir = "resources/texts"
|
18 |
+
|
19 |
+
class BibleBooks():
|
20 |
+
def __init__(self):
|
21 |
+
self.folder = data_dir
|
22 |
+
self.book = {}
|
23 |
+
def load(self):
|
24 |
+
|
25 |
+
for f in listdir(self.folder):
|
26 |
+
print(f)
|
27 |
+
if isfile(join(self.folder, f)) and f.endswith(".json"):
|
28 |
+
fn = f.split('.')
|
29 |
+
#print('Load', fn[0])
|
30 |
+
with open(self.folder+f, encoding="utf-8-sig") as File:
|
31 |
+
self.book[fn[0]] = File.read()
|
32 |
+
|
33 |
+
def rawdata(self, bookname):
|
34 |
+
return self.book[bookname]
|
35 |
+
|
36 |
+
def booklist(self):
|
37 |
+
return list(self.book.keys())
|
38 |
+
|
39 |
+
books = BibleBooks()
|
40 |
+
|
41 |
+
class Torah():
|
42 |
+
def __init__(self):
|
43 |
+
self.book = ''
|
44 |
+
self.gcode = {
|
45 |
+
'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 600,
|
46 |
+
'k': 10, 'l': 20, 'm': 30, 'n': 40, 'o': 50, 'p': 60, 'q': 70, 'r': 80, 's': 90,
|
47 |
+
't': 100, 'u': 200, 'v': 700, 'w': 900, 'x': 300, 'y': 400, 'z': 500
|
48 |
+
}
|
49 |
+
|
50 |
+
def loadbooks(self):
|
51 |
+
books.load()
|
52 |
+
|
53 |
+
def func_getnumber(self, listL, listW):
|
54 |
+
return util.fn_GetNumberValues(listL, listW)
|
55 |
+
|
56 |
+
def func_checklang(self, word, lang):
|
57 |
+
b = TextBlob(word)
|
58 |
+
|
59 |
+
try:
|
60 |
+
b.detect_language()
|
61 |
+
if (b.detect_language() == lang):
|
62 |
+
return True
|
63 |
+
except:
|
64 |
+
return True
|
65 |
+
return False
|
66 |
+
|
67 |
+
def numtobook(self, number):
|
68 |
+
for x in books.booklist():
|
69 |
+
xt = re.findall("[-+]?[.]?[\d]+(?:,\d\d\d)*[\.]?\d*(?:[eE][-+]?\d+)?", x)
|
70 |
+
if xt[0] == str(number):
|
71 |
+
return x
|
72 |
+
|
73 |
+
def func_translate(self, lang_in, lang_out, data):
|
74 |
+
translated = GoogleTranslator(source=lang_in, target=lang_out).translate(data.strip())
|
75 |
+
return translated
|
76 |
+
|
77 |
+
def gematria(self, word: str) -> int:
|
78 |
+
try:
|
79 |
+
if word.isdigit():
|
80 |
+
return int(word)
|
81 |
+
|
82 |
+
# Aufteilen des Wortes in Buchstaben und Zahlen
|
83 |
+
letters = [char for char in word if char.isalpha()]
|
84 |
+
numbers = [int(char) for char in word if char.isdigit()]
|
85 |
+
|
86 |
+
# Berechnen des Gematria-Werts für die Buchstaben
|
87 |
+
letters_value = sum([self.gcode[char] for char in letters if char in self.gcode])
|
88 |
+
|
89 |
+
|
90 |
+
# Hinzufügen der Summe der Zahlen zum Gematria-Wert der Buchstaben
|
91 |
+
total_value = letters_value + sum(numbers)
|
92 |
+
|
93 |
+
return total_value
|
94 |
+
except:
|
95 |
+
print(word)
|
96 |
+
raise ValueError
|
97 |
+
|
98 |
+
|
99 |
+
def gematrix(self, phrase: str) -> int:
|
100 |
+
phrase = self.strip_accents(phrase.lower())
|
101 |
+
phrase = ''.join([i for i in phrase if i.isalpha() or i.isdigit() or i.isspace()])
|
102 |
+
|
103 |
+
# Aufteilen der Eingabe in separate Wörter und Zahlen
|
104 |
+
elements = phrase.split()
|
105 |
+
total_value = 0
|
106 |
+
|
107 |
+
for element in elements:
|
108 |
+
if element.isalpha():
|
109 |
+
# Berechne den Wert für Buchstaben
|
110 |
+
total_value += sum([self.gcode[char] for char in element if char in self.gcode])
|
111 |
+
elif element.isdigit():
|
112 |
+
# Addiere Zahlen direkt zum Gesamtwert
|
113 |
+
total_value += int(element)
|
114 |
+
|
115 |
+
return total_value
|
116 |
+
|
117 |
+
|
118 |
+
|
119 |
+
|
120 |
+
|
121 |
+
|
122 |
+
def strip_accents(self, s):
|
123 |
+
try:
|
124 |
+
return ''.join(
|
125 |
+
c for c in unicodedata.normalize('NFD', s)
|
126 |
+
if unicodedata.category(c) != 'Mn'
|
127 |
+
)
|
128 |
+
except:
|
129 |
+
return s
|
130 |
+
|
131 |
+
|
132 |
+
def gematria_iw_int(text):
|
133 |
+
return gematria_to_int(text)
|
134 |
+
|
135 |
+
|
136 |
+
def func_ParseTranslation(self, translated, lang, active):
|
137 |
+
abd = 'abcdefghijklmnñopqrstuvwxyz1234567890'
|
138 |
+
str_split = translated.split(' ')
|
139 |
+
str_final = ''
|
140 |
+
for word in str_split:
|
141 |
+
try:
|
142 |
+
if word[0].lower() in abd:
|
143 |
+
if active == 'true':
|
144 |
+
if self.func_checklang(word, lang) == True:
|
145 |
+
str_final = str_final+ word+' '
|
146 |
+
else:
|
147 |
+
str_final = str_final+ word+' '
|
148 |
+
except:
|
149 |
+
pass
|
150 |
+
|
151 |
+
if not str_final == '':
|
152 |
+
return str_final
|
153 |
+
else:
|
154 |
+
return 0
|
155 |
+
def els(self, namebook, number, tracert='false', visualice=False):
|
156 |
+
space = number
|
157 |
+
abd = 'abcdefghijklmnñopqrstuvwxyz'
|
158 |
+
i=1
|
159 |
+
rese=""
|
160 |
+
totalvalue = 0
|
161 |
+
D = self.GetDataBook(namebook)
|
162 |
+
for (z,b,y) in D:
|
163 |
+
try:
|
164 |
+
charnum = 0
|
165 |
+
res=""
|
166 |
+
|
167 |
+
for char in D[z,b,y]:
|
168 |
+
charnum = charnum+1
|
169 |
+
if (i % int(space)) == 0:
|
170 |
+
if tracert == 'true':
|
171 |
+
totalvalue = totalvalue + int(charnum)
|
172 |
+
print('Source:',int(z),'chapter:', int(b),'Verse:', int(y),'CharNum:',int(charnum),'Char:', char)
|
173 |
+
|
174 |
+
res=res+char
|
175 |
+
|
176 |
+
i=i+1
|
177 |
+
rese=rese+" "+res
|
178 |
+
except:
|
179 |
+
pass
|
180 |
+
#print('Total', totalvalue)
|
181 |
+
ret = re.sub('\s+', ' ', rese.strip())
|
182 |
+
return ret, totalvalue
|
183 |
+
|
184 |
+
def GetDataBook(self, bibleNumberBook):
|
185 |
+
|
186 |
+
|
187 |
+
JSON = books.rawdata(bibleNumberBook)
|
188 |
+
ListOfJSONStringsParsed, ListOfJSONStringsParsedWithSpaces = util.fn_TextFilePreprocess(JSON)
|
189 |
+
ListOfDictsOfJSONStringsParsed, ListOfDictsOfJSONStringsParsedWithSpaces = util.fn_ConvertJSONStringsToDicts(ListOfJSONStringsParsed, ListOfJSONStringsParsedWithSpaces)
|
190 |
+
SearchTextChosen = util.fn_GetNumberOfTextChosen(ListOfDictsOfJSONStringsParsed)
|
191 |
+
ZippedTupleNoSpaces, ZippedTupleWithSpaces = util.fn_ZippedTupleCreate(ListOfDictsOfJSONStringsParsed, ListOfDictsOfJSONStringsParsedWithSpaces, SearchTextChosen)
|
192 |
+
D, DS = util.fn_DictionaryOfVersesCreate(ZippedTupleNoSpaces, ZippedTupleWithSpaces)
|
193 |
+
S, L, DL, D5, ListOfWords = util.fn_DataObjectsCreate(D, DS)
|
194 |
+
N, NW = util.fn_GetNumberValues(S, ListOfWords)
|
195 |
+
ListOfIndexesCustom = util.fn_ListOfIndexesCustomCreate(D5)
|
196 |
+
W = util.fn_TupleOfWordsAndGematriaValuesCreate(ListOfWords, NW)
|
197 |
+
|
198 |
+
return D
|
199 |
+
|
200 |
+
|
201 |
+
def process_json_files(start, end, step, length=0, tlang="en", spaces_include=False, strip_in_braces=True, strip_diacritics=True):
|
202 |
+
base_path = "resources/texts"
|
203 |
+
translator = GoogleTranslator(source='auto', target=tlang)
|
204 |
+
results = []
|
205 |
+
|
206 |
+
for i in range(start, end + 1):
|
207 |
+
file_name = f"{base_path}/{i:02}.json"
|
208 |
+
try:
|
209 |
+
with open(file_name, 'r', encoding='utf-8') as file:
|
210 |
+
data = json.load(file)
|
211 |
+
text_blocks = data["text"]
|
212 |
+
|
213 |
+
full_text = ""
|
214 |
+
for block in text_blocks:
|
215 |
+
full_text += ' '.join(block)
|
216 |
+
|
217 |
+
clean_text = full_text
|
218 |
+
if strip_in_braces:
|
219 |
+
clean_text = re.sub(r"\[.*?\]", "", clean_text, flags=re.DOTALL)
|
220 |
+
if strip_diacritics:
|
221 |
+
clean_text = re.sub(r"[^\u05D0-\u05EA ]+", "", clean_text)
|
222 |
+
if not spaces_include:
|
223 |
+
clean_text = clean_text.replace(" ", "")
|
224 |
+
|
225 |
+
if length != 0:
|
226 |
+
selected_characters = clean_text[step - 1::step][:length]
|
227 |
+
else:
|
228 |
+
selected_characters = clean_text[step - 1::step] # If length is 0, select all characters from step
|
229 |
+
|
230 |
+
translated_text = translator.translate(''.join(selected_characters))
|
231 |
+
if selected_characters != "":
|
232 |
+
results.append({
|
233 |
+
"book": i,
|
234 |
+
"title": data["title"],
|
235 |
+
"original_text": selected_characters,
|
236 |
+
"translated_text": translated_text
|
237 |
+
})
|
238 |
+
|
239 |
+
except FileNotFoundError:
|
240 |
+
results.append({"error": f"File {file_name} not found."})
|
241 |
+
except json.JSONDecodeError:
|
242 |
+
results.append({"error": f"File {file_name} could not be read as JSON."})
|
243 |
+
except KeyError:
|
244 |
+
results.append({"error": f"Expected key 'text' is missing in {file_name}."})
|
245 |
+
|
246 |
+
return results
|
lib/triggers.py
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import datetime
|
2 |
+
import requests
|
3 |
+
|
4 |
+
class Trigger:
|
5 |
+
def __init__(self, trigger_tags, comparison_tags, time_definition, event_name, included=True):
|
6 |
+
self.trigger_tags = set(trigger_tags)
|
7 |
+
self.comparison_tags = set(comparison_tags)
|
8 |
+
self.time_definition = time_definition
|
9 |
+
self.event_name = event_name
|
10 |
+
self.included = included
|
11 |
+
self.threshold = 0
|
12 |
+
self.actions = []
|
13 |
+
self.sources = []
|
14 |
+
|
15 |
+
def add_action(self, action):
|
16 |
+
self.actions.append(action)
|
17 |
+
|
18 |
+
def remove_action(self, action):
|
19 |
+
if action in self.actions:
|
20 |
+
self.actions.remove(action)
|
21 |
+
else:
|
22 |
+
print("Action not found")
|
23 |
+
|
24 |
+
def add_source(self, source):
|
25 |
+
self.sources.append(source)
|
26 |
+
|
27 |
+
def remove_source(self, source):
|
28 |
+
if source in self.sources:
|
29 |
+
self.sources.remove(source)
|
30 |
+
else:
|
31 |
+
print("Source not found")
|
32 |
+
|
33 |
+
def check_trigger(self, current_tags, current_time):
|
34 |
+
if self.included:
|
35 |
+
if current_time in self.time_definition and self.trigger_tags.issubset(current_tags):
|
36 |
+
self.threshold += 1
|
37 |
+
else:
|
38 |
+
self.threshold = 0
|
39 |
+
else:
|
40 |
+
if current_time in self.time_definition and not self.trigger_tags.intersection(current_tags):
|
41 |
+
self.threshold += 1
|
42 |
+
else:
|
43 |
+
self.threshold = 0
|
44 |
+
|
45 |
+
if self.threshold >= len(self.time_definition):
|
46 |
+
self.fire_actions()
|
47 |
+
self.make_requests()
|
48 |
+
|
49 |
+
def fire_actions(self):
|
50 |
+
for action in self.actions:
|
51 |
+
action(self.event_name)
|
52 |
+
|
53 |
+
def make_requests(self):
|
54 |
+
for source in self.sources:
|
55 |
+
try:
|
56 |
+
response = requests.get(source)
|
57 |
+
# Procesar la respuesta aquí si es necesario
|
58 |
+
print(f"Request made to {source}. Status code: {response.status_code}")
|
59 |
+
except requests.exceptions.RequestException as e:
|
60 |
+
print(f"Error making request to {source}: {e}")
|
61 |
+
|
62 |
+
# Ejemplo de uso:
|
63 |
+
|
64 |
+
def action_function(event_name):
|
65 |
+
print(f"Trigger fired for event: {event_name}")
|
66 |
+
|
67 |
+
|
68 |
+
if __name__ == "__main__":
|
69 |
+
|
70 |
+
# Definición de un trigger
|
71 |
+
trigger = Trigger(["tag1", "tag2"], ["tag3", "tag4"], [datetime.time(10, 0), datetime.time(15, 0)], "Event1")
|
72 |
+
|
73 |
+
# Añadir una acción al trigger
|
74 |
+
trigger.add_action(action_function)
|
75 |
+
|
76 |
+
# Añadir una fuente al trigger
|
77 |
+
trigger.add_source("https://example.com/api/data")
|
78 |
+
|
79 |
+
# Simular la comprobación periódica del trigger (aquí se usaría en un bucle de tiempo real)
|
80 |
+
current_tags = {"tag1", "tag2", "tag3"}
|
81 |
+
current_time = datetime.datetime.now().time()
|
82 |
+
trigger.check_trigger(current_tags, current_time)
|
lib/ziruph.py
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
|
3 |
+
|
4 |
+
# Define the substitution key
|
5 |
+
key = "C X Y B W P R V Q J Z M N T K E L D F G H I O U S"
|
6 |
+
|
7 |
+
# Define the plaintext and ciphertext functions
|
8 |
+
def encrypt(message,dic):
|
9 |
+
ciphertext = ""
|
10 |
+
for char in message:
|
11 |
+
if char.isalpha():
|
12 |
+
# Check if char is uppercase or lowercase
|
13 |
+
if char.isupper():
|
14 |
+
# Convert to lowercase and encrypt using key
|
15 |
+
encrypted = key[ord(char) - ord("A")].lower()
|
16 |
+
else:
|
17 |
+
# Convert to uppercase and encrypt using key
|
18 |
+
encrypted = key[ord(char) - ord("a")].upper()
|
19 |
+
ciphertext += encrypted
|
20 |
+
return ciphertext
|
21 |
+
|
22 |
+
def decrypt(message,dic):
|
23 |
+
plaintext = ""
|
24 |
+
for char in message:
|
25 |
+
if char.isalpha():
|
26 |
+
# Check if char is uppercase or lowercase
|
27 |
+
if char.isupper():
|
28 |
+
# Convert to lowercase and decrypt using inverse key
|
29 |
+
decrypted = key[25 - key.index(char.lower())].upper()
|
30 |
+
else:
|
31 |
+
# Convert to uppercase and decrypt using inverse key
|
32 |
+
decrypted = key[25 - key.index(char)].lower()
|
33 |
+
plaintext += decrypted
|
34 |
+
return plaintext
|
35 |
+
|
36 |
+
|
resources/Pleyades
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Subproject commit 7897127f64a0f9646a7ebbe101bbeeeba5ccf946
|