mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-04-28 11:30:03 +00:00
Added feature to update queue positions on telegram when messages are dequeued and added new tests
This commit is contained in:
parent
7936edd1f0
commit
6d8f13d84e
8 changed files with 228 additions and 8 deletions
|
|
@ -16,7 +16,7 @@ from markdown_it import MarkdownIt
|
|||
from .base import MessagingPlatform, SessionManagerInterface
|
||||
from .models import IncomingMessage
|
||||
from .session import SessionStore
|
||||
from .tree_queue import TreeQueueManager, MessageNode, MessageState
|
||||
from .tree_queue import TreeQueueManager, MessageNode, MessageState, MessageTree
|
||||
from .event_parser import parse_cli_event
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -245,7 +245,9 @@ class ClaudeMessageHandler:
|
|||
self.platform = platform
|
||||
self.cli_manager = cli_manager
|
||||
self.session_store = session_store
|
||||
self.tree_queue = TreeQueueManager()
|
||||
self.tree_queue = TreeQueueManager(
|
||||
queue_update_callback=self._update_queue_positions
|
||||
)
|
||||
|
||||
async def handle_message(self, incoming: IncomingMessage) -> None:
|
||||
"""
|
||||
|
|
@ -346,6 +348,34 @@ class ClaudeMessageHandler:
|
|||
parse_mode="MarkdownV2",
|
||||
)
|
||||
|
||||
async def _update_queue_positions(self, tree: MessageTree) -> None:
|
||||
"""Refresh queued status messages after a dequeue."""
|
||||
try:
|
||||
queued_ids = await tree.get_queue_snapshot()
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to read queue snapshot: {e}")
|
||||
return
|
||||
|
||||
if not queued_ids:
|
||||
return
|
||||
|
||||
position = 0
|
||||
for node_id in queued_ids:
|
||||
node = tree.get_node(node_id)
|
||||
if not node or node.state != MessageState.PENDING:
|
||||
continue
|
||||
position += 1
|
||||
self.platform.fire_and_forget(
|
||||
self.platform.queue_edit_message(
|
||||
node.incoming.chat_id,
|
||||
node.status_message_id,
|
||||
format_status(
|
||||
"📋", "Queued", f"(position {position}) - waiting..."
|
||||
),
|
||||
parse_mode="MarkdownV2",
|
||||
)
|
||||
)
|
||||
|
||||
async def _process_node(
|
||||
self,
|
||||
node_id: str,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue