Mephistopheles_

Telegram bot

Mar 17th, 2021 (edited)
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.25 KB | None | 0 0
  1. ### can show weather, calculate complex expressions, transform letters of word (only russian) ###
  2.  
  3.  
  4. import telebot
  5. import requests
  6. bot = telebot.TeleBot('MyTocken');
  7. APPID='MyAPI'
  8.  
  9. b=False
  10. d=False
  11. c=False
  12.  
  13. @bot.message_handler(content_types=['text'])
  14. def get_text_messages(message):
  15.     global b
  16.     global d
  17.     global c
  18.     def culc(a):     ### calculate complex expressions ###
  19.         global b
  20.         try:
  21.             bot.send_message(message.from_user.id, eval(a))
  22.         except:
  23.             bot.send_message(message.from_user.id, "Введено неверное выражение")
  24.             pass
  25.         b=False
  26.     def weather(a):  ### show weather ###
  27.         global d
  28.         try:
  29.             res = requests.get("http://api.openweathermap.org/data/2.5/weather",params={'q': a, 'units': 'metric', 'lang': 'ru', 'APPID':APPID })
  30.             data = res.json()
  31.             s=[data['weather'][0]['description'],data['main']['temp'],data['main']['temp_min'],data['main']['temp_max']]
  32.             bot.send_message(message.from_user.id,f"Условия: {s[0]}\nТемпература: {s[1]}\nМинимальная температура: {s[2]}\nМаксимальная температура: {s[3]}")
  33.         except :
  34.             bot.send_message(message.from_user.id,"Ошибка!")
  35.             pass
  36.         d=False
  37.     def leter(a):   ### transform letters of word ###
  38.         global c
  39.         try:
  40.             mass=[  "##*## 1#*#*# 2#***# 3#*#*# 4*###* 5",
  41.                     "***** 1*#### 2***** 3*###* 4***** 5",
  42.                     "***** 1*###* 2***** 3*###* 4***** 5",
  43.                     "***** 1*#### 2*#### 3*#### 4*#### 5",
  44.                     "##*## 1#*#*# 2#*#*# 3#***# 4*###* 5",
  45.                     "***** 1*#### 2***** 3*#### 4***** 5",
  46.                     "*#*#* 1#***# 2##*## 3#***# 4*#*#* 5",
  47.                     "***** 1###*# 2##*## 3###*# 4***** 5",
  48.                     "*###* 1*##** 2*#*#* 3**##* 4*###* 5",
  49.                     "*#*#* 1*##** 2*#*#* 3#*##* 4*#### 5",
  50.                     "*##*# 1*#*## 2***## 3*##*# 4*###* 5",
  51.                     "##*## 1#*#*# 2#*#*# 3#*#*# 4*###* 5",
  52.                     "*###* 1**#** 2*#*#* 3*###* 4*###* 5",
  53.                     "*###* 1*###* 2***** 3*###* 4*###* 5",
  54.                     "***** 1*###* 2*###* 3*###* 4***** 5",
  55.                     "***** 1*###* 2*###* 3*###* 4*###* 5",
  56.                     "***** 1*###* 2***** 3*#### 4*#### 5",
  57.                     "***** 1*#### 2*#### 3*#### 4***** 5",
  58.                     "***** 1##*## 2##*## 3##*## 4##*## 5",
  59.                     "*###* 1#*##* 2##*** 3####* 4####* 5",
  60.                     "***** 1*#*#* 2***** 3##*## 4##*## 5",
  61.                     "*###* 1#*#*# 2##*## 3#*#*# 4*###* 5",
  62.                     "*###* 1*###* 2*###* 3***** 4####* 5",
  63.                     "*###* 1*###* 2***** 3####* 4####* 5",
  64.                     "*#*#* 1*#*#* 2*#*#* 3*#*#* 4***** 5",
  65.                     "*#*#* 1*#*#* 2*#*#* 3***** 4####* 5",
  66.                     "**### 1#*### 2#**** 3#*##* 4#**** 5",
  67.                     "*###* 1*###* 2***#* 3*#*#* 4***#* 5",
  68.                     "*#### 1*#### 2***** 3*###* 4***** 5",
  69.                     "***** 1####* 2***** 3####* 4***** 5",
  70.                     "*#*** 1*#*#* 2***#* 3*#*#* 4*#*** 5",
  71.                     "***** 1*###* 2***** 3##*#* 4#*##* 5",]
  72.             s=a
  73.             s=s.upper()
  74.             pos=0
  75.             for i in s:
  76.                 k=mass[ord(i)-1040]
  77.                 bot.send_message(message.from_user.id,f"{k[0:5]}\n{k[7:12]}\n{k[14:19]}\n{k[21:26]}\n{k[28:33]}")
  78.         except:
  79.             bot.send_message(message.from_user.id,"Ошибка!")
  80.             pass
  81.         c=False
  82.     if b or d or c:
  83.         if b:
  84.             culc(message.text)
  85.         if d:
  86.             weather(message.text)
  87.         if c:
  88.             leter(message.text)
  89.     else:
  90.         if message.text[0:6].upper() == "ПРИВЕТ":
  91.             bot.send_message(message.from_user.id, "Привет!")
  92.         elif message.text[:5] == "/help":
  93.             bot.send_message(message.from_user.id, "/culc 'выражение' - вычисление значения выражения\n/weth 'город' - погода в городе (регистр и язык не важен)\n/str\
  94. 'строка' - вывод каждой буквы звездочками на фоне решеток (только латиница)")
  95.         elif message.text[:5] == "/culc":
  96.             if len(message.text)>5:
  97.                 culc(message.text[5:])
  98.             else:
  99.                 bot.send_message(message.from_user.id, "Отправьте выражение")
  100.                 b=True
  101.         elif  message.text[:5] == "/weth":
  102.             if len(message.text)>5:
  103.                 weather(message.text[6:])
  104.             else :
  105.                 bot.send_message(message.from_user.id, "Введите город")
  106.                 d=True
  107.         elif message.text[:4] == "/str":
  108.             if len(message.text)>4:
  109.                 leter(message.text[5:])
  110.             else :
  111.                 bot.send_message(message.from_user.id, "Введите строку")
  112.                 c=True
  113.         else:
  114.             bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")
  115.  
  116. bot.polling(none_stop=True)
Advertisement
Add Comment
Please, Sign In to add comment