Forum >> Principianti >> bot telegram errore (bot.message_loop(inizio, NomeUtente, Password, orario))

Pagina: 1

bot.message_loop(inizio, NomeUtente, Password, orario) 
mi da un sacco di errori
se lo uso per una funzione alla volta va tutto liscio, quando le unisco no...come posso risolvere?
grazie già in anticipo

errori:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\telepot\__init__.py", line 1183, in get_from_telegram_server
    allowed_updates=allowed_upd)
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\telepot\__init__.py", line 1000, in getUpdates
    return self._api_request('getUpdates', _rectify(p))
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\telepot\__init__.py", line 491, in _api_request
    return api.request((self._token, method, params, files), **kwargs)
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\telepot\api.py", line 153, in request
    fn, args, kwargs = _transform(req, **user_kw)
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\telepot\api.py", line 116, in _transform
    kwargs = _compose_kwargs(req, **user_kw)
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\telepot\api.py", line 104, in _compose_kwargs
    kw['timeout'] = params['timeout'] + _default_timeout(req, **user_kw)
TypeError: unsupported operand type(s) for +: 'function' and 'int'
Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Program Files (x86)\Python36-32\lib\threading.py", line 916, in _bootstrap_inner
    self.run()
  File "C:\Program Files (x86)\Python36-32\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\telepot\__init__.py", line 1202, in get_from_telegram_server
    time.sleep(relax)
TypeError: an integer is required (got type function)

codice:

import telepot
import sys, time
from pprint import pprint
import datetime
from time import gmtime, strftime
from telepot.loop import MessageLoop

#WhiteList

WLO = set('1234567890:') #white list orario
WLNU = set('1234567890') #whitelist nome utente


def inizio(msg):
    content_type,chat_type , chat_id = telepot.glance(msg)
    messaggioS = (msg['text'])#messaggio start
    if messaggioS == "/start":
        print("è stata mandata una nuova descrizione")
        bot.sendMessage(chat_id, "Questo bot ti permette di ricevere i compiti del giorno dopo ad un determinato orario che tu sceglierai in seguito")
        bot.sendMessage(chat_id, "basterà dare le credenziali del registro elettronico al bot (le quali non verranno salvate, ma visto che il sito è protetto da password il bot prima dovrà accedere) e poi un orario")
        bot.sendMessage(chat_id, "Per ogni cosa scrivimi in privato (@Lorenzo Gaudino) \nManda un messaggio con scritto "'ok'"per startare il bot")
    
    if messaggio == "ok" or "OK" or "Ok" or "oK" or '"ok"' or '"OK"' or '"Ok"':
        print("è stato mandato un messaggio di inizio")
        bot.sendMessage(chat_id, "manda il tuo nome utente, non verrà visualizzato ne dalla consol e non verrà nemmeno salvato dal bot")
    else:  bot.sendMessage(chat_id, "manda 'ok' in chat")


def NomeUtente(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    messaggioNU = (msg['text'])
    NU = messaggioNU
    messaggioNUf =''.join(filter(WLNU.__contains__, NU))# messaggioNUf = messaggio filtrato
    
    if messaggioNU == messaggioNUf:
        contenuto = NU
        fileNomeUtente = open("C:\Program Files (x86)\Python36-32\configFileNomeUtente.txt","w")
        fileNomeUtente.write(contenuto)
        fileNomeUtente.close()
        print("un nuovo utente è stato registrato")
        bot.sendMessage(chat_id, "Scrivi la tua password")
    else:
        print("Nome Utente errato")
        bot.sendMessage(chat_id, "il nome utente non è valido, deve essere composto da 4 cifre (es 2332)")


def Password(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    messaggiop = (msg['text'])#p password
    PW = messaggiop #PW password
    if PW == messaggiop:
        contenuto = PW
        FilePassword = open("C:\Program Files (x86)\Python36-32\configFilePassword.txt","w")
        FilePassword.write(contenuto)
        FilePassword.close()
        print("una nuova password è stata registrata")
        bot.sendMessage(chat_id, "A che ora vuoi ricevere la notifica dei compiti? usa il formato Ora:Minuti (esmpio 15:30)")


def orario(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    messaggioO = (msg['text'])#o orario
    O = messaggioO #O orario
    messaggioOf =''.join(filter(WLO.__contains__, O))
    if messaggioO == messaggioOf:
        contenuto = O
        fileOrario = open("C:\Program Files (x86)\Python36-32\configFileOrario.txt","w")
        fileOrario.write(contenuto)
        fileOrario.close()
        print("un nuovo orario è stato stabilito")
        bot.sendMessage(chat_id, "tutte le impostazioni sono state impostate \nora ogni giorno alle "+O+" riceverai i compiti del giorno dopo")
    else: bot.sendMessage(chat_id, "formato orario sbagliato")


#Nome utente, password e orario:
NU = open("C:\Program Files (x86)\Python36-32\configFileNomeUtente.txt","r").read()
PW = open("C:\Program Files (x86)\Python36-32\configFilePassword.txt","r").read()
O = open("C:\Program Files (x86)\Python36-32\configFileOrario.txt","r").read()

bot = telepot.Bot("xxxxxxxxxxxxxxxxxxxxxxx")
bot.message_loop(inizio, NomeUtente, Password, orario)  #questo è quello che da l'errore

#inizio, NomeUtente, Password, orario
while 1:
    time.sleep(3)



--- Ultima modifica di ㎝ in data 2018-04-01 17:51:44 ---
Non ho esperienza col bot che tenti di utilizzare, ma ti do due consigli:
1. Cerca di isolare il problema e proporre solo la sezione incriminata;
2. Se non ricevi risposta, puoi utilizzare gli altri nostri canali. In particolare sul canale Telegram, trovi il link in questa sezione, ho visto più volte argomenti inerenti.

Ciao e happy coding.


Pagina: 1



Esegui il login per scrivere una risposta.