Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pyrogram import Client, Filters, Emoji
- import locale
- import time, schedule
- import threading
- import datetime
- import pytz
- import re
- import os
- import sys
- import psutil
- import logging
- from random import randint
- import random
- import json
- app = Client(
- "Anatras02"
- )
- countdown=dict()
- with open('countdown.json', 'r') as fp:
- countdown = json.load(fp)
- locale.setlocale(locale.LC_TIME, "it_IT.utf8")
- running = True
- def SaveJson():
- with open('countdown.json', 'w') as fp:
- json.dump(countdown, fp,sort_keys=True, indent=4)
- def startJob():
- while running==True:
- schedule.run_pending()
- time.sleep(1)
- def job():
- print("Primo!")
- app.send_message(-1001217515072,"Primo")
- app.send_message(-1001120221948,"Primo")
- app.send_message(-1001275441008,"Primo")
- app.send_message(-1001146498129,"Primo")
- app.send_message(-1001257654240,"Primo")
- def Buongiorno():
- print("Buongiornissimo Kaffeeeee!1!!11!")
- random.seed(datetime.datetime.now().minute)
- randomBuongiorno=randint(1,3)
- if randomBuongiorno==1:
- app.send_message(270223153,"Buongiornissimo")
- elif randomBuongiorno==2:
- app.send_message(270223153,"Buondì")
- else:
- app.send_message(270223153,"Buongiorno"+Emoji.GRINNING_FACE_WITH_SMILING_EYES)
- app.send_message(-1001217515072,"Buongiorno "+Emoji.GRINNING_FACE_WITH_SMILING_EYES)
- def AggiornaCounter(name):
- try:
- countdown[name]-=1
- except KeyError:
- schedule.clear(name)
- SaveJson()
- if countdown[name]<1:
- schedule.clear(name)
- del countdown[name]
- for i in countdown:
- schedule.every().day.at("09:00").do(AggiornaCounter, i).tag(i)
- schedule.every().day.at("15:00").do(job)
- schedule.every().day.at("21:15").do(Buongiorno)
- t1 = threading.Thread(target=startJob)
- t1.start()
- @app.on_message(Filters.me&Filters.command(["id"]))
- def getChatId(client,message):
- app.send_message(message.chat.id,"Chat id: "+"`"+str(message.chat.id)+"`")
- @app.on_message(Filters.command(["calcola"]))
- def Calcola(client,message):
- rx = r'/calcola\s+((\d+)([/]?[*]?[+]?[-]?)(\d+))'
- mo = re.match(rx,message.text)
- if(mo):
- app.send_message(message.chat.id,"Risultato: `"+str(eval(mo.group(1)))+"`")
- else:
- message.reply("Ao, formato sbagliato")
- @app.on_message(Filters.me&Filters.command(["restart"]))
- def restart(client,message):
- app.send_message(message.chat.id,"Mi sto riavviando "+Emoji.GRINNING_FACE_WITH_SMILING_EYES)
- try:
- p = psutil.Process(os.getpid())
- for handler in p.get_open_files() + p.connections():
- os.close(handler.fd)
- except Exception as e:
- logging.error(e)
- python = sys.executable
- os.execl(python, python, "\"{}\"".format(sys.argv[0]))
- @app.on_message(Filters.command(["palindroma"]))
- def Palindroma(client,message):
- rx=r'/palindroma\s+(\w+)'
- mo=re.match(rx,message.text)
- if mo:
- mo.group(1)
- if mo.group(1).lower() == mo.group(1).lower()[::-1]:
- message.reply("La parola `"+mo.group(1)+"` **è** palindroma")
- else:
- message.reply("La parola `"+mo.group(1)+"` **non** è palindroma")
- else:
- message.reply("Devi inserire una parola!")
- @app.on_message(Filters.command(["orari"]))
- def Orario(client,message):
- orarioLasVegas = datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
- orarioIta=datetime.datetime.now(pytz.timezone('Europe/Rome'))
- app.send_message(message.chat.id,"Nel **Nevada, USA ** sono le "+str(orarioLasVegas.hour)+" e "+str(orarioLasVegas.minute)+" minuti del "+orarioLasVegas.strftime("%d %B"))
- app.send_message(message.chat.id,"In **Italia** sono le "+str(orarioIta.hour)+" e "+str(orarioIta.minute)+" minuti del "+orarioIta.strftime("%d %B"))
- @app.on_message(Filters.command(["dadoanatroso"]))
- def dado(client,message):
- rx=r'/dadoanatroso\s+(\d+)'
- mo=re.match(rx,message.text)
- if mo:
- dado=randint(1,int(mo.group(1)))
- app.send_message(message.chat.id,"@"+message.from_user.username+" hai appena tirato un dado a **"+mo.group(1)+"** facce.\nÈ uscito il numero **"+str(dado)+"**")
- else:
- dado=randint(1,6)
- app.send_message(message.chat.id,"@"+message.from_user.username+" hai appena tirato un dado a **6** facce.\nÈ uscito il numero **"+str(dado)+"**")
- @app.on_message(Filters.command(["countdown"])&Filters.me)
- def StartCountdown(client,message):
- istanceName=message.command[1].split(".")
- istanceName=" ".join(str(x) for x in istanceName)
- if istanceName not in countdown:
- date=message.command[2].split("/")
- timeNow=datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
- timeToUse=datetime.datetime(timeNow.year,timeNow.month,timeNow.day,0,0,0,0,pytz.utc)
- dateEvent=datetime.datetime(int(date[2]),int(date[1]),int(date[0]),0,0,0,0,pytz.utc)
- try:
- deltaTime=dateEvent-timeToUse
- deltaTime=deltaTime.days
- if deltaTime==0:
- app.send_message(message.chat.id,"Non posso inserire un evento che è oggi "+Emoji.CRYING_FACE)
- elif deltaTime<0:
- app.send_message(message.chat.id,"Non posso inserire un evento in una data passata "+Emoji.CRYING_FACE)
- elif deltaTime==1:
- app.send_message(message.chat.id,"Evento inserito! Manca **"+str(deltaTime)+"** giorno a "+istanceName)
- SaveJson()
- countdown[istanceName] = dict()
- countdown[istanceName]=deltaTime
- schedule.every().day.at("09:00").do(AggiornaCounter, istanceName).tag(istanceName)
- else:
- app.send_message(message.chat.id,"Evento inserito! Mancano **"+str(deltaTime)+"** giorni a "+istanceName)
- SaveJson()
- countdown[istanceName] = dict()
- countdown[istanceName]=deltaTime
- schedule.every().day.at("09:00").do(AggiornaCounter, istanceName).tag(istanceName)
- except ValueError:
- app.send_message(message.chat.id,"__Formattazione data sbagliata!__ "+Emoji.CRYING_FACE)
- else:
- app.send_message(message.chat.id,"Questo evento è già presente, non posso inserire duplicati "+Emoji.CRYING_FACE)
- @app.on_message(Filters.command(["listaCountdown"])&Filters.me)
- def ListaCountdown(client,message):
- countdown=dict(sorted(countdown.items(),key=lambda a: a[1]))
- res = "\n".join(("__{}__: {}".format(*i) for i in countdown.items()))
- if any(key in countdown for key in countdown):
- app.send_message(message.chat.id,"**Giorni mancanti a:**\n"+res)
- else:
- app.send_message(message.chat.id,"Non ci sono eventi programmati")
- @app.on_message(Filters.command(["cancellaCountdown"])&Filters.me)
- def CancellaCountdown(client,message):
- istanceName=message.command[1].split(".")
- istanceName=" ".join(str(x) for x in istanceName)
- if istanceName=="tutti":
- countdown.clear()
- else:
- try:
- del countdown[istanceName]
- app.send_message(message.chat.id,"Countdown __"+message.command[1]+"__ eliminato")
- schedule.clear(istanceName)
- except (KeyError,IndexError):
- app.send_message(message.chat.id,"Questo countdown non esiste")
- SaveJson()
- app.run()
- running = False
- t1.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement