|
|
@@ -1,10 +1,10 @@
|
|
|
import logging, discord, asyncpg, random, sys
|
|
|
|
|
|
from discord.ext import commands
|
|
|
-from query.guild import update_guild, get_report_deleted, get_output_channel
|
|
|
+from query.guild import update_guild, get_report_deleted, get_output_channel, get_report_edited
|
|
|
from query.channel import insert_channel, get_interact
|
|
|
from query.channel_user import upsert_total_messages
|
|
|
-from query.user import create_user
|
|
|
+from query.user import create_user, created_invite, created_integration, member_updated, user_updated, member_banned, member_unbanned, presence_updated, message_edited, message_deleted, reacted, event_created, event_joined, thread_created, thread_joined
|
|
|
from common.logging import report
|
|
|
|
|
|
def setup(bot: commands.Bot):
|
|
|
@@ -87,19 +87,36 @@ class General(commands.Cog):
|
|
|
await report(self.bot, f"Guild removed `{guild}`.")
|
|
|
|
|
|
@commands.Cog.listener()
|
|
|
- async def on_message_delete(self, message: discord.Message):
|
|
|
- if await get_report_deleted(self.bot.pg, message.guild.id):
|
|
|
- report(self.bot, message.guild_id, f"Message from {message.author}, in {message.channel} deleted: {message}")
|
|
|
- self.last_msg = message
|
|
|
+ async def on_invite_create(self, invite: discord.Invite):
|
|
|
+ await created_invite(self.bot.pg, invite.inviter.id)
|
|
|
|
|
|
@commands.Cog.listener()
|
|
|
- async def on_raw_member_remove(self, payload):
|
|
|
- report(self.bot, f"{payload.user} has left {payload.guild_id}")
|
|
|
+ async def on_integration_create(self, integration: discord.Integration):
|
|
|
+ await created_integration(self.bot.pg, integration.user.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_member_update(self, before):
|
|
|
+ await member_updated(self.bot.pg, before.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_user_update(self, before):
|
|
|
+ await user_updated(self.bot.pg, before.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_member_ban(self, guild: discord.Guild, user: discord.User):
|
|
|
+ await member_banned(self.bot.pg, user.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_member_unban(self, guild: discord.Guild, user: discord.User):
|
|
|
+ await member_unbanned(self.bot.pg, user.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_presence_update(self, before):
|
|
|
+ await presence_updated(self.bot.pg, before.id)
|
|
|
|
|
|
@commands.Cog.listener()
|
|
|
async def on_message(self, message: discord.Message):
|
|
|
## ActiveRPG
|
|
|
-
|
|
|
# Create user, if not exists
|
|
|
await create_user(self.bot.pg, message.author.id)
|
|
|
|
|
|
@@ -158,6 +175,49 @@ class General(commands.Cog):
|
|
|
]
|
|
|
await message.reply(random.choice(messages))
|
|
|
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_message_edit(self, before: discord.Message, after: discord.Message):
|
|
|
+ await message_edited(self.bot.pg, before.author.id)
|
|
|
+ if before.guild:
|
|
|
+ if await get_report_edited(self.bot.pg, before.guild.id) and get_output_channel(self.bot.pg, before.guild.id):
|
|
|
+ report(self.bot, before.guild.id, f"Message from {before.author}, in {before.channel} edited from {before.content} to {after.content}")
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_message_delete(self, message: discord.Message):
|
|
|
+ await message_deleted(self.bot.pg, message.author.id)
|
|
|
+ if await get_report_deleted(self.bot.pg, message.guild.id):
|
|
|
+ report(self.bot, message.guild_id,
|
|
|
+ f"Message from {message.author}, in {message.channel} deleted: {message}")
|
|
|
+
|
|
|
+ # !snipe
|
|
|
+ self.last_msg = message
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_raw_member_remove(self, payload):
|
|
|
+ report(self.bot, f"{payload.user} has left {payload.guild_id}")
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_reaction_add(self, reaction, user):
|
|
|
+ reacted(self.bot.pg, user.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_scheduled_event_create(self, event: discord.ScheduledEvent):
|
|
|
+ event_created(self.bot.pg, event.creator.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_scheduled_event_user_add(self, event: discord.ScheduledEvent, user):
|
|
|
+ event_joined(self.bot.pg, user.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_thread_create(self, thread: discord.Thread):
|
|
|
+ thread_created(self.bot.pg, thread.owner.id)
|
|
|
+
|
|
|
+ @commands.Cog.listener()
|
|
|
+ async def on_thread_member_join(self, member: discord.User):
|
|
|
+ thread_joined(self.bot.pg, member.id)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
# Undelete last deleted message
|
|
|
@commands.command(name="snipe")
|
|
|
async def snipe(self, ctx: commands.Context):
|