mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew.git
synced 2025-05-13 11:37:33 -05:00
Implement data transfer from global to jp
This commit is contained in:
parent
461ef4b352
commit
72f05a5d52
4 changed files with 21 additions and 36 deletions
|
@ -18,7 +18,7 @@ md5 = "0.7.0"
|
||||||
urlencoding = "2.1.3"
|
urlencoding = "2.1.3"
|
||||||
sha1 = "0.10.6"
|
sha1 = "0.10.6"
|
||||||
substring = "1.4.5"
|
substring = "1.4.5"
|
||||||
uuid = { version = "1.8.0", features = ["v4"] }
|
uuid = { version = "1.8.0", features = ["v7"] }
|
||||||
rsa = "0.9.6"
|
rsa = "0.9.6"
|
||||||
mime = "0.3.17"
|
mime = "0.3.17"
|
||||||
sha2 = "0.10.8"
|
sha2 = "0.10.8"
|
||||||
|
|
|
@ -10,6 +10,7 @@ use base64::{Engine as _, engine::general_purpose};
|
||||||
use crate::router::userdata;
|
use crate::router::userdata;
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
use uuid::Uuid;
|
||||||
|
|
||||||
pub const ASSET_VERSION: &str = "cb87bc1468c8631a262ff65b2960470b";
|
pub const ASSET_VERSION: &str = "cb87bc1468c8631a262ff65b2960470b";
|
||||||
pub const ASSET_HASH_ANDROID: &str = "4715e873031ae4abc3c625e2bd8c935b";
|
pub const ASSET_HASH_ANDROID: &str = "4715e873031ae4abc3c625e2bd8c935b";
|
||||||
|
@ -34,6 +35,10 @@ pub fn get_item_info(id: i64) -> JsonValue {
|
||||||
ITEM_INFO[id.to_string()].clone()
|
ITEM_INFO[id.to_string()].clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn create_token() -> String {
|
||||||
|
format!("{}", Uuid::now_v7())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn remove_gems(user: &mut JsonValue, amount: i64) {
|
pub fn remove_gems(user: &mut JsonValue, amount: i64) {
|
||||||
let mut amount = amount;
|
let mut amount = amount;
|
||||||
let mut free = user["gem"]["free"].as_i64().unwrap();
|
let mut free = user["gem"]["free"].as_i64().unwrap();
|
||||||
|
|
|
@ -13,7 +13,6 @@ use crate::sql::SQLite;
|
||||||
|
|
||||||
use rusqlite::params;
|
use rusqlite::params;
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use uuid::Uuid;
|
|
||||||
|
|
||||||
use openssl::pkey::PKey;
|
use openssl::pkey::PKey;
|
||||||
use openssl::rsa::Rsa;
|
use openssl::rsa::Rsa;
|
||||||
|
@ -24,31 +23,17 @@ lazy_static! {
|
||||||
static ref DATABASE: SQLite = SQLite::new("gree.db");
|
static ref DATABASE: SQLite = SQLite::new("gree.db");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn uuid_exists(uuid: &str) -> bool {
|
fn update_cert(uid: i64, cert: &str) {
|
||||||
let data = DATABASE.lock_and_select("SELECT uuid FROM uuids WHERE uuid=?1", params!(uuid));
|
if !DATABASE.lock_and_select("SELECT cert FROM users WHERE user_id=?1;", params!(uid)).is_ok() {
|
||||||
data.is_ok()
|
let token = userdata::get_login_token(uid);
|
||||||
}
|
if token != String::new() {
|
||||||
fn get_new_uuid() -> String {
|
|
||||||
DATABASE.create_store_v2("CREATE TABLE IF NOT EXISTS uuids (
|
|
||||||
uuid TEXT NOT NULL PRIMARY KEY
|
|
||||||
)");
|
|
||||||
let id = format!("{}", Uuid::new_v4());
|
|
||||||
if uuid_exists(&id) {
|
|
||||||
return get_new_uuid();
|
|
||||||
}
|
|
||||||
DATABASE.lock_and_exec("INSERT INTO uuids (uuid) VALUES (?1)", params!(&id));
|
|
||||||
|
|
||||||
id
|
|
||||||
}
|
|
||||||
pub fn import_user(uid: i64) -> String {
|
|
||||||
let token = get_new_uuid();
|
|
||||||
DATABASE.lock_and_exec(
|
DATABASE.lock_and_exec(
|
||||||
"INSERT INTO users (cert, uuid, user_id) VALUES (?1, ?2, ?3)",
|
"INSERT INTO users (cert, uuid, user_id) VALUES (?1, ?2, ?3)",
|
||||||
params!("none", token, uid)
|
params!(cert, token, uid)
|
||||||
);
|
);
|
||||||
token
|
return;
|
||||||
}
|
}
|
||||||
fn update_cert(uid: i64, cert: &str) {
|
}
|
||||||
DATABASE.lock_and_exec("UPDATE users SET cert=?1 WHERE user_id=?2", params!(cert, uid));
|
DATABASE.lock_and_exec("UPDATE users SET cert=?1 WHERE user_id=?2", params!(cert, uid));
|
||||||
}
|
}
|
||||||
fn create_acc(cert: &str) -> String {
|
fn create_acc(cert: &str) -> String {
|
||||||
|
@ -57,7 +42,7 @@ fn create_acc(cert: &str) -> String {
|
||||||
uuid TEXT NOT NULL,
|
uuid TEXT NOT NULL,
|
||||||
user_id BIGINT NOT NULL PRIMARY KEY
|
user_id BIGINT NOT NULL PRIMARY KEY
|
||||||
)");
|
)");
|
||||||
let uuid = get_new_uuid();
|
let uuid = global::create_token();
|
||||||
let user = userdata::get_acc(&uuid);
|
let user = userdata::get_acc(&uuid);
|
||||||
let user_id = user["user"]["id"].as_i64().unwrap();
|
let user_id = user["user"]["id"].as_i64().unwrap();
|
||||||
DATABASE.lock_and_exec(
|
DATABASE.lock_and_exec(
|
||||||
|
|
|
@ -2,7 +2,6 @@ use rusqlite::params;
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use json::{JsonValue, array, object};
|
use json::{JsonValue, array, object};
|
||||||
use crate::router::global;
|
use crate::router::global;
|
||||||
use uuid::Uuid;
|
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use sha2::{Digest, Sha256};
|
use sha2::{Digest, Sha256};
|
||||||
use base64::{Engine as _, engine::general_purpose};
|
use base64::{Engine as _, engine::general_purpose};
|
||||||
|
@ -107,7 +106,8 @@ fn get_uid(token: &str) -> i64 {
|
||||||
data.parse::<i64>().unwrap_or(0)
|
data.parse::<i64>().unwrap_or(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_login_token(uid: i64) -> String {
|
// Needed by gree
|
||||||
|
pub fn get_login_token(uid: i64) -> String {
|
||||||
create_token_store();
|
create_token_store();
|
||||||
let data = DATABASE.lock_and_select("SELECT token FROM tokens WHERE user_id=?1", params!(uid));
|
let data = DATABASE.lock_and_select("SELECT token FROM tokens WHERE user_id=?1", params!(uid));
|
||||||
if !data.is_ok() {
|
if !data.is_ok() {
|
||||||
|
@ -387,7 +387,7 @@ fn create_webui_store() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_webui_token() -> String {
|
fn create_webui_token() -> String {
|
||||||
let token = format!("{}", Uuid::new_v4());
|
let token = global::create_token();
|
||||||
if DATABASE.lock_and_select("SELECT user_id FROM webui WHERE token=?1", params!(token)).is_ok() {
|
if DATABASE.lock_and_select("SELECT user_id FROM webui WHERE token=?1", params!(token)).is_ok() {
|
||||||
return create_webui_token();
|
return create_webui_token();
|
||||||
}
|
}
|
||||||
|
@ -439,12 +439,7 @@ pub fn webui_import_user(user: JsonValue) -> Result<JsonValue, String> {
|
||||||
user["userdata"]["user"]["friend_request_disabled"].as_i32().unwrap()
|
user["userdata"]["user"]["friend_request_disabled"].as_i32().unwrap()
|
||||||
));
|
));
|
||||||
|
|
||||||
let token;
|
let token = global::create_token();
|
||||||
if !user["jp"].is_empty() {
|
|
||||||
token = crate::router::gree::import_user(uid);
|
|
||||||
} else {
|
|
||||||
token = format!("{}", Uuid::new_v4());
|
|
||||||
}
|
|
||||||
|
|
||||||
DATABASE.lock_and_exec("INSERT INTO tokens (user_id, token) VALUES (?1, ?2)", params!(uid, token));
|
DATABASE.lock_and_exec("INSERT INTO tokens (user_id, token) VALUES (?1, ?2)", params!(uid, token));
|
||||||
let mig = crate::router::user::uid_to_code(uid.to_string());
|
let mig = crate::router::user::uid_to_code(uid.to_string());
|
||||||
|
|
Loading…
Add table
Reference in a new issue