1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 13:34:28 +00:00

kapow kapow kapow

This commit is contained in:
Steffo 2017-02-20 12:54:51 +01:00
commit 3c23a3c1aa
2 changed files with 126 additions and 105 deletions

219
bot.py
View file

@ -19,6 +19,14 @@ royalgames = json.loads(filemanager.readfile("db.json"))
# Stringa dove mettere l'elenco di champion di lol gratuiti # Stringa dove mettere l'elenco di champion di lol gratuiti
lolfreestring = str() lolfreestring = str()
# Elenco dello stagismo
stagismo = ["dello stagista", "degli sposi", "di Santinelli", "di Sensei", "di Steffo", "di Spaggia",
"della sedia", "di Satana", "del Sangue (degli occhi di Adry)", "del Sale",
"del Serpente", "della Samsung", "di /smecds", "della succursale", "di succ",
"di Sans", "di [SiivaGunner](https://www.youtube.com/channel/UC9ecwl3FTG66jIKA9JRDtmg)",
"di saaaaaas", "del semaforo", "della Seriale", "di Sistemi", "della Supercell",
"di Santaclaus", "dei Sims", "dei Santi", "di SES2017", "di Salvini"]
random.seed() random.seed()
@ -299,6 +307,8 @@ def cv():
# Elenco di tutte le persone online su Discord # Elenco di tutte le persone online su Discord
tosend = "*Online su Discord, nel server {servername}:*\n".format(servername=r['name']) tosend = "*Online su Discord, nel server {servername}:*\n".format(servername=r['name'])
# Qui inizia il codice peggiore di sempre # Qui inizia il codice peggiore di sempre
# oddio cosa ho scritto
# aiuto
for member in r['members']: for member in r['members']:
m = dict() m = dict()
if 'bot' not in member or not member['bot']: if 'bot' not in member or not member['bot']:
@ -351,48 +361,49 @@ def cv():
def online(): def online():
# Elenco di tutte le persone online su Steam # Elenco di tutte le persone online su Steam
print("@" + username + ": /online ") print("@" + username + ": /online ")
telegram.sendmessage("_Funzione temporaneamente disattivata._", sentin, source)
# Informa Telegram che il messaggio è stato ricevuto. # Informa Telegram che il messaggio è stato ricevuto.
telegram.sendchataction(sentin) # telegram.sendchataction(sentin)
if len(cmd) >= 2: # if len(cmd) >= 2:
if cmd[1].lower() == "help": # if cmd[1].lower() == "help":
telegram.sendmessage(chr(128309) + " Online\n" + # telegram.sendmessage(chr(128309) + " Online\n" +
chr(128308) + " In gioco | Occupato\n" + # chr(128308) + " In gioco | Occupato\n" +
chr(9899) + " Assente | Inattivo\n" + # chr(9899) + " Assente | Inattivo\n" +
chr(128310) + " Disponibile per scambiare\n" + # chr(128310) + " Disponibile per scambiare\n" +
chr(128311) + " Disponibile per giocare", sentin, source) # chr(128311) + " Disponibile per giocare", sentin, source)
else: # else:
# Stringa utilizzata per ottenere informazioni su tutti gli utenti in una sola richiesta a steam # # Stringa utilizzata per ottenere informazioni su tutti gli utenti in una sola richiesta a steam
userids = str() # userids = str()
for membro in royalgames: # for membro in royalgames:
if "steam" in royalgames[membro]: # if "steam" in royalgames[membro]:
userids += str(royalgames[membro]["steam"]) + ',' # userids += str(royalgames[membro]["steam"]) + ','
tosend = "*Su Steam ora:*\n" # tosend = "*Su Steam ora:*\n"
r = steam.getplayersummaries(userids) # r = steam.getplayersummaries(userids)
for player in r: # for player in r:
# In gioco # # In gioco
if 'gameextrainfo' in player: # if 'gameextrainfo' in player:
tosend += chr(128308) + " _" + player['gameextrainfo'] + "_ |" # tosend += chr(128308) + " _" + player['gameextrainfo'] + "_ |"
elif 'gameid' in player: # elif 'gameid' in player:
tosend += chr(128308) + " _" + player['gameid'] + "_ |" # tosend += chr(128308) + " _" + player['gameid'] + "_ |"
# Online # # Online
elif player['personastate'] == 1: # elif player['personastate'] == 1:
tosend += chr(128309) # tosend += chr(128309)
# Occupato # # Occupato
elif player['personastate'] == 2: # elif player['personastate'] == 2:
tosend += chr(128308) # tosend += chr(128308)
# Assente o Inattivo # # Assente o Inattivo
elif player['personastate'] == 3 or player['personastate'] == 4: # elif player['personastate'] == 3 or player['personastate'] == 4:
tosend += chr(9899) # tosend += chr(9899)
# Disponibile per scambiare # # Disponibile per scambiare
elif player['personastate'] == 5: # elif player['personastate'] == 5:
tosend += chr(128310) # tosend += chr(128310)
# Disponibile per giocare # # Disponibile per giocare
elif player['personastate'] == 6: # elif player['personastate'] == 6:
tosend += chr(128311) # tosend += chr(128311)
if player['personastate'] != 0: # if player['personastate'] != 0:
tosend += " " + player['personaname'] + "\n" # tosend += " " + player['personaname'] + "\n"
else: # else:
telegram.sendmessage(tosend, sentin, source) # telegram.sendmessage(tosend, sentin, source)
def shrek(): def shrek():
@ -513,12 +524,7 @@ def ciaospaggia():
def smecds(): def smecds():
# Secondo me, è colpa... # Secondo me, è colpa...
print("@" + username + ": /smecds") print("@" + username + ": /smecds")
accusato = random.sample(["dello stagista", "degli sposi", "di Santinelli", "di Sensei", "di Steffo", "di Spaggia", accusato = random.sample(stagismo, 1)[0]
"della sedia", "di Satana", "del Sangue (degli occhi di Adry)", "del Sale",
"del Serpente", "della Samsung", "di /smecds", "della succursale", "di succ",
"di Sans", "di [SiivaGunner](https://www.youtube.com/channel/UC9ecwl3FTG66jIKA9JRDtmg)",
"di saaaaaas", "del semaforo", "della Seriale", "di Sistemi", "della Supercell",
"di Santaclaus", "dei Sims", "dei Santi", "di SES2017", "di Salvini"], 1)[0]
telegram.sendmessage("Secondo me è colpa {accusato}...".format(accusato=accusato), sentin, source) telegram.sendmessage("Secondo me è colpa {accusato}...".format(accusato=accusato), sentin, source)
@ -533,59 +539,61 @@ def version():
def match(): def match():
# Visualizza detutti i giochi condivisi tra x persone. # Visualizza detutti i giochi condivisi tra x persone.
print("@" + username + ": /match") print("@" + username + ": /match")
telegram.sendmessage("_Funzione temporaneamente disattivata._", sentin, source)
# Informa Telegram che il messaggio è stato ricevuto. # Informa Telegram che il messaggio è stato ricevuto.
telegram.sendchataction(sentin) # telegram.sendchataction(sentin)
tobematched = list() # tobematched = list()
if len(cmd) > 2: # if len(cmd) > 2:
del cmd[0] # del cmd[0]
for name in cmd: # for name in cmd:
userdata = db.findbyname(name) # userdata = db.findbyname(name)
if userdata is not None and 'steam' in userdata: # if userdata is not None and 'steam' in userdata:
if userdata['steam'] not in tobematched: # if userdata['steam'] not in tobematched:
tobematched.append(userdata['steam']) # tobematched.append(userdata['steam'])
if len(tobematched) > 1: # if len(tobematched) > 1:
m = list(steammatch.and_games(tobematched)) # m = list(steammatch.and_games(tobematched))
if len(m) > 0: # if len(m) > 0:
# Prepara il messaggio # # Prepara il messaggio
tosend = "*Giochi in comune tra questi utenti:*\n" # tosend = "*Giochi in comune tra questi utenti:*\n"
for game in m: # for game in m:
tosend += "- {game}\n".format(game=game) # tosend += "- {game}\n".format(game=game)
# Manda il messaggio # # Manda il messaggio
telegram.sendmessage(tosend, sentin, source) # telegram.sendmessage(tosend, sentin, source)
else: # else:
telegram.sendmessage("*Giochi in comune tra questi utenti:*\n_nessuno_", sentin, source) # telegram.sendmessage("*Giochi in comune tra questi utenti:*\n_nessuno_", sentin, source)
else: # else:
telegram.sendmessage(chr(9888) + "Non sono stati specificati abbastanza utenti per eseguire l'azione.", # telegram.sendmessage(chr(9888) + "Non sono stati specificati abbastanza utenti per eseguire l'azione.",
sentin, source) # sentin, source)
def share(): def share():
# Visualizza detutti i giochi condivisi tra x persone. # Visualizza detutti i giochi condivisi tra x persone.
print("@" + username + ": /share") print("@" + username + ": /share")
telegram.sendmessage("_Funzione temporaneamente disattivata._", sentin, source)
# Informa Telegram che il messaggio è stato ricevuto. # Informa Telegram che il messaggio è stato ricevuto.
telegram.sendchataction(sentin) # telegram.sendchataction(sentin)
tobematched = list() # tobematched = list()
if len(cmd) > 2: # if len(cmd) > 2:
del cmd[0] # del cmd[0]
for name in cmd: # for name in cmd:
userdata = db.findbyname(name) # userdata = db.findbyname(name)
if userdata is not None and 'steam' in userdata: # if userdata is not None and 'steam' in userdata:
if userdata['steam'] not in tobematched: # if userdata['steam'] not in tobematched:
tobematched.append(userdata['steam']) # tobematched.append(userdata['steam'])
if len(tobematched) == 2: # if len(tobematched) == 2:
tosend = str() # tosend = str()
# Giochi che ha il primo ma non il secondo # # Giochi che ha il primo ma non il secondo
d = list(steammatch.diff_games(tobematched[0], tobematched[1])) # d = list(steammatch.diff_games(tobematched[0], tobematched[1]))
if len(d) > 0: # if len(d) > 0:
# Prepara il messaggio # # Prepara il messaggio
tosend += "*Giochi che ha @{primo} ma non @{secondo}:*\n".format(primo=cmd[0], secondo=cmd[1]) # tosend += "*Giochi che ha @{primo} ma non @{secondo}:*\n".format(primo=cmd[0], secondo=cmd[1])
for game in d: # for game in d:
tosend += "- {game}\n".format(game=game) # tosend += "- {game}\n".format(game=game)
else: # else:
tosend += "_@{secondo} ha tutti i giochi che ha @{primo}_.\n" # tosend += "_@{secondo} ha tutti i giochi che ha @{primo}_.\n"
telegram.sendmessage(tosend, sentin, source) # telegram.sendmessage(tosend, sentin, source)
else: # else:
telegram.sendmessage(chr(9888) + "Non è stato specificato un numero adeguato di utenti per eseguire l'azione.", # telegram.sendmessage(chr(9888) + "Non è stato specificato un numero adeguato di utenti per eseguire l'azione.",
sentin, source) # sentin, source)
# Alias di tutti i comandi. Scrivendo quella stringa in chat viene attivata la funzione corrispondente. # Alias di tutti i comandi. Scrivendo quella stringa in chat viene attivata la funzione corrispondente.
aliases = { aliases = {
@ -610,7 +618,6 @@ aliases = {
"d": diario, "d": diario,
"leggi": leggi, "leggi": leggi,
"match": match, "match": match,
"lol": lolfree,
"lolfree": lolfree, "lolfree": lolfree,
"legoflegend": lolfree, "legoflegend": lolfree,
"getrygimage": getrygimage, "getrygimage": getrygimage,
@ -645,7 +652,7 @@ while True:
# Altrimenti, salva l'userID # Altrimenti, salva l'userID
username = str(msg['edit_data']['from']['id']) username = str(msg['edit_data']['from']['id'])
# Se sei un membro della Royal Games # Se sei un membro della Royal Games
if username.lower() in royalgames: if db.findbyname(username) in royalgames:
# Riconosci il comando. # Riconosci il comando.
if text.startswith('wow'): if text.startswith('wow'):
wow() wow()
@ -666,7 +673,7 @@ while True:
# Altrimenti, salva l'userID # Altrimenti, salva l'userID
username = str(msg['from']['id']) username = str(msg['from']['id'])
# Se sei un membro della Royal Games # Se sei un membro della Royal Games
if username.lower() in royalgames: if db.findbyname(username):
# Riconosci il comando e dividilo in comando e argomenti. # Riconosci il comando e dividilo in comando e argomenti.
cmd = text.lower().split(" ") cmd = text.lower().split(" ")
# Togli il @RoyalBot alla fine del comando # Togli il @RoyalBot alla fine del comando
@ -676,9 +683,19 @@ while True:
aliases[cmd[0]]() aliases[cmd[0]]()
except KeyError: except KeyError:
print("@" + username + ": comando inesistente") print("@" + username + ": comando inesistente")
except Exception as e:
# Se durante l'esecuzione di un comando viene generato un errore, visualizzalo nella chat in cui è stato generato.
telegram.sendmessage(chr(9762) + " *Errore durante l'esecuzione del comando:\n*"
"{}\n\n"
"Secondo me, è colpa {}.".format(repr(e), random.sample(stagismo, 1)[0]), sentin, source)
print("\033[1mERRORE:\n{}\033[0m".format(repr(e)))
# Se sei in modalità debug, interrompi l'esecuzione
if __debug__:
raise
else: else:
print("@" + username + " bloccato.") print("@" + username + " bloccato.")
except Exception as e: except Exception as e:
<<<<<<< HEAD
<<<<<<< HEAD <<<<<<< HEAD
if __debug__: if __debug__:
raise raise
@ -688,11 +705,15 @@ while True:
"Secondo me, è colpa dello stagista.".format(repr(e)), -2141322) "Secondo me, è colpa dello stagista.".format(repr(e)), -2141322)
print("\033[1mERRORE CRITICO:\n{0}\033[0m".format(repr(e))) print("\033[1mERRORE CRITICO:\n{0}\033[0m".format(repr(e)))
======= =======
=======
# Se la fase iniziale causa un errore, mandalo nel gruppo Royal Games.
>>>>>>> 83a7b92f9e2ee0a9380d5da3971cf9740450dda4
telegram.sendmessage(chr(9762) + " *Errore critico:\n*" telegram.sendmessage(chr(9762) + " *Errore critico:\n*"
"{0}\n\n" "{}\n\n"
"Secondo me, è colpa dello stagista.".format(repr(e)), -2141322) "Secondo me, è colpa {}.".format(repr(e), random.sample(stagismo, 1)[0]), -2141322)
print("\033[1mERRORE CRITICO:\n" print("\033[1mERRORE CRITICO:\n"
"{0}\033[0m".format(repr(e))) "{0}\033[0m".format(repr(e)))
# Se sei in modalità debug, interrompi l'esecuzione
if __debug__: if __debug__:
raise raise
>>>>>>> 935fed70c14612ffa6d8942306a36a05df123b5e >>>>>>> 935fed70c14612ffa6d8942306a36a05df123b5e

12
db.py
View file

@ -12,10 +12,10 @@ def findbyname(name: str):
return None return None
def findbykey(key, value): # def findbykey(key, value):
for player in db: # for player in db:
if player[key] == value: # if player[key] == value:
return db[player] # return db[player]
else: # else:
return None # return None