mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-16 06:44:41 +01:00
Initial commit
This commit is contained in:
198
sdk_server/controllers/dispatch_controller.py
Normal file
198
sdk_server/controllers/dispatch_controller.py
Normal file
@@ -0,0 +1,198 @@
|
||||
from game_server.config import *
|
||||
|
||||
dispatch_blueprint = Blueprint('dispatch', __name__)
|
||||
|
||||
@dispatch_blueprint.route('/query_dispatch', methods=['GET'])
|
||||
def query_dispatch():
|
||||
version = request.args.get('version')
|
||||
response_data = {
|
||||
'retcode': 0,
|
||||
'region_list': [{
|
||||
'retcode': 0,
|
||||
'dispatch_url': f"http://{Config.GameServer.Ip}/query_gateway",
|
||||
'name': Config.RegionName,
|
||||
'title': "",
|
||||
'ext': get_ext(version)
|
||||
}]
|
||||
}
|
||||
return jsonify(response_data)
|
||||
|
||||
@dispatch_blueprint.route('/query_gateway', methods=['GET'])
|
||||
def query_gateway():
|
||||
version = request.args.get('version')
|
||||
gameserver = {
|
||||
'ip': Config.GameServer.Ip,
|
||||
'port': Config.GameServer.Port
|
||||
}
|
||||
|
||||
response_data = {
|
||||
'retcode': 0,
|
||||
'msg': "",
|
||||
'region_name': Config.RegionName,
|
||||
'account_url': f"http://{Config.GameServer.Ip}/account",
|
||||
'account_url_backup': f"http://{Config.GameServer.Ip}/account",
|
||||
'asset_bundle_url_list': get_asset_bundle_url_list(version),
|
||||
'ex_audio_and_video_url_list': get_ex_audio_and_video_url_list(version),
|
||||
'ex_resource_url_list': get_ex_resource_url_list(version),
|
||||
'ext': get_ext(version),
|
||||
'gameserver': gameserver,
|
||||
'gateway': gameserver,
|
||||
'is_data_ready': True,
|
||||
'oaserver_url': f"http://{Config.GameServer.Ip}/oaserver",
|
||||
'server_cur_time': int(time.time()),
|
||||
'server_cur_timezone': 8,
|
||||
'server_ext': {
|
||||
'cdkey_url': f"http://{Config.GameServer.Ip}/common",
|
||||
'mihoyo_sdk_env': "2"
|
||||
}
|
||||
}
|
||||
|
||||
return jsonify(response_data)
|
||||
|
||||
def get_ext(version):
|
||||
return {
|
||||
'ai_use_asset_bundle': "0" if Config.UseLocalCache else "1",
|
||||
'apm_log_level': "0",
|
||||
'apm_log_dest': "2",
|
||||
'apm_switch': "0",
|
||||
'apm_switch_game_log': "1",
|
||||
'apm_switch_crash': "1",
|
||||
'block_error_dialog': "1",
|
||||
'elevator_model_path': "GameEntry/EVA/StartLoading_Model",
|
||||
'data_use_asset_bundle': "1",
|
||||
'enable_watermark': "1",
|
||||
'ex_audio_and_video_url_list': get_ex_audio_and_video_url_list(version),
|
||||
'ex_res_buff_size': "10485760",
|
||||
'ex_res_pre_publish': "0",
|
||||
'ex_res_use_http': "1",
|
||||
'ex_resource_url_list': get_ex_resource_url_list(version),
|
||||
'is_xxxx': "0",
|
||||
'mtp_switch': "0",
|
||||
'network_feedback_enable': "0",
|
||||
'offline_report_switch': "0",
|
||||
'forbid_recharge': "1",
|
||||
'is_checksum_off': "0" if Config.UseLocalCache else "1",
|
||||
'res_use_asset_bundle': "1",
|
||||
'show_version_text': "0",
|
||||
'update_streaming_asb': "0",
|
||||
'use_multy_cdn': "1",
|
||||
'show_bulletin_button': "1",
|
||||
'show_bulletin_empty_dialog_bg': "0"
|
||||
}
|
||||
|
||||
def get_asset_bundle_url_list(version):
|
||||
# Compile the regex pattern
|
||||
regex = re.compile(r"^(.*?)_(os|gf|global)_(.*?)$")
|
||||
match = regex.match(version)
|
||||
value = match.group(2)
|
||||
if Config.UseLocalCache:
|
||||
return get_local_url_list(value, version)
|
||||
# Proceed if there's a match
|
||||
if match:
|
||||
# Return URLs based on the OS type
|
||||
if value == "os":
|
||||
return [
|
||||
"https://bundle-aliyun-os.honkaiimpact3.com/asset_bundle/overseas01/1.1",
|
||||
"https://hk-bundle-os-mihayo.akamaized.net/asset_bundle/overseas01/1.1"
|
||||
]
|
||||
elif value == "gf":
|
||||
if "beta" in version:
|
||||
return [
|
||||
"https://autopatchbeta.bh3.com/asset_bundle/beta_release/1.0",
|
||||
"https://autopatchbeta.bh3.com/asset_bundle/beta_release/1.0"
|
||||
]
|
||||
return [
|
||||
"https://bundle-qcloud.bh3.com/asset_bundle/android01/1.0",
|
||||
"https://bundle.bh3.com/asset_bundle/android01/1.0"
|
||||
]
|
||||
elif value == "global":
|
||||
return [
|
||||
"http://hk-bundle-west-mihayo.akamaized.net/asset_bundle/usa01/1.1",
|
||||
"http://bundle-aliyun-usa.honkaiimpact3.com/asset_bundle/usa01/1.1"
|
||||
]
|
||||
else:
|
||||
return [
|
||||
"https://bundle-aliyun-os.honkaiimpact3.com/asset_bundle/overseas01/1.1",
|
||||
"https://hk-bundle-os-mihayo.akamaized.net/asset_bundle/overseas01/1.1"
|
||||
]
|
||||
return []
|
||||
|
||||
def get_ex_audio_and_video_url_list(version):
|
||||
# Compile the regex pattern
|
||||
regex = re.compile(r"^(.*?)_(os|gf|global)_(.*?)$")
|
||||
match = regex.match(version)
|
||||
value = match.group(2)
|
||||
if Config.UseLocalCache:
|
||||
return get_local_url_list(value, version)
|
||||
if match:
|
||||
# Return URLs based on the OS type
|
||||
if value == "os":
|
||||
return [
|
||||
"bigfile-aliyun-os.honkaiimpact3.com/com.miHoYo.bh3oversea",
|
||||
"hk-bigfile-os-mihayo.akamaized.net/com.miHoYo.bh3oversea"
|
||||
]
|
||||
elif value == "gf":
|
||||
if "beta" in version:
|
||||
return [
|
||||
"autopatchbeta.bh3.com/tmp/CGAudio",
|
||||
"autopatchbeta.bh3.com/tmp/CGAudio"
|
||||
]
|
||||
return [
|
||||
"bh3rd-beta-qcloud.bh3.com/tmp/CGAudio",
|
||||
"bh3rd-beta.bh3.com/tmp/CGAudio"
|
||||
]
|
||||
elif value == "global":
|
||||
return [
|
||||
"bh3rd-beta-qcloud.bh3.com/tmp/CGAudio",
|
||||
"bh3rd-beta.bh3.com/tmp/CGAudio"
|
||||
]
|
||||
else:
|
||||
return [
|
||||
"bh3rd-beta-qcloud.bh3.com/tmp/CGAudio",
|
||||
"bh3rd-beta.bh3.com/tmp/CGAudio"
|
||||
]
|
||||
return []
|
||||
|
||||
def get_ex_resource_url_list(version):
|
||||
# Compile the regex pattern
|
||||
regex = re.compile(r"^(.*?)_(os|gf|global)_(.*?)$")
|
||||
match = regex.match(version)
|
||||
value = match.group(2)
|
||||
if Config.UseLocalCache:
|
||||
return get_local_url_list(value, version)
|
||||
# Proceed if there's a match
|
||||
if match:
|
||||
# Return URLs based on the OS type
|
||||
if value == "os":
|
||||
return [
|
||||
"bigfile-aliyun-os.honkaiimpact3.com/com.miHoYo.bh3oversea",
|
||||
"hk-bigfile-os-mihayo.akamaized.net/com.miHoYo.bh3oversea"
|
||||
]
|
||||
elif value == "gf":
|
||||
if "beta" in version:
|
||||
return [
|
||||
"autopatchbeta.bh3.com/tmp/beta",
|
||||
"autopatchbeta.bh3.com/tmp/beta"
|
||||
]
|
||||
return [
|
||||
"bundle-qcloud.bh3.com/tmp/Original",
|
||||
"bundle.bh3.com/tmp/Original"
|
||||
]
|
||||
elif value == "global":
|
||||
return [
|
||||
"hk-bundle-west-mihayo.akamaized.net/tmp/com.miHoYo.bh3global",
|
||||
"bigfile-aliyun-usa.honkaiimpact3.com/tmp/com.miHoYo.bh3global"
|
||||
]
|
||||
else:
|
||||
return [
|
||||
"bigfile-aliyun-os.honkaiimpact3.com/com.miHoYo.bh3oversea",
|
||||
"hk-bigfile-os-mihayo.akamaized.net/com.miHoYo.bh3oversea"
|
||||
]
|
||||
return []
|
||||
|
||||
def get_local_url_list(type, version):
|
||||
return [
|
||||
f"http://{Config.GameServer.Ip}/statics/{type}/{version.replace('.', '_')}",
|
||||
f"http://{Config.GameServer.Ip}/statics/{type}/{version.replace('.', '_')}"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user