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)
- 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 AggiornaCounter(name):
- countdown[name]-=1
- SaveJson()
- if countdown[name]<1:
- schedule.clear(name)
- del countdown[name]
- t1 = threading.Thread(target=startJob)
- t1.start()
- @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)
- SaveJson()
- elif deltaTime<0:
- app.send_message(message.chat.id,"Non posso inserire un evento in una data passata "+Emoji.CRYING_FACE)
- SaveJson()
- elif deltaTime==1:
- app.send_message(message.chat.id,"Evento inserito! Manca **"+str(deltaTime)+"** giorno a "+istanceName)
- SaveJson()
- else:
- app.send_message(message.chat.id,"Evento inserito! Mancano **"+str(deltaTime)+"** giorni a "+istanceName)
- SaveJson()
- countdown[istanceName] = dict()
- countdown[istanceName]=deltaTime
- schedule.every().minute.at(":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):
- 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")
- 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