diff --git a/channel.py b/channel.py index 3a55c7a..3672bed 100644 --- a/channel.py +++ b/channel.py @@ -133,7 +133,6 @@ class Channel: self.id: int = int(id) self._login: str = login self._display_name: str | None = display_name - self.points: int | None = None self._stream: Stream | None = None self._pending_stream_up: asyncio.Task[Any] | None = None # ACL-based channels are: @@ -355,26 +354,6 @@ class Channel: if needs_display: self.display() - async def claim_bonus(self): - """ - This claims bonus points if they're available, and fills out the 'points' attribute. - """ - response: JsonType = await self._twitch.gql_request( - GQL_OPERATIONS["ChannelPointsContext"].with_variables({"channelLogin": self._login}) - ) - channel_data: JsonType = response["data"]["community"]["channel"] - self.points = channel_data["self"]["communityPoints"]["balance"] - claim_available: JsonType = ( - channel_data["self"]["communityPoints"]["availableClaim"] - ) - if claim_available: - await self._twitch.claim_points(channel_data["id"], claim_available["id"]) - logger.info("Claimed bonus points") - else: - # calling 'claim_points' is going to refresh the display via the websocket payload, - # so if we're not calling it, we need to do it ourselves - self.display() - async def send_watch(self) -> bool: """ This performs a HEAD request on the stream's current playlist, diff --git a/constants.py b/constants.py index 5699657..56a2375 100644 --- a/constants.py +++ b/constants.py @@ -113,7 +113,7 @@ URLType = NewType("URLType", str) TopicProcess: TypeAlias = "abc.Callable[[int, JsonType], Any]" # Values MAX_INT = sys.maxsize -BASE_TOPICS = 3 +BASE_TOPICS = 2 MAX_WEBSOCKETS = 8 WS_TOPICS_LIMIT = 50 TOPICS_PER_CHANNEL = 2 diff --git a/gui.py b/gui.py index 5d427ce..740228a 100644 --- a/gui.py +++ b/gui.py @@ -820,7 +820,6 @@ class ConsoleOutput: class _Buttons(TypedDict): frame: ttk.Frame switch: ttk.Button - load_points: ttk.Button class ChannelList: @@ -841,13 +840,9 @@ class ChannelList: state="disabled", command=manager._twitch.state_change(State.CHANNEL_SWITCH), ), - "load_points": ttk.Button( - buttons_frame, text=_("gui", "channels", "load_points"), command=self._load_points - ), } buttons_frame.grid(column=0, row=0, columnspan=2) self._buttons["switch"].grid(column=0, row=0) - self._buttons["load_points"].grid(column=1, row=0) scroll = ttk.Scrollbar(frame, orient="vertical") self._table = table = ttk.Treeview( frame, @@ -880,9 +875,6 @@ class ChannelList: self._add_column( "viewers", _("gui", "channels", "headings", "viewers"), width_template="1234567" ) - self._add_column( - "points", _("gui", "channels", "headings", "points"), width_template="1234567" - ) self._add_column("acl_base", "📋", width_template="✔") self._channel_map: dict[str, Channel] = {} @@ -937,11 +929,6 @@ class ChannelList: else: self._buttons["switch"].config(state="disabled") - def _load_points(self): - # disable the button afterwards - self._buttons["load_points"].config(state="disabled") - asyncio.gather(*(ch.claim_bonus() for ch in self._manager._twitch.channels.values())) - def _measure(self, text: str) -> int: # we need this because columns have 9-10 pixels of padding that cuts text off return self._font.measure(text) + 10 @@ -1038,18 +1025,12 @@ class ChannelList: viewers = '' if channel.viewers is not None: viewers = str(channel.viewers) - # points - points = '' - if channel.points is not None: - points = str(channel.points) if iid in self._channel_map: self._set(iid, "game", game) self._set(iid, "drops", drops) self._set(iid, "status", status) self._set(iid, "viewers", viewers) self._set(iid, "acl_base", acl_based) - if points != '': # we still want to display 0 - self._set(iid, "points", points) elif add: self._channel_map[iid] = channel self._insert( @@ -1057,7 +1038,6 @@ class ChannelList: { "game": game, "drops": drops, - "points": points, "status": status, "viewers": viewers, "acl_base": acl_based, @@ -2320,7 +2300,6 @@ if __name__ == "__main__": game: str | None, drops: bool, viewers: int, - points: int, acl_based: bool, ): # status: 0 -> OFFLINE, 1 -> PENDING_ONLINE, 2 -> ONLINE @@ -2337,7 +2316,6 @@ if __name__ == "__main__": return SimpleNamespace( name=name, iid=(iid := iid + 1), - points=points, online=bool(status), pending_online=pending, game=game_obj, @@ -2374,7 +2352,7 @@ if __name__ == "__main__": expired=False, active=False, upcoming=True, - linked=False, + eligible=False, finished=False, link_url="https://google.com", image_url="https://static-cdn.jtvnw.net/ttv-boxart/460630-285x380.jpg", @@ -2449,13 +2427,12 @@ if __name__ == "__main__": game=None, drops=False, viewers=0, - points=0, acl_based=True, ), add=True, ) channel = create_channel( - name="Traitus", status=1, game=None, drops=False, viewers=0, points=0, acl_based=True + name="Traitus", status=1, game=None, drops=False, viewers=0, acl_based=True ) gui.channels.display(channel, add=True) gui.channels.set_watching(channel) @@ -2466,7 +2443,6 @@ if __name__ == "__main__": game="Best Game", drops=True, viewers=42, - points=1234567, acl_based=False, ), add=True, @@ -2478,7 +2454,6 @@ if __name__ == "__main__": game="Best Game", drops=True, viewers=69, - points=1234567, acl_based=False, ), add=True, diff --git a/lang/Dansk.json b/lang/Dansk.json index 5d64178..cab0cc3 100644 --- a/lang/Dansk.json +++ b/lang/Dansk.json @@ -6,8 +6,6 @@ "goes_online": "{channel} går ONLINE, skifter...", "goes_offline": "{channel} går OFFLINE, skifter...", "claimed_drop": "Hentet belønning: {drop}", - "claimed_points": "Hentet ekstra points: {points}", - "earned_points": "Optjente point for at se: {points}, Total: {balance}", "no_channel": "Ingen tilgængelige kanaler at se. Venter på en ONLINE kanal...", "no_campaign": "Der er ingen aktive kampagner at hente. Venter på en aktiv kampagne..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Kanaler", "switch": "Skift", - "load_points": "Indlæs Points", "online": "ONLINE \u2714", "pending": "OFFLINE \u23f3", "offline": "OFFLINE \u274c", @@ -100,8 +97,7 @@ "channel": "Kanal", "status": "Status", "game": "Spil", - "viewers": "Seere", - "points": "Points" + "viewers": "Seere" } }, "inventory": { diff --git a/lang/Deutsch.json b/lang/Deutsch.json index 3b7fe09..3b09b06 100644 --- a/lang/Deutsch.json +++ b/lang/Deutsch.json @@ -6,8 +6,6 @@ "goes_online": "{channel} ist ONLINE gegangen, wechseln...", "goes_offline": "{channel} ist OFFLINE gegangen, wechseln...", "claimed_drop": "Drop abgeholt: {drop}", - "claimed_points": "Kanal-Punkte verdient: {points}", - "earned_points": "Verdiente Kanal-Punkte fürs zuschauen: {points} | Summe: {balance}", "no_channel": "Keine teilnehmenden Kanäle online. Warten auf Kanäle...", "no_campaign": "Keine aktiven Kampagnen verfügbar. Warten auf neue Kampagne..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Kanäle", "switch": "Wechseln", - "load_points": "Lade Punkte", "online": "ONLINE ✔", "pending": "OFFLINE ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "Kanal", "status": "Status", "game": "Spiel", - "viewers": "Zuschauer", - "points": "Punkte" + "viewers": "Zuschauer" } }, "inventory": { diff --git a/lang/Español.json b/lang/Español.json index 1fe827f..55bccec 100644 --- a/lang/Español.json +++ b/lang/Español.json @@ -6,8 +6,6 @@ "goes_online": "El canal {channel} se ha conectado, cambiando...", "goes_offline": "El canal {channel} se ha desconectado, cambiando...", "claimed_drop": "Drop reclamado: {drop}", - "claimed_points": "Recompensa de puntos reclamados: {points}", - "earned_points": "Puntos obtenidos por mirar el stream: {points} | Total: {balance}", "no_channel": "No se ha encontrado un canal en vivo para mirar. \nEsperando un canal en vivo...", "no_campaign": "No se ha encontrado una campaña activa. \nEsperando una nueva campaña..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Canales", "switch": "Cambiar", - "load_points": "Cargar Puntos", "online": "ONLINE ✔", "pending": "OFFLINE ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "Canal", "status": "Estado", "game": "Juego", - "viewers": "Espectadores", - "points": "Puntos" + "viewers": "Espectadores" } }, "inventory": { diff --git a/lang/Français.json b/lang/Français.json index 5f532e3..45fe57c 100644 --- a/lang/Français.json +++ b/lang/Français.json @@ -6,8 +6,6 @@ "goes_online": "{channel} passe EN LIGNE, changement...", "goes_offline": "{channel} passe HORS LIGNE, changement...", "claimed_drop": "Drop récupéré : {drop}", - "claimed_points": "Points bonus récupéré : {points}", - "earned_points": "Points gagnés pour avoir regardé : {points}, total : {balance}", "no_channel": "Aucune chaîne disponible à regarder. En attente d'une chaîne EN LIGNE...", "no_campaign": "Aucune campagne active pour laquelle miner des drops. En attente d'une campagne active..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Chaînes", "switch": "Basculer", - "load_points": "Charger des Points", "online": "EN LIGNE ✔", "pending": "HORS LIGNE ⏳", "offline": "HORS LIGNE ❌", @@ -100,8 +97,7 @@ "channel": "Chaîne", "status": "Statut", "game": "Jeu", - "viewers": "Spectateurs", - "points": "Points" + "viewers": "Spectateurs" } }, "inventory": { diff --git a/lang/Indonesian.json b/lang/Indonesian.json index b7ec619..8d7dda0 100644 --- a/lang/Indonesian.json +++ b/lang/Indonesian.json @@ -6,8 +6,6 @@ "goes_online": "{channel} Tiket masuk ONLINE, ganti...", "goes_offline": "{channel} menjadi OFF-LINE, ubah...", "claimed_drop": "Drop dipulihkan : {drop}", - "claimed_points": "Poin bonus yang dipulihkan: {points}", - "earned_points": "Poin yang diperoleh dari menonton : {points}, jumlah : {balance}", "no_channel": "Tidak ada saluran yang tersedia untuk ditonton. Menunggu saluran secara ONLINE...", "no_campaign": "Tidak ada kampanye aktif yang bisa ditambang. Menunggu kampanye aktif..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Saluran", "switch": "Beralih", - "load_points": "Poin Pemuatan", "online": "ONLINE ✔", "pending": "DITUNDA ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "Saluran", "status": "Status", "game": "Game", - "viewers": "Penonton", - "points": "Poin" + "viewers": "Penonton" } }, "inventory": { diff --git a/lang/Italiano.json b/lang/Italiano.json index 9a5abd9..ec670fd 100644 --- a/lang/Italiano.json +++ b/lang/Italiano.json @@ -6,8 +6,6 @@ "goes_online": "{channel} è ONLINE, cambiando...", "goes_offline": "{channel} è OFFLINE, cambiando...", "claimed_drop": "Contenuti riscattati: {drop}", - "claimed_points": "Punti bonus riscattati: {points}", - "earned_points": "Punti bonus guadagnati per aver guardato la stream: {points}, totale: {balance}", "no_channel": "Nessun canale disponibile da guardare. In attesa di un canale ONLINE...", "no_campaign": "Nessuna campagna attiva per ottenere i premi. In attesa di una campagna attiva..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Canali", "switch": "Cambia", - "load_points": "Carica Punti", "online": "ONLINE \u2714", "pending": "OFFLINE \u23f3", "offline": "OFFLINE \u274c", @@ -100,8 +97,7 @@ "channel": "Canale", "status": "Stato", "game": "Gioco", - "viewers": "Spettatori", - "points": "Punti" + "viewers": "Spettatori" } }, "inventory": { diff --git a/lang/Nederlandse.json b/lang/Nederlandse.json index be0b8e1..695e6b3 100644 --- a/lang/Nederlandse.json +++ b/lang/Nederlandse.json @@ -6,8 +6,6 @@ "goes_online": "{channel} is ONLINE gegaan, wijzig...", "goes_offline": "{channel} is OFFLINE gegaan, wijzig...", "claimed_drop": "Drop verkregen: {drop}", - "claimed_points": "Kanaal punten verdient: {points}", - "earned_points": "Verdiende kanaalpunten voor het kijken: {points} | Totaal: {balance}", "no_channel": "Geen deelnemende kanalen online. Wachten op steamers...", "no_campaign": "Geen actieve campagnes beschikbaar. Wachten op nieuwe campagne..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Kanaal", "switch": "Wisselen", - "load_points": "Laad Punten", "online": "ONLINE ✔", "pending": "OFFLINE ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "Kanaal", "status": "Status", "game": "Spel", - "viewers": "Kijkers", - "points": "Punten" + "viewers": "Kijkers" } }, "inventory": { diff --git a/lang/Polski.json b/lang/Polski.json index bda62ac..b36095f 100644 --- a/lang/Polski.json +++ b/lang/Polski.json @@ -6,8 +6,6 @@ "goes_online": "Nowy status kanału {channel}: ONLINE, zmieniam...", "goes_offline": "Nowy status kanału {channel}: OFFLINE, zmieniam...", "claimed_drop": "Odebrano drop: {drop}", - "claimed_points": "Odebrano punkty: {points}", - "earned_points": "Zdobyto punkty za oglądanie: {points} | Łącznie: {balance}", "no_channel": "Brak możliwych kanałów do oglądania. Oczekiwanie na nową kampanię...", "no_campaign": "Brak dostępnych aktywnych kampanii. Oczekiwanie na nową kampanię..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Kanały", "switch": "Zmień", - "load_points": "Załaduj punkty", "online": "ONLINE ✔", "pending": "W TOKU ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "Kanał", "status": "Status", "game": "Gra", - "viewers": "Widzowie", - "points": "Punkty" + "viewers": "Widzowie" } }, "inventory": { diff --git a/lang/Português.json b/lang/Português.json index 2643a51..0c0a9d3 100644 --- a/lang/Português.json +++ b/lang/Português.json @@ -6,8 +6,6 @@ "goes_online": "{channel} esta ONLINE, Mudando...", "goes_offline": "{channel} ficou OFFLINE, Mudando...", "claimed_drop": "Coletou o drop: {drop}", - "claimed_points": "Coletou o bonus: {points}", - "earned_points": "Ganhou este valor de pontos: {points}, total: {balance}", "no_channel": "Sem canal disponivel para assisitir. Esperando por um canal ONLINE...", "no_campaign": "Sem campanhas ativas no momento para minerar. Esperando por uma campanha ativa..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Canais", "switch": "Trocar", - "load_points": "Carregar pontos", "online": "ONLINE \u2714", "pending": "OFFLINE \u23f3", "offline": "OFFLINE \u274c", @@ -100,8 +97,7 @@ "channel": "Canal", "status": "Status", "game": "Jogo", - "viewers": "Visualizadores", - "points": "Pontos" + "viewers": "Visualizadores" } }, "inventory": { diff --git a/lang/Română.json b/lang/Română.json index b4411d0..2d23096 100644 --- a/lang/Română.json +++ b/lang/Română.json @@ -6,8 +6,6 @@ "goes_online": "{channel} intră ONLINE, se schimbă...", "goes_offline": "{channel} intră OFFLINE, se schimbă...", "claimed_drop": "Drop-ul a fost recuperat : {drop}", - "claimed_points": "Puncte bonus colectate : {points}", - "earned_points": "Puncte câștigate pentru vizionare: {points}, totale : {balance}", "no_channel": "Nu există canale disponibile pentru vizionare. În așteptarea unui canal ONLINE...", "no_campaign": "Nu există campanii active pentru a mina drop-uri. În așteptarea unei campanii active..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Canale", "switch": "Schimbă", - "load_points": "Încarcă puncte", "online": "ONLINE ✔", "pending": "OFFLINE ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "Canal", "status": "Statut", "game": "Joc", - "viewers": "Spectatori", - "points": "Puncte" + "viewers": "Spectatori" } }, "inventory": { diff --git a/lang/Türkçe.json b/lang/Türkçe.json index f4c271c..b426a9d 100644 --- a/lang/Türkçe.json +++ b/lang/Türkçe.json @@ -6,8 +6,6 @@ "goes_online": "{channel} ÇEVRİMİÇİ oldu, geçiş yapın...", "goes_offline": "{channel} ÇEVRİMDIŞI duruma geçti, geçiş yapın...", "claimed_drop": "Alınan drop: {drop}", - "claimed_points": "Kazanılan kanal puanları: {points}", - "earned_points": "İzleme karşılığında kazanılan kanal puanları: {points} | Toplam: {balance}", "no_channel": "Çevrimiçi katılımcı kanal yok. Kanallar bekleniyor...", "no_campaign": "Etkin kampanya yok. Yeni kampanya bekleniyor..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Kanallar", "switch": "Değiştir", - "load_points": "Puanları Yükle", "online": "ONLINE ✔", "pending": "OFFLINE ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "Kanal", "status": "Durum", "game": "Oyun", - "viewers": "İzleyici", - "points": "Puan" + "viewers": "İzleyici" } }, "inventory": { diff --git a/lang/Čeština.json b/lang/Čeština.json index a07bb93..7b39c24 100644 --- a/lang/Čeština.json +++ b/lang/Čeština.json @@ -6,8 +6,6 @@ "goes_online": "Kanál {channel} je online, přepínám...", "goes_offline": "Kanál {channel} je offline, přepínám na další...", "claimed_drop": "Drop vyzvednut: {drop}", - "claimed_points": "Vyzvednuto {points} bodů", - "earned_points": "Získáno {points} bodů za sledování. Celkem: {balance}", "no_channel": "Žádný kanál není dostupný, čekání na další...", "no_campaign": "Žádné dropy k dispozici, čekání na další dostupné dropy..." }, @@ -85,14 +83,12 @@ "channels": { "name": "Název", "switch": "Přepnout", - "load_points": "Načíst body", "online": "ONLINE \u2714", "pending": "PRŮBĚH \u23f3", "offline": "OFFLINE \u274c", "headings": { "channel": "Kanál", "game": "Hra", - "points": "Body", "status": "Status", "viewers": "Diváci" } diff --git a/lang/Русский.json b/lang/Русский.json index 9635094..06e158b 100644 --- a/lang/Русский.json +++ b/lang/Русский.json @@ -6,8 +6,6 @@ "goes_online": "Изменение: {channel} онлайн", "goes_offline": "Изменение: {channel} онлайн", "claimed_drop": "Drop получено: {drop}", - "claimed_points": "Получены очки канала: {points}", - "earned_points": "За просмотр начисляются очки канала: {points} | Сумма: {balance}", "no_channel": "Нет участвующих каналов онлайн. Ожидание каналов...", "no_campaign": "Нет участвующих кампаний онлайн. Ожидание кампаний..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Каналы", "switch": "Изменить", - "load_points": "Загрузить баллы", "online": "ОНЛАЙН ✔", "pending": "ОЖИДАНИЕ ⏳", "offline": "ОФЛАЙН ❌", @@ -100,8 +97,7 @@ "channel": "Канал", "status": "Статус", "game": "Игра", - "viewers": "Зрители", - "points": "Баллы" + "viewers": "Зрители" } }, "inventory": { diff --git a/lang/Українська.json b/lang/Українська.json index c9b324c..e0d499c 100644 --- a/lang/Українська.json +++ b/lang/Українська.json @@ -6,8 +6,6 @@ "goes_online": "{channel} онлайн, зміна...", "goes_offline": "{channel} офлайн, зміна...", "claimed_drop": "Отримано дроп: {drop}", - "claimed_points": "Отримано {points} бонусних балів", - "earned_points": "Зароблено {points} балів за перегляд, усього: {balance}", "no_channel": "Немає активних каналів для перегляду. Очікування...", "no_campaign": "Немає активних каналів для видобутку дропів. Очікування..." }, @@ -92,7 +90,6 @@ "channels": { "name": "Канали", "switch": "Перемкнути", - "load_points": "Завантажити бали", "online": "ОНЛАЙН \u2714", "pending": "ОФЛАЙН \u23f3", "offline": "ОФЛАЙН \u274c", @@ -100,8 +97,7 @@ "channel": "Канал", "status": "Стан", "game": "Гра", - "viewers": "Глядачі", - "points": "Бали" + "viewers": "Глядачі" } }, "inventory": { diff --git a/lang/العربية.json b/lang/العربية.json index fa25730..efa0fe5 100644 --- a/lang/العربية.json +++ b/lang/العربية.json @@ -6,8 +6,6 @@ "goes_online": "...اصبح نشط ، تبديل {channel}", "goes_offline": "...اصبح غير نشط ، تبديل {channel}", "claimed_drop": "{drop} :تم الحصول على", - "claimed_points": "تم الحصول على: {points} من النقاط الإضافية", - "earned_points": "تم الحصول على:{points} من نقاط المشاهدة ، الإجمالي: {balance}", "no_channel": "...لا توجد قنوات نشطة متاحة للمشاهدة. في انتظار قناة نشطة", "no_campaign": "...لا توجد حملات نشطة من اجل تنقيب الإسقاطات. في انتظار حملة نشطة" }, @@ -92,7 +90,6 @@ "channels": { "name": "القنوات", "switch": "تبديل", - "load_points": "تحميل النقاط", "online": "\u2714 نشط", "pending": "\u23f3 غير نشط", "offline": "\u274c غير نشط", @@ -100,8 +97,7 @@ "channel": "القناة", "status": "الحالة", "game": "اللعبة", - "viewers": "المشاهدين", - "points": "النقاط" + "viewers": "المشاهدين" } }, "inventory": { diff --git a/lang/日本語.json b/lang/日本語.json index 6f1b7eb..378833d 100644 --- a/lang/日本語.json +++ b/lang/日本語.json @@ -6,8 +6,6 @@ "goes_online": "{channel} がオンラインになりました。切り替え中...", "goes_offline": "{channel} がオフラインになりました。切り替え中...", "claimed_drop": "ドロップを取得しました:{drop}", - "claimed_points": "ボーナスポイントを受け取りました:{points}", - "earned_points": "視聴ポイントを獲得しました:{points}、合計:{balance}", "no_channel": "視聴可能なチャンネルがありません。オンラインになるチャンネルを待機中...", "no_campaign": "マイニングするドロップがないアクティブなキャンペーンはありません。アクティブなキャンペーンを待機中..." }, @@ -92,7 +90,6 @@ "channels": { "name": "チャンネル", "switch": "切り替え", - "load_points": "ポイントを読み込む", "online": "オンライン \u2714", "pending": "オフライン中 \u23f3", "offline": "オフライン \u274c", @@ -100,8 +97,7 @@ "channel": "チャンネル", "status": "ステータス", "game": "ゲーム", - "viewers": "視聴者数", - "points": "ポイント" + "viewers": "視聴者数" } }, "inventory": { diff --git a/lang/简体中文.json b/lang/简体中文.json index b0ea5f1..448d387 100644 --- a/lang/简体中文.json +++ b/lang/简体中文.json @@ -6,8 +6,6 @@ "goes_online": "{channel} 该频道已上线, 正在切换...", "goes_offline": "{channel} 该频道已离线, 正在切换...", "claimed_drop": "已领取掉宝: {drop}", - "claimed_points": "已领取积分奖励: {points}", - "earned_points": "观看直播获得积分: {points}, 总积分: {balance}", "no_channel": "没有可观看的频道,等待一个在线直播频道...", "no_campaign": "没有可用于掉宝的活动,等待一个有效的掉宝活动..." }, @@ -92,7 +90,6 @@ "channels": { "name": "活动频道", "switch": "切换", - "load_points": "加载积分", "online": "ONLINE ✔", "pending": "OFFLINE ⏳", "offline": "OFFLINE ❌", @@ -100,8 +97,7 @@ "channel": "直播频道", "status": "在线状态", "game": "游戏", - "viewers": "观众", - "points": "积分" + "viewers": "观众" } }, "inventory": { diff --git a/lang/繁體中文.json b/lang/繁體中文.json index c744339..6358f4a 100644 --- a/lang/繁體中文.json +++ b/lang/繁體中文.json @@ -6,8 +6,6 @@ "goes_online": "{channel} 頻道已開始實況,正在跳轉…", "goes_offline": "{channel} 頻道已結束實況,正在跳轉…", "claimed_drop": "已領取掉寶:{drop}", - "claimed_points": "已領取積分獎勵:{points}", - "earned_points": "已觀看實況獲得積分:{points},總積分:{balance}", "no_channel": "沒有可觀看的頻道,正在等待一個正在實況的頻道…", "no_campaign": "沒有可用於掉寶的活動,正在等待一個有效的掉寶活動…" }, @@ -92,14 +90,12 @@ "channels": { "name": "活動頻道", "switch": "切換", - "load_points": "載入積分", "online": "上線 \u2714", "pending": "離線 \u23f3", "offline": "離線 \u274c", "headings": { "channel": "頻道", "game": "遊戲", - "points": "積分", "status": "狀態", "viewers": "觀眾" } diff --git a/translate.py b/translate.py index 2d7b8f6..7cc6122 100644 --- a/translate.py +++ b/translate.py @@ -17,8 +17,6 @@ class StatusMessages(TypedDict): goes_online: str goes_offline: str claimed_drop: str - claimed_points: str - earned_points: str no_channel: str no_campaign: str @@ -113,14 +111,12 @@ class GUIChannelHeadings(TypedDict): channel: str status: str game: str - points: str viewers: str class GUIChannels(TypedDict): name: str switch: str - load_points: str online: str pending: str offline: str @@ -230,8 +226,6 @@ default_translation: Translation = { "goes_online": "{channel} goes ONLINE, switching...", "goes_offline": "{channel} goes OFFLINE, switching...", "claimed_drop": "Claimed drop: {drop}", - "claimed_points": "Claimed bonus points: {points}", - "earned_points": "Earned points for watching: {points}, total: {balance}", "no_channel": "No available channels to watch. Waiting for an ONLINE channel...", "no_campaign": "No active campaigns to mine drops for. Waiting for an active campaign...", }, @@ -323,7 +317,6 @@ default_translation: Translation = { "channels": { "name": "Channels", "switch": "Switch", - "load_points": "Load Points", "online": "ONLINE ✔", "pending": "OFFLINE ⏳", "offline": "OFFLINE ❌", @@ -332,7 +325,6 @@ default_translation: Translation = { "status": "Status", "game": "Game", "viewers": "Viewers", - "points": "Points", }, }, "inventory": { diff --git a/twitch.py b/twitch.py index 55139c0..c62eff8 100644 --- a/twitch.py +++ b/twitch.py @@ -613,7 +613,6 @@ class Twitch: # Add default topics self.websocket.add_topics([ WebsocketTopic("User", "Drops", auth_state.user_id, self.process_drops), - WebsocketTopic("User", "CommunityPoints", auth_state.user_id, self.process_points), WebsocketTopic( "User", "Notifications", auth_state.user_id, self.process_notifications ), @@ -937,26 +936,17 @@ class Twitch: @task_wrapper(critical=True) async def _maintenance_task(self) -> None: - claim_period = timedelta(minutes=30) - max_period = timedelta(hours=1) now = datetime.now(timezone.utc) - next_period = now + max_period + next_period = now + timedelta(hours=1) while True: # exit if there's no need to repeat the loop now = datetime.now(timezone.utc) if now >= next_period: break - next_trigger = min(now + claim_period, next_period) - trigger_cleanup = False + next_trigger = next_period while self._mnt_triggers and self._mnt_triggers[0] <= next_trigger: next_trigger = self._mnt_triggers.popleft() - trigger_cleanup = True - if next_trigger == next_period: - trigger_type: str = "Reload" - elif trigger_cleanup: - trigger_type = "Cleanup" - else: - trigger_type = "Points" + trigger_type: str = "Reload" if next_trigger == next_period else "Cleanup" logger.log( CALL, ( @@ -969,16 +959,9 @@ class Twitch: now = datetime.now(timezone.utc) if now >= next_period: break - if trigger_cleanup: + if next_trigger != next_period: logger.log(CALL, "Maintenance task requests channels cleanup") self.change_state(State.CHANNELS_CLEANUP) - # ensure that we don't have unclaimed points bonus - watching_channel = self.watching_channel.get_with_default(None) - if watching_channel is not None: - try: - await watching_channel.claim_bonus() - except Exception: - pass # we intentionally silently skip anything else # this triggers a restart of this task every (up to) 60 minutes logger.log(CALL, "Maintenance task requests a reload") self.change_state(State.INVENTORY_FETCH) @@ -1224,65 +1207,6 @@ class Twitch: ) ) - @task_wrapper - async def process_points(self, user_id: int, message: JsonType): - # Example payloads: - # { - # "type": "points-earned", - # "data": { - # "timestamp": "YYYY-MM-DDTHH:MM:SS.UUUUUUUUUZ", - # "channel_id": "123456789", - # "point_gain": { - # "user_id": "12345678", - # "channel_id": "123456789", - # "total_points": 10, - # "baseline_points": 10, - # "reason_code": "WATCH", - # "multipliers": [] - # }, - # "balance": { - # "user_id": "12345678", - # "channel_id": "123456789", - # "balance": 12345 - # } - # } - # } - # { - # "type": "claim-available", - # "data": { - # "timestamp":"YYYY-MM-DDTHH:MM:SS.UUUUUUUUUZ", - # "claim": { - # "id": "4ae6fefd-1234-40ae-ad3d-92254c576a91", - # "user_id": "12345678", - # "channel_id": "123456789", - # "point_gain": { - # "user_id": "12345678", - # "channel_id": "123456789", - # "total_points": 50, - # "baseline_points": 50, - # "reason_code": "CLAIM", - # "multipliers": [] - # }, - # "created_at": "YYYY-MM-DDTHH:MM:SSZ" - # } - # } - # } - msg_type = message["type"] - if msg_type == "points-earned": - data: JsonType = message["data"] - channel: Channel | None = self.channels.get(int(data["channel_id"])) - points: int = data["point_gain"]["total_points"] - balance: int = data["balance"]["balance"] - if channel is not None: - channel.points = balance - channel.display() - self.print(_("status", "earned_points").format(points=f"{points:3}", balance=balance)) - elif msg_type == "claim-available": - claim_data = message["data"]["claim"] - points = claim_data["point_gain"]["total_points"] - await self.claim_points(claim_data["channel_id"], claim_data["id"]) - self.print(_("status", "claimed_points").format(points=points)) - async def get_auth(self) -> _AuthState: await self._auth_state.validate() return self._auth_state @@ -1617,13 +1541,6 @@ class Twitch: ] return [] - async def claim_points(self, channel_id: str | int, claim_id: str) -> None: - await self.gql_request( - GQL_OPERATIONS["ClaimCommunityPoints"].with_variables( - {"input": {"channelID": str(channel_id), "claimID": claim_id}} - ) - ) - async def bulk_check_online(self, channels: abc.Iterable[Channel]): """ Utilize batch GQL requests to check ONLINE status for a lot of channels at once.