I need to determine whether messages in the bot channel are original or replies to previous messages. To achieve this, I plan to save the results in a JSON file. First, I need to detect if a message is an original message or a reply. I understand that replies to older messages will have the reply_to_message attribute. Could you advise on how to detect this?
I am trying to get this code to work:
<code>import logging
from telegram import Update, Message
import asyncio
from telegram.ext import Application, MessageHandler, filters, CallbackContext
# Telegram Bot Token and Channel IDs
BOT_TOKEN = ' '
BOT_CHANNEL_ID =
# Set up logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Make the function asynchronous
async def handle_message(update: Update, context: CallbackContext):
message = update.message
if message.reply_to_message:
original_message = message.reply_to_message
await context.bot.send_message(
chat_id=PUBLIC_CHANNEL_ID,
text=f"This is a reply to message ID: {original_message.message_id}"
)
else:
await context.bot.send_message(
chat_id=PUBLIC_CHANNEL_ID,
text="This is an original message"
)
async def main():
application = Application.builder().token(BOT_TOKEN).build()
application.add_handler(MessageHandler(filters.TEXT, handle_message))
await application.run_polling()
if __name__ == "__main__":
main()
</code>
<code>import logging
from telegram import Update, Message
import asyncio
from telegram.ext import Application, MessageHandler, filters, CallbackContext
# Telegram Bot Token and Channel IDs
BOT_TOKEN = ' '
BOT_CHANNEL_ID =
# Set up logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Make the function asynchronous
async def handle_message(update: Update, context: CallbackContext):
message = update.message
if message.reply_to_message:
original_message = message.reply_to_message
await context.bot.send_message(
chat_id=PUBLIC_CHANNEL_ID,
text=f"This is a reply to message ID: {original_message.message_id}"
)
else:
await context.bot.send_message(
chat_id=PUBLIC_CHANNEL_ID,
text="This is an original message"
)
async def main():
application = Application.builder().token(BOT_TOKEN).build()
application.add_handler(MessageHandler(filters.TEXT, handle_message))
await application.run_polling()
if __name__ == "__main__":
main()
</code>
import logging
from telegram import Update, Message
import asyncio
from telegram.ext import Application, MessageHandler, filters, CallbackContext
# Telegram Bot Token and Channel IDs
BOT_TOKEN = ' '
BOT_CHANNEL_ID =
# Set up logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Make the function asynchronous
async def handle_message(update: Update, context: CallbackContext):
message = update.message
if message.reply_to_message:
original_message = message.reply_to_message
await context.bot.send_message(
chat_id=PUBLIC_CHANNEL_ID,
text=f"This is a reply to message ID: {original_message.message_id}"
)
else:
await context.bot.send_message(
chat_id=PUBLIC_CHANNEL_ID,
text="This is an original message"
)
async def main():
application = Application.builder().token(BOT_TOKEN).build()
application.add_handler(MessageHandler(filters.TEXT, handle_message))
await application.run_polling()
if __name__ == "__main__":
main()
Could you kindly please have a look at this code and advise how I can get this code to work.