-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.py
97 lines (71 loc) · 3.46 KB
/
bot.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
from telegram import __version__ as TG_VER
try:
from telegram import __version_info__
except ImportError:
__version_info__ = (0, 0, 0, 0, 0) # type: ignore[assignment]
if __version_info__ < (20, 0, 0, "alpha", 1):
raise RuntimeError(
f"This example is not compatible with your current PTB version {TG_VER}. To view the "
f"{TG_VER} version of this example, "
f"visit https://docs.python-telegram-bot.org/en/v{TG_VER}/examples.html"
)
from telegram import ForceReply, Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters
# Define a few command handlers. These usually take the two arguments update and
# context.
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Send a message when the command /start is issued."""
user = update.effective_user
await update.message.reply_html(
rf"Hi {user.mention_html()}!, I'm a bot created by Didis_01. Nice to meet you! To view the commands use /help.",
reply_markup=ForceReply(selective=True),
)
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Send a message when the command /help is issued."""
await update.message.reply_text("Here you have the commands:\n/add -> It saves whatever you put to a variable.\n/list -> It shows all the incredible things you have saved. \n/delete -> It deletes the list.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("I don't know what you mean :/,\n use /help to view the command list :D")
async def add_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
x=update.message.text.replace("/add " ,"",1)
if(x=="/add"):
await update.message.reply_text("Nothing was added to the list")
else:
print(x)
y=x+" was added to the list!"
await update.message.reply_text(y)
archivo = open('log.txt', 'r')
z = archivo.read()
archivo.close()
archivo = open('log.txt', 'w')
archivo.write(z + '\n' + x )
archivo.close()
async def list_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
archivo = open('log.txt', 'r')
z = archivo.read()
archivo.close()
y="You have this in the list:\n" + z
print(y)
await update.message.reply_text(y)
async def delete_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
archivo = open('log.txt', 'w')
archivo.write("")
archivo.close()
y="The list was deleted :/"
print(y)
await update.message.reply_text(y)
def main() -> None:
"""Start the bot."""
# Create the Application and pass it your bot's token.
application = Application.builder().token("PLACE HERE YOUR BOT TOKEN").build()
# on different commands - answer in Telegram
application.add_handler(CommandHandler("start", start))
application.add_handler(CommandHandler("help", help_command))
application.add_handler(CommandHandler("add", add_command))
application.add_handler(CommandHandler("list", list_command))
application.add_handler(CommandHandler("delete", delete_command))
# on non command i.e message - echo the message on Telegram
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
# Run the bot until the user presses Ctrl-C
application.run_polling()
if __name__ == "__main__":
main()