Guest User

Untitled

a guest
Mar 28th, 2023
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.22 KB | None | 0 0
  1. import disnake
  2. from disnake.ext import commands
  3. from disnake.enums import ButtonStyle
  4. from env import *
  5. from database import *
  6. from adje import member_leave_dbClean
  7. from datetime import datetime, date
  8. from dateutil import relativedelta
  9. import re
  10. # @todo fix image remove logging
  11.  
  12. class log_to_server(commands.Cog):
  13. def __init__(self, bot: commands.Bot):
  14. self.bot = bot
  15.  
  16.  
  17. @commands.Cog.listener()
  18. async def on_audit_log_entry_create(audit_entry):
  19. print("Debug 1")
  20. if "AuditLogAction.message_delete" in str(audit_entry):
  21. async for entry in audit_entry.guild.audit_logs(limit=1,action=disnake.AuditLogAction.message_delete):
  22. deleter = entry.user
  23. print(f"{deleter.name} deleted message by {audit_entry.name}")
  24.  
  25.  
  26.  
  27. # triggers
  28. # Member guild
  29. @bot.event
  30. async def on_member_join(member):
  31. print("Welcome! ", member)
  32. await member_guild_embed(member, type="joinde de keet!")
  33. await welcome_msg_member(member)
  34.  
  35. @bot.event
  36. async def on_member_remove(member):
  37. print("Aaaah! er is een member/memberina weg!")
  38. await member_guild_embed(member, type="verliet de keet!")
  39.  
  40. @bot.event
  41. async def on_member_ban(guild, member):
  42. print(f"Aaaah! User: {member} is gebanned van guild: {guild}.")
  43. await member_guild_embed(member, type="is verbannen van deze keet!")
  44.  
  45. @bot.event
  46. async def on_member_unban(guild, member):
  47. print(f"Aaaah! User: {member} is gebanned van guild: {guild}.")
  48. await member_guild_embed(member, type="is un-banned van deze keet!")
  49.  
  50. @bot.event
  51. async def on_member_update(before, after):
  52. if before.nick != after.nick:
  53. name_before = before.nick
  54. name_after = after.nick
  55. await user_name_change(name_before, name_after)
  56.  
  57.  
  58. # Voice
  59. @bot.event
  60. async def on_voice_state_update(member, before, after):
  61. # member joins voice
  62. if before.channel is None and after.channel is not None:
  63. await log_voice_state(member, vc_channel=after.channel, type="Joinde")
  64. # Member leaves voice
  65. elif after.channel is None and before.channel is not None:
  66. await log_voice_state(member, vc_channel=before.channel, type="Verliet")
  67. # Member switches voice channels
  68. elif before.channel != after.channel:
  69. await log_voice_state(member, vc_channel=after.channel, type="Veranderde")
  70.  
  71.  
  72.  
  73. # Messages in guild
  74. @bot.event
  75. async def on_message_delete(payload):
  76. await message_deleted(payload, message=payload.content, channel=payload.channel)
  77.  
  78.  
  79. @bot.event
  80. async def on_raw_bulk_message_delete(messages):
  81. bulk_deleted_count = len(messages.message_ids)
  82. bulk_deleted_channel = messages.channel_id
  83. await message_bulk_deleted(count=bulk_deleted_count, channel=bulk_deleted_channel)
  84.  
  85.  
  86. @bot.event
  87. async def on_message_edit(before, after):
  88. channel = after.channel.mention
  89. author = before.author
  90. if before.clean_content != after.clean_content:
  91. before_content = before.clean_content
  92. after_content = after.clean_content
  93. await message_edited(before_content, after_content, channel, author)
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100. # Changes in guild
  101. # Roles
  102. @bot.event
  103. async def on_guild_role_create(role):
  104. await new_or_deleted_role(role, type="aangemaakt")
  105.  
  106. @bot.event
  107. async def on_guild_role_delete(role):
  108. await new_or_deleted_role(role, type="verwijderd")
  109.  
  110. @bot.event
  111. async def on_guild_role_update(before, after):
  112. if before.name != after.name:
  113. await edited_role(before, after)
  114.  
  115. elif before.color != after.color:
  116. await color_change_role(before, after)
  117.  
  118. # Channels
  119. @bot.event
  120. async def on_guild_channel_create(channel):
  121. await channel_change(channel, type="Nieuw kanaal")
  122.  
  123. @bot.event
  124. async def on_guild_channel_delete(channel):
  125. await channel_change(channel, type="Kanaal verwijderd")
  126.  
  127. @bot.event
  128. async def on_guild_channel_update(before, after):
  129. if before.name != after.name:
  130. await channel_name_change(before=before.name, after=after.name)
  131.  
  132.  
  133. # Member join welcome msg
  134. async def welcome_msg_member(member):
  135. channel = bot.get_channel(int(env_variable.WELCOME_CHANNEL))
  136. Database.cursor.execute("SELECT content FROM configuration_text WHERE service='welcome_text' LIMIT 1")
  137.  
  138. res = Database.cursor.fetchone()[0]
  139. member_mentiont = member.mention
  140. await channel.send(res.format(member_mentiont))
  141.  
  142.  
  143.  
  144. # LOG EMBEDS
  145. # Member guild embed
  146. async def member_guild_embed(member, type):
  147.  
  148. date_created_at = str(member.created_at).split(" ")[0]
  149. x = date_created_at.split("-")
  150.  
  151.  
  152. # get two dates
  153. d1 = f'{x[2]}/{x[1]}/{x[0]}'
  154. d2 = datetime.today().strftime('%d/%m/%Y')
  155.  
  156. start_date = datetime.strptime(d1, "%d/%m/%Y")
  157. end_date = datetime.strptime(d2, "%d/%m/%Y")
  158.  
  159. # Get the relativedelta between two dates
  160. delta = relativedelta.relativedelta(end_date, start_date)
  161. if str(delta.years) == "0":
  162. i = f"{delta.months} maanden en {delta.days} dagen"
  163. else:
  164. i = f"{delta.years} jaar, {delta.months} maanden en {delta.days} dagen"
  165.  
  166.  
  167. embed=disnake.Embed(title="\n", description=f"**{member.mention} {type}**", color=disnake.Color.dark_green())
  168. embed.set_author(name=member, icon_url=member.avatar)
  169. embed.add_field(name="Account leeftijd:", value=str(i), inline=False)
  170. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  171. await channel_to_send.send(embed=embed)
  172.  
  173. # Member username change
  174. async def user_name_change(name_before, name_after):
  175. embed=disnake.Embed(title=f"Server gebruikersnaam bewerkt", description=f"\n", color=disnake.Color.purple())
  176. embed.add_field(name="Voor het bewerken:", value=str(name_before), inline=False)
  177. embed.add_field(name="Account is gemaakt op:", value=str(f"{name_after.created_at}"), inline=False)
  178.  
  179. embed.add_field(name="Na het bewerken:", value=str(name_after), inline=False)
  180. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  181. await channel_to_send.send(embed=embed)
  182.  
  183.  
  184.  
  185.  
  186. # Voice logging
  187. async def log_voice_state(member, vc_channel, type):
  188. embed=disnake.Embed(title=f"\n", description=f"**{member.mention} {type} voice kanaal: #{vc_channel}**", color=disnake.Color.greyple())
  189. embed.set_author(name=member, icon_url=member.avatar)
  190. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  191. await channel_to_send.send(embed=embed)
  192.  
  193.  
  194.  
  195.  
  196. # Message
  197. async def message_deleted(payload, message, channel):
  198.  
  199. embed=disnake.Embed(title=f"\n", description=f"{payload.author.mention} verwijderde een bericht in {channel.mention}", color=disnake.Color.purple())
  200. embed.set_author(name=payload.author.name, icon_url=payload.author.avatar)
  201. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  202. try:
  203. if payload.attachments[0] != None:
  204. embed.set_image(url=payload.attachments[0].proxy_url)
  205. except Exception as error:
  206. pass
  207. embed.add_field(name="Content:", value=str(payload.clean_content), inline=False)
  208. await channel_to_send.send(embed=embed)
  209.  
  210. async def message_bulk_deleted(count, channel):
  211. channel_name = (await bot.fetch_channel(channel)).mention
  212. embed=disnake.Embed(title=f"\n", description=f"**Bulk berichten verwijderd in {channel_name} - Aantal: {count}**", color=disnake.Color.purple())
  213. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  214. await channel_to_send.send(embed=embed)
  215.  
  216. async def message_edited(before_content, after_content, channel, author):
  217. embed=disnake.Embed(title=f"\n", description=f"**Bericht bewerkt in {channel} - Door: {author.mention}**", color=disnake.Color.purple())
  218. embed.set_author(name=author, icon_url=author.avatar)
  219. embed.add_field(name="Voor het bewerken:", value=str(before_content), inline=False)
  220. embed.add_field(name="Na het bewerken:", value=str(after_content), inline=False)
  221. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  222. await channel_to_send.send(embed=embed)
  223.  
  224.  
  225.  
  226.  
  227. # Guild changes
  228. # Roles
  229. async def new_or_deleted_role(role, type):
  230. embed=disnake.Embed(title=f"Rol {type}: {role}", description="\n", color=disnake.Color.purple())
  231. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  232. await channel_to_send.send(embed=embed)
  233.  
  234. async def edited_role(before, after):
  235. if str(before) != str(after):
  236. embed=disnake.Embed(title=f"Rol bewerkt", description="\n", color=disnake.Color.purple())
  237. embed.add_field(name="Voor het bewerken:", value=str(before), inline=False)
  238. embed.add_field(name="Na het bewerken:", value=str(after), inline=False)
  239. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  240. await channel_to_send.send(embed=embed)
  241. else:
  242. pass
  243.  
  244. async def color_change_role(before, after):
  245. embed=disnake.Embed(title=f"Rol {before.name} kleur bewerkt", description="\n", color=disnake.Color.purple())
  246. embed.add_field(name="Voor het bewerken:", value=str(before.color), inline=False)
  247. embed.add_field(name="Na het bewerken:", value=str(after.color), inline=False)
  248. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  249. await channel_to_send.send(embed=embed)
  250.  
  251.  
  252.  
  253.  
  254. # Channels
  255. async def channel_change(channel, type="Nieuw kanaal"):
  256. embed=disnake.Embed(title=f"\n", description="**{type} met de naam: #{channel}**", color=disnake.Color.purple())
  257. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  258. await channel_to_send.send(embed=embed)
  259.  
  260. async def channel_name_change(before, after):
  261. embed=disnake.Embed(title=f"Kanaal bewerkt", description="\n", color=disnake.Color.purple())
  262. embed.add_field(name="Voor het bewerken:", value=str(before), inline=False)
  263. embed.add_field(name="Na het bewerken:", value=str(after), inline=False)
  264. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  265. await channel_to_send.send(embed=embed)
  266.  
  267.  
  268.  
  269. # Logging commands to log channel
  270. def log_commands(inter, command, on_user):
  271. embed=disnake.Embed(title=f"Adje log", description="\n", color=disnake.Color.purple())
  272. embed.set_author(name=inter.author, icon_url=inter.author.avatar)
  273. embed.add_field(name="Command:", value=str(command), inline=False)
  274. embed.add_field(name="Op gebruiker:", value=str(on_user), inline=False)
  275. channel_to_send = bot.get_channel(env_variable.ADJE_LOG_CHANNEL_ID)
  276. bot.loop.create_task(channel_to_send.send(embed=embed))
  277.  
  278.  
  279.  
  280.  
  281.  
  282. def setup(bot: commands.Bot):
  283. bot.add_cog(log_to_server(bot))
Advertisement
Add Comment
Please, Sign In to add comment