def write(self, fname): info, self.data = self.dictFromSqlite() self._status = "Writing to output file..." g = Glossary() g.data = self.data g.setInfo("bookname", info["bookname"].encode("utf-8")) g.write(fname)
def export(self): fname = os.path.join(self.output_directory, "stardict.ifo") with sqlite3.connect(self.output_db) as conn: c = conn.cursor() info = {} data = [] for row in c.execute('''SELECT key,value FROM info''').fetchall(): info[row[0]] = row[1] c.execute('''SELECT word,def,id FROM dict''') rows = c.fetchall() no = len(rows) syns = c.execute('''SELECT syn,wid FROM synonyms''').fetchall() syn_list = {x[2]: [] for x in rows} [syn_list[syn[1]].append(syn[0]) for syn in syns] if "sametypesequence" in info: defiFormat = info["sametypesequence"] else: defiFormat = "h" g = Glossary() for i, row in enumerate(rows): self._status = "Reading from db entry %d of %d..." % (i, no) g.addEntry([row[0]] + syn_list[row[2]], row[1], defiFormat=defiFormat) self._status = "Writing to output file..." g.setInfo("bookname", info["bookname"]) g.write(fname, "Stardict")
from pyglossary.glossary import Glossary Glossary.init() glos = Glossary() defiFormat = "m" # "m" for plain text, "h" for HTML mydict = { "a": "test1", "b": "test2", "c": "test3", "d": "test4", "e": "test5", "f": "test6", } for word, defi in mydict.items(): glos.addEntryObj(glos.newEntry(word, defi, defiFormat=defiFormat)) glos.setInfo("title", "My Test StarDict") glos.setInfo("author", "John Doe") glos.write("test.ifo", format="Stardict")