import 'package:jadb/table_names/kanjidic.dart'; import 'package:sqflite_common/sqlite_api.dart'; import 'objects.dart'; Future seedKANJIDICData(List characters, Database db) async { final b = db.batch(); for (final c in characters) { // if (c.dictionaryReferences.any((e) => // c.dictionaryReferences // .where((e2) => e.kanji == e2.kanji && e.type == e2.type) // .length > // 1)) { // print(c.dictionaryReferences.map((e) => e.sqlValue).toList()); // } b.insert(KANJIDICTableNames.character, c.sqlValue); for (final n in c.radicalName) { assert(c.radical != null, 'Radical name without radical'); b.insert( KANJIDICTableNames.radicalName, {'radicalId': c.radical!.radicalId, 'name': n}, conflictAlgorithm: ConflictAlgorithm.ignore, ); } for (final cp in c.codepoints) { b.insert(KANJIDICTableNames.codepoint, cp.sqlValue); } if (c.radical != null) { b.insert(KANJIDICTableNames.radical, c.radical!.sqlValue); } for (final sm in c.strokeMiscounts) { b.insert(KANJIDICTableNames.strokeMiscount, { 'kanji': c.literal, 'strokeCount': sm, }); } for (final v in c.variants) { b.insert(KANJIDICTableNames.variant, v.sqlValue); } for (final dr in c.dictionaryReferences) { // There are duplicate entries here b.insert( KANJIDICTableNames.dictionaryReference, dr.sqlValue, conflictAlgorithm: ConflictAlgorithm.ignore, ); } for (final drm in c.dictionaryReferencesMoro) { b.insert(KANJIDICTableNames.dictionaryReferenceMoro, drm.sqlValue); } for (final q in c.querycodes) { b.insert(KANJIDICTableNames.queryCode, q.sqlValue); } for (final r in c.readings) { b.insert(KANJIDICTableNames.reading, r.sqlValue); } for (final (i, y) in c.kunyomi.indexed) { b.insert( KANJIDICTableNames.kunyomi, y.sqlValue..addAll({'orderNum': i + 1}), ); } for (final (i, y) in c.onyomi.indexed) { b.insert( KANJIDICTableNames.onyomi, y.sqlValue..addAll({'orderNum': i + 1}), ); } for (final (i, m) in c.meanings.indexed) { b.insert( KANJIDICTableNames.meaning, m.sqlValue..addAll({'orderNum': i + 1}), ); } for (final n in c.nanori) { b.insert(KANJIDICTableNames.nanori, {'kanji': c.literal, 'nanori': n}); } } await b.commit(noResult: true); }