Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
 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)
Esempio n. 5
0
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
Esempio n. 6
0
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()
Esempio n. 7
0
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()