Hotfixes
This commit is contained in:
parent
e179e640a3
commit
c96e19a820
3 changed files with 47 additions and 8 deletions
|
@ -7,6 +7,7 @@ from jarvis_core.db import q
|
|||
from jarvis_core.db.models import (
|
||||
Autopurge,
|
||||
Autoreact,
|
||||
Filter,
|
||||
Mute,
|
||||
Phishlist,
|
||||
Roleping,
|
||||
|
@ -107,6 +108,39 @@ class MessageEventMixin:
|
|||
except Exception:
|
||||
self.logger.warn("Failed to send warning embed")
|
||||
|
||||
async def filters(self, message: Message) -> None:
|
||||
"""Handle filter evennts."""
|
||||
filters = await Filter.find(q(guild=message.guild.id)).to_list(None)
|
||||
for item in filters:
|
||||
for f in item.filters:
|
||||
if re.search(f, message.content, re.IGNORECASE):
|
||||
expires_at = datetime.now(tz=timezone.utc) + timedelta(hours=24)
|
||||
await Warning(
|
||||
active=True,
|
||||
admin=self.user.id,
|
||||
duration=24,
|
||||
expires_at=expires_at,
|
||||
guild=message.guild.id,
|
||||
reason="Sent a message with a filtered word",
|
||||
user=message.author.id,
|
||||
).commit()
|
||||
tracker = warnings_tracker.labels(
|
||||
guild_id=message.guild.id, guild_name=message.guild.name
|
||||
)
|
||||
tracker.inc()
|
||||
embed = warning_embed(message.author, "Sent a message with a filtered word", self.user)
|
||||
try:
|
||||
await message.reply(embeds=embed)
|
||||
except Exception:
|
||||
self.logger.warn("Failed to send warning embed")
|
||||
|
||||
try:
|
||||
await message.delete()
|
||||
except Exception:
|
||||
self.logger.debug("Message deleted before action taken")
|
||||
return
|
||||
|
||||
|
||||
async def massmention(self, message: Message) -> None:
|
||||
"""Handle massmention events."""
|
||||
massmention = await Setting.find_one(
|
||||
|
@ -385,6 +419,7 @@ class MessageEventMixin:
|
|||
await self.roleping(message)
|
||||
await self.autopurge(message)
|
||||
await self.checks(message)
|
||||
await self.filters(message)
|
||||
if not (phish := await self.phishing(message)):
|
||||
malicious = await self.malicious_url(message)
|
||||
if phish or malicious:
|
||||
|
@ -440,6 +475,7 @@ class MessageEventMixin:
|
|||
await self.checks(after)
|
||||
await self.roleping(after)
|
||||
await self.checks(after)
|
||||
await self.filters(after)
|
||||
if not (phish := await self.phishing(after)):
|
||||
malicious = await self.malicious_url(after)
|
||||
if phish or malicious:
|
||||
|
|
|
@ -30,7 +30,7 @@ class BotutilCog(Extension):
|
|||
return ctx.author.id == self.bot.owner.id
|
||||
|
||||
@prefixed_command(name="echo")
|
||||
async def _echo(self, ctx: PrefixedContext, content: str) -> None:
|
||||
async def _echo(self, ctx: PrefixedContext, *, content: str) -> None:
|
||||
await ctx.send(content)
|
||||
|
||||
@prefixed_command(name="stop")
|
||||
|
|
|
@ -60,20 +60,23 @@ class EventCog(Extension):
|
|||
await ctx.send("That user isn't going", ephemeral=True)
|
||||
return
|
||||
|
||||
fields = []
|
||||
travel_method = event.travel_method.capitalize() if event.travel_method else "N/A"
|
||||
fields = [EmbedField(name="Travel Method", value=travel_method)]
|
||||
|
||||
if event.travel_method == "flying":
|
||||
before_flight = "N/A"
|
||||
if event.before_flight:
|
||||
dts = int(event.before_departure_time.timestamp())
|
||||
ats = int(event.before_arrival_time.timestamp())
|
||||
before_flight = f"🛫 {event.before_flight} 🛬\n<t:{dts}:f> -> <t:{ats}:f>"
|
||||
path, number = event.before_flight.split("|")
|
||||
before_flight = f"{number}\n\n🛫 {path} 🛬\n<t:{dts}:f> -> <t:{ats}:f>"
|
||||
|
||||
after_flight = "N/A"
|
||||
if event.after_flight:
|
||||
dts = int(event.after_departure_time.timestamp())
|
||||
ats = int(event.after_arrival_time.timestamp())
|
||||
after_flight = f"🛫 {event.after_flight} 🛬\n<t:{dts}:f> -> <t:{ats}:f>"
|
||||
path, number = event.after_flight.split("|")
|
||||
after_flight = f"{number}\n\n🛫 {flight} 🛬\n<t:{dts}:f> -> <t:{ats}:f>"
|
||||
|
||||
fields += [
|
||||
EmbedField(name="Before LTX flight", value=before_flight),
|
||||
|
@ -158,7 +161,7 @@ class EventCog(Extension):
|
|||
|
||||
event.before_arrival_time = arrival
|
||||
event.before_departure_time = departure
|
||||
event.before_flight = f"{from_airport} -> {to_airport} {flight}"
|
||||
event.before_flight = f"{from_airport} -> {to_airport} |{flight}"
|
||||
|
||||
await event.commit()
|
||||
|
||||
|
@ -172,7 +175,7 @@ class EventCog(Extension):
|
|||
|
||||
embed = build_embed(
|
||||
title="Your Pre-LTX Flight Information",
|
||||
description=f"🛫 {from_airport} -> {to_airport} {flight} 🛬",
|
||||
description=f"🛫 {from_airport} -> {to_airport} 🛬\n\n{flight}",
|
||||
fields=fields,
|
||||
)
|
||||
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
|
||||
|
@ -249,7 +252,7 @@ class EventCog(Extension):
|
|||
|
||||
event.after_arrival_time = arrival
|
||||
event.after_departure_time = departure
|
||||
event.after_flight = f"{from_airport} -> {to_airport} {flight}"
|
||||
event.after_flight = f"{from_airport} -> {to_airport} |{flight}"
|
||||
|
||||
await event.commit()
|
||||
|
||||
|
@ -263,7 +266,7 @@ class EventCog(Extension):
|
|||
|
||||
embed = build_embed(
|
||||
title="Your Post-LTX Flight Information",
|
||||
description=f"🛫 {from_airport} -> {to_airport} {flight} 🛬",
|
||||
description=f"🛫 {from_airport} -> {to_airport}🛬\n\n{flight}",
|
||||
fields=fields,
|
||||
)
|
||||
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
|
||||
|
|
Loading…
Add table
Reference in a new issue