Add ability to supply custom asset hash

This commit is contained in:
Ethan O'Brien 2024-11-17 21:44:37 -06:00
parent 8bc07a6419
commit 643af93e6d
4 changed files with 54 additions and 14 deletions

View file

@ -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

View file

@ -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]

View file

@ -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())
}

View file

@ -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<JsonValue> {