View Single Post
Old 06-02-2016, 14:52   #1
francolol
Member
 
Iscritto dal: Feb 2014
Messaggi: 142
[Python] Telegram bot su openshift

Salve ragazzi, stamattina ho sviluppato(o almeno ci ho provato) un bot Telegram da usare con gli amici. Sul pc questo mi funziona perfettamente, il problema è che non so come metterlo su openshift. Ci ho provato seguendo dei tutorial su youtube inserendo in diversi modi il codice nel file wsgi ma incorro sempre in errori e non funziona mai. Mi chiedevo se dovessi gestire manualmente le richieste http ma se così fosse vi chiederei da dove iniziare visto che sono ignorante in materia.

Allego il codice del bot(non me ne vogliate se è scadente)

Spoiler:
Codice:
import telegram
import time

bot = telegram.Bot(token = '***TOKEN***')
print (bot.getMe())

x = 0

LAST_UPDATE_ID = None
nuovoMessaggio = False
comandi = {'/ciao':'Buongiorno anche a te', '/coso':'coso a te!'}
Ultimo_messaggio = bot.getUpdates()[-1].update_id - 1

def main(nuovoMessaggio):
    global Ultimo_messaggio
    global x  
    AggiornaID()
    #if x == 0:
        #print('vecchio messaggio =   ' +str(Ultimo_messaggio)) 
        #print('nuovo       = ' + str(nuovoMessaggio))
        
        
        #x = 1

    if nuovoMessaggio > Ultimo_messaggio:
        Ultimo_messaggio = Ultimo_messaggio + 1
        print('vecchio messaggio =   ' +str(Ultimo_messaggio))
        Bot()
 
        x = 0
    return



def gestisciMessaggio(testo, IdChat):

    #print('entro in gestisci messaggio')
    comando = testo
    if comando in comandi:
        #print('comando presente')
        risposta = comandi[comando]
        bot.sendMessage(chat_id = IdChat, text = risposta)
    else:
         #print('comando assente')
         #print(comando)
         risposta = "Comando sconosciuto"
    return


def Bot():
    #print('LastupdateID =' + str(LAST_UPDATE_ID))
    for update in bot.getUpdates(offset = LAST_UPDATE_ID):
        #print('Visualizzo l''update con id    ' + str(LAST_UPDATE_ID))
        print(update)
        if update.message and update.update_id == LAST_UPDATE_ID:
            #print('e un messaggio')
            messaggio =update.message 
            testoMess = messaggio.text                
            IdChat = messaggio.chat_id                
            gestisciMessaggio(testoMess, IdChat)            
        else:                
           #print('non e un messaggio')                
           risposta = "Posso rispondere solo a messaggi di testo"
           bot.sendMessage(chat_id = IdChat, text = risposta)
    return


def AggiornaID():
    time.sleep(1)
    global LAST_UPDATE_ID        
    try:   
        LAST_UPDATE_ID = bot.getUpdates()[-1].update_id
    except (IndexError):            
        LAST_UPDATE_ID = None
    return

    

while True:
    try:
        
        LAST_UPDATE_ID = bot.getUpdates()[-1].update_id
    except (IndexError):            
        LAST_UPDATE_ID = None    
    while True:
        main(LAST_UPDATE_ID)


Illuminatemi vi prego.
Grazie a tutti anticipatamente.
__________________
Carbide 300r, Asrock H87 Pro4, I5-4670 + Hyper 212 evo, R9-290 Tri-x, Corsair VengeanceLP
Schermo: LG 23MA53D Mouse & Tastiera: G402 + G910
Mercatino: Feedback positivi: Simpsons
francolol è offline   Rispondi citando il messaggio o parte di esso