Example #1
0
    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
Example #2
0
    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
Example #3
0
    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)
Example #4
0
    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