Skip to content

Instantly share code, notes, and snippets.

@farhadmpr
Created August 9, 2020 07:33
Show Gist options
  • Save farhadmpr/5540b4596947f0143668fefa6c02a986 to your computer and use it in GitHub Desktop.
Save farhadmpr/5540b4596947f0143668fefa6c02a986 to your computer and use it in GitHub Desktop.
Telegram channel crawler
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
# Define a few command handlers. These usually take the two arguments update and
# context. Error handlers also receive the raised TelegramError object in error.
def start(update, context):
"""Send a message when the command /start is issued."""
update.message.reply_text('Hi!')
def help_command(update, context):
"""Send a message when the command /help is issued."""
update.message.reply_text('Help!')
def echo(update, context):
"""Echo the user message."""
#update.message.reply_text(update.message.text)
context.bot.send_message("@CHANNELID", update.message.text)
def main():
"""Start the bot."""
# Create the Updater and pass it your bot's token.
# Make sure to set use_context=True to use the new context based callbacks
# Post version 12 this will no longer be necessary
updater = Updater("TOKEN", use_context=True)
# Get the dispatcher to register handlers
dp = updater.dispatcher
# on different commands - answer in Telegram
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", help_command))
# on noncommand i.e message - echo the message on Telegram
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
# Start the Bot
updater.start_polling()
# Run the bot until you press Ctrl-C or the process receives SIGINT,
# SIGTERM or SIGABRT. This should be used most of the time, since
# start_polling() is non-blocking and will stop the bot gracefully.
updater.idle()
if __name__ == '__main__':
main()
from telethon import TelegramClient, events
api_id = 12345
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('session_name', api_id, api_hash)
@client.on(events.NewMessage)
async def event_handler(event):
if 'hello' in event.raw.text:
#await event.reply('hi')
await client.send_message("@BOTIDBOT", event.raw_text)
client.start()
client.run_until_disconnected()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment