From 8e11942ba04afec87718456324ef13a8c48088c3 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 3 Oct 2015 15:34:51 +0200 Subject: [PATCH] Commit iniziale; libreria per le funzioni di telegram --- .gitignore | 5 +++++ telegram.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .gitignore create mode 100644 telegram.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..efa8dc56 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +__pycache__/telegram.cpython-34.pyc +lastid.txt +osuapi.txt +steamapi.txt +telegramapi.txt \ No newline at end of file diff --git a/telegram.py b/telegram.py new file mode 100644 index 00000000..34dc342d --- /dev/null +++ b/telegram.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +import requests + +##Per far funzionare questa libreria serve un file "lastid.txt" contenente l'update ID dell'ultimo messaggio non letto e un file "telegramapi.txt" contenente il token di accesso del bot assegnato da @BotFather. + +#definiamo la variabile globale chat se no si blocca tutto? forse? +chat = 0 + +def sendMessage(content, to=chat, tastiera=""): + """Manda un messaggio a una chat.""" + #Parametri del messaggio + parametri = { + 'chat_id': to, #L'ID della chat a cui mandare il messaggio, Royal Games: -2141322 + 'text': content, #Il messaggio da mandare + 'reply_markup': tastiera + } + #Manda il messaggio + r = requests.get("https://api.telegram.org/bot" + telegramtoken + "/sendMessage", params=parametri) + +def readFile(name): + """Leggi i contenuti di un file.""" + file = open(name, 'r') + content = file.read() + file.close() + return content + +def writeFile(name, content): + """Scrivi qualcosa su un file, sovrascrivendo qualsiasi cosa ci sia al suo interno.""" + file = open(name, 'w') + file.write(content) + file.close() + +#Caricamento delle API Keys... +telegramtoken = readFile('telegramapi.txt') + +def getUpdates(): + """Ricevi gli ultimi aggiornamenti dal server di Telegram e restituisci l'ultimo messaggio non letto.""" + parametri = { + 'offset': readFile("lastid.txt"), #Update ID del messaggio da leggere + 'limit': 1, #Numero di messaggi da ricevere alla volta, lasciare 1 + 'timeout': 300, #Secondi da mantenere attiva la richiesta se non c'e' nessun messaggio + } + while(True): + data = requests.get("https://api.telegram.org/bot" + token + "/getUpdates", params=parametri).json() + if(data['ok'] == True): + if(data['result'] != []): + writeFile("lastid.txt", str(data['result'][0]['update_id'] + 1)) + #sporco hack per non far crashare il bot ogni 10 secondi; prima o poi capirò il senso di certe risposte nell'api di telegram + if(data['result'][0]['message'] != None): + if(data['result'][0]['message']['text'] != ""): + return data['result'][0]['message'] \ No newline at end of file