Make the GQL claim operation treat request errors as a failed claiming operation

This commit is contained in:
DevilXD committed 2024-12-30 22:20:24 +01:00
1 parent 99359a7a69
commit 1dac01b141
2 files changed
+7 -1

No files matched your search

+6
View File
@@ -8,6 +8,7 @@ from functools import cached_property
from datetime import datetime, timedelta, timezone
from channel import Channel
from exceptions import GQLException
from constants import GQL_OPERATIONS, URLType
from utils import timestamp, invalidate_cache, Game
@@ -155,11 +156,16 @@ class BaseDrop:
return True
if not self.can_claim:
return False
try:
response = await self._twitch.gql_request(
GQL_OPERATIONS["ClaimDrop"].with_variables(
{"input": {"dropInstanceID": self.claim_id}}
)
)
except GQLException:
# regardless of the error, we have to assume
# the claiming operation has potentially failed
return False
data = response["data"]
if "errors" in data and data["errors"]:
return False
+1 -1
View File
@@ -1179,7 +1179,7 @@ class Twitch:
self.print(_("status", "claimed_drop").format(drop=claim_text.replace('\n', ' ')))
self.gui.tray.notify(claim_text, _("gui", "tray", "notification_title"))
else:
logger.error(f"Drop claim failed! Drop ID: {drop_id}")
logger.error(f"Drop claim has potentially failed! Drop ID: {drop_id}")
# About 4-20s after claiming the drop, next drop can be started
# by re-sending the watch payload. We can test for it by fetching the current drop
# via GQL, and then comparing drop IDs.