Skip to content

Commit

Permalink
Version 0.5.18
Browse files Browse the repository at this point in the history
abcache.fs: Fix read EOF errors (#17)
abcache: Fix KR server AssetBundle URL (#17)
auth: Remove ByteDance server support
  • Loading branch information
mos9527 committed Jan 20, 2025
1 parent 8232d49 commit 04ad8a8
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 138 deletions.
2 changes: 0 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"F:\\Sekai\\live_pv\\mv_data",
"C:\\Users\\Huang\\Desktop\\mv_data.json"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion sssekai/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
__VERSION_MAJOR__ = 0
__VERSION_MINOR__ = 5
__VERSION_PATCH__ = 17
__VERSION_PATCH__ = 18

__version_tuple__ = (__VERSION_MAJOR__, __VERSION_MINOR__, __VERSION_PATCH__)
__version__ = "%s.%s.%s" % __version_tuple__
2 changes: 1 addition & 1 deletion sssekai/abcache/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ def SEKAI_AB_ENDPOINT(self):
case "tw": # NOTE: Android only
return f"https://lf16-mkovscdn-sg.bytedgame.com/obj/sf-game-alisg/gdl_app_5245/AssetBundle/{self.config.app_version}/Release/online/android1/"
case "kr": # NOTE: Android only
return f"https://lf16-mkkr.bytedgame.com/obj/sf-game-alisg/gdl_app_292248/AssetBundle/{self.config.app_version}/Release/kr_online/android4/"
return f"https://lf16-mkkr.bytedgame.com/obj/sf-game-alisg/gdl_app_292248/AssetBundle/{self.config.app_version}/Release/kr_online/android1/"
case "cn": # NOTE: Android only
return f"https://lf3-j1gamecdn-cn.dailygn.com/obj/sf-game-lf/gdl_app_5236/AssetBundle/{self.config.app_version}/Release/cn_online/android1/"
case _:
Expand Down
128 changes: 0 additions & 128 deletions sssekai/abcache/auth.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from . import AbCache, AbCacheConfig
from logging import getLogger
import json

logger = getLogger(__name__)

Expand All @@ -20,130 +19,3 @@ def set_anoymous_acc_sega(config: AbCacheConfig):
config.auth_credential = data["credential"]
logger.info("Success. User ID=%s" % config.auth_userID)
return config


AUTH_CONFIG_BYTEDANCE_TW = {
"aid": 5245,
"app_name": "pjsk_oversea",
"app_package": "com.hermes.mk.asia",
"sdk_app_id": 1782,
"game_id": 5245,
}


def _generate_device_id():
import uuid

uid = uuid.uuid1().bytes[8:]
uid = int.from_bytes(uid, "little")
uid = str(uid).ljust(19, "0")
return uid[:19]


__device_id = _generate_device_id()


def __gen_bytedance_headers(config: AbCacheConfig):
auth_config = dict()
match config.app_region:
case "tw":
auth_config = AUTH_CONFIG_BYTEDANCE_TW
case _:
raise NotImplementedError("Region not supported")
return {
"device_id": __device_id,
"channel": "GooglePlay",
"os": config.app_platform.lower(),
**auth_config,
}


def acc_logout_bytedance(config: AbCacheConfig, token: str):
logger.info("Logging out from ByteDance servers")

with AbCache(config) as session:
params = __gen_bytedance_headers(config)
params |= {
"login_type": "home",
"user_type": 1,
"iid": __device_id,
}
resp = session.request(
"POST",
"https://gsdk-sg.bytegsdk.com/gsdk/account/logout",
params=params,
data={
"device_id": __device_id,
"token": token,
"channel_id": "bsdkintl",
},
headers={
"content-type": "application/x-www-form-urlencoded; charset=UTF-8"
},
)
resp.raise_for_status()
logger.info("Success. Token was=%s" % token)


def set_acc_bytedance(config: AbCacheConfig, user_id: str, token: str):
logger.info("Logging into ByteDance servers")

with AbCache(config) as session:
params = __gen_bytedance_headers(config)
params |= {
"login_type": "home",
"user_type": 1,
"iid": __device_id,
}
resp = session.request(
"POST",
"https://gsdk-sg.bytegsdk.com/gsdk/account/login",
params=params,
data={
"device_id": __device_id,
"data": json.dumps({"user_id": str(user_id), "token": token}),
"channel_id": "bsdkintl",
},
headers={
"content-type": "application/x-www-form-urlencoded; charset=UTF-8"
},
)
resp.raise_for_status()
data = resp.json()
if "data" in data:
data = data["data"]
logger.info("Success. AccessToken=%s" % data["access_token"])
config.auth_userID = user_id
config.auth_credential = data["access_token"]
return config
else:
raise Exception("Failed to register user data: %s" % resp.text)


def set_anoymous_acc_bytedance(config: AbCacheConfig):
logger.info("Registering user data")

with AbCache(config) as session:
params = __gen_bytedance_headers(config)
params |= {
"login_type": "home",
"user_type": 1,
"ui_flag": 1,
"is_create": 0,
}
resp = session.request(
"POST",
"https://gsdk-sg.bytegsdk.com/sdk/account/visitor_login",
params=params,
)
resp.raise_for_status()
data = resp.json()
if "data" in data:
data = data["data"]
logger.info(
"Success. User =ID=%s, Token=%s" % (data["user_id"], data["token"])
)
acc_logout_bytedance(config, data["token"])
return set_acc_bytedance(config, data["user_id"], data["token"])
else:
raise Exception("Failed to register user data: %s" % resp.text)
1 change: 1 addition & 0 deletions sssekai/abcache/fs.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ def __init__(self, fs, bundle: str, block_size=None):
def __resp(self) -> Response:
url = self.session.get_entry_download_url(self.entry)
resp = self.session.get(url, stream=True)
resp.raise_for_status()
return resp

@cached_property
Expand Down
9 changes: 3 additions & 6 deletions sssekai/entrypoint/abcache.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,12 +97,9 @@ def main_abcache(args):
config = set_anoymous_acc_sega(config)
else:
if args.dump_user_data:
# Otherwise not required
from sssekai.abcache.auth import set_anoymous_acc_bytedance

logger.info("Registering as anonymous user on ByteDance servers")
config = set_anoymous_acc_bytedance(config)
pass
raise NotImplementedError(
"Anonymous user registration is not supported on ROW servers"
)

cache = AbCache(config)
if args.dump_master_data:
Expand Down

0 comments on commit 04ad8a8

Please sign in to comment.