def main(): start_handler = CommandHandler("start", start, filters=Filters.user(OWNER_ID), run_async=True) help_handler = CommandHandler("help", help, filters=Filters.user(OWNER_ID), run_async=True) dispatcher.add_handler(start_handler) dispatcher.add_handler(help_handler) if WEBHOOK and URL: LOGGER.info("Using webhooks.") updater.start_webhook(listen=IP_ADDRESS, port=PORT, url_path=API_KEY) if CERT_PATH: updater.bot.set_webhook(url=URL + API_KEY, certificate=open(CERT_PATH, "rb")) else: updater.bot.set_webhook(url=URL + API_KEY) else: LOGGER.info("Using long polling.") updater.start_polling(timeout=15, read_latency=4) updater.idle()
from telegram.ext import MessageHandler, Filters from forwarder import FROM_CHATS, TO_CHATS, LOGGER, dispatcher def forward(update, context): message = update.effective_message # type: Optional[Message] from_chat_id = update.effective_chat.id from_chat_name = update.effective_chat.title or update.effective_chat.first_name for chat in TO_CHATS: to_chat_name = context.bot.get_chat(chat).title or context.bot.get_chat(chat).first_name try: context.bot.forward_message(chat_id=chat, from_chat_id=from_chat_id, message_id=message.message_id) except: LOGGER.exception("Error while forwarding message from chat \"{}\" to chat \"{}\".".\ format(from_chat_name, to_chat_name)) try: FORWARD_HANDLER = MessageHandler( Filters.chat(FROM_CHATS) & Filters.update.channel_posts & ~Filters.status_update & ~Filters.command, forward, run_async=True ) dispatcher.add_handler(FORWARD_HANDLER) except ValueError: # When FROM_CHATS list is not set because user doesn't know chat id(s) LOGGER.warn("I can't FORWARD_HANDLER because your FROM_CHATS list is empty.")
user = (message.reply_to_message.from_user ) # Replied message is a message from a user message.reply_text( "{}'s ID is `{}`.".format(user.first_name, user.id), parse_mode=ParseMode.MARKDOWN, ) else: chat = update.effective_chat if chat.type == "private": # Private chat with the bot message.reply_text("Your ID is `{}`.".format(chat.id), parse_mode=ParseMode.MARKDOWN) else: # Group chat where the bot is a member message.reply_text( "This group's ID is `{}`.".format(chat.id), parse_mode=ParseMode.MARKDOWN, ) GET_ID_HANDLER = MessageHandler( Filters.command & Filters.regex(r"^/id") & (Filters.user(OWNER_ID) | Filters.update.channel_posts), get_id, run_async=True, ) dispatcher.add_handler(GET_ID_HANDLER)