def main(): from sqlalchemy import create_engine from noj import init_db from noj.model.profiles import ProfileManager from noj.tools.check_platform import isWin, isMac pm = ProfileManager() #engine = create_engine('sqlite:///../../test.sqlite', echo=False) engine = create_engine(pm.database_connect_string(), echo=False) init_db(engine) if isWin: collection_path = 'C:\Users\Mathew\Documents\Anki\User 1\collection.anki2' else: collection_path = '/Users/mathew/Documents/Anki/User 1/collection.anki2' import progressbar as pb widgets = ['Importing: ', pb.Percentage(), ' ', pb.Bar(), ' ', pb.Timer(), ' '] session = Session() # importer = AnkiWalker(collection_path, 'Japanese', # expression_field='Expression', meaning_field='Meaning') importer = AnkiWalker(collection_path, 'Core 2000 Japanese Vocabulary', expression_field='Sentence - Kanji', meaning_field='Sentence - English', sound_field='Sentence - Audio') parser = JapaneseParser() visitor = create_anki_sync_visitor(session, parser, pm) print importer._get_media_folder_path() pbar = pb.ProgressBar(widgets=widgets, maxval=len(importer)).start() for i in importer.import_generator(visitor): pbar.update(i) session.commit() session.close() pbar.finish()
def main(): from sqlalchemy import create_engine from noj import init_db engine = create_engine('sqlite:///../../test.sqlite', echo=False) init_db(engine) schema_path = '../../schemas/dictionary_schema_1.0.0a.xsd' # importable_path = '../converters/daijirin2/daijirin2_importable.xml' #importable_path = '../converters/jmdict/jmdict-importable.xml' importable_path = sys.argv[1] # importable_path = '../../schemas/example_dictionary_1.0.0a.xml' import progressbar as pb widgets = ['Importing: ', pb.Percentage(), ' ', pb.Bar(), ' ', pb.Timer(), ' '] session = Session() importer = DictionaryWalker(importable_path) parser = JapaneseParser() visitor = DictionaryImporterVisitor(session, parser) importer.validate_schema(schema_path) pbar = pb.ProgressBar(widgets=widgets, maxval=len(importer)).start() for i in importer.import_generator(visitor): pbar.update(i) session.commit() session.close() pbar.finish()
def main(): import sys import logging from sqlalchemy import create_engine from noj import init_db from noj.model.profiles import ProfileManager logging.basicConfig(format='%(asctime)s %(message)s', level=logging.INFO) pm = ProfileManager() pm.database_file = 'jmdict.sqlite' # pm.database_file = 'daijirin2.sqlite' print pm.database_connect_string() search_word = u'面白い' # search_word = u'先生' # search_word = u'悪どい' # search_word = u'スポーツ' # search_word = u'生く' if len(sys.argv) == 2: print sys.getdefaultencoding() search_word = sys.argv[1].decode(sys.stdin.encoding) engine = create_engine(pm.database_connect_string(), echo=True) init_db(engine) session = Session() lookup = AsyncLookup() # ues = _lookup_ues_by_entry(search_word, 100, None, None) # print unicode(ues) result = lookup.lookup_ues_by_entry(search_word, limit=100) print 'waiting for results' ues = result.get() session.close()
def run(self): session = Session() entries = LookupUEs.lookup_entries(session, self.search_word, self.limit, self.offset) # print unicode(entries) unicode(entries) if self.callback is not None: self.callback(entries) session.close() print 'finished searching:', self.search_word self.emit(SIGNAL("searchFinished"), entries)
def _lookup_ues_by_entry(search_word, limit, offset, callback): session = Session() ues = LookupUEs.lookup_ues_by_entry(session, search_word, limit, offset) # print unicode(ues) unicode(ues) if callback is not None: callback(ues) session.close() print 'finished searching:', search_word return ues
def init_db(engine): Session.configure(bind=engine) Base.metadata.create_all(engine) session = Session() # Insert library types for lib_type, lib_type_id in db_constants.LIB_TYPES_TO_ID.items(): db.insert(session, models.LibraryType, name=lib_type, id=lib_type_id) # Insert usage example list types for ue_list_type, ue_list_type_id in db_constants.UE_LIST_TYPES_TO_ID.items(): db.insert(session, models.UEListType, name=ue_list_type, id=ue_list_type_id) # Insert morpheme types for mtype, mtype_id in db_constants.MORPHEME_TYPES_TO_ID.items(): db.insert(session, models.MorphemeType, name=mtype, id=mtype_id) # Insert morpheme statuses for mstat, mstat_id in db_constants.MORPHEME_STATUSES_TO_ID.items(): db.insert(session, models.MorphemeStatus, name=mstat, id=mstat_id) # Insert known examples list db.insert(session, models.UEList, name=db_constants.KNOWN_EXAMPLES_NAME, id=db_constants.KNOWN_EXAMPLES_ID, type_id=db_constants.UE_LIST_TYPES_TO_ID['SYSTEM']) session.commit() session.close()
def main(): import sys from sqlalchemy import create_engine from noj import init_db from noj.model.profiles import ProfileManager logging.basicConfig(format="%(asctime)s %(message)s", level=logging.INFO) pm = ProfileManager() pm.database_file = "jmdict.sqlite" # pm.database_file = 'daijirin2.sqlite' print pm.database_connect_string() # search_word = u'面白い' # search_word = u'先生' # search_word = u'悪どい' # search_word = u'スポーツ' # search_word = u'生く' search_word = u"怪物" if len(sys.argv) == 2: print sys.getdefaultencoding() search_word = sys.argv[1].decode(sys.stdin.encoding) engine = create_engine(pm.database_connect_string(), echo=True) init_db(engine) session = Session() lookup = LookupUEs() logging.info("start") # ues = lookup.lookup_ues_by_entry(session, search_word, 100) # ues = lookup.lookup_ues_by_expression(session, search_word, 100) dict_result = lookup.lookup_entries(session, search_word, 100) print "dict:", unicode(dict_result) logging.info("done") # ues = lookup.lookup_ues_by_entry(session, u'先生') # print len(ues) # return # ues = search_expressions(session, search_word) # print unicode(ues) # print ues.get_count(), len(ues) # for ue, entry, definition in ues: # print ue.get_n_score() # print ue.expression.expression # print ue.meaning # print # break # for ue in ues: # print ue.get_n_score() # print ue.expression.expression # print ue.meaning # for d in ue.definition_assocs: # print d.number, d.definition.breadcrumb_string(), d.definition.entry.breadcrumb_string() # print # break logging.info("done") # session.commit() session.close()