45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
import discord
|
|
import json
|
|
|
|
ENCODING = "utf-8"
|
|
|
|
|
|
class BaseModule:
|
|
_client = None
|
|
|
|
def __init__(self, client):
|
|
self._client = client
|
|
|
|
async def load(self):
|
|
raise NotImplementedError
|
|
|
|
async def save(self, save_to_file=True):
|
|
raise NotImplementedError
|
|
|
|
async def handle_message(self, message) -> bool:
|
|
raise NotImplementedError
|
|
|
|
async def load_history(self, channel):
|
|
messages = [
|
|
{
|
|
"id": message.id,
|
|
"content": message.content,
|
|
"date": message.created_at.strftime("%d/%m %H:%M:%S"),
|
|
}
|
|
async for message in channel.history(limit=10)
|
|
]
|
|
return json.dumps(messages, ensure_ascii=False)
|
|
|
|
async def get_guild_name(self, guildId) -> str:
|
|
guild = await self._client.fetch_guild(guildId)
|
|
return "[Server={0}]".format(guild.name)
|
|
|
|
async def get_channel_name(self, channel) -> str:
|
|
if isinstance(channel, discord.DMChannel):
|
|
dm_channel = await self._client.fetch_channel(channel.id)
|
|
return "[DM={0}]".format(dm_channel.recipient.name)
|
|
else:
|
|
return "[Server={0}] => [Channel={1}]".format(
|
|
channel.guild.name, channel.name
|
|
)
|