From 61eb1d55c37f29a5386d1df9c9c1b1b83df61aca Mon Sep 17 00:00:00 2001 From: aliasless Date: Thu, 9 Apr 2020 08:55:54 +0000 Subject: [PATCH] the entire bot --- .gitignore | 2 ++ ticker.py | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .gitignore create mode 100644 ticker.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aeabf15 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.mp3 +token diff --git a/ticker.py b/ticker.py new file mode 100644 index 0000000..71cf8a9 --- /dev/null +++ b/ticker.py @@ -0,0 +1,56 @@ +import discord +from datetime import datetime +from gtts import gTTS +from forex_python.converter import CurrencyRates +from apscheduler.schedulers.asyncio import AsyncIOScheduler +from apscheduler.triggers.cron import CronTrigger + +c = CurrencyRates() +client = discord.Client() + +@client.event +async def on_ready(): + print(client.user.name) + +def update(func): + async def wrapper(): + filename = await func() + + await client.wait_until_ready() + + guild = client.get_guild(665399296522321942) # id of seguis III + + 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 + + voice_client = await channel.connect() + source = discord.FFmpegOpusAudio(filename) + voice_client.play(source, after=lambda e: print('fucky wucky: %s' % e) if e else None) + + while voice_client.is_playing(): + pass + await voice_client.disconnect() + + print(filename + " played at " + str(datetime.now())) + return wrapper + +@update +async def ticker(): + tts = gTTS("The current JPY exchange rate is " + str(c.get_rate('USD', 'JPY')) + " yen to a dollar") + tts.save('rate.mp3') + return "rate.mp3" + +@update +async def flatten(): + tts = gTTS("matt its time for your 4pm dick flattening") + tts.save('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() + +with open("token") as file: + token = file.readline() + client.run(token)