Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 0 additions & 33 deletions constants/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@
"Colours",
"Channels",
"ForumTags",
"PAPIWebsocketSubscriptions",
"PAPIWebsocketCloseCodes",
"PAPIWebsocketNotificationTypes",
"PAPIWebsocketOPCodes",
)


Expand Down Expand Up @@ -76,32 +72,3 @@ class ForumTags(CONSTANTS):
DISCORDPY = 1006716972802789457
OTHER = 1006717008613740596
RESOLVED = 1006769269201195059


class PAPIWebsocketCloseCodes(CONSTANTS):
NORMAL: int = 1000
ABNORMAL: int = 1006


class PAPIWebsocketOPCodes(CONSTANTS):
# Received from Pythonista API...
HELLO: int = 0
EVENT: int = 1
NOTIFICATION: int = 2

# Sent to Pythonista API...
SUBSCRIBE: str = "subscribe"
UNSUBSCRIBE: str = "unsubscribe"


class PAPIWebsocketSubscriptions(CONSTANTS):
DPY_MODLOG: str = "dpy_modlog"


class PAPIWebsocketNotificationTypes(CONSTANTS):
# Subscriptions...
SUBSCRIPTION_ADDED: str = "subscription_added"
SUBSCRIPTION_REMOVED: str = "subscription_removed"

# Failures...
UNKNOWN_OP: str = "unknown_op"
9 changes: 0 additions & 9 deletions core/utils/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,6 @@ def emit(self, record: logging.LogRecord) -> None:
self.bot.logging_queue.put_nowait(record)


class PAPILoggingFilter(logging.Filter):
def __init__(self) -> None:
super().__init__(name="modules.api")

def filter(self, record: logging.LogRecord) -> bool:
return not ("Received HELLO" in record.msg or "added our subscription" in record.msg)


class LogHandler:
def __init__(self, *, bot: Bot, stream: bool = True) -> None:
self.log: logging.Logger = logging.getLogger()
Expand All @@ -54,7 +46,6 @@ def __enter__(self: Self) -> Self:
logging.getLogger("discord.http").setLevel(logging.INFO)
logging.getLogger("discord.state").setLevel(logging.WARNING)
logging.getLogger("discord.gateway").setLevel(logging.WARNING)
logging.getLogger("modules.api").addFilter(PAPILoggingFilter())

self.log.setLevel(logging.INFO)
handler = RotatingFileHandler(
Expand Down
10 changes: 9 additions & 1 deletion launcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,14 @@
import aiohttp
import asyncpg
import mystbin
import uvicorn

import core
from core.utils import LogHandler
from modules import EXTENSIONS
from server.application import Application

tasks: set[asyncio.Task[None]] = set()


async def main() -> None:
Expand Down Expand Up @@ -59,8 +63,12 @@ async def main() -> None:
extension.name,
)

await bot.start(core.CONFIG["TOKENS"]["bot"])
app: Application = Application(bot=bot)
config: uvicorn.Config = uvicorn.Config(app, port=2332)
server: uvicorn.Server = uvicorn.Server(config)

tasks.add(asyncio.create_task(bot.start(core.CONFIG["TOKENS"]["bot"])))
await server.serve()

try:
asyncio.run(main())
Expand Down
179 changes: 0 additions & 179 deletions modules/api.py

This file was deleted.

19 changes: 9 additions & 10 deletions modules/moderation.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import logging
import re
from textwrap import shorten
from typing import TYPE_CHECKING, Any, Self, TypeAlias
from typing import TYPE_CHECKING, Any, Self

import discord
import mystbin
Expand All @@ -43,12 +43,12 @@

if TYPE_CHECKING:
from core.context import Interaction
from types_.papi import ModLogPayload, PythonistaAPIWebsocketPayload
from types_.papi import ModLogPayload

ModLogType: TypeAlias = PythonistaAPIWebsocketPayload[ModLogPayload]

logger = logging.getLogger(__name__)


BASE_BADBIN_RE = r"https://(?P<site>{domains})/(?P<slug>[a-zA-Z0-9]+)[.]?(?P<ext>[a-z]{{1,8}})?"
TOKEN_RE = re.compile(r"[a-zA-Z0-9_-]{23,28}\.[a-zA-Z0-9_-]{6,7}\.[a-zA-Z0-9_-]{27}")
PROSE_LOOKUP = {
Expand Down Expand Up @@ -264,21 +264,20 @@ async def find_badbins(self, message: discord.Message) -> None:
await message.reply(msg, mention_author=False)

@commands.Cog.listener()
async def on_papi_dpy_modlog(self, payload: ModLogType, /) -> None:
moderation_payload = payload["payload"]
moderation_event = core.DiscordPyModerationEvent(moderation_payload["moderation_event_type"])
async def on_papi_dpy_modlog(self, payload: ModLogPayload, /) -> None:
moderation_event = core.DiscordPyModerationEvent(payload["moderation_event_type"])

embed = discord.Embed(
title=f"Discord.py Moderation Event: {moderation_event.name.title()}",
colour=random_pastel_colour(),
)

target_id = moderation_payload["target_id"]
target_id = payload["target_id"]
target = await self.bot.get_or_fetch_user(target_id)

moderation_reason = moderation_payload["reason"]
moderation_reason = payload["reason"]

moderator_id = moderation_payload["author_id"]
moderator_id = payload["author_id"]
moderator = self.dpy_mod_cache.get(moderator_id) or await self.bot.get_or_fetch_user(
moderator_id, cache=self.dpy_mod_cache
)
Expand All @@ -301,7 +300,7 @@ async def on_papi_dpy_modlog(self, payload: ModLogType, /) -> None:

embed.description = moderator_format + target_format

when = datetime.datetime.fromisoformat(moderation_payload["event_time"])
when = datetime.datetime.fromisoformat(payload["event_time"])
embed.timestamp = when

guild = self.bot.get_guild(490948346773635102)
Expand Down
Loading