Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.53 KB | None | 0 0
  1. from pyrogram import Client, Filters, Emoji
  2.  
  3. import locale
  4. import time, schedule
  5. import threading
  6. import datetime
  7. import pytz
  8. import re
  9. import os
  10. import sys
  11. import psutil
  12. import logging
  13. from random import randint
  14. import random
  15. import json
  16.  
  17. app = Client(
  18. "Anatras02"
  19. )
  20.  
  21. countdown=dict()
  22.  
  23. with open('countdown.json', 'r') as fp:
  24.     countdown = json.load(fp)
  25.  
  26. def SaveJson():
  27.     with open('countdown.json', 'w') as fp:
  28.         json.dump(countdown, fp,sort_keys=True, indent=4)
  29.  
  30. def startJob():
  31.     while running==True:
  32.         schedule.run_pending()
  33.         time.sleep(1)
  34. def AggiornaCounter(name):
  35.     countdown[name]-=1
  36.     SaveJson()
  37.     if countdown[name]<1:
  38.         schedule.clear(name)
  39.         del countdown[name]
  40.  
  41. t1 = threading.Thread(target=startJob)
  42. t1.start()
  43.  
  44. @app.on_message(Filters.command(["countdown"])&Filters.me)
  45. def StartCountdown(client,message):
  46.     istanceName=message.command[1].split(".")
  47.     istanceName=" ".join(str(x) for x in istanceName)
  48.     if istanceName not in countdown:
  49.         date=message.command[2].split("/")
  50.         timeNow=datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
  51.         timeToUse=datetime.datetime(timeNow.year,timeNow.month,timeNow.day,0,0,0,0,pytz.utc)
  52.         dateEvent=datetime.datetime(int(date[2]),int(date[1]),int(date[0]),0,0,0,0,pytz.utc)
  53.         try:
  54.             deltaTime=dateEvent-timeToUse
  55.             deltaTime=deltaTime.days
  56.             if deltaTime==0:
  57.                 app.send_message(message.chat.id,"Non posso inserire un evento che è oggi "+Emoji.CRYING_FACE)
  58.                 SaveJson()
  59.             elif deltaTime<0:
  60.                 app.send_message(message.chat.id,"Non posso inserire un evento in una data passata "+Emoji.CRYING_FACE)
  61.                 SaveJson()
  62.             elif deltaTime==1:
  63.                 app.send_message(message.chat.id,"Evento inserito! Manca **"+str(deltaTime)+"** giorno a "+istanceName)
  64.                 SaveJson()
  65.             else:
  66.                 app.send_message(message.chat.id,"Evento inserito! Mancano **"+str(deltaTime)+"** giorni a "+istanceName)
  67.                 SaveJson()
  68.             countdown[istanceName] = dict()
  69.             countdown[istanceName]=deltaTime
  70.             schedule.every().minute.at(":00").do(AggiornaCounter, istanceName).tag(istanceName)
  71.         except ValueError:
  72.             app.send_message(message.chat.id,"__Formattazione data sbagliata!__ "+Emoji.CRYING_FACE)
  73.     else:
  74.         app.send_message(message.chat.id,"Questo evento è già presente, non posso inserire duplicati "+Emoji.CRYING_FACE)
  75.  
  76. @app.on_message(Filters.command(["listaCountdown"])&Filters.me)
  77. def ListaCountdown(client,message):
  78.     res = "\n".join(("**{}**: {}".format(*i) for i in countdown.items()))
  79.     if any(key in countdown for key in countdown):
  80.         app.send_message(message.chat.id,"**Giorni mancanti a:**\n"+res)
  81.     else:
  82.         app.send_message(message.chat.id,"Non ci sono eventi programmati")
  83.  
  84. @app.on_message(Filters.command(["cancellaCountdown"])&Filters.me)
  85. def CancellaCountdown(client,message):
  86.     istanceName=message.command[1].split(".")
  87.     istanceName=" ".join(str(x) for x in istanceName)
  88.     if istanceName=="tutti":
  89.         countdown.clear()
  90.     else:
  91.         try:
  92.             del countdown[istanceName]
  93.             app.send_message(message.chat.id,"Countdown __"+message.command[1]+"__ eliminato")
  94.         except (KeyError,IndexError):
  95.             app.send_message(message.chat.id,"Questo countdown non esiste")
  96.     SaveJson()
  97.  
  98. app.run()
  99.  
  100. running = False
  101. t1.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement