mirror of
https://github.com/NexVeridian/wikidata-to-surrealdb.git
synced 2025-09-02 01:49:13 +00:00
45 lines
1.2 KiB
Rust
45 lines
1.2 KiB
Rust
use anyhow::{Error, Ok, Result};
|
|
use lazy_static::lazy_static;
|
|
use std::env;
|
|
use surrealdb::{engine::remote::ws::Client, Surreal};
|
|
use tokio::time::{sleep, Duration};
|
|
|
|
mod utils;
|
|
use init_reader::File_Format;
|
|
use utils::*;
|
|
|
|
lazy_static! {
|
|
static ref WIKIDATA_FILE_FORMAT: String =
|
|
env::var("WIKIDATA_FILE_FORMAT").expect("FILE_FORMAT not set");
|
|
static ref WIKIDATA_FILE_NAME: String =
|
|
env::var("WIKIDATA_FILE_NAME").expect("FILE_NAME not set");
|
|
static ref CREATE_VERSION: CreateVersion = match env::var("CREATE_VERSION")
|
|
.expect("CREATE_VERSION not set")
|
|
.as_str()
|
|
{
|
|
"Single" => CreateVersion::Single,
|
|
"Bulk" => CreateVersion::Bulk,
|
|
"BulkFilter" => CreateVersion::BulkFilter,
|
|
_ => panic!("Unknown CREATE_VERSION"),
|
|
};
|
|
}
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Error> {
|
|
sleep(Duration::from_secs(10)).await;
|
|
let pb = init_progress_bar::create_pb().await;
|
|
let reader = File_Format::new(&WIKIDATA_FILE_FORMAT).reader(&WIKIDATA_FILE_NAME)?;
|
|
|
|
CREATE_VERSION
|
|
.run(
|
|
None::<Surreal<Client>>,
|
|
reader,
|
|
Some(pb.clone()),
|
|
500,
|
|
1_000,
|
|
)
|
|
.await?;
|
|
|
|
pb.finish();
|
|
Ok(())
|
|
}
|