sane file structure

This commit is contained in:
2023-01-14 01:21:05 -08:00
parent 8c8cc7b6b5
commit 56d24a9ff9
10 changed files with 11 additions and 44 deletions
+11 -44
View File
@@ -10,12 +10,7 @@ DEBUG = 0
"""
To-do:
- Add data and function for Webster 1828 dictionary lookup
--https://github.com/DataWar/1828-dictionary
--https://github.com/mnjrupp/Android_SQLite_Dictionary_1828
--https://github.com/gapmiss/kingdom-study-tools-for-obsidian/tree/main/dictionary/
- Add data and function for Thesaurus to implement fuzzy search
--https://github.com/zaibacu/thesaurus
Styles
"""
def dbg(message):
@@ -29,8 +24,8 @@ def dbg2(message):
dbg("Debug Level 1 Enabled")
dbg2("Debug Level 2 Enabled")
dictionary_json = "1828_Webster_KJV.json"
kjv_cur = sqlite3.connect("kjv.db").cursor()
dictionary_json = "data/1828_Webster_KJV.json"
kjv_cur = sqlite3.connect("data/kjv.db").cursor()
verse_ids = [i[0] for i in kjv_cur.execute("SELECT id FROM fts_kjv;").fetchall()]
book_names = [i[0] for i in kjv_cur.execute("SELECT n FROM key_english").fetchall()]
@@ -165,7 +160,7 @@ def define():
dictionary = json.load(data)
ref = ref.lower()
if not ref in dictionary.keys():
h = hunspell.HunSpell("kjv.dic","kjv.aff")
h = hunspell.HunSpell("data/kjv.dic","data/kjv.aff")
suggestions = h.suggest(ref)
return "{} not found, try one of the following: {}".format(ref, ', '.join(suggestions))
arg_view = request.args.get("view", None)
@@ -175,7 +170,6 @@ def define():
response = return_dict_rich(ref, dictionary[ref])
else:
response = jsonify({ref:dictionary[ref]})
return response
def return_dict_plain(ref, defs):
@@ -185,13 +179,11 @@ def return_dict_plain(ref, defs):
return ref.capitalize() + "<br><br>" + response
def return_dict_rich(ref, defs):
css = open('human_readable.css', 'r')
response_html = open('response.html', 'r')
css = open('styles/human_readable.css', 'r')
response_html = open('html/response.html', 'r')
response = ''
for e in defs:
response += e + "<br><br>"
return (response_html.read().format(passage = ref.capitalize(), text = response) + css.read())
@app.get("/show")
@@ -206,13 +198,11 @@ def show():
refs = ref.split(',')
for ref in refs:
dbg("show.reference({})".format(ref))
maybe_chapter = ref.split(':')[0][3:]
ref_chapter = ''
for maybedigit in maybe_chapter:
if maybedigit.isdigit():
ref_chapter += maybedigit
ref_verse = ref.split(':')[1]
if ref.__contains__('-'):
if ref.endswith('-'):
@@ -224,33 +214,26 @@ def show():
start_verse = ref_verse
end_verse = None
end_verse_id = None
book_str = ref_input_cleaning(ref, string.ascii_letters)
ref_bookname = ref_parse_book(book_str)
ref_book_id = lookup_book_id(ref_bookname)
if not ref_book_id:
return("Book reference invalid. Ex: 1John3:16")
start_verse_id = get_verse_id(ref_book_id, ref_chapter, start_verse)
if end_verse:
end_verse_id = get_verse_id(ref_book_id, ref_chapter, end_verse)
dbg2("show.start_verse_id({})".format(start_verse_id))
dbg2("show.end_verse_id({})".format(end_verse_id))
results = lookup_by_verse_id(start_verse_id, end_verse_id)
dbg2("show.results({})".format(results))
for result in results:
verse_results.append(result)
response_list = response_multi(verse_results)
arg_view = request.args.get("view", None)
if arg_view == "plain" or arg_view == "rich":
response = "<br>".join(response_list)
else:
response = jsonify(response_list)
return response
@@ -272,17 +255,14 @@ def response_text(scripture):
return (bookname + " " + chapter + ":" + verse + " " + text)
def response_rich(scripture):
css = open('human_readable.css', 'r')
response_html = open('response.html', 'r')
css = open('styles/human_readable.css', 'r')
response_html = open('html/response.html', 'r')
# (passage, text) is the html formatting arguments
bookname = lookup_bookname(scripture[idx_book])
chapter = str(scripture[idx_chapter])
verse = str(scripture[idx_verse])
text = str(scripture[idx_text])
passage = (bookname + " " + chapter + ":" + verse)
return (response_html.read().format(passage = passage, text = text) + css.read())
def response_single(scripture):
@@ -302,7 +282,6 @@ def response_multi(scriptures):
response = []
arg_view = request.args.get("view", 'json')
dbg("search ->requested_format = {}".format(arg_view))
if arg_view == "plain":
for scripture in scriptures:
response.append(response_text(scripture))
@@ -312,16 +291,8 @@ def response_multi(scriptures):
else:
for scripture in scriptures:
response.append(response_dict(scripture))
return(response)
def thesarus(word):
return word
def dictionary(word):
return word
@app.errorhandler(404)
def page_not_found(e):
message = {"error": "You're lost! Isaiah 41:10 - Fear thou not; for I am with thee: be not dismayed; for I am thy God: I will strengthen thee; yea, I will help thee; yea, I will uphold thee with the right hand of my righteousness."}
@@ -329,11 +300,11 @@ def page_not_found(e):
@app.get("/")
def idx():
return send_file("index.html")
return send_file("html/index.html")
@app.get("/salvation")
def salvation():
return send_file("heaven.html")
return send_file("html/heaven.html")
#backwards-compatibility
@app.get('/t/random', defaults={'view':'plain'})
@@ -363,20 +334,16 @@ def search():
return send_file("html/search.html")
else:
return send_file("html/search.html")
results = lookup_fts(cleaned_keywords)
if not results:
h = hunspell.HunSpell("kjv.dic","kjv.aff")
h = hunspell.HunSpell("data/kjv.dic","data/kjv.aff")
suggestions = h.suggest(cleaned_keywords)
return "{} not found, try one of the following: {}".format(cleaned_keywords, ', '.join(suggestions))
response_list = response_multi(results)
arg_view = request.args.get("view", None)
if arg_view == "plain" or arg_view == "rich":
response = "<br>".join(response_list)
else:
response = jsonify(response_list)
dbg2("Search Response: {}".format(response))
return response
View File
View File
View File
View File
View File