From e735215141c7d90e1d977e93eb07638c70425116 Mon Sep 17 00:00:00 2001 From: Ethan O'Brien <77750390+ethanaobrien@users.noreply.github.com> Date: Tue, 16 Apr 2024 12:27:01 -0500 Subject: [PATCH] Implement /api/live/continue --- src/main.rs | 4 ++++ src/router/global.rs | 19 +++++++++++++++++++ src/router/live.rs | 16 ++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/src/main.rs b/src/main.rs index 38898ea..146d9a4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -144,6 +144,9 @@ async fn live_retire(req: HttpRequest, body: String) -> HttpResponse { router::l #[get("/api/live/clearRate")] async fn live_clearrate(req: HttpRequest) -> HttpResponse { router::live::clearrate(req) } +#[post("/api/live/continue")] +async fn live_continue(req: HttpRequest, body: String) -> HttpResponse { router::live::continuee(req, body) } + #[get("/api/mission")] async fn mission(req: HttpRequest) -> HttpResponse { router::mission::mission(req) } @@ -254,6 +257,7 @@ async fn main() -> std::io::Result<()> { .service(debug_error) .service(login_bonus) .service(reward) + .service(live_continue) .service(live_guest) .service(live_mission) .service(live_ranking) diff --git a/src/router/global.rs b/src/router/global.rs index cff466a..aaeb05a 100644 --- a/src/router/global.rs +++ b/src/router/global.rs @@ -33,6 +33,25 @@ pub fn get_item_info(id: i64) -> JsonValue { ITEM_INFO[id.to_string()].clone() } +pub fn remove_gems(user: &mut JsonValue, amount: i64) { + let mut amount = amount; + let mut free = user["gem"]["free"].as_i64().unwrap(); + let mut paid = user["gem"]["charge"].as_i64().unwrap(); + + free -= amount; + if free < 0 { + amount = -free; + free = 0; + } + paid -= amount; + if paid < 0 { + paid = 0; + } + user["gem"]["free"] = free.into(); + user["gem"]["charge"] = paid.into(); + user["gem"]["total"] = (free + paid).into(); +} + fn get_uuid(input: &str) -> Option { let key = "sk1bdzb310n0s9tl"; let key_index = match input.find(key) { diff --git a/src/router/live.rs b/src/router/live.rs index 4e0486b..83f7166 100644 --- a/src/router/live.rs +++ b/src/router/live.rs @@ -124,6 +124,22 @@ pub fn start(_req: HttpRequest, _body: String) -> HttpResponse { global::send(resp) } +pub fn continuee(req: HttpRequest, body: String) -> HttpResponse { + let key = global::get_login(req.headers(), &body); + let mut user = userdata::get_acc(&key); + + global::remove_gems(&mut user, 100); + + userdata::save_acc(&key, user.clone()); + + let resp = object!{ + "code": 0, + "server_time": global::timestamp(), + "gem": user["gem"].clone() + }; + global::send(resp) +} + pub fn update_live_data(user: &mut JsonValue, data: &JsonValue) -> JsonValue { if user["tutorial_step"].as_i32().unwrap() < 130 { return JsonValue::Null;