56 lines
1.8 KiB
Dart
56 lines
1.8 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:jadb/_data_ingestion/jmdict/seed_data.dart';
|
|
import 'package:jadb/_data_ingestion/jmdict/xml_parser.dart';
|
|
import 'package:jadb/_data_ingestion/kanjidic/seed_data.dart';
|
|
import 'package:jadb/_data_ingestion/kanjidic/xml_parser.dart';
|
|
import 'package:jadb/_data_ingestion/radkfile/parser.dart';
|
|
import 'package:jadb/_data_ingestion/radkfile/seed_data.dart';
|
|
import 'package:sqflite_common/sqlite_api.dart';
|
|
import 'package:xml/xml.dart';
|
|
|
|
Future<void> seedData(Database db) async {
|
|
await parseAndSeedDataFromJMdict(db);
|
|
await parseAndSeedDataFromRADKFILE(db);
|
|
await parseAndSeedDataFromKANJIDIC(db);
|
|
}
|
|
|
|
Future<void> parseAndSeedDataFromJMdict(Database db) async {
|
|
print('[JMdict] Reading file content...');
|
|
String rawXML = File('data/tmp/JMdict.xml').readAsStringSync();
|
|
|
|
print('[JMdict] Parsing XML tags...');
|
|
XmlElement root = XmlDocument.parse(rawXML).getElement('JMdict')!;
|
|
|
|
print('[JMdict] Parsing XML content...');
|
|
final entries = parseJMDictData(root);
|
|
|
|
print('[JMdict] Writing to database...');
|
|
await seedJMDictData(entries, db);
|
|
}
|
|
|
|
Future<void> parseAndSeedDataFromKANJIDIC(Database db) async {
|
|
print('[KANJIDIC2] Reading file...');
|
|
String rawXML = File('data/tmp/kanjidic2.xml').readAsStringSync();
|
|
|
|
print('[KANJIDIC2] Parsing XML...');
|
|
XmlElement root = XmlDocument.parse(rawXML).getElement('kanjidic2')!;
|
|
|
|
print('[KANJIDIC2] Parsing XML content...');
|
|
final entries = parseKANJIDICData(root);
|
|
|
|
print('[KANJIDIC2] Writing to database...');
|
|
await seedKANJIDICData(entries, db);
|
|
}
|
|
|
|
Future<void> parseAndSeedDataFromRADKFILE(Database db) async {
|
|
print('[RADKFILE] Reading file...');
|
|
File raw = File('data/tmp/RADKFILE');
|
|
|
|
print('[RADKFILE] Parsing content...');
|
|
final blocks = parseRADKFILEBlocks(raw);
|
|
|
|
print('[RADKFILE] Writing to database...');
|
|
seedRADKFILEData(blocks, db);
|
|
}
|