mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2025-12-15 00:48:52 +00:00
adapted to the new API
This commit is contained in:
parent
e239c1a3dd
commit
1f55e19924
@ -54,8 +54,7 @@ impl GameComponent {
|
|||||||
let _permit = semaphore.acquire().await;
|
let _permit = semaphore.acquire().await;
|
||||||
|
|
||||||
for resource_to_check in cloned_resources {
|
for resource_to_check in cloned_resources {
|
||||||
let file_path =
|
let file_path = game_dir.join(resource_to_check.dest.clone());
|
||||||
game_dir.join(resource_to_check.dest.clone().strip_prefix("/").unwrap());
|
|
||||||
|
|
||||||
if file_path.try_exists().unwrap() {
|
if file_path.try_exists().unwrap() {
|
||||||
let blocking_file_path = file_path.clone();
|
let blocking_file_path = file_path.clone();
|
||||||
@ -145,7 +144,7 @@ impl ComponentDownloader for GameComponent {
|
|||||||
.iter()
|
.iter()
|
||||||
.map(|r| {
|
.map(|r| {
|
||||||
output_dir
|
output_dir
|
||||||
.join(r.dest.strip_prefix("/").unwrap())
|
.join(r.dest.clone())
|
||||||
.parent()
|
.parent()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.to_path_buf()
|
.to_path_buf()
|
||||||
|
|||||||
@ -2,6 +2,7 @@ use std::path::PathBuf;
|
|||||||
|
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
use serde_json::Value;
|
||||||
use tokio::fs::read_to_string;
|
use tokio::fs::read_to_string;
|
||||||
use tokio::io::AsyncWriteExt;
|
use tokio::io::AsyncWriteExt;
|
||||||
|
|
||||||
@ -12,22 +13,36 @@ use crate::game_config::GameConfig;
|
|||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct GameInfo {
|
pub struct GameInfo {
|
||||||
|
pub chunk_download_switch: i64,
|
||||||
|
pub key_file_check_switch: i64,
|
||||||
pub default: Default,
|
pub default: Default,
|
||||||
|
#[serde(rename = "RHIOptionSwitch")]
|
||||||
|
pub rhioption_switch: i64,
|
||||||
|
pub resources_login: ResourcesLogin,
|
||||||
|
pub predownload_switch: i64,
|
||||||
|
#[serde(rename = "RHIOptionList")]
|
||||||
|
pub rhioption_list: Vec<Value>,
|
||||||
|
pub experiment: Experiment,
|
||||||
|
pub check_exe_is_running: i64,
|
||||||
pub hash_cache_check_acc_switch: i64,
|
pub hash_cache_check_acc_switch: i64,
|
||||||
|
pub key_file_check_list: Vec<String>,
|
||||||
|
pub fingerprints: Vec<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct Default {
|
pub struct Default {
|
||||||
|
pub sample_hash_switch: i64,
|
||||||
pub cdn_list: Vec<CdnList>,
|
pub cdn_list: Vec<CdnList>,
|
||||||
|
pub resources_base_path: String,
|
||||||
pub changelog: Changelog,
|
pub changelog: Changelog,
|
||||||
pub resources: String,
|
pub resources: String,
|
||||||
pub resources_base_path: String,
|
pub resources_exclude_path_need_update: Vec<String>,
|
||||||
|
pub config: Config,
|
||||||
pub resources_diff: ResourcesDiff,
|
pub resources_diff: ResourcesDiff,
|
||||||
pub resources_exclude_path: Vec<String>,
|
pub resources_exclude_path: Vec<String>,
|
||||||
pub resources_exclude_path_need_update: Vec<String>,
|
|
||||||
pub sample_hash_switch: i64,
|
|
||||||
pub version: String,
|
pub version: String,
|
||||||
|
pub changelog_visible: i64,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
@ -44,10 +59,58 @@ pub struct CdnList {
|
|||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct Changelog {
|
pub struct Changelog {}
|
||||||
#[serde(rename = "zh-Hans")]
|
|
||||||
pub zh_hans: String,
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
pub en: String,
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct Config {
|
||||||
|
pub index_file_md5: String,
|
||||||
|
pub un_compress_size: i64,
|
||||||
|
pub base_url: String,
|
||||||
|
pub size: i64,
|
||||||
|
pub patch_type: String,
|
||||||
|
pub zip_config: ZipConfig,
|
||||||
|
pub index_file: String,
|
||||||
|
pub resources_exclude_path_need_update: Vec<String>,
|
||||||
|
pub version: String,
|
||||||
|
pub resources_exclude_path: Vec<String>,
|
||||||
|
pub patch_config: Vec<PatchConfig>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct ZipConfig {
|
||||||
|
pub index_file_md5: String,
|
||||||
|
pub un_compress_size: i64,
|
||||||
|
pub ext: Ext,
|
||||||
|
pub base_url: String,
|
||||||
|
pub size: i64,
|
||||||
|
pub index_file: String,
|
||||||
|
pub version: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct Ext {
|
||||||
|
pub max_file_size: i64,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct PatchConfig {
|
||||||
|
pub index_file_md5: String,
|
||||||
|
pub un_compress_size: i64,
|
||||||
|
pub ext: Ext2,
|
||||||
|
pub base_url: String,
|
||||||
|
pub size: i64,
|
||||||
|
pub index_file: String,
|
||||||
|
pub version: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct Ext2 {
|
||||||
|
pub max_file_size: i64,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
@ -61,16 +124,47 @@ pub struct ResourcesDiff {
|
|||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct CurrentGameInfo {
|
pub struct CurrentGameInfo {
|
||||||
pub file_name: String,
|
pub file_name: String,
|
||||||
pub md5: String,
|
|
||||||
pub version: String,
|
pub version: String,
|
||||||
|
pub md5: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct PreviousGameInfo {
|
pub struct PreviousGameInfo {
|
||||||
pub file_name: String,
|
pub file_name: String,
|
||||||
pub md5: String,
|
|
||||||
pub version: String,
|
pub version: String,
|
||||||
|
pub md5: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct ResourcesLogin {
|
||||||
|
pub host: String,
|
||||||
|
pub login_switch: i64,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct Experiment {
|
||||||
|
pub download: Download,
|
||||||
|
#[serde(rename = "res_check")]
|
||||||
|
pub res_check: ResCheck,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct Download {
|
||||||
|
pub download_cdn_select_test_duration: String,
|
||||||
|
pub download_read_block_timeout: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct ResCheck {
|
||||||
|
pub file_chunk_check_switch: String,
|
||||||
|
pub file_size_check_switch: String,
|
||||||
|
pub res_valid_check_time_out: String,
|
||||||
|
pub file_check_white_list_config: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resources ---------------------------------------------------------------------
|
// Resources ---------------------------------------------------------------------
|
||||||
@ -79,7 +173,6 @@ pub struct PreviousGameInfo {
|
|||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct Resources {
|
pub struct Resources {
|
||||||
pub resource: Vec<Resource>,
|
pub resource: Vec<Resource>,
|
||||||
pub sample_hash_info: SampleHashInfo,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
@ -99,12 +192,11 @@ pub struct SampleHashInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// end data ---------------------------------------------------------------------
|
// end data ---------------------------------------------------------------------
|
||||||
|
|
||||||
static URL: &str = concat!(
|
static URL: &str = concat!(
|
||||||
"https://prod-alicdn-gamestarter.k",
|
"https://prod-alicdn-gamestarter.k",
|
||||||
"uro",
|
"uro",
|
||||||
"gam",
|
"gam",
|
||||||
"e.com/pcstarter/prod/game/G143/4/index.json"
|
"e.com/launcher/game/G143/50015_LWdk9D2Ep9mpJmqBZZkcPBU2YNraEWBQ/index.json"
|
||||||
);
|
);
|
||||||
|
|
||||||
impl GameInfo {
|
impl GameInfo {
|
||||||
@ -137,7 +229,9 @@ impl GameInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_resource_base_path(&self) -> String {
|
pub fn get_resource_base_path(&self) -> String {
|
||||||
self.default.resources_base_path.clone()
|
let mut result = self.default.resources_base_path.clone();
|
||||||
|
result.push('/');
|
||||||
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn fetch_resources(&self) -> anyhow::Result<Resources> {
|
pub async fn fetch_resources(&self) -> anyhow::Result<Resources> {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user