def riavvia(infos): if not Manager.has_a_bot(infos.user.uid): return if not Core.is_online(infos.token): return if not infos.user.is_owner and infos.user.uid not in infos.admins: return Core.detach_bot(infos.token) time.sleep(0.5) Core.attach_bot(infos.token) infos.reply("Riavviato.")
def detach_bot(infos): bid = infos.user.message.text res = Core.detach_bot(None, bid=bid) msg = "Qualcosa non va..." if res: msg = "Bot stoppato con successo, kitsu." infos.reply(msg)
def stats(infos): t = time.time() if infos.user.uid != Manager.get_owner_id(): return text = "In questo momento sto mantenendo online %s bot.\n" % Core.count_bots() text += "Il tempo di elaborazione di questo messaggio è di %s ms, " % LowLevel.get_time(t) text += "quindi il carico di lavoro è leggero.\n\nFoos version: %s" % ver Dialoger.send(infos, None, special_text=text)
def change_token(infos): token = infos.text try: bot = HTTPLL.getMe(token) except NotFound404: infos.reply("Token non valida.") return except Exception as err: infos.reply("Eccezione: %s" % err) return nbid = bot["id"] obids = Manager.get_botid_from_prop_id(infos.user.uid) if len(obids) == 0: infos.reply("Non hai un bot!") return if len(obids) == 1: if obids[0] != nbid: infos.reply("Devi darmi la chiave dello stesso tuo bot!") return elif nbid not in obids: infos.reply( "Non riconsco questo bot.\nPuoi cambiare token, non bot...") return bots = json.loads(open("Files/jsons/bots.json").read()) bots.pop(Manager.get_token_from_bot_id(nbid)) bots[token] = {"bot_id": nbid, "user_id": infos.user.uid} with open("Files/jsons/bots.json", "w") as fl: fl.write(json.dumps(bots)) infos.reply("Token sostituita!") Core.attach_bot(token) infos.reply("Ora il bot dovrebbe essere on!")
def elimina_bot(infos): try: if not infos.user.is_owner: return if not Core.is_online(infos.token): Dialoger.send(infos, None, special_text="M-ma io non sono online...") uid = str(infos.user.uid) bid = infos.bid if not infos.text: code = str(random.randint(1000, 9999)) Dialoger.send(infos, None, special_text="Se mi elimini perderai tutti i dati!\n" "Scrivi \"/elimina_bot %s\" se ne sei sicuro..." % code) Unreloaded.set_delete_code(uid, code) return if Unreloaded.get_delete_code(uid) == "": code = str(random.randint(1000, 9999)) Dialoger.send(infos, None, special_text="Non avevo ancora generato il codice, eccolo: %s." % code) Unreloaded.set_delete_code(uid, code) return if infos.text != Unreloaded.get_delete_code(uid): Dialoger.send(infos, None, special_text="Codice sbagliato, era: %s" % Unreloaded.get_delete_code(uid)) return Dialoger.send(infos, None, special_text="Procedo...") Log.d("Elimino il bot %s di %s" % (bid, uid)) Core.detach_bot(infos.token) Manager.delete_bot(bid) Dialoger.send(infos, None, special_text="Addio...") except Exception as err: Log.e(err)
def spegni(infos): if not Manager.has_a_bot(infos.user.uid): return if not Core.is_online(infos.token): return if not infos.user.is_owner: return if not infos.text: Dialoger.send(infos, None, special_text="Se mi spegni non potrai più avviarmi fino al riavvio di" " Kitsu!\nScrivi /spegni ok se ne sei sicuro") return if infos.text.lower() != "ok": return Dialoger.send(infos, None, special_text="Scrivi /spegni ok se ne sei sicuro!") try: Dialoger.send(infos, None, special_text="Spegnimento...") Core.detach_bot(infos.token) except Exception as err: Dialoger.send(infos, None, special_text="Si è verificato un errore...\n(%s)" % err)
# coding=utf-8 # Copyright (c) 2018 Kaikyu # 888 d8P d8b 888 .d8888b. 888 # 888 d8P Y8P 888 d88P Y88b 888 # 888 d8P 888 888 888 888 # 888d88K 888 888888 .d8888b 888 888 88888b. .d88b. 888 .d88b. .d88888 .d88b. # 8888888b 888 888 88K 888 888 888 "88b d8P Y8b 888 d88""88b d88" 888 d8P Y8b # 888 Y88b 888 888 "Y8888b. 888 888 888 888 88888888 8888 888 888 888 888 888 888 88888888 # 888 Y88b 888 Y88b. X88 Y88 888 888 888 Y8b. Y88b d88P Y88..88P Y88b 888 Y8b. # 888 Y88b 888 "Y888 88888P' "Y88888 888 888 "Y8888 "Y8888P" "Y88P" "Y88888 "Y8888 from Utils import Logger as Log from Core import ThreadedCore as Core from Core import Manager from Core import HTTPLL if __name__ == "__main__": Log.i("Starting Kitsu, version 3.0.") Core.attach_bot(Manager.get_token_list()) HTTPLL.sendMessage(Manager.get_main_bot_token(), Manager.get_owner_id(), "Booted.") Core.idle()
def newbot(infos): user = infos.user.username uid = infos.user.uid say = infos.reply if uid not in auth: say("Per potermi utilizzare devi effettuare una donazione a PayPal.me/KaikyuDev di 5 euro," "includendo come messaggio il tuo ID, se non sai il tuo ID esegui il comando /myid.\n\n" "I server, così come il tempo, hanno un valore.") return if uid in limits: limit = limits[uid] else: limit = 1 if infos.text == "token": say("Non devi scrivere \"token\", devi darmi la **token** del tuo **bot**.", markdown=True) HTTPLL.sendMessage( infos.token, Manager.get_owner_id(), "@%s ha usato /newbot \"token\" lol" % infos.user.username) return if Manager.get_bot_count() >= max_bots and "!!" not in infos.text: say("Tutti i posti sono stati occupati.\nSegui @KitsuneCode per sapere quando ce ne saranno altri ~" ) return msg = "Nuovo bot da %s (ID: %s)" % (user, uid) if infos.text == "": say("La sintassi del comando è semplice:\n/newbot token\nRiprova...") return Log.a("[Bot: @%s | %s] user: %s ID: %s 'newbot senza chiave'" % (infos.username, infos.bid, user, uid)) key = infos.text.replace("!!", "") if Manager.is_token_used(key): Log.a("[Bot: @%s | %s] user: %s ID: %s 'newbot chiave usata'" % (infos.username, infos.bid, user, uid)) return say("Questa chiave è già usata...") if Manager.count_bots(uid) >= limit: Log.a("[Bot: @%s | %s] user: %s ID: %s 'newbot utente ha già un bot'" % (infos.username, infos.bid, user, uid)) return say( "A quanto pare non puoi fare altri bot ne hai già %s su %s..." % (Manager.count_bots(uid), limit)) if ":" not in key or len(key) != 45: say("%s non credo che questa sia una chiave valida." % user) return Log.a("[Bot: @%s | %s] user: %s ID: %s 'newbot chiave errata'" % (infos.username, infos.bid, user, uid)) try: tbot = HTTPLL.getMe(key) txt = "Eccomi master.\nQuesta è una [guida](%s) sul miofunzionamento.\nUnisciti al [gruppo ufficiale](%s) per avere " \ "le novità in tempo reale." % ("telegra.ph/Come-creare-un-KitsuBot-08-20", "t.me/KitsuBotsGroup") HTTPLL.sendMessage(key, uid, text=txt, parse_mode="markdown") msg += "\nHa usato la token %s\n" % key except Exception as err: Log.d( "L'utente non ha avviato il proprio bot, o c'è qualche problema (%s)" % err) return say("Sicuro di aver avviato il tuo bot in privato?") if Manager.add_bot(uid, tbot["id"], tbot["token"]): say("Registrato con successo!\nTutti i prossimi comandi dovrai eseguirli dal tuo bot: @%s\n" "Il tuo bot è il %sesimo su %s!" % (tbot["username"], Manager.get_bot_count(), max_bots)) else: Log.d("Qualcosa è andato storto...") return say("Qualcosa è andato storto!") msg += "Nome %s\nUsername @%s\nID: %s" % (tbot["first_name"], tbot["username"], tbot["id"]) HTTPLL.sendMessage(infos.token, Manager.get_owner_id(), msg) Core.attach_bot(key)