Source code for spotted.handlers.follow_comment

"""Detect Comment on a post in the comment group"""

from telegram import Update
from telegram.error import BadRequest, Forbidden
from telegram.ext import CallbackContext

from spotted.data import User
from spotted.utils import EventInfo


[docs] async def follow_spot_comment(update: Update, context: CallbackContext): """Handles a new comment on a post in the comment group. Checks if someone is following the post, and sends them an update in case. Args: update: update event context: context passed by the handler """ info = EventInfo.from_message(update, context) # Get the spot's message_id reply_to_message_id = info.message.message_thread_id # Get a list of users who are following the spot users = User.following_users(reply_to_message_id) # Send them an update about the new comment for user in users: # Avoid sending if it's made by the same user if not user.user_id == info.message.from_user.id: try: await info.message.copy(chat_id=user.user_id, reply_to_message_id=user.private_message_id) except (BadRequest, Forbidden): # The user deleted the message or blocked the bot, ignore pass