-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathechoBot.py
68 lines (50 loc) · 2.3 KB
/
echoBot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Simple Bot to reply to Telegram messages and print Channel messages.
This Bot uses the Updater class to handle the bot.
First, a few handler functions are defined. Then, those functions are passed to
the Dispatcher and registered at their respective places.
Then, the bot is started and runs until we press Ctrl-C on the command line.
Usage:
Basic Echobot example, repeats messages and prints Channel messages.
Press Ctrl-C on the command line or send a signal to the process to stop the
bot.
"""
from telegram import Bot, Update
from telegram.ext import Updater, MessageHandler, CommandHandler
from telegram.ext.filters import Filters
import logging
# Enable logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)
logger = logging.getLogger(__name__)
# Define a few command handlers. These usually take the two arguments bot and
# update. Error handlers also receive the raised TelegramError object in error.
chat_id_of_channel = -1001169150122
TOKEN = 'TOKEN'
def start(bot, update):
"""Send a message when the command /start is issued."""
chat_id = update.message.chat_id
bot.send_message(chat_id=chat_id, text="hi there, welcome to my channel")
# Print messages received from channel.
def channel_message(bot, update):
msg = update.effective_message
print("Message received from channel: %s" % str(msg['text']))
# Reply user with uppercase messages of user.
def reply_upper(bot, update):
chat_id = update.message.chat_id
bot.send_message(chat_id=chat_id, text=update.message.text.upper())
# Main Function of bot, here we are defining all handlers we require.
def main():
updater = Updater(TOKEN)
updater.dispatcher.add_handler(CommandHandler("start", start))
updater.dispatcher.add_handler(MessageHandler(Filters.chat(chat_id=chat_id_of_channel), channel_message))
updater.dispatcher.add_handler(MessageHandler(Filters.text, reply_upper))
# 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()