asdf98 commited on
Commit
aae4688
·
verified ·
1 Parent(s): acc6dea

fix: lib.rs - align command registrations with actual existing functions, fix board_add_image 7-arg call, remove nonexistent modules

Browse files
Files changed (1) hide show
  1. src-tauri/src/lib.rs +37 -95
src-tauri/src/lib.rs CHANGED
@@ -1,5 +1,6 @@
1
  mod adblock;
2
  mod browser;
 
3
  mod credentials;
4
  mod library;
5
  mod board;
@@ -10,14 +11,27 @@ mod study;
10
  mod downloads;
11
  mod settings;
12
  mod state;
13
- mod history;
14
- mod projects;
15
- mod refs_format;
16
 
17
  use crate::state::AppState;
18
- use tauri::{Emitter, Manager};
19
  use tauri_plugin_sql::{Migration, MigrationKind};
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  #[cfg_attr(mobile, tauri::mobile_entry_point)]
22
  pub fn run() {
23
  tauri::Builder::default()
@@ -32,54 +46,6 @@ pub fn run() {
32
  argon2::Argon2::default().hash_password_into(password.as_bytes(), salt, &mut key).expect("argon2 KDF failed");
33
  key.to_vec()
34
  }).build())
35
- .register_uri_scheme_protocol("muse-action", |ctx, request| {
36
- let uri = request.uri().to_string();
37
- let app = ctx.app_handle().clone();
38
- let action = uri.split("://").nth(1).unwrap_or("").split('?').next().unwrap_or("").to_string();
39
- let query = uri.split('?').nth(1).unwrap_or("");
40
- let params: std::collections::HashMap<String, String> = query.split('&').filter_map(|pair| {
41
- let (k, v) = pair.split_once('=')?;
42
- Some((percent_decode(k), percent_decode(v)))
43
- }).collect();
44
- match action.as_str() {
45
- "library" => {
46
- let url = params.get("url").cloned().unwrap_or_default();
47
- if !url.is_empty() {
48
- let source = params.get("source").cloned();
49
- let title = params.get("title").cloned();
50
- let width = params.get("w").and_then(|v| v.parse::<u32>().ok());
51
- let height = params.get("h").and_then(|v| v.parse::<u32>().ok());
52
- let colors = params.get("colors").map(|v| v.split(';').filter(|s| !s.is_empty()).map(|s| s.to_string()).collect::<Vec<_>>());
53
- let _ = crate::library::library_add_web_reference(app, url, source, title, width, height, colors);
54
- }
55
- }
56
- "board" => {
57
- let url = params.get("url").cloned().unwrap_or_default();
58
- if !url.is_empty() {
59
- let source = params.get("source").cloned();
60
- let title = params.get("title").cloned();
61
- let width = params.get("w").and_then(|v| v.parse::<u32>().ok());
62
- let height = params.get("h").and_then(|v| v.parse::<u32>().ok());
63
- let colors = params.get("colors").map(|v| v.split(';').filter(|s| !s.is_empty()).map(|s| s.to_string()).collect::<Vec<_>>());
64
- if let Ok(item) = crate::library::library_add_web_reference(app.clone(), url, source, title, width, height, colors) {
65
- let w = width.unwrap_or(300).clamp(80, 900) as f64;
66
- let h = height.unwrap_or(200).clamp(80, 900) as f64;
67
- let _ = crate::board::board_add_image(app, None, item.id, item.data_url, 120.0, 120.0, w.min(420.0), h.min(360.0));
68
- }
69
- }
70
- }
71
- "vault" => {
72
- let va = params.get("action").cloned().unwrap_or_default();
73
- match va.as_str() {
74
- "save-prompt" => { let _ = app.emit("vault://save-prompt", serde_json::json!({"origin": params.get("origin").cloned().unwrap_or_default(), "username": params.get("username").cloned().unwrap_or_default(), "password": params.get("password").cloned().unwrap_or_default()})); }
75
- "has-login-form" => { let _ = app.emit("vault://login-detected", serde_json::json!({"origin": params.get("origin").cloned().unwrap_or_default(), "fields": params.get("fields").cloned().unwrap_or_default()})); }
76
- _ => {}
77
- }
78
- }
79
- _ => {}
80
- }
81
- tauri::http::Response::builder().status(200).header("Access-Control-Allow-Origin", "*").body(Vec::new()).unwrap()
82
- })
83
  .manage(state::AppState::default())
84
  .manage(adblock::engine::AdBlockState::new())
85
  .manage(library::LibraryState::default())
@@ -88,28 +54,7 @@ pub fn run() {
88
  .manage(study::StudyState::default())
89
  .invoke_handler(tauri::generate_handler![
90
  settings::phase0_status,
91
- settings::board_load_state,
92
- settings::board_save_state,
93
- settings::board_export_file,
94
- settings::board_import_file,
95
- settings::screen_capture_full,
96
- settings::screen_capture_region,
97
- settings::screen_capture_window_region,
98
- history::history_list,
99
- history::history_clear,
100
- refs_format::refs_export,
101
- refs_format::refs_import,
102
- projects::projects_list,
103
- projects::projects_get_active_id,
104
- projects::project_create,
105
- projects::project_save,
106
- projects::project_load,
107
- projects::project_delete,
108
- projects::project_rename,
109
- browser::capture::browser_capture_viewport,
110
- browser::capture::browser_capture_clip,
111
- browser::capture::browser_capture_full_page,
112
- browser::autofill::tab_autofill,
113
  browser::commands::browser_init,
114
  browser::commands::browser_set_visible,
115
  browser::commands::tab_create,
@@ -127,6 +72,7 @@ pub fn run() {
127
  browser::commands::tab_find,
128
  browser::commands::tab_find_clear,
129
  browser::context_menu::browser_context_menu,
 
130
  adblock::commands::shield_get_report,
131
  adblock::commands::shield_check_url,
132
  adblock::commands::shield_cosmetic_css,
@@ -135,39 +81,51 @@ pub fn run() {
135
  adblock::commands::shield_update_lists,
136
  adblock::commands::shield_add_user_rule,
137
  adblock::commands::shield_list_subscriptions,
 
138
  library::library_add_item,
139
- library::library_add_web_reference,
140
  library::library_load,
141
  library::library_items,
142
  library::library_search,
143
  library::library_remove_item,
144
  library::library_add_tag,
145
- board::boards_list,
146
- board::board_active,
147
- board::board_set_active,
 
148
  board::board_create,
 
 
149
  board::board_load,
150
  board::board_items,
151
  board::board_add_image,
152
  board::board_add_note,
153
  board::board_add_palette,
 
 
154
  board::board_update_item,
155
  board::board_delete_item,
 
 
 
156
  sessions::sessions_save,
157
  sessions::sessions_load,
158
  sessions::sessions_list,
159
  sessions::sessions_auto_save,
160
  sessions::sessions_delete,
161
  sessions::sessions_rename,
 
162
  downloads::downloads_list,
163
  downloads::downloads_clear_completed,
164
  downloads::download_to_library,
165
  downloads::web_clip_page,
 
166
  credentials::credentials_list,
167
  credentials::credentials_generate_password,
 
168
  study::study_start,
169
  study::study_complete,
170
  study::study_list,
 
171
  color_tools::color_export,
172
  color_tools::color_search_library,
173
  ])
@@ -185,7 +143,7 @@ pub fn run() {
185
  Ok(())
186
  })
187
  .run(tauri::generate_context!())
188
- .expect("error while running Refstudio");
189
  }
190
 
191
  fn migrations() -> Vec<Migration> {
@@ -194,19 +152,3 @@ fn migrations() -> Vec<Migration> {
194
  Migration { version: 2, description: "phase3_tables", sql: include_str!("../migrations/002_phase3_tables.sql"), kind: MigrationKind::Up },
195
  ]
196
  }
197
-
198
- fn percent_decode(s: &str) -> String {
199
- let bytes = s.as_bytes();
200
- let mut out = Vec::with_capacity(bytes.len());
201
- let mut i = 0;
202
- while i < bytes.len() {
203
- if bytes[i] == b'%' && i + 2 < bytes.len() {
204
- if let Ok(hex) = std::str::from_utf8(&bytes[i+1..i+3]) {
205
- if let Ok(v) = u8::from_str_radix(hex, 16) { out.push(v); i += 3; continue; }
206
- }
207
- }
208
- out.push(if bytes[i] == b'+' { b' ' } else { bytes[i] });
209
- i += 1;
210
- }
211
- String::from_utf8_lossy(&out).to_string()
212
- }
 
1
  mod adblock;
2
  mod browser;
3
+ mod capture;
4
  mod credentials;
5
  mod library;
6
  mod board;
 
11
  mod downloads;
12
  mod settings;
13
  mod state;
 
 
 
14
 
15
  use crate::state::AppState;
16
+ use tauri::Manager;
17
  use tauri_plugin_sql::{Migration, MigrationKind};
18
 
19
+ fn percent_decode(s: &str) -> String {
20
+ let bytes = s.as_bytes();
21
+ let mut out = Vec::with_capacity(bytes.len());
22
+ let mut i = 0;
23
+ while i < bytes.len() {
24
+ if bytes[i] == b'%' && i + 2 < bytes.len() {
25
+ if let Ok(hex) = std::str::from_utf8(&bytes[i+1..i+3]) {
26
+ if let Ok(v) = u8::from_str_radix(hex, 16) { out.push(v); i += 3; continue; }
27
+ }
28
+ }
29
+ out.push(if bytes[i] == b'+' { b' ' } else { bytes[i] });
30
+ i += 1;
31
+ }
32
+ String::from_utf8_lossy(&out).to_string()
33
+ }
34
+
35
  #[cfg_attr(mobile, tauri::mobile_entry_point)]
36
  pub fn run() {
37
  tauri::Builder::default()
 
46
  argon2::Argon2::default().hash_password_into(password.as_bytes(), salt, &mut key).expect("argon2 KDF failed");
47
  key.to_vec()
48
  }).build())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  .manage(state::AppState::default())
50
  .manage(adblock::engine::AdBlockState::new())
51
  .manage(library::LibraryState::default())
 
54
  .manage(study::StudyState::default())
55
  .invoke_handler(tauri::generate_handler![
56
  settings::phase0_status,
57
+ // Browser
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  browser::commands::browser_init,
59
  browser::commands::browser_set_visible,
60
  browser::commands::tab_create,
 
72
  browser::commands::tab_find,
73
  browser::commands::tab_find_clear,
74
  browser::context_menu::browser_context_menu,
75
+ // Ad-block
76
  adblock::commands::shield_get_report,
77
  adblock::commands::shield_check_url,
78
  adblock::commands::shield_cosmetic_css,
 
81
  adblock::commands::shield_update_lists,
82
  adblock::commands::shield_add_user_rule,
83
  adblock::commands::shield_list_subscriptions,
84
+ // Library
85
  library::library_add_item,
 
86
  library::library_load,
87
  library::library_items,
88
  library::library_search,
89
  library::library_remove_item,
90
  library::library_add_tag,
91
+ library::library_extract_palette,
92
+ // Board
93
+ board::board_list,
94
+ board::board_current,
95
  board::board_create,
96
+ board::board_open,
97
+ board::board_save_as,
98
  board::board_load,
99
  board::board_items,
100
  board::board_add_image,
101
  board::board_add_note,
102
  board::board_add_palette,
103
+ board::board_extract_palette_from_item,
104
+ board::board_add_palette_from_item,
105
  board::board_update_item,
106
  board::board_delete_item,
107
+ // Screen capture
108
+ capture::capture_screen_region,
109
+ // Sessions
110
  sessions::sessions_save,
111
  sessions::sessions_load,
112
  sessions::sessions_list,
113
  sessions::sessions_auto_save,
114
  sessions::sessions_delete,
115
  sessions::sessions_rename,
116
+ // Downloads
117
  downloads::downloads_list,
118
  downloads::downloads_clear_completed,
119
  downloads::download_to_library,
120
  downloads::web_clip_page,
121
+ // Credentials
122
  credentials::credentials_list,
123
  credentials::credentials_generate_password,
124
+ // Study
125
  study::study_start,
126
  study::study_complete,
127
  study::study_list,
128
+ // Color tools
129
  color_tools::color_export,
130
  color_tools::color_search_library,
131
  ])
 
143
  Ok(())
144
  })
145
  .run(tauri::generate_context!())
146
+ .expect("error while running Muse Alpha");
147
  }
148
 
149
  fn migrations() -> Vec<Migration> {
 
152
  Migration { version: 2, description: "phase3_tables", sql: include_str!("../migrations/002_phase3_tables.sql"), kind: MigrationKind::Up },
153
  ]
154
  }