From 4076a3b1b87f80967a686de193c370e79f3a04a6 Mon Sep 17 00:00:00 2001 From: ye4241 <6803102+ye4241@users.noreply.github.com> Date: Sat, 11 Nov 2023 12:19:47 +0800 Subject: [PATCH] Fix fallback build number retrieval (#596) --- discord/utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/discord/utils.py b/discord/utils.py index ce671004f..1366b52ef 100644 --- a/discord/utils.py +++ b/discord/utils.py @@ -1473,17 +1473,18 @@ async def _get_info(session: ClientSession) -> Tuple[Dict[str, Any], str]: async def _get_build_number(session: ClientSession) -> int: # Thank you Discord-S.C.U.M """Fetches client build number""" + default_build_number = 9999 try: login_page_request = await session.get('https://discord.com/login', timeout=7) login_page = await login_page_request.text() build_url = 'https://discord.com/assets/' + re.compile(r'assets/+([a-z0-9]+)\.js').findall(login_page)[-2] + '.js' build_request = await session.get(build_url, timeout=7) build_file = await build_request.text() - build_index = build_file.find('buildNumber') + 24 - return int(build_file[build_index : build_index + 6]) + build_find = re.findall(r'Build Number:\D+"(\d+)"', build_file) + return int(build_find[0]) if build_find else default_build_number except asyncio.TimeoutError: _log.critical('Could not fetch client build number. Falling back to hardcoded value...') - return 9999 + return default_build_number async def _get_user_agent(session: ClientSession) -> str: