decorators

This commit is contained in:
aliasless 2020-04-09 09:41:40 +00:00
parent 416b919d60
commit e010f415f9

View File

@ -11,40 +11,47 @@ client = discord.Client()
@client.event @client.event
async def on_ready(): async def on_ready():
print(client.user.name) print(client.user.name)
s = AsyncIOScheduler(event_loop = client.loop)
def update(func): def update(trigger):
async def wrapper(): def decorator(func):
filename = await func() async def wrapper():
filename = await func()
await client.wait_until_ready() await client.wait_until_ready()
guild = client.get_guild(665399296522321942) # id of seguis III guild = client.get_guild(665399296522321942) # id of seguis III
channels = sorted(guild.voice_channels, key = lambda x: len(x.members), reverse = True) channels = sorted(guild.voice_channels, key = lambda x: len(x.members), reverse = True)
channel = channels[0] if len(channels) else client.get_channel(673203690672357422) # main channel of seguis III channel = channels[0] if len(channels) else client.get_channel(673203690672357422) # main channel of seguis III
voice_client = await channel.connect() voice_client = await channel.connect()
source = discord.FFmpegOpusAudio(filename) source = discord.FFmpegOpusAudio(filename)
voice_client.play(source, after = lambda _: voice_client.disconnect()) voice_client.play(source)
print(filename + " played at " + str(datetime.now())) while voice_client.is_playing():
return wrapper pass
await voice_client.disconnect()
@update print(filename + " played at " + str(datetime.now()))
s.add_job(wrapper, trigger = trigger)
return wrapper
return decorator
@update(CronTrigger(hour = '0-20,22-23'))
async def ticker(): async def ticker():
tts = gTTS("The current JPY exchange rate is " + str(c.get_rate('USD', 'JPY')) + " yen to a dollar") tts = gTTS("The current JPY exchange rate is " + str(c.get_rate('USD', 'JPY')) + " yen to a dollar")
tts.save('rate.mp3') tts.save('rate.mp3')
return "rate.mp3" return "rate.mp3"
@update @update(CronTrigger(hour = '21'))
async def flatten(): async def flatten():
tts = gTTS("matt its time for your 4pm dick flattening") tts = gTTS("matt its time for your 4pm dick flattening")
tts.save('flatten.mp3') tts.save('flatten.mp3')
return "flatten.mp3" return "flatten.mp3"
s = AsyncIOScheduler(event_loop = client.loop)
s.add_job(ticker, trigger = CronTrigger(hour='0-20,22-23'))
s.add_job(flatten, trigger = CronTrigger(hour='21'))
s.start() s.start()
with open("token") as file: with open("token") as file: