Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pyrogram import Client, ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton, Filters, Emoji
- from pyrogram.errors import MessageNotModified
- import locale
- from random import randint
- import datetime
- import re
- import time
- import json
- import threading
- import schedule
- # Create a client using your bot token
- app = Client(
- "Prova",
- bot_token="835938803:AAEhGkurR3VJ3nzWGFj6BR1CtSRVzOPjJ-o"
- )
- global tainted
- tainted=0
- events=dict()
- locale.setlocale(locale.LC_TIME, "IT")
- with open('events.json', 'r') as fp:
- events = json.load(fp)
- def startJob():
- while running==True:
- schedule.run_pending()
- time.sleep(1)
- def taint(v):
- global tainted
- tainted += v
- if(tainted >= 10 ):
- with open('events.json', 'w') as fp:
- json.dump(events, fp,sort_keys=True, indent=4)
- tainted = 0
- def EstraiFunct(istanceName,message):
- if events[istanceName]["counter"]>0:
- estratto=randint(1,events[istanceName]["counter"])
- new_text=events[istanceName]["message"]+events[istanceName]["listaIscrittiStr"]+"\n\nEstrazione terminata!\nIl vincitore รจ: "+events[istanceName]["iscritti"][estratto-1]
- message.edit(new_text)
- del events[istanceName]
- else:
- message.reply("Estrazione automatica fallita, non ci sono abbastanza partecipanti\nDovrai estrarre manualmente")
- schedule.clear(istanceName)
- def UpdateMessage(nameEvent):
- continua=True
- while running==True and continua==True:
- print("Here")
- try:
- app.edit_message_text(
- events[nameEvent]["chat_id"],
- events[nameEvent]["message_id"],
- events[nameEvent]["new_message"],
- reply_markup=InlineKeyboardMarkup(
- [
- [ # First row
- InlineKeyboardButton( # Generates a callback query when pressed
- "Partecipo",
- callback_data="Iscriviti|{}".format(nameEvent).encode() # Note how callback_data must be bytes
- ),
- InlineKeyboardButton( # Generates a callback query when pressed
- "Estrai",
- callback_data="Estrai|{}".format(nameEvent).encode() # Note how callback_data must be bytes
- )
- ],
- ]
- )
- )
- except MessageNotModified:
- pass
- except KeyError:
- continua=False
- time.sleep(3)
- running = True
- t1 = threading.Thread(target=startJob)
- t1.start()
- for i in events:
- print(i)
- lock.acquire()
- t2=threading.Thread(target=UpdateMessage,args=(i,))
- lock.release()
- t2.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement