def stats(self, c, a): dictOT = self.booksDictOT() dictAT = self.booksDictNT() try: book_id = dictOT[a[0]] except: try: book_id = dictAT[a[0]] except: result = Result() result.error = "FEHLER: bitte Buch angeben!" return result try: chapter = a[1] except: result = Result() result.error = "FEHLER: bitte Kapitel angeben!" return result query_head = "SELECT book_string, chapter, verse, stats_verse, total_v, total_k, total_b, sum_v, sum_k, sum_b FROM stats NATURAL JOIN structure " if len(a) == 2: query_tail = "WHERE book_id=? AND chapter=?" values = book_id, chapter elif len(a) == 3: if a[2].find("-") > -1: start_verse, end_verse = a[2].split("-") query_tail = "WHERE book_id=? AND chapter=? AND verse>=? AND verse<=?" values = book_id, chapter, start_verse, end_verse else: query_tail = "WHERE book_id=? AND chapter=? AND verse=?" verse = a[2] values = book_id, chapter, verse query = query_head + query_tail self.initDbConnection() self.cursor.execute(query, values) result = self.cursor.fetchall() head = "buch", "kapitel", "vers", "stats_verse", "total_v", "total_k", "total_b", "sum_v", "sum_k", "sum_b" metaLang = "de", "de", "de", "de", "de", "de", "de", "de", "de", "de" name = "stats" result_object = Result() result_object.category = "table" result_object.header = head result_object.payload = result result_object.metaload = metaLang result_object.name = name return result_object
def searchBookRange(self, command, start_book, end_book, search_pattern): book_list = self.getBookList() try: book_start_index = book_list.index(start_book) except: result = Result() result.error = "FEHLER: Buch " + unicode( start_book) + " konnte nicht gefunden werden!" return result try: book_end_index = book_list.index(end_book) except: result = Result() result.error = "FEHLER: Buch " + unicode( end_book) + " konnte nicht gefunden werden!" return result result_list = [] i = book_start_index - 1 while i < book_end_index: i += 1 search_book = book_list[i] result, head, metaLanguage = self.searchSingleBook( command, search_book, search_pattern, False) result_list.append(result) format_list = [] for item in result_list: for item2 in item: format_list.append(item2) name = "search result: " + search_pattern result_object = Result() result_object.category = "table" result_object.header = head result_object.payload = format_list result_object.metaload = metaLanguage result_object.name = name return result_object
def searchGlobal(self, c, head, metaLanguage, query_head, query_mid, query_tail, search_pattern, result_in_table): if query_tail: query = query_head + query_mid + "?" + query_tail else: query = query_head + query_mid + "?" #print(query, result_in_table) if c == "bituza.search.elberfelder": value = ["%" + str(search_pattern) + "%"] elif c == "bituza.search.unicode": value = ["%" + str(search_pattern) + "%"] else: value = [str(search_pattern)] self.initDbConnection() self.cursor.execute(query, value) result = self.cursor.fetchall() #print(result) if len(result) == 0: if result_in_table: result = Result() result.error = "FEHLER: keine Ergebnisse gefunden!" return result else: return [] else: if result_in_table: name = "suchergebnis: " + search_pattern result_object = Result() result_object.category = "table" result_object.header = head result_object.payload = result result_object.metaload = metaLanguage result_object.name = name return result_object else: return (result)
def word(self, c, a): #query_head = "SELECT book_string, chapter, verse, unicode, translation_de, transcription, tw, code, wv, wk, wb, abk, abb, abv, anz_b FROM word NATURAL JOIN structure WHERE book_id=? AND chapter=?" #head = "buch", "kapitel", "vers", "unicode", "elberfelder", "transcription", "tw", "code", "wv", "wk", "wb", "abk", "abb", "abv", "anz_b" query_head = "SELECT unicode, translation_de, transcription FROM word NATURAL JOIN structure WHERE book_id=? AND chapter=?" head = "unicode", "elberfelder", "transcription" dictOT = self.booksDictOT() dictNT = self.booksDictNT() testament = None try: book_id = dictOT[a[0]] except: try: book_id = dictNT[a[0]] except: result = Result() result.error = "FEHLER: bitte Buch angeben!" return result else: testament = "NEW" metaLanguage = "de", "de", "de", "gr", "de", "de", "de", "de", "de", "de", "de", "de", "de", "de", "de" else: testament = "OLD" metaLanguage = "de", "de", "de", "il", "de", "de", "de", "de", "de", "de", "de", "de", "de", "de", "de" if len(a) == 2: query = query_head if a[1].isdigit(): values = book_id, a[1] else: result = Result() result.error = "FEHLER: bitte Kapitel als Zahl angeben!" return result elif len(a) == 3: query = query_head + " AND verse=?" if a[1].isdigit(): if a[2].isdigit(): values = book_id, a[1], a[2] else: try: first, last = a[2].split("-") except ValueError: result_object = Result() result_object.error = 'invalid input' return result_object query = query_head + " AND verse>=? AND verse<=?" values = book_id, a[1], first, last else: result_object = Result() result_object.error = "FEHLER: bitte Kapitel als Zahl angeben!" return result_object else: result_object = Result() result_object.error = "FEHLER: bitte Kapitel als Zahl angeben!" return result_object self.initDbConnection() self.cursor.execute(query, values) result = self.cursor.fetchall() if len(result) == 0: result_object = Result() result_object.error = "FEHLER: diese Stelle existiert nicht!" return result else: name = ["tabelle: "] for i in range(len(a)): name.append(a[i]) name = " ".join(name) result_object = Result() result_object.category = "table" result_object.payload = result result_object.metaload = metaLanguage result_object.header = head result_object.name = name return result_object