Skip to content

Commit

Permalink
Changes to new dpy modlog.
Browse files Browse the repository at this point in the history
  • Loading branch information
EvieePy committed Jun 11, 2024
1 parent c43a2e6 commit 98efdd2
Show file tree
Hide file tree
Showing 8 changed files with 85 additions and 235 deletions.
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
4 changes: 3 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ readme = "README.md"

[tool.poetry.dependencies]
python = "^3.11"
"discord.py" = { git = "https://github.com/Rapptz/discord.py.git", rev = "e6a0dc5bc0ba8e739b0def446378088bea65d1df" }
"discord.py" = { git = "https://github.com/Rapptz/discord.py.git"}
aiohttp = "*"
asyncpg = "*"
toml = "*"
"mystbin.py" = "*"
jishaku = "*"
uvicorn = "*"
starlette-plus = { git = "https://github.com/PythonistaGuild/StarlettePlus" }

[tool.poetry.group.dev.dependencies]
ruff = "*"
Expand Down
6 changes: 4 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
discord.py @ git+https://github.com/Rapptz/discord.py@e6a0dc5
discord.py @ git+https://github.com/Rapptz/discord.py
aiohttp~=3.7.3
asyncpg~=0.27.0
asyncpg~=0.29.0
toml>=0.10.2
asyncpg-stubs
mystbin.py
jishaku
starlette-plus @ git+https://github.com/PythonistaGuild/StarlettePlus
uvicorn
Loading

0 comments on commit 98efdd2

Please sign in to comment.