182 lines
11 KiB
Rust
182 lines
11 KiB
Rust
mod crypto;
|
||
mod db;
|
||
mod domains;
|
||
mod error;
|
||
mod helpers;
|
||
mod shared;
|
||
|
||
use db::connection::create_db_manager;
|
||
use shared::crash_reporter::init_panic_hook;
|
||
use shared::session::create_session;
|
||
use std::path::PathBuf;
|
||
|
||
pub fn run() {
|
||
init_panic_hook();
|
||
|
||
let app_data_dir = dirs_next::data_dir()
|
||
.unwrap_or_else(|| PathBuf::from("."))
|
||
.join("com.eritors.scribe.desktop");
|
||
|
||
let db_manager = create_db_manager(app_data_dir);
|
||
let session = create_session();
|
||
|
||
tauri::Builder::default()
|
||
.plugin(tauri_plugin_shell::init())
|
||
.plugin(tauri_plugin_http::init())
|
||
.manage(db_manager)
|
||
.manage(session)
|
||
.invoke_handler(tauri::generate_handler![
|
||
// ─── User ──────────────────────────────────────
|
||
domains::user::commands::init_user,
|
||
domains::user::commands::db_initialize,
|
||
domains::user::commands::get_token,
|
||
domains::user::commands::set_token,
|
||
domains::user::commands::remove_token,
|
||
domains::user::commands::get_user_encryption_key,
|
||
domains::user::commands::get_platform,
|
||
domains::user::commands::get_user_info,
|
||
domains::user::commands::sync_user,
|
||
domains::user::commands::update_user_info,
|
||
domains::user::commands::dev_reset_all,
|
||
// ─── Offline ───────────────────────────────────
|
||
domains::offline::commands::offline_pin_set,
|
||
domains::offline::commands::offline_pin_verify,
|
||
domains::offline::commands::offline_mode_get,
|
||
domains::offline::commands::offline_mode_set,
|
||
domains::offline::commands::offline_sync_check,
|
||
// ─── Book (includes story, guideline, export, sync) ─
|
||
domains::book::commands::get_books,
|
||
domains::book::commands::get_book,
|
||
domains::book::commands::get_book_basic_information,
|
||
domains::book::commands::create_book,
|
||
domains::book::commands::update_book_basic_info,
|
||
domains::book::commands::delete_book,
|
||
domains::book::commands::update_book_tool_setting,
|
||
domains::book::commands::get_book_story,
|
||
domains::book::commands::update_book_story,
|
||
domains::book::commands::add_incident,
|
||
domains::book::commands::remove_incident,
|
||
domains::book::commands::add_plot_point,
|
||
domains::book::commands::remove_plot_point,
|
||
domains::book::commands::add_issue,
|
||
domains::book::commands::remove_issue,
|
||
domains::book::commands::get_worlds,
|
||
domains::book::commands::add_world,
|
||
domains::book::commands::add_world_element,
|
||
domains::book::commands::remove_world_element,
|
||
domains::book::commands::update_world,
|
||
domains::book::commands::get_guideline,
|
||
domains::book::commands::update_guideline,
|
||
domains::book::commands::get_ai_guideline,
|
||
domains::book::commands::update_ai_guideline,
|
||
domains::book::commands::get_book_export_info,
|
||
domains::book::commands::export_book,
|
||
domains::book::commands::get_synced_books,
|
||
domains::book::commands::upload_book_to_server,
|
||
domains::book::commands::sync_save_book,
|
||
domains::book::commands::sync_book_to_client,
|
||
domains::book::commands::sync_book_to_server,
|
||
// ─── Chapter ───────────────────────────────────
|
||
domains::chapter::commands::get_chapters,
|
||
domains::chapter::commands::get_whole_chapter,
|
||
domains::chapter::commands::get_chapter_story,
|
||
domains::chapter::commands::get_companion_content,
|
||
domains::chapter::commands::get_chapter_content,
|
||
domains::chapter::commands::save_chapter_content,
|
||
domains::chapter::commands::get_last_chapter,
|
||
domains::chapter::commands::add_chapter,
|
||
domains::chapter::commands::remove_chapter,
|
||
domains::chapter::commands::update_chapter,
|
||
domains::chapter::commands::add_chapter_information,
|
||
domains::chapter::commands::remove_chapter_information,
|
||
domains::chapter::commands::get_book_tags,
|
||
// ─── Character ─────────────────────────────────
|
||
domains::character::commands::get_character_list,
|
||
domains::character::commands::get_character_attributes,
|
||
domains::character::commands::create_character,
|
||
domains::character::commands::add_character_attribute,
|
||
domains::character::commands::delete_character_attribute,
|
||
domains::character::commands::update_character,
|
||
domains::character::commands::delete_character,
|
||
// ─── Location ──────────────────────────────────
|
||
domains::location::commands::get_all_locations,
|
||
domains::location::commands::add_location_section,
|
||
domains::location::commands::add_location_element,
|
||
domains::location::commands::add_location_sub_element,
|
||
domains::location::commands::update_locations,
|
||
domains::location::commands::update_location_section_with_series_link,
|
||
domains::location::commands::delete_location_section,
|
||
domains::location::commands::delete_location_element,
|
||
domains::location::commands::delete_location_sub_element,
|
||
// ─── Spell ─────────────────────────────────────
|
||
domains::spell::commands::get_spell_list,
|
||
domains::spell::commands::get_spell_tags,
|
||
domains::spell::commands::get_spell_detail,
|
||
domains::spell::commands::create_spell,
|
||
domains::spell::commands::update_spell,
|
||
domains::spell::commands::delete_spell,
|
||
domains::spell::commands::create_spell_tag,
|
||
domains::spell::commands::update_spell_tag,
|
||
domains::spell::commands::delete_spell_tag,
|
||
// ─── Series ────────────────────────────────────
|
||
domains::series::commands::get_series_list,
|
||
domains::series::commands::get_series_detail,
|
||
domains::series::commands::create_series,
|
||
domains::series::commands::update_series,
|
||
domains::series::commands::delete_series,
|
||
domains::series::commands::get_series_books,
|
||
domains::series::commands::add_book_to_series,
|
||
domains::series::commands::remove_book_from_series,
|
||
domains::series::commands::reorder_series_books,
|
||
domains::series::commands::get_series_for_book,
|
||
// ─── Series Character ──────────────────────────
|
||
domains::series_character::commands::get_series_character_list,
|
||
domains::series_character::commands::get_series_character_attributes,
|
||
domains::series_character::commands::add_series_character,
|
||
domains::series_character::commands::update_series_character,
|
||
domains::series_character::commands::delete_series_character,
|
||
domains::series_character::commands::add_series_character_attribute,
|
||
domains::series_character::commands::delete_series_character_attribute,
|
||
// ─── Series Location ───────────────────────────
|
||
domains::series_location::commands::get_series_location_list,
|
||
domains::series_location::commands::add_series_location_section,
|
||
domains::series_location::commands::add_series_location_element,
|
||
domains::series_location::commands::add_series_location_sub_element,
|
||
domains::series_location::commands::delete_series_location,
|
||
domains::series_location::commands::delete_series_location_element,
|
||
domains::series_location::commands::delete_series_location_sub_element,
|
||
// ─── Series World ──────────────────────────────
|
||
domains::series_world::commands::get_series_world_list,
|
||
domains::series_world::commands::add_series_world,
|
||
domains::series_world::commands::update_series_world,
|
||
domains::series_world::commands::add_series_world_element,
|
||
domains::series_world::commands::delete_series_world_element,
|
||
// ─── Series Spell ──────────────────────────────
|
||
domains::series_spell::commands::get_series_spell_list,
|
||
domains::series_spell::commands::get_series_spell_detail,
|
||
domains::series_spell::commands::add_series_spell,
|
||
domains::series_spell::commands::update_series_spell,
|
||
domains::series_spell::commands::delete_series_spell,
|
||
domains::series_spell::commands::add_series_spell_tag,
|
||
domains::series_spell::commands::update_series_spell_tag,
|
||
domains::series_spell::commands::delete_series_spell_tag,
|
||
// ─── Series Sync ───────────────────────────────
|
||
domains::series_sync::commands::upload_series_to_server,
|
||
domains::series_sync::commands::sync_save_series,
|
||
domains::series_sync::commands::sync_series_to_client,
|
||
domains::series_sync::commands::sync_series_to_server,
|
||
domains::series_sync::commands::series_sync_upload,
|
||
// ─── Sync ──────────────────────────────────────
|
||
domains::sync::commands::get_synced_series,
|
||
// ─── Tombstone ─────────────<E29480><E29480><EFBFBD>───────────────────
|
||
domains::tombstone::commands::get_tombstones_since,
|
||
domains::tombstone::commands::apply_book_tombstones,
|
||
domains::tombstone::commands::apply_series_tombstones,
|
||
// ─── Migration ────────────<E29480><E29480>───────────────────
|
||
domains::migration::commands::check_electron_migration,
|
||
domains::migration::commands::import_from_electron,
|
||
])
|
||
.run(tauri::generate_context!())
|
||
.expect("error while running tauri application");
|
||
}
|