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 (
|
from jarvis_core.db.models import (
|
||||||
Autopurge,
|
Autopurge,
|
||||||
Autoreact,
|
Autoreact,
|
||||||
|
Filter,
|
||||||
Mute,
|
Mute,
|
||||||
Phishlist,
|
Phishlist,
|
||||||
Roleping,
|
Roleping,
|
||||||
|
@ -107,6 +108,39 @@ class MessageEventMixin:
|
||||||
except Exception:
|
except Exception:
|
||||||
self.logger.warn("Failed to send warning embed")
|
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:
|
async def massmention(self, message: Message) -> None:
|
||||||
"""Handle massmention events."""
|
"""Handle massmention events."""
|
||||||
massmention = await Setting.find_one(
|
massmention = await Setting.find_one(
|
||||||
|
@ -385,6 +419,7 @@ class MessageEventMixin:
|
||||||
await self.roleping(message)
|
await self.roleping(message)
|
||||||
await self.autopurge(message)
|
await self.autopurge(message)
|
||||||
await self.checks(message)
|
await self.checks(message)
|
||||||
|
await self.filters(message)
|
||||||
if not (phish := await self.phishing(message)):
|
if not (phish := await self.phishing(message)):
|
||||||
malicious = await self.malicious_url(message)
|
malicious = await self.malicious_url(message)
|
||||||
if phish or malicious:
|
if phish or malicious:
|
||||||
|
@ -440,6 +475,7 @@ class MessageEventMixin:
|
||||||
await self.checks(after)
|
await self.checks(after)
|
||||||
await self.roleping(after)
|
await self.roleping(after)
|
||||||
await self.checks(after)
|
await self.checks(after)
|
||||||
|
await self.filters(after)
|
||||||
if not (phish := await self.phishing(after)):
|
if not (phish := await self.phishing(after)):
|
||||||
malicious = await self.malicious_url(after)
|
malicious = await self.malicious_url(after)
|
||||||
if phish or malicious:
|
if phish or malicious:
|
||||||
|
|
|
@ -30,7 +30,7 @@ class BotutilCog(Extension):
|
||||||
return ctx.author.id == self.bot.owner.id
|
return ctx.author.id == self.bot.owner.id
|
||||||
|
|
||||||
@prefixed_command(name="echo")
|
@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)
|
await ctx.send(content)
|
||||||
|
|
||||||
@prefixed_command(name="stop")
|
@prefixed_command(name="stop")
|
||||||
|
|
|
@ -60,20 +60,23 @@ class EventCog(Extension):
|
||||||
await ctx.send("That user isn't going", ephemeral=True)
|
await ctx.send("That user isn't going", ephemeral=True)
|
||||||
return
|
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":
|
if event.travel_method == "flying":
|
||||||
before_flight = "N/A"
|
before_flight = "N/A"
|
||||||
if event.before_flight:
|
if event.before_flight:
|
||||||
dts = int(event.before_departure_time.timestamp())
|
dts = int(event.before_departure_time.timestamp())
|
||||||
ats = int(event.before_arrival_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"
|
after_flight = "N/A"
|
||||||
if event.after_flight:
|
if event.after_flight:
|
||||||
dts = int(event.after_departure_time.timestamp())
|
dts = int(event.after_departure_time.timestamp())
|
||||||
ats = int(event.after_arrival_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 += [
|
fields += [
|
||||||
EmbedField(name="Before LTX flight", value=before_flight),
|
EmbedField(name="Before LTX flight", value=before_flight),
|
||||||
|
@ -158,7 +161,7 @@ class EventCog(Extension):
|
||||||
|
|
||||||
event.before_arrival_time = arrival
|
event.before_arrival_time = arrival
|
||||||
event.before_departure_time = departure
|
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()
|
await event.commit()
|
||||||
|
|
||||||
|
@ -172,7 +175,7 @@ class EventCog(Extension):
|
||||||
|
|
||||||
embed = build_embed(
|
embed = build_embed(
|
||||||
title="Your Pre-LTX Flight Information",
|
title="Your Pre-LTX Flight Information",
|
||||||
description=f"🛫 {from_airport} -> {to_airport} {flight} 🛬",
|
description=f"🛫 {from_airport} -> {to_airport} 🛬\n\n{flight}",
|
||||||
fields=fields,
|
fields=fields,
|
||||||
)
|
)
|
||||||
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
|
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_arrival_time = arrival
|
||||||
event.after_departure_time = departure
|
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()
|
await event.commit()
|
||||||
|
|
||||||
|
@ -263,7 +266,7 @@ class EventCog(Extension):
|
||||||
|
|
||||||
embed = build_embed(
|
embed = build_embed(
|
||||||
title="Your Post-LTX Flight Information",
|
title="Your Post-LTX Flight Information",
|
||||||
description=f"🛫 {from_airport} -> {to_airport} {flight} 🛬",
|
description=f"🛫 {from_airport} -> {to_airport}🛬\n\n{flight}",
|
||||||
fields=fields,
|
fields=fields,
|
||||||
)
|
)
|
||||||
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
|
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
|
||||||
|
|
Loading…
Add table
Reference in a new issue