Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
added 5s sleep for bans + joins to fix audit logs + mentions, also separated variable names for bans
Browse files
app.py
CHANGED
|
@@ -9,14 +9,11 @@ import time
|
|
| 9 |
import re
|
| 10 |
from discord import Embed, Color
|
| 11 |
from discord.ext import commands
|
| 12 |
-
|
| 13 |
from gradio_client import Client
|
| 14 |
from PIL import Image
|
| 15 |
from ratelimiter import RateLimiter
|
| 16 |
-
|
| 17 |
from datetime import datetime # for times
|
| 18 |
from pytz import timezone # for times
|
| 19 |
-
|
| 20 |
import asyncio # check if used
|
| 21 |
|
| 22 |
zurich_tz = timezone("Europe/Zurich")
|
|
@@ -30,28 +27,6 @@ bot = commands.Bot(command_prefix='!', intents=intents)
|
|
| 30 |
|
| 31 |
#rate_limiter = RateLimiter(max_calls=10, period=60) # needs testing
|
| 32 |
|
| 33 |
-
# todo
|
| 34 |
-
'''
|
| 35 |
-
- test what works
|
| 36 |
-
->delete
|
| 37 |
-
->edit
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
-x>nicknames
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
- add role changes (moving roles)
|
| 45 |
-
|
| 46 |
-
discord.gg / discord/invite (block completely, need to be cautious)
|
| 47 |
-
attempted @everyone / @here pings, or trying to use those strings (ping @alerts)
|
| 48 |
-
ping alerts for list of keywords
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
- backup?
|
| 52 |
-
- more alerts for more stuff?
|
| 53 |
-
|
| 54 |
-
'''
|
| 55 |
# stats stuff ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
| 56 |
number_of_messages = 0
|
| 57 |
user_cooldowns = {}
|
|
@@ -205,13 +180,16 @@ async def on_member_update(before, after):
|
|
| 205 |
@bot.event
|
| 206 |
async def on_member_ban(guild, banned_user):
|
| 207 |
try:
|
| 208 |
-
|
| 209 |
-
|
|
|
|
| 210 |
print(f"ban_reason: {ban_reason}")
|
| 211 |
|
| 212 |
-
async for
|
| 213 |
-
|
| 214 |
-
|
|
|
|
|
|
|
| 215 |
|
| 216 |
#ban_reason = f"Reason: {ban_reason}"
|
| 217 |
# HF 1108342563628404747
|
|
@@ -239,6 +217,7 @@ async def on_member_ban(guild, banned_user):
|
|
| 239 |
@bot.event
|
| 240 |
async def on_member_unban(guild, unbanned_user):
|
| 241 |
try:
|
|
|
|
| 242 |
async for entry in guild.audit_logs(action=discord.AuditLogAction.unban, limit=1):
|
| 243 |
if unbanned_user == entry.target: # verify that unbanned user is in audit log
|
| 244 |
moderator = entry.user
|
|
@@ -267,6 +246,7 @@ async def on_member_unban(guild, unbanned_user):
|
|
| 267 |
@bot.event
|
| 268 |
async def on_member_join(member):
|
| 269 |
try:
|
|
|
|
| 270 |
embed = Embed(color=Color.blue())
|
| 271 |
avatar_url = member.avatar.url if member.avatar else bot.user.avatar.url
|
| 272 |
embed.set_author(name=f"{member} ID: {member.id}", icon_url=avatar_url)
|
|
|
|
| 9 |
import re
|
| 10 |
from discord import Embed, Color
|
| 11 |
from discord.ext import commands
|
|
|
|
| 12 |
from gradio_client import Client
|
| 13 |
from PIL import Image
|
| 14 |
from ratelimiter import RateLimiter
|
|
|
|
| 15 |
from datetime import datetime # for times
|
| 16 |
from pytz import timezone # for times
|
|
|
|
| 17 |
import asyncio # check if used
|
| 18 |
|
| 19 |
zurich_tz = timezone("Europe/Zurich")
|
|
|
|
| 27 |
|
| 28 |
#rate_limiter = RateLimiter(max_calls=10, period=60) # needs testing
|
| 29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
# stats stuff ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
| 31 |
number_of_messages = 0
|
| 32 |
user_cooldowns = {}
|
|
|
|
| 180 |
@bot.event
|
| 181 |
async def on_member_ban(guild, banned_user):
|
| 182 |
try:
|
| 183 |
+
await asyncio.sleep(5)
|
| 184 |
+
entry1 = await guild.fetch_ban(banned_user)
|
| 185 |
+
ban_reason = entry1.reason
|
| 186 |
print(f"ban_reason: {ban_reason}")
|
| 187 |
|
| 188 |
+
async for entry2 in guild.audit_logs(action=discord.AuditLogAction.ban, limit=1):
|
| 189 |
+
if ban_reason:
|
| 190 |
+
print(f'{entry2.user} banned {entry2.target} for {ban_reason}')
|
| 191 |
+
else:
|
| 192 |
+
print(f'{entry2.user} banned {entry2.target} (no reason specified)')
|
| 193 |
|
| 194 |
#ban_reason = f"Reason: {ban_reason}"
|
| 195 |
# HF 1108342563628404747
|
|
|
|
| 217 |
@bot.event
|
| 218 |
async def on_member_unban(guild, unbanned_user):
|
| 219 |
try:
|
| 220 |
+
await asyncio.sleep(5)
|
| 221 |
async for entry in guild.audit_logs(action=discord.AuditLogAction.unban, limit=1):
|
| 222 |
if unbanned_user == entry.target: # verify that unbanned user is in audit log
|
| 223 |
moderator = entry.user
|
|
|
|
| 246 |
@bot.event
|
| 247 |
async def on_member_join(member):
|
| 248 |
try:
|
| 249 |
+
await asyncio.sleep(5)
|
| 250 |
embed = Embed(color=Color.blue())
|
| 251 |
avatar_url = member.avatar.url if member.avatar else bot.user.avatar.url
|
| 252 |
embed.set_author(name=f"{member} ID: {member.id}", icon_url=avatar_url)
|