mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew.git
synced 2025-05-13 11:37:33 -05:00
Clean up event storage
This commit is contained in:
parent
a72a1e7dd6
commit
61789f0165
3 changed files with 66 additions and 47 deletions
|
@ -3,8 +3,35 @@ use actix_web::HttpRequest;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use crate::encryption;
|
use crate::encryption;
|
||||||
|
use crate::include_file;
|
||||||
use crate::router::{userdata, global, databases};
|
use crate::router::{userdata, global, databases};
|
||||||
|
|
||||||
|
fn get_event_data(key: &str, event_id: i64) -> JsonValue {
|
||||||
|
let mut event = userdata::get_acc_event(key);
|
||||||
|
|
||||||
|
if event[event_id.to_string()].is_empty() {
|
||||||
|
event[event_id.to_string()] = json::parse(&include_file!("src/router/userdata/new_user_event.json")).unwrap();
|
||||||
|
let mut ev = event[event_id.to_string()].clone();
|
||||||
|
init_star_event(&mut ev);
|
||||||
|
save_event_data(key, event_id, ev);
|
||||||
|
event = userdata::get_acc_event(key);
|
||||||
|
}
|
||||||
|
event[event_id.to_string()].clone()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn save_event_data(key: &str, event_id: i64, data: JsonValue) {
|
||||||
|
let mut event = userdata::get_acc_event(key);
|
||||||
|
|
||||||
|
// Check for old version of event data
|
||||||
|
if !event["event_data"].is_empty() {
|
||||||
|
event = object!{};
|
||||||
|
}
|
||||||
|
|
||||||
|
event[event_id.to_string()] = data;
|
||||||
|
|
||||||
|
userdata::save_acc_event(key, event);
|
||||||
|
}
|
||||||
|
|
||||||
fn get_random_song() -> JsonValue {
|
fn get_random_song() -> JsonValue {
|
||||||
let mut rng = rand::thread_rng();
|
let mut rng = rand::thread_rng();
|
||||||
let random_number = rng.gen_range(0..=databases::LIVES.len());
|
let random_number = rng.gen_range(0..=databases::LIVES.len());
|
||||||
|
@ -20,14 +47,14 @@ fn switch_music(event: &mut JsonValue, index: i32) {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
for (j, live) in event["event_data"]["star_event"]["star_music_list"].members().enumerate() {
|
for (j, live) in event["star_event"]["star_music_list"].members().enumerate() {
|
||||||
if live["position"] == index {
|
if live["position"] == index {
|
||||||
i = j;
|
i = j;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if i != 0 {
|
if i != 0 {
|
||||||
event["event_data"]["star_event"]["star_music_list"].array_remove(i);
|
event["star_event"]["star_music_list"].array_remove(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
let random_song = get_random_song();
|
let random_song = get_random_song();
|
||||||
|
@ -37,14 +64,14 @@ fn switch_music(event: &mut JsonValue, index: i32) {
|
||||||
is_cleared: 0,
|
is_cleared: 0,
|
||||||
goal_score: random_song["score"].clone()
|
goal_score: random_song["score"].clone()
|
||||||
};
|
};
|
||||||
event["event_data"]["star_event"]["star_music_list"].push(to_push).unwrap();
|
event["star_event"]["star_music_list"].push(to_push).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn init_star_event(event: &mut JsonValue) {
|
fn init_star_event(event: &mut JsonValue) {
|
||||||
if event["event_data"]["star_event"]["star_level"].as_i32().unwrap() != 0 {
|
if event["star_event"]["star_level"].as_i32().unwrap() != 0 {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
event["event_data"]["star_event"]["star_level"] = 1.into();
|
event["star_event"]["star_level"] = 1.into();
|
||||||
switch_music(event, 1);
|
switch_music(event, 1);
|
||||||
switch_music(event, 2);
|
switch_music(event, 2);
|
||||||
switch_music(event, 3);
|
switch_music(event, 3);
|
||||||
|
@ -54,59 +81,54 @@ fn init_star_event(event: &mut JsonValue) {
|
||||||
|
|
||||||
pub fn event(req: HttpRequest, body: String) -> Option<JsonValue> {
|
pub fn event(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||||
let key = global::get_login(req.headers(), &body);
|
let key = global::get_login(req.headers(), &body);
|
||||||
let mut event = userdata::get_acc_event(&key);
|
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||||
|
let event = get_event_data(&key, body["master_event_id"].as_i64().unwrap());
|
||||||
|
|
||||||
init_star_event(&mut event);
|
Some(event)
|
||||||
|
|
||||||
userdata::save_acc_event(&key, event.clone());
|
|
||||||
|
|
||||||
Some(event["event_data"].clone())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn star_event(req: HttpRequest, body: String) -> Option<JsonValue> {
|
pub fn star_event(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||||
let key = global::get_login(req.headers(), &body);
|
let key = global::get_login(req.headers(), &body);
|
||||||
let mut event = userdata::get_acc_event(&key);
|
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||||
init_star_event(&mut event);
|
|
||||||
|
|
||||||
userdata::save_acc_event(&key, event.clone());
|
let event = get_event_data(&key, body["master_event_id"].as_i64().unwrap());
|
||||||
|
|
||||||
Some(object!{
|
Some(object!{
|
||||||
star_event: event["event_data"]["star_event"].clone(),
|
star_event: event["star_event"].clone(),
|
||||||
gift_list: [],
|
gift_list: [],
|
||||||
reward_list: []
|
reward_list: []
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo - randomize
|
|
||||||
pub fn change_target_music(req: HttpRequest, body: String) -> Option<JsonValue> {
|
pub fn change_target_music(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||||
let key = global::get_login(req.headers(), &body);
|
let key = global::get_login(req.headers(), &body);
|
||||||
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||||
let mut event = userdata::get_acc_event(&key);
|
let mut event = get_event_data(&key, body["master_event_id"].as_i64().unwrap());
|
||||||
|
|
||||||
event["event_data"]["star_event"]["music_change_count"] = (event["event_data"]["star_event"]["music_change_count"].as_i32().unwrap() + 1).into();
|
event["star_event"]["music_change_count"] = (event["star_event"]["music_change_count"].as_i32().unwrap() + 1).into();
|
||||||
|
|
||||||
switch_music(&mut event, body["position"].as_i32().unwrap());
|
switch_music(&mut event, body["position"].as_i32().unwrap());
|
||||||
|
|
||||||
userdata::save_acc_event(&key, event.clone());
|
save_event_data(&key, body["master_event_id"].as_i64().unwrap(), event.clone());
|
||||||
|
|
||||||
Some(event["event_data"]["star_event"].clone())
|
Some(event["star_event"].clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_member(req: HttpRequest, body: String) -> Option<JsonValue> {
|
pub fn set_member(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||||
let key = global::get_login(req.headers(), &body);
|
let key = global::get_login(req.headers(), &body);
|
||||||
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||||
let mut event = userdata::get_acc_event(&key);
|
let mut event = get_event_data(&key, body["master_event_id"].as_i64().unwrap());
|
||||||
|
|
||||||
event["event_data"]["member_ranking"] = object!{
|
event["member_ranking"] = object!{
|
||||||
master_character_id: body["master_character_id"].clone(),
|
master_character_id: body["master_character_id"].clone(),
|
||||||
rank: 0,
|
rank: 0,
|
||||||
point: 0
|
point: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
userdata::save_acc_event(&key, event.clone());
|
save_event_data(&key, body["master_event_id"].as_i64().unwrap(), event.clone());
|
||||||
|
|
||||||
Some(object!{
|
Some(object!{
|
||||||
event_member: body.clone()
|
event_member: event["member_ranking"].clone()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ fn add_user_to_database(uid: i64, user: JsonValue, user_home: JsonValue, user_mi
|
||||||
));
|
));
|
||||||
DATABASE.lock_and_exec("INSERT INTO event (user_id, event) VALUES (?1, ?2)", params!(
|
DATABASE.lock_and_exec("INSERT INTO event (user_id, event) VALUES (?1, ?2)", params!(
|
||||||
uid,
|
uid,
|
||||||
include_file!("src/router/userdata/new_user_event.json")
|
"{}"
|
||||||
));
|
));
|
||||||
DATABASE.lock_and_exec("INSERT INTO eventloginbonus (user_id, eventloginbonus) VALUES (?1, ?2)", params!(
|
DATABASE.lock_and_exec("INSERT INTO eventloginbonus (user_id, eventloginbonus) VALUES (?1, ?2)", params!(
|
||||||
uid,
|
uid,
|
||||||
|
@ -254,7 +254,7 @@ pub fn get_acc_chats(auth_key: &str) -> JsonValue {
|
||||||
pub fn get_acc_event(auth_key: &str) -> JsonValue {
|
pub fn get_acc_event(auth_key: &str) -> JsonValue {
|
||||||
let event = get_data(auth_key, "event");
|
let event = get_data(auth_key, "event");
|
||||||
if event.is_empty() {
|
if event.is_empty() {
|
||||||
return json::parse(&include_file!("src/router/userdata/new_user_event.json")).unwrap();
|
return object!{};
|
||||||
}
|
}
|
||||||
event
|
event
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
{
|
{
|
||||||
"event_data": {
|
"point_ranking": {
|
||||||
"point_ranking": {
|
"point": 0
|
||||||
"point": 0
|
|
||||||
},
|
|
||||||
"score_ranking": [],
|
|
||||||
"member_ranking": [],
|
|
||||||
"lottery_box": [],
|
|
||||||
"mission_list": [],
|
|
||||||
"policy_agreement": 0,
|
|
||||||
"incentive_lottery": 0,
|
|
||||||
"star_event": {
|
|
||||||
"star_level": 0,
|
|
||||||
"last_event_star_level": 0,
|
|
||||||
"star_music_list": [],
|
|
||||||
"music_change_count": 0,
|
|
||||||
"star_event_bonus_daily_count": 0,
|
|
||||||
"star_event_bonus_count": 0,
|
|
||||||
"star_event_play_times_bonus_count": 0,
|
|
||||||
"star_assist_bonus": 1
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"server_event_data": {}
|
"score_ranking": [],
|
||||||
|
"member_ranking": [],
|
||||||
|
"lottery_box": [],
|
||||||
|
"mission_list": [],
|
||||||
|
"policy_agreement": 0,
|
||||||
|
"incentive_lottery": 0,
|
||||||
|
"star_event": {
|
||||||
|
"star_level": 0,
|
||||||
|
"last_event_star_level": 0,
|
||||||
|
"star_music_list": [],
|
||||||
|
"music_change_count": 0,
|
||||||
|
"star_event_bonus_daily_count": 0,
|
||||||
|
"star_event_bonus_count": 0,
|
||||||
|
"star_event_play_times_bonus_count": 0,
|
||||||
|
"star_assist_bonus": 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue