|
|
@ -1,7 +1,8 @@
|
|
|
|
from datetime import datetime
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
|
import dateutil.parser
|
|
|
|
|
|
|
|
import discord
|
|
|
|
import discord
|
|
|
|
|
|
|
|
import nude
|
|
|
|
|
|
|
|
from nude import Nude
|
|
|
|
from redbot.core import Config
|
|
|
|
from redbot.core import Config
|
|
|
|
from redbot.core import commands
|
|
|
|
from redbot.core import commands
|
|
|
|
from redbot.core.bot import Red
|
|
|
|
from redbot.core.bot import Red
|
|
|
@ -21,65 +22,24 @@ class Nudity:
|
|
|
|
self.config = Config.get_conf(self, identifier=9811198108111121, force_registration=True)
|
|
|
|
self.config = Config.get_conf(self, identifier=9811198108111121, force_registration=True)
|
|
|
|
|
|
|
|
|
|
|
|
default_guild = {
|
|
|
|
default_guild = {
|
|
|
|
"enabled": True
|
|
|
|
"enabled": False
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
self.config.register_guild(**default_guild)
|
|
|
|
self.config.register_guild(**default_guild)
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@commands.command(aliases=['togglenudity'], name='nudity')
|
|
|
|
def get_date_time(s):
|
|
|
|
async def nudity(self, ctx: commands.Context):
|
|
|
|
d = dateutil.parser.parse(s)
|
|
|
|
"""Toggle nude-checking on or off"""
|
|
|
|
return d
|
|
|
|
is_on = await self.config.guild(ctx.guild).enabled()
|
|
|
|
|
|
|
|
await self.config.guild(ctx.guild).enabled.set(not is_on)
|
|
|
|
|
|
|
|
await ctx.send("Nude checking is now set to {}".format(not is_on))
|
|
|
|
|
|
|
|
|
|
|
|
@commands.group(aliases=['setlseen'], name='lseenset')
|
|
|
|
async def on_message(self, message: discord.Message):
|
|
|
|
async def lset(self, ctx: commands.Context):
|
|
|
|
is_on = await self.config.guild(message.guild).enabled()
|
|
|
|
"""Change settings for lseen"""
|
|
|
|
if not is_on:
|
|
|
|
if ctx.invoked_subcommand is None:
|
|
|
|
return
|
|
|
|
await ctx.send_help()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@lset.command(name="toggle")
|
|
|
|
if not message.attachments:
|
|
|
|
async def lset_toggle(self, ctx: commands.Context):
|
|
|
|
return
|
|
|
|
"""Toggles tracking seen for this server"""
|
|
|
|
|
|
|
|
enabled = not await self.config.guild(ctx.guild).enabled()
|
|
|
|
|
|
|
|
await self.config.guild(ctx.guild).enabled.set(
|
|
|
|
|
|
|
|
enabled)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await ctx.send(
|
|
|
|
|
|
|
|
"Seen for this server is now {}".format(
|
|
|
|
|
|
|
|
"Enabled" if enabled else "Disabled"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@commands.command(aliases=['lastseen'])
|
|
|
|
|
|
|
|
async def lseen(self, ctx: commands.Context, member: discord.Member):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
Just says the time the user was last seen
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if member.status != self.offline_status:
|
|
|
|
|
|
|
|
last_seen = datetime.utcnow()
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
last_seen = await self.config.member(member).seen()
|
|
|
|
|
|
|
|
if last_seen is None:
|
|
|
|
|
|
|
|
await ctx.send(embed=discord.Embed(description="I've never seen this user"))
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
last_seen = self.get_date_time(last_seen)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# embed = discord.Embed(
|
|
|
|
|
|
|
|
# description="{} was last seen at this date and time".format(member.display_name),
|
|
|
|
|
|
|
|
# timestamp=self.get_date_time(last_seen))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
embed = discord.Embed(timestamp=last_seen)
|
|
|
|
|
|
|
|
await ctx.send(embed=embed)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# async def on_socket_raw_receive(self, data):
|
|
|
|
|
|
|
|
# try:
|
|
|
|
|
|
|
|
# if type(data) == str:
|
|
|
|
|
|
|
|
# raw = json.loads(data)
|
|
|
|
|
|
|
|
# print(data)
|
|
|
|
|
|
|
|
# except:
|
|
|
|
|
|
|
|
# print(data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def on_member_update(self, before: discord.Member, after: discord.Member):
|
|
|
|
|
|
|
|
if before.status != self.offline_status and after.status == self.offline_status:
|
|
|
|
|
|
|
|
if not await self.config.guild(before.guild).enabled():
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
await self.config.member(before).seen.set(datetime.utcnow().isoformat())
|
|
|
|
|
|
|
|