Compare commits
2 commits
4083e1890e
...
db4826e232
Author | SHA1 | Date | |
---|---|---|---|
db4826e232 | |||
11da49202d |
1 changed files with 14 additions and 2 deletions
|
@ -4,6 +4,7 @@ from datetime import datetime, timedelta, timezone
|
||||||
import discord
|
import discord
|
||||||
import humanize
|
import humanize
|
||||||
import mysql.connector
|
import mysql.connector
|
||||||
|
from discord.ext import tasks
|
||||||
from pytimeparse2 import disable_dateutil, parse
|
from pytimeparse2 import disable_dateutil, parse
|
||||||
from redbot.core import app_commands, checks, Config, commands
|
from redbot.core import app_commands, checks, Config, commands
|
||||||
from redbot.core.app_commands import Choice
|
from redbot.core.app_commands import Choice
|
||||||
|
@ -387,9 +388,8 @@ class Moderation(commands.Cog):
|
||||||
embed = discord.Embed(title=f"📕 Case #{case['moderation_id']}", color=await self.bot.get_embed_color(None))
|
embed = discord.Embed(title=f"📕 Case #{case['moderation_id']}", color=await self.bot.get_embed_color(None))
|
||||||
embed.description = f"**Type:** {str.title(case['moderation_type'])}\n**Target:** {target_name} ({target.id})\n**Moderator:** {moderator_name} ({moderator.id})\n**Resolved:** {bool(case['resolved'])}\n**Timestamp:** <t:{case['timestamp']}> | <t:{case['timestamp']}:R>"
|
embed.description = f"**Type:** {str.title(case['moderation_type'])}\n**Target:** {target_name} ({target.id})\n**Moderator:** {moderator_name} ({moderator.id})\n**Resolved:** {bool(case['resolved'])}\n**Timestamp:** <t:{case['timestamp']}> | <t:{case['timestamp']}:R>"
|
||||||
if case['duration'] != 'NULL':
|
if case['duration'] != 'NULL':
|
||||||
expired = True if case["end_timestamp"] <= time.time() or case['resolved'] == 1 else False
|
|
||||||
td = timedelta(**{unit: int(val) for unit, val in zip(["hours", "minutes", "seconds"], case["duration"].split(":"))})
|
td = timedelta(**{unit: int(val) for unit, val in zip(["hours", "minutes", "seconds"], case["duration"].split(":"))})
|
||||||
embed.description = embed.description + f"\n**Duration:** {humanize.precisedelta(td)}\n**Expired:** {expired}"
|
embed.description = embed.description + f"\n**Duration:** {humanize.precisedelta(td)}\n**Expired:** {case['expired']}"
|
||||||
embed.add_field(name='Reason', value=f"```{case['reason']}```", inline=False)
|
embed.add_field(name='Reason', value=f"```{case['reason']}```", inline=False)
|
||||||
if case['resolved'] == 1:
|
if case['resolved'] == 1:
|
||||||
embed.add_field(name='Resolve Reason', value=f"```{case['resolve_reason']}```", inline=False)
|
embed.add_field(name='Resolve Reason', value=f"```{case['resolve_reason']}```", inline=False)
|
||||||
|
@ -397,6 +397,18 @@ class Moderation(commands.Cog):
|
||||||
else:
|
else:
|
||||||
await interaction.response.send_message(content=f"No case with case number `{case_number}` found.", ephemeral=True)
|
await interaction.response.send_message(content=f"No case with case number `{case_number}` found.", ephemeral=True)
|
||||||
|
|
||||||
|
@tasks.loop(minutes=1)
|
||||||
|
async def handle_expiry(self):
|
||||||
|
conf = await self.check_conf(['mysql_database'])
|
||||||
|
if conf:
|
||||||
|
return
|
||||||
|
database = await self.connect()
|
||||||
|
cursor = database.cursor()
|
||||||
|
query = f"UPDATE {await self.config.mysql_database()}.* SET expired = 1 WHERE end_timestamp <= %s AND expired = 0"
|
||||||
|
cursor.execute(query, (time.time(),))
|
||||||
|
database.commit()
|
||||||
|
cursor.close()
|
||||||
|
database.close()
|
||||||
|
|
||||||
@commands.group(autohelp=True)
|
@commands.group(autohelp=True)
|
||||||
@checks.admin()
|
@checks.admin()
|
||||||
|
|
Loading…
Reference in a new issue