kradfile utf8

This commit is contained in:
Michael Zhang 2023-06-11 15:08:15 -05:00
parent 6efeb0498c
commit a08636b3ee
4 changed files with 6503 additions and 1 deletions

6455
src-tauri/data/kradfile.utf8 Normal file

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
CREATE DATABASE

View file

@ -0,0 +1,43 @@
use std::path::Path;
use anyhow::Result;
use sqlx::SqlitePool;
use tokio::{
fs::File,
io::{AsyncBufReadExt, BufReader},
};
const SEPARATOR: char = ':';
pub async fn process_kradfile(pool: &SqlitePool, path: impl AsRef<Path>) -> Result<()> {
let file = File::open(path.as_ref()).await?;
let file_reader = BufReader::new(file);
let mut lines = file_reader.lines();
loop {
let line = match lines.next_line().await? {
Some(v) => v,
None => break,
};
// Skip comments
if line.starts_with('#') {
continue;
}
let parts = line.split(SEPARATOR).collect::<Vec<_>>();
let (kanji, radicals) = match &parts[..] {
&[kanji, radicals] => {
let kanji = kanji.trim();
let radicals = radicals.trim().split_whitespace().collect::<Vec<_>>();
(kanji, radicals)
}
_ => continue,
};
println!("kanji: {}, radicals: {:?}", kanji, radicals);
}
Ok(())
}

View file

@ -1,3 +1,5 @@
pub mod kradfile;
use std::{path::PathBuf, str::FromStr}; use std::{path::PathBuf, str::FromStr};
use anyhow::Result; use anyhow::Result;
@ -26,6 +28,9 @@ async fn main() -> Result<()> {
// Migrate that shit // Migrate that shit
sqlx::migrate!().run(&pool).await?; sqlx::migrate!().run(&pool).await?;
// Kradfile
kradfile::process_kradfile(&pool, opt.in_dir.join("kradfile.utf8")).await?;
println!("Hello, world!"); println!("Hello, world!");
Ok(()) Ok(())