diff --git a/docker/start.sh b/docker/start.sh index 72b2f26..0c1cc4a 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -17,4 +17,12 @@ imports=$([ "$DISABLE_IMPORTS" = "true" ] && echo "--disable-imports" || echo "" exports=$([ "$DISABLE_EXPORTS" = "true" ] && echo "--disable-exports" || echo "") -/root/ew/ew --path $directory --port $port --npps4 $npps4 $exports $imports $purge $hidden $https --global-android "$ANDROID_GLOBAL" --japan-android "$ANDROID_JAPAN" --global-ios "$IOS_GLOBAL" --japan-ios "$IOS_JAPAN" --assets-url "$ASSET_URL" --max-time $maxTime +asset_android_jp=$([ "$JP_ANDROID_ASSET_HASH" != "" ] && echo "--jp-android-asset-hash $JP_ANDROID_ASSET_HASH" || echo "") + +asset_ios_jp=$([ "$JP_IOS_ASSET_HASH" != "" ] && echo "--jp-ios-asset-hash $JP_IOS_ASSET_HASH" || echo "") + +asset_android_en=$([ "$EN_ANDROID_ASSET_HASH" != "" ] && echo "--en-android-asset-hash $EN_ANDROID_ASSET_HASH" || echo "") + +asset_ios_en=$([ "$EN_IOS_ASSET_HASH" != "" ] && echo "--en-ios-asset-hash $EN_IOS_ASSET_HASH" || echo "") + +/root/ew/ew --path $directory --port $port --npps4 $npps4 $asset_android_jp $asset_ios_jp $asset_android_en $asset_ios_en $exports $imports $purge $hidden $https --global-android "$ANDROID_GLOBAL" --japan-android "$ANDROID_JAPAN" --global-ios "$IOS_GLOBAL" --japan-ios "$IOS_JAPAN" --assets-url "$ASSET_URL" --max-time $maxTime diff --git a/src/main.rs b/src/main.rs index 35178fe..ec10c24 100644 --- a/src/main.rs +++ b/src/main.rs @@ -77,7 +77,19 @@ pub struct Args { disable_imports: bool, #[arg(long, default_value_t = false, help = "Disable user account exports")] - disable_exports: bool + disable_exports: bool, + + #[arg(long, default_value = "", help = "Asset hash for English iOS client.")] + en_ios_asset_hash: String, + + #[arg(long, default_value = "", help = "Asset hash for JP iOS client.")] + jp_ios_asset_hash: String, + + #[arg(long, default_value = "", help = "Asset hash for English Android client.")] + en_android_asset_hash: String, + + #[arg(long, default_value = "", help = "Asset hash for JP Android client.")] + jp_android_asset_hash: String } #[actix_web::main] diff --git a/src/router/global.rs b/src/router/global.rs index cc2320a..8d96865 100644 --- a/src/router/global.rs +++ b/src/router/global.rs @@ -18,6 +18,37 @@ pub const ASSET_VERSION_JP: &str = "4c921d2443335e574a82e04ec9ea243c"; pub const ASSET_HASH_ANDROID_JP: &str = "67f8f261c16b3cca63e520a25aad6c1c"; pub const ASSET_HASH_IOS_JP: &str = "b8975be8300013a168d061d3fdcd4a16"; +pub fn get_asset_hash(asset_version: String, android: bool) -> String { + let args = crate::get_args(); + if asset_version == ASSET_VERSION_JP { + if android { + if args.jp_android_asset_hash != String::new() { + args.jp_android_asset_hash + } else { + ASSET_HASH_ANDROID_JP.to_string() + } + } else { + if args.jp_ios_asset_hash != String::new() { + args.jp_ios_asset_hash + } else { + ASSET_HASH_IOS_JP.to_string() + } + } + } else if android { + if args.en_android_asset_hash != String::new() { + args.en_android_asset_hash + } else { + ASSET_HASH_ANDROID.to_string() + } + } else { + if args.en_ios_asset_hash != String::new() { + args.en_ios_asset_hash + } else { + ASSET_HASH_IOS.to_string() + } + } +} + pub fn create_token() -> String { format!("{}", Uuid::now_v7()) } diff --git a/src/router/start.rs b/src/router/start.rs index d111c4e..9d55ba7 100644 --- a/src/router/start.rs +++ b/src/router/start.rs @@ -13,18 +13,7 @@ fn get_asset_hash(req: &HttpRequest, body: &JsonValue) -> String { let platform = req.headers().get("aoharu-platform").unwrap_or(&blank_header).to_str().unwrap_or(""); let android = !platform.to_lowercase().contains("iphone"); - let hash = if body["asset_version"] == global::ASSET_VERSION_JP { - if android { - global::ASSET_HASH_ANDROID_JP - } else { - global::ASSET_HASH_IOS_JP - } - } else if android { - global::ASSET_HASH_ANDROID - } else { - global::ASSET_HASH_IOS - }; - hash.to_string() + global::get_asset_hash(body["asset_version"].to_string(), android) } pub fn asset_hash(req: HttpRequest, body: String) -> Option {