mirror of
https://github.com/nexy7574/LCC-bot.git
synced 2024-09-19 18:16:34 +01:00
Add logging to mcodonalds
This commit is contained in:
parent
b53121ebb5
commit
1bf2f813b2
2 changed files with 36 additions and 0 deletions
19
cogs/info.py
19
cogs/info.py
|
@ -1,4 +1,5 @@
|
||||||
import logging
|
import logging
|
||||||
|
import typing
|
||||||
|
|
||||||
import discord
|
import discord
|
||||||
import httpx
|
import httpx
|
||||||
|
@ -126,6 +127,24 @@ class InfoCog(commands.Cog):
|
||||||
|
|
||||||
await ctx.respond(embed=embed)
|
await ctx.respond(embed=embed)
|
||||||
|
|
||||||
|
@commands.command(name="set-log-level")
|
||||||
|
@commands.is_owner()
|
||||||
|
async def set_log_level(self, ctx: commands.Context, logger_name: str, logger_level: typing.Union[str, int]):
|
||||||
|
"""Sets a module's log level."""
|
||||||
|
logger_level = logger_level.upper()
|
||||||
|
if getattr(logging, logger_level, None) is None or logging.getLevelNamesMapping().get(logger_level) is None:
|
||||||
|
return await ctx.reply(":x: Invalid log level.")
|
||||||
|
logger = logging.getLogger(logger_name)
|
||||||
|
old_level = logger.getEffectiveLevel()
|
||||||
|
|
||||||
|
def name(level):
|
||||||
|
return logging.getLevelName(level)
|
||||||
|
|
||||||
|
logger.setLevel(logger_level)
|
||||||
|
return await ctx.reply(
|
||||||
|
f"\N{white heavy check mark} {logger_name}: {name(old_level)} -> {name(logger.getEffectiveLevel())}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
if OAUTH_REDIRECT_URI and OAUTH_ID:
|
if OAUTH_REDIRECT_URI and OAUTH_ID:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import logging
|
||||||
import pathlib
|
import pathlib
|
||||||
import re
|
import re
|
||||||
import typing
|
import typing
|
||||||
|
@ -107,12 +108,14 @@ class McDonaldsCog(commands.Cog):
|
||||||
def __init__(self, bot):
|
def __init__(self, bot):
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
self.lock = asyncio.Lock()
|
self.lock = asyncio.Lock()
|
||||||
|
self.log = logging.getLogger("jimmy.cogs.mcdonalds")
|
||||||
|
|
||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
async def on_message(self, message: discord.Message):
|
async def on_message(self, message: discord.Message):
|
||||||
author = message.author
|
author = message.author
|
||||||
me = message.guild.me if message.guild else self.bot.user
|
me = message.guild.me if message.guild else self.bot.user
|
||||||
if not message.channel.permissions_for(me).manage_messages:
|
if not message.channel.permissions_for(me).manage_messages:
|
||||||
|
self.log.debug("McDonalds disabled in %s, no manage messages permissions.", message.channel)
|
||||||
return
|
return
|
||||||
|
|
||||||
async with self.lock:
|
async with self.lock:
|
||||||
|
@ -122,11 +125,19 @@ class McDonaldsCog(commands.Cog):
|
||||||
member = discord.utils.get(message.guild.members, name=username)
|
member = discord.utils.get(message.guild.members, name=username)
|
||||||
if member:
|
if member:
|
||||||
author = member
|
author = member
|
||||||
|
self.log.info(
|
||||||
|
"Nightmare bypass, matched message content to username %s, which resolved to %r.",
|
||||||
|
username,
|
||||||
|
member
|
||||||
|
)
|
||||||
|
|
||||||
async with McDataBase() as db:
|
async with McDataBase() as db:
|
||||||
if (last_info := await db.get_break(author.id)) is not None:
|
if (last_info := await db.get_break(author.id)) is not None:
|
||||||
if message.content.upper() != "MCDONALDS!":
|
if message.content.upper() != "MCDONALDS!":
|
||||||
if (message.created_at.timestamp() - last_info[1]) > 300:
|
if (message.created_at.timestamp() - last_info[1]) > 300:
|
||||||
|
self.log.debug(
|
||||||
|
"Ad break expired for %s (%s).", author.name, author.id
|
||||||
|
)
|
||||||
await db.remove_break(author.id)
|
await db.remove_break(author.id)
|
||||||
await message.reply(
|
await message.reply(
|
||||||
f"Thank you for your patience during this commercial break. You may now resume your"
|
f"Thank you for your patience during this commercial break. You may now resume your"
|
||||||
|
@ -135,6 +146,11 @@ class McDonaldsCog(commands.Cog):
|
||||||
)
|
)
|
||||||
|
|
||||||
elif (message.created_at.timestamp() - last_info[0]) > 10:
|
elif (message.created_at.timestamp() - last_info[0]) > 10:
|
||||||
|
self.log.info(
|
||||||
|
"Deleting message %r by %r as they need to skip the ad first.",
|
||||||
|
message,
|
||||||
|
author
|
||||||
|
)
|
||||||
await message.delete(delay=0)
|
await message.delete(delay=0)
|
||||||
await message.channel.send(
|
await message.channel.send(
|
||||||
f"{message.author.mention} Please say `MCDONALDS!` to end commercial.",
|
f"{message.author.mention} Please say `MCDONALDS!` to end commercial.",
|
||||||
|
@ -142,6 +158,7 @@ class McDonaldsCog(commands.Cog):
|
||||||
)
|
)
|
||||||
await db.set_break(author.id, message.created_at.timestamp())
|
await db.set_break(author.id, message.created_at.timestamp())
|
||||||
elif message.author.bot is False:
|
elif message.author.bot is False:
|
||||||
|
self.log.info("%r skipped the ad break.", author)
|
||||||
await db.remove_break(author.id)
|
await db.remove_break(author.id)
|
||||||
await message.reply(
|
await message.reply(
|
||||||
"Thank you. You may now resume your activity.",
|
"Thank you. You may now resume your activity.",
|
||||||
|
|
Loading…
Reference in a new issue