Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. from pyrogram import Client, ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton, Filters, Emoji
  2. from pyrogram.errors import MessageNotModified
  3.  
  4. import locale
  5. from random import randint
  6. import datetime
  7. import re
  8. import time
  9. import json
  10. import threading
  11. import schedule
  12.  
  13.  
  14. # Create a client using your bot token
  15. app = Client(
  16. "Prova",
  17. bot_token="835938803:AAEhGkurR3VJ3nzWGFj6BR1CtSRVzOPjJ-o"
  18. )
  19. global tainted
  20. tainted=0
  21.  
  22. events=dict()
  23. locale.setlocale(locale.LC_TIME, "IT")
  24. with open('events.json', 'r') as fp:
  25. events = json.load(fp)
  26.  
  27.  
  28. def startJob():
  29. while running==True:
  30. schedule.run_pending()
  31. time.sleep(1)
  32.  
  33. def taint(v):
  34. global tainted
  35. tainted += v
  36. if(tainted >= 10 ):
  37. with open('events.json', 'w') as fp:
  38. json.dump(events, fp,sort_keys=True, indent=4)
  39. tainted = 0
  40.  
  41. def EstraiFunct(istanceName,message):
  42. if events[istanceName]["counter"]>0:
  43. estratto=randint(1,events[istanceName]["counter"])
  44. new_text=events[istanceName]["message"]+events[istanceName]["listaIscrittiStr"]+"\n\nEstrazione terminata!\nIl vincitore รจ: "+events[istanceName]["iscritti"][estratto-1]
  45. message.edit(new_text)
  46. del events[istanceName]
  47. else:
  48. message.reply("Estrazione automatica fallita, non ci sono abbastanza partecipanti\nDovrai estrarre manualmente")
  49. schedule.clear(istanceName)
  50.  
  51. def UpdateMessage(nameEvent):
  52. continua=True
  53. while running==True and continua==True:
  54. print("Here")
  55. try:
  56. app.edit_message_text(
  57. events[nameEvent]["chat_id"],
  58. events[nameEvent]["message_id"],
  59. events[nameEvent]["new_message"],
  60. reply_markup=InlineKeyboardMarkup(
  61. [
  62. [ # First row
  63. InlineKeyboardButton( # Generates a callback query when pressed
  64. "Partecipo",
  65. callback_data="Iscriviti|{}".format(nameEvent).encode() # Note how callback_data must be bytes
  66.  
  67. ),
  68. InlineKeyboardButton( # Generates a callback query when pressed
  69. "Estrai",
  70. callback_data="Estrai|{}".format(nameEvent).encode() # Note how callback_data must be bytes
  71. )
  72. ],
  73. ]
  74. )
  75. )
  76. except MessageNotModified:
  77. pass
  78. except KeyError:
  79. continua=False
  80. time.sleep(3)
  81.  
  82. running = True
  83.  
  84.  
  85. t1 = threading.Thread(target=startJob)
  86. t1.start()
  87.  
  88. for i in events:
  89. print(i)
  90. lock.acquire()
  91. t2=threading.Thread(target=UpdateMessage,args=(i,))
  92. lock.release()
  93. t2.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement