neuralworm commited on
Commit
310d6f7
1 Parent(s): 3459978

Delete lib/torah.py

Browse files

lib.torah is already in torahbiblecodespython module

Files changed (1) hide show
  1. lib/torah.py +0 -246
lib/torah.py DELETED
@@ -1,246 +0,0 @@
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