shamhi / HamsterKombatBot

Bot that mines coins in HamsterKombat
Apache License 2.0
438 stars 131 forks source link

Unknown error while getting Access Token: 500 #210

Closed wrntic closed 3 weeks ago

wrntic commented 3 weeks ago

Целый день вылазит такая ошибка, хотя в прошлые дни все было хорошо. С телефона в игру заходит спокойно

Unknown error while getting Access Token: 500, message='Internal Server Error', url=URL('https://api.hamsterkombat.io/auth/auth-by-telegram-webapp') | Response text: Couchbase error! Method=upsert(id=Айпи, data={"ip":"Айпи"}) Collection=default._default.ip_info Error=AmbiguousTimeoutError: ambiguous timeout...

Mik-chan commented 3 weeks ago

С телефона заходит по причине, что клиент кеширует токен, а этот бот его запрашивает почти для каждого клика по новой

XPacL commented 3 weeks ago

Висят сервера хомы други мои. Ждите

ahrorbeksoft commented 3 weeks ago

С телефона заходит по причине, что клиент кеширует токен, а этот бот его запрашивает почти для каждого клика по новой

okay, if u insist:

async def login(self, http_client: aiohttp.ClientSession, tg_web_data: str) -> str:
        if os.path.isfile(f"tokens/{self.session_name}"):
            access_token = open(f"tokens/{self.session_name}", "r").read()
        else:
            response_text = ""
            try:
                response = await http_client.post(
                    url="https://api.hamsterkombat.io/auth/auth-by-telegram-webapp",
                    json={"initDataRaw": tg_web_data, "fingerprint": FINGERPRINT},
                )
                response_text = await response.text()
                response.raise_for_status()

                response_json = await response.json()
                access_token = response_json["authToken"]
                if os.path.isdir("tokens") is False:
                    os.mkdir("tokens")
                with open(f"tokens/{self.session_name}", "w") as f:
                    f.write(access_token)

                return access_token

            except Exception as error:
                logger.error(
                    f"{self.session_name} | Unknown error while getting Access Token: {error} | "
                    f"Response text: {escape_html(response_text)}..."
                )

                await asyncio.sleep(delay=30)

        return access_token
Sanlovty commented 3 weeks ago

С телефона заходит по причине, что клиент кеширует токен, а этот бот его запрашивает почти для каждого клика по новой

Login function triggered only in 2 cases:

This 500 response issue is related to the server side only. We don't close sessions and don't need to re-request tokens. Storing the token between bot launches may not be necessary. Am I misunderstanding something?

ButCheR-PRO commented 3 weeks ago

Дубликат https://github.com/shamhi/HamsterKombatBot/issues/189