Profilo di Nikappa_

Nome Nikappa_
Indirizzo email n/a
Messaggi7
  • Re: While button press...
    Forum >> Principianti
    Grazie mille della risposta, e mi scuso se non ho da subito detto il mio intento:



    Sto creando un programma che clicca da solo, ma si deve attivare solo quando l'utente tiene premuto il click sinistro, quindi ho pensato appunto di prendere il codice che hai visto pure tu e farlo diventare un ciclo while... questo però (Come ho detto prima) non è possibile poiché il programma fa laggare il cursore fino a renderlo inutilizzabile...




    from pynput.mouse import Listener
    
    def on_click(x, y, button, pressed):
        while pressed:
            print("a") #Scrive all'infinito "a" anche se non viene premuto il click e non capisco il perchè
    
    # Collect events until released
    with Listener(on_click=on_click) as listener:
        listener.join()
    




  • While button press...
    Forum >> Principianti
    Devo creare un ciclo while che si attiva se si tiene premuto il click sinistro



    Ho provato così:



    from pynput.mouse import Listener

    import time

    def on_click(x, y, button, pressed):

    while pressed:

    print("Press")


    with Listener(on_click=on_click) as listener:


    listener.join()



    Ma il programma fa diventare inutilizzabile il mouse... qualche idea?

    Grazie in anticipo


    --- Ultima modifica di Nikappa_ in data 2018-12-09 09:51:28 ---

    --- Ultima modifica di Nikappa_ in data 2018-12-09 09:51:53 ---

    --- Ultima modifica di Nikappa_ in data 2018-12-09 09:52:31 ---
  • login sito web
    Forum >> Principianti
    ho un problema
    devo estrapolare delle informazioni (compiti) da un sito (Registro elettronico), ho provato tanti modi su internet ma nessuno è andato a buon fine





    from selenium import webdriver

    import time




    NU = NomeUtente

    PW = 'Password




    def login():

    browser=webdriver.Firefox()

    browser.get('https://family.sissiweb.it/Secret/REStart.aspx?Customer_ID=80004710556')

    time.sleep(40)

    #credenziali

    user=browser.find_element_by_css_selector('#txtUser')

    user.send_keys(NU)

    password=broser.find_element_by_css_selector('#txtPassword')

    password.send_keys(PW)

    login=browser.find_element_by_css_selector('#btnLogin')

    login.click()




    login()











    errori








    Traceback (most recent call last):

    File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start

    stdin=PIPE)

    File "C:\Program Files (x86)\Python36-32\lib\subprocess.py", line 709, in __init__

    restore_signals, start_new_session)

    File "C:\Program Files (x86)\Python36-32\lib\subprocess.py", line 997, in _execute_child

    startupinfo)

    FileNotFoundError: [WinError 2] Impossibile trovare il file specificato




    During handling of the above exception, another exception occurred:




    Traceback (most recent call last):

    File "C:/Users/loren/Desktop/bot/prove bot/login.py", line 19, in <module>

    login()

    File "C:/Users/loren/Desktop/bot/prove bot/login.py", line 8, in login

    browser=webdriver.Firefox()

    File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 152, in __init__

    self.service.start()

    File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start

    os.path.basename(self.path), self.start_error_message)

    selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.














    che mi consigliate di fare?



  • bot telegram errore (bot.message_loop(inizio, NomeUtente, Password, orario))
    Forum >> Principianti
    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 ---
  • Re: usare le variabili in 'def 1' in 'def 2'
    Forum >> Principianti
    per ora ho risolto scrivendo la variabile in un file e poi riaprendolo fuori la funzione definendo la variabile globale
  • Re: usare le variabili in 'def 1' in 'def 2'
    Forum >> Principianti
    grazie mille, l'articolo mi ha aiutato a capire un po' di cose.
    ma ho questo problema, ho delle variabili che devo tenere per forza in delle funzioni, ma le devo rendere globali, come faccio?



  • usare le variabili in 'def 1' in 'def 2'
    Forum >> Principianti
    Scusate per l'ignoranza ma:



    in questa stringa di codice (bot di telegram)




    def NomeUtente(msg):

    content_type, chat_type, chat_id = telepot.glance(msg)

    messaggio = (msg['text'])

    NU = messaggio




    quando uso la variabile 'NU' fuori da 'def NomeUtente' mi dice che non è definito

    come posso risolvere? Perchè per ora mi è solo venuto in mente di salvare la variabile in un file ecc.. ma sono sicuro che ci sia un modo più semplice no?








    --- Ultima modifica di Nikappa_ in data 2018-03-31 14:48:34 ---