Files
aikaterna-cogs/forwarding/forwarding.py
2018-01-23 19:51:03 -08:00

50 lines
1.7 KiB
Python

# forwarding.py is ported from another bot:
# https://github.com/jacobcheatley/dankbot
import discord
from discord.ext import commands
from .utils.dataIO import dataIO
from .utils import checks
class Forwarding:
def __init__(self, bot: commands.Bot):
self.bot = bot
self.owner = self.get_owner()
def get_owner(self):
owner_id = dataIO.load_json("data/red/settings.json")["OWNER"]
return discord.utils.find(lambda m: m.id == owner_id, self.bot.get_all_members())
async def send_to_owner(self, **kwargs):
if self.owner is None:
self.owner = self.get_owner()
await self.bot.send_message(self.owner, **kwargs)
async def on_message(self, message: discord.Message):
if self.owner is None:
self.owner = self.get_owner()
if not message.channel.is_private or message.channel.user.id == self.owner.id:
return
embed = discord.Embed()
if message.author == self.bot.user:
embed.title = 'Sent PM to {}#{} ({}).'.format(message.channel.user.name, message.channel.user.discriminator, message.channel.user.id)
else:
embed.set_author(name=message.author, icon_url=message.author.avatar_url or message.author.default_avatar_url)
embed.title = '{} messaged me:'.format(message.channel.user.id)
embed.description = message.content
embed.timestamp = message.timestamp
await self.send_to_owner(embed=embed)
@commands.command()
@checks.is_owner()
async def pm(self, user: discord.User, *, content: str):
"""PMs a person."""
await self.bot.send_message(user, content)
def setup(bot):
bot.add_cog(Forwarding(bot))