38 lines
1.2 KiB
Python
38 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
|
|
)
|