diff --git a/bot.py b/bot.py index 1337033..b64ce77 100755 --- a/bot.py +++ b/bot.py @@ -30,6 +30,7 @@ l_extensions: List[str] = [ 'cogs.poll', 'cogs.help', 'jishaku', + 'cogs.monitoring' ] @@ -73,20 +74,21 @@ class TuxBot(commands.AutoShardedBot): for extension in l_extensions: try: + self.load_extension(extension) print(Texts().get("Extension loaded successfully : ") + extension) log.info(Texts().get("Extension loaded successfully : ") + extension) - self.load_extension(extension) except Exception as e: print(Texts().get("Failed to load extension : ") + extension, file=sys.stderr) + print(e) log.error(Texts().get("Failed to load extension : ") + extension, exc_info=e) async def is_owner(self, user: discord.User) -> bool: return str(user.id) in self.config.get("permissions", "owners").split( - ',') + ', ') async def on_socket_response(self, msg): self._prev_events.append(msg) @@ -113,10 +115,10 @@ class TuxBot(commands.AutoShardedBot): await self.invoke(ctx) async def on_message(self, message: discord.message): - if message.author.bot \ - or message.author.id in self.blacklist \ - or (message.guild is not None - and message.guild.id in self.blacklist): + if message.author.id in self.blacklist or (message.guild is not None and message.guild.id in self.blacklist): + return + + if message.author.bot and message.author.id != int(self.config.get('bot', 'Tester')): return await self.process_commands(message) @@ -147,7 +149,7 @@ class TuxBot(commands.AutoShardedBot): logs_webhook = self.config["webhook"] webhook = discord.Webhook.partial( id=logs_webhook.get('ID'), - token=logs_webhook.get('Url'), + token=logs_webhook.get('Token'), adapter=discord.AsyncWebhookAdapter( self.session ) @@ -195,6 +197,7 @@ if __name__ == "__main__": print(Texts().get('Starting...')) bot = TuxBot(Database(Config("./configs/config.cfg"))) + try: with setup_logging(): bot.run() diff --git a/cogs/monitoring.py b/cogs/monitoring.py new file mode 100644 index 0000000..290de6f --- /dev/null +++ b/cogs/monitoring.py @@ -0,0 +1,40 @@ +import asyncio +import threading +from aiohttp import web + +from discord.ext import commands +from bot import TuxBot + + +class Monitoring(commands.Cog): + + def __init__(self): + self.app = web.Application() + + t = threading.Thread( + target=self.run_server, + args=(self.aiohttp_server(),) + ) + t.start() + + def aiohttp_server(self): + async def hi(request): + return web.Response(text="I'm alive !") + + self.app.add_routes([web.get('/', hi)]) + runner = web.AppRunner(self.app) + + return runner + + @staticmethod + def run_server(runner): + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + loop.run_until_complete(runner.setup()) + site = web.TCPSite(runner, '0.0.0.', 3389) + loop.run_until_complete(site.start()) + loop.run_forever() + + +def setup(bot: TuxBot): + bot.add_cog(Monitoring()) diff --git a/cogs/poll.py b/cogs/poll.py index 72391a6..b80b54a 100644 --- a/cogs/poll.py +++ b/cogs/poll.py @@ -72,6 +72,26 @@ class Polls(commands.Cog): await self.update_poll(poll.id) + @commands.Cog.listener() + async def on_raw_reaction_remove(self, pld: discord.RawReactionActionEvent): + poll = self.get_poll(pld) + + if poll: + choice = utils_emotes.get_index(pld.emoji.name) + + responses = self.bot.database.session.query(Responses) \ + .filter( + Responses.poll_id == poll.id, + Responses.user == pld.user_id, + Responses.choice == choice + ) + + if responses.count() != 0: + response = responses.first() + self.bot.database.session.delete(response) + self.bot.database.session.commit() + await self.update_poll(poll.id) + ########################################################################### async def create_poll(self, ctx: commands.Context, poll: str, anonymous): @@ -92,7 +112,7 @@ class Polls(commands.Cog): ) for i, response in enumerate(responses): e.add_field( - name=f"__```{emotes[i]} - {response.capitalize()}```__", + name=f"__{emotes[i]}` - {response.capitalize()}`__", value="**0** vote" ) e.set_footer(text=f"ID: #{poll_row.id}") diff --git a/configs/prefixes.cfg b/configs/prefixes.cfg index 25e9c42..29f576b 100644 --- a/configs/prefixes.cfg +++ b/configs/prefixes.cfg @@ -1,5 +1,5 @@ [280805240977227776] -prefixes = b1.|Imo07fZY9ogan7ank1n3UERg|b2. +prefixes = test. [303633056944881686] prefixes = b1. @@ -8,5 +8,8 @@ prefixes = b1. prefixes = b1. [336642139381301249] -prefixes = +prefixes = ba. + +[274247231534792704] +prefixes = test.