Stage 07.3.5 — WebSocket Probe + REST Fallback
This commit is contained in:
@@ -67,6 +67,32 @@ class ScreenRegistry:
|
||||
]
|
||||
|
||||
screens.append(static_screen)
|
||||
|
||||
# удалить конкретное сообщение из всех статичных экранов без удаления из Telegram
|
||||
@classmethod
|
||||
def unregister_message(
|
||||
cls,
|
||||
*,
|
||||
chat_id: int,
|
||||
message_id: int,
|
||||
) -> None:
|
||||
empty_screens: list[str] = []
|
||||
|
||||
for screen, screens in cls._screens.items():
|
||||
screens[:] = [
|
||||
item
|
||||
for item in screens
|
||||
if not (
|
||||
item.chat_id == chat_id
|
||||
and item.message_id == message_id
|
||||
)
|
||||
]
|
||||
|
||||
if not screens:
|
||||
empty_screens.append(screen)
|
||||
|
||||
for screen in empty_screens:
|
||||
cls._screens.pop(screen, None)
|
||||
|
||||
# удалить старые статичные экраны указанного типа
|
||||
@classmethod
|
||||
@@ -118,6 +144,32 @@ class LiveScreenRunner:
|
||||
]
|
||||
|
||||
screens.append(live_screen)
|
||||
|
||||
# удалить конкретное сообщение из всех live-экранов без удаления из Telegram
|
||||
@classmethod
|
||||
def unregister_message(
|
||||
cls,
|
||||
*,
|
||||
chat_id: int,
|
||||
message_id: int,
|
||||
) -> None:
|
||||
empty_screens: list[str] = []
|
||||
|
||||
for screen, screens in cls._screens.items():
|
||||
screens[:] = [
|
||||
item
|
||||
for item in screens
|
||||
if not (
|
||||
item.chat_id == chat_id
|
||||
and item.message_id == message_id
|
||||
)
|
||||
]
|
||||
|
||||
if not screens:
|
||||
empty_screens.append(screen)
|
||||
|
||||
for screen in empty_screens:
|
||||
cls._screens.pop(screen, None)
|
||||
|
||||
# удалить все live-экраны указанного типа из Telegram
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user