Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.96 KB | None | 0 0
  1. import urllib2
  2. import json
  3. import time
  4.  
  5. apiToken='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #ALTERAR
  6. chatId='123456789'#ALTERAR
  7.  
  8.  
  9. #ENVIA MSG PELO TELEGRAM, SE ENVIADO idChat, ele envia para esse id, senao ele envia para o id cadastrado
  10. def enviaMsg(msg, idChat='0'):
  11.         if idChat == '0':
  12.                 idChat = chatId
  13.  
  14.         #with urllib.request.urlopen("https://api.telegram.org/bot"+apiToken+"/sendMessage?chat_id="+idChat+"&text="+msg) as url:
  15.         url=urllib2.urlopen("https://api.telegram.org/bot"+apiToken+"/sendMessage?chat_id="+idChat+"&text="+msg)
  16.         data = json.loads(url.read().decode())
  17.         print(data)
  18.  
  19. #RECEBE AS MSGS ENVIADAS PARA O BOT
  20. def recebeMsg():
  21.         #SE EXISTIR ARQUIVO, LE O ULTIMO ID DE MSG LIDO, CASO CONTRARIO DEFINE COMO 0 O ID DE MSG
  22.         try:
  23.                 arq = open('ultimoid.txt', 'r')
  24.                 texto = arq.readlines()
  25.                 for linha in texto :
  26.                         intUltimoId=linha
  27.                 arq.close()
  28.         except:
  29.                 intUltimoId=0
  30.         #with urllib.request.urlopen("https://api.telegram.org/bot"+apiToken+"/getUpdates??offset=30") as url:
  31.         url=urllib2.urlopen("https://api.telegram.org/bot"+apiToken+"/getUpdates??offset=30")
  32.         data = json.loads(url.read().decode())
  33.         intTotalMsg = len(data['result']) #VERIFICA O TAMANHO DO ARRAY = QTD MSGS
  34.  
  35.         for x in range(0, intTotalMsg):
  36.                 if data['result'][x]['message']['message_id'] > int(intUltimoId): #VERIFICA SE O ID DA MENSAGEM EH SUPERIOR AO ULTIMO LIDO (MSG NOVA)
  37.                         if str(data['result'][x]['message']['chat']['id']) == chatId: #VERIFICA SE O CHATID ESTA AUTORIZADO, SENAO ELE RESPONDE COM O ID DO CHAT PARA CADASTRAR A AUTORIZACAO
  38.                                 executaMenu(data['result'][x]['message']['text'], data['result'][x])
  39.                         else:
  40.                                 chatid(str(data['result'][x]['message']['chat']['id']))
  41.                         intUltimoId = data['result'][x]['message']['message_id']
  42.         #SALVA O ULTIMO ID LIDO
  43.         arq = open('ultimoid.txt', 'w')
  44.         arq.write(str(intUltimoId))
  45.         arq.close()
  46.  
  47.  
  48. #AQUI VC DEFINE QUAIS OS COMANDOS QUE O BOT VAI RESPONDER
  49. def executaMenu(strMenu, dados):
  50.         if strMenu.find('/start') == 0:
  51.                 menu()
  52.         elif strMenu.find('/oi') == 0:
  53.                 oi()
  54.         elif strMenu.find('/chatid') == 0:
  55.                 chatid(str(dados['message']['chat']['id']))
  56.  
  57. #funcao para executar /start
  58. def menu():
  59.         strMenu = "------------------- MENU -------------------%0A /start = Este menu %0A /oi = Fala oi %0A /chatid = ChatID"
  60.         enviaMsg(strMenu)
  61.  
  62. #funcao para executar  /oi
  63. def oi():
  64.         enviaMsg('Oi tudo bem?')
  65.  
  66. #funcao para executar /chatid
  67. def chatid(chatid):
  68.         enviaMsg("Seu chatID: "+chatid, chatid)
  69.  
  70. #LOOP INFINITO VENDO SE TEM MENSAGEM NOVA
  71. while 1:
  72.         time.sleep(1)
  73.         recebeMsg()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement