예제 #1
0
async def on_message(message):
    db = fileIO("data/ignore/ignore_list.json", "load")
    author = message.author
    server = message.server
    channel = message.channel
    settings = {"Channels" : [], "Users" : [], "Roles" : []}
    if message.content.startswith("b!"):
        if server.id not in db:
            db[server.id] = settings
            fileIO("data/ignore/ignore_list.json", "save", db)
            print("[ Ignore ] Adding {} to ignore_list.json..".format(server.name))
        if channel.id in db[server.id]["Channels"]:
            ok = await bot.send_message(message.channel, "This channel is in the ignore list, please use another channel.")
            await asyncio.sleep(10)
            await bot.delete_message(ok)
            print("[ Ignore ] Ignoring {} in ignored channel {}.".format(message.author.name, message.channel.name))
        elif author.id in db[server.id]["Users"]:
            ok = await bot.send_message(message.channel, "You are in the ignore list, please consult a mod or admin for your server.")
            await asyncio.sleep(10)
            await bot.delete_message(ok)
            print("[ Ignore ] Ignoring {} ignored user.".format(message.author.name))
        elif set(r.id for r in author.roles) & set(db[server.id]["Roles"]):
            ok = await bot.send_message(message.channel, "You are a member of an ignored role. Please consult a mod or admin for your server.")
            print("[ Ignore ] Ignoring {} apart of ignore role.".format(message.author.name))
            await asyncio.sleep(10)
            await bot.delete_message(ok)
        else:
            await bot.process_commands(message)
예제 #2
0
 async def disable(self, ctx):
     """disables the modlog"""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if not server.id in db:
         await self.bot.say(
             "Server not found, use modlogset to set a channnel")
         return
     del db[server.id]
     fileIO(self.direct, "save", db)
     await self.bot.say("I will no longer send modlog notifications here")
예제 #3
0
 async def toggle(self, ctx):
     """Enables or Disables the Antilink"""
     server = ctx.message.server
     db = fileIO(self.link_data, "load")
     db[server.id]["Toggle"] = not db[server.id]["Toggle"]
     if db[server.id]["Toggle"] is True:
         msg = "Successfully Enabled the Antilinks System\nNote: I need the \"Manage Messages\" Permission to delete messages"
     else:
         msg = "I have successfully disabled the Antilinks System."
     await self.bot.reply(msg)
     fileIO(self.link_data, "save", db)
예제 #4
0
 async def antiinvite(self, ctx):
     """Enables or Disables the Antilink"""
     server = ctx.message.server
     db = fileIO(self.link_data, "load")
     db[server.id]["No Invite"] = not db[server.id]["No Invite"]
     if db[server.id]["No Invite"] is True:
         msg = "Successfully Enabled AntiInvite\nI will delete all invite links from now on\nNote: I need the \"Manage Messages\" Permission to delete messages"
     else:
         msg = "I have successfully disabled antiinvite."
     await self.bot.reply(msg)
     fileIO(self.link_data, "save", db)
예제 #5
0
파일: merit.py 프로젝트: notLeM/OpenBot
    async def clearmerits(self, ctx, user: discord.Member = None):
        """CATEG_MOD Clear someone's merits."""

        channel = ctx.message.channel
        author = ctx.message.author
        guild = ctx.message.guild
        guildstr = str(guild.id)
        userstr = str(user.id)

        if ctx.message.author.guild_permissions.manage_messages == False:
            embed=discord.Embed(title="🔴 Error", description="You do not have the necessary permissions.", color=0xdd2e44, timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
            return
        if user == None:
            embed=discord.Embed(title="🔴 Error", description="You need to provide a user.", color=0xdd2e44, timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
            return
        if user == author:
            embed=discord.Embed(title="🔴 Error", description="You can't clear your own merits!", color=0xdd2e44, timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
            return

        embed=discord.Embed(title=":warning: {}".format(self.client.user.name), description="Are you sure you want to clear {}'s merits?".format(user.mention), color=0xffcd4c, timestamp=datetime.utcnow())
        embed.set_footer(icon_url=self.client.user.avatar_url,text="Reply with yes to continue.")
        await ctx.send(embed=embed)

        def check(m):
            return m.channel == channel and m.author == author

        msg = await self.client.wait_for('message', check=check)
        if msg.content == "yes" or msg.content == "y":
            if self.db[guildstr][userstr]:
                del self.db[guildstr][userstr]
                fileIO(self.path, "save", self.db)
                embed = discord.Embed(title="🌟 Merit", description="Successfully cleared {}'s merits.".format(user.mention), color=client_role_color(self, ctx), timestamp=datetime.utcnow())
                embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
                await ctx.send(embed=embed)
                
                if not self.db[guildstr]:
                    del self.db[guildstr]
                fileIO(self.path, "save", self.db)
                return

            embed = discord.Embed(title="🌟 Merit", description="{} didn't have any merits to clear.".format(user.mention), color=client_role_color(self, ctx), timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
        else:
            embed = discord.Embed(title="🌟 Merit", description="Cancelling...", color=client_role_color(self, ctx), timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
예제 #6
0
 async def channel(self, ctx):
     """toggles channel update logging for the server."""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["togglechannel"] == False:
         db[server.id]["togglechannel"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("Enabled channel logs.")
     elif db[server.id]['togglechannel'] == True:
         db[server.id]['togglechannel'] = False
         fileIO(self.direct, 'save', db)
         await self.bot.say("Disabled channel logs.")
예제 #7
0
 async def leave(self, ctx):
     """toggles notofications when a member leaves the server."""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["toggleleave"] == False:
         db[server.id]["toggleleave"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("Enabled leave logs.")
     elif db[server.id]['toggleleave'] == True:
         db[server.id]['toggleleave'] = False
         fileIO(self.direct, 'save', db)
         await self.bot.say("Disabled leave logs.")
예제 #8
0
 async def delete(self, ctx):
     """toggle notifications when a member delete theyre message"""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["toggledelete"] == False:
         db[server.id]["toggledelete"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("Delete messages enabled")
     elif db[server.id]["toggledelete"] == True:
         db[server.id]["toggledelete"] = False
         fileIO(self.direct, "save", db)
         await self.bot.say("Delete messages disabled")
예제 #9
0
 async def user(self, ctx):
     """toggle notifications when a user changes his profile"""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["toggleuser"] == False:
         db[server.id]["toggleuser"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("User messages enabled")
     elif db[server.id]["toggleuser"] == True:
         db[server.id]["toggleuser"] = False
         fileIO(self.direct, "save", db)
         await self.bot.say("User messages disabled")
예제 #10
0
 async def links(self, ctx):
     """Enables or Disables the Antilink"""
     server = ctx.message.server
     db = fileIO(self.link_data, "load")
     db[server.
        id]["Toggle Blacklist"] = not db[server.id]["Toggle Blacklist"]
     if db[server.id]["Toggle Blacklist"] is True:
         msg = "Successfully Enabled Antilinks\nI will delete all blacklisted links/words from now on\nNote: I need the \"Manage Messages\" Permission to delete messages"
     else:
         msg = "I have successfully disabled Antilinks and will not delete blacklisted links/words from now on."
     await self.bot.reply(msg)
     fileIO(self.link_data, "save", db)
예제 #11
0
 async def ban(self, ctx):
     """toggle notifications when a user is banned"""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["toggleban"] == False:
         db[server.id]["toggleban"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("Ban messages enabled")
     elif db[server.id]["toggleban"] == True:
         db[server.id]["toggleban"] = False
         fileIO(self.direct, "save", db)
         await self.bot.say("Ban messages disabled")
예제 #12
0
 async def voice(self, ctx):
     """toggle notifications when voice status change"""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["togglevoice"] == False:
         db[server.id]["togglevoice"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("Voice messages enabled")
     elif db[server.id]["togglevoice"] == True:
         db[server.id]["togglevoice"] = False
         fileIO(self.direct, "save", db)
         await self.bot.say("Voice messages disabled")
예제 #13
0
 async def embed(self, ctx):
     """Enables or disables embed modlog."""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["embed"] == False:
         db[server.id]["embed"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("Enabled embed modlog.")
     elif db[server.id]["embed"] == True:
         db[server.id]["embed"] = False
         fileIO(self.direct, "save", db)
         await self.bot.say("Disabled embed modlog.")
예제 #14
0
 async def server(self, ctx):
     """toggles notofications when the server updates."""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     if db[server.id]["toggleserver"] == False:
         db[server.id]["toggleserver"] = True
         fileIO(self.direct, "save", db)
         await self.bot.say("Enabled server logs.")
     elif db[server.id]['toggleserver'] == True:
         db[server.id]['toggleserver'] = False
         fileIO(self.direct, 'save', db)
         await self.bot.say("Disabled server logs.")
예제 #15
0
 async def user(self, ctx, *, user: discord.Member):
     """Ignore a role."""
     server = ctx.message.server
     db = fileIO(self.load, "load")
     if server.id in db:
         if user.id not in db[server.id]["Users"]:
             db[server.id]["Users"].append(user.id)
             fileIO(self.load, "save", db)
             await self.bot.say("User added to the ignore list.")
             return
         if user.id in db[server.id]["Users"]:
             await self.bot.say("This user is already in the ignore list.")
             return
예제 #16
0
 async def role(self, ctx, *, role: discord.Role):
     """Ignore a role."""
     server = ctx.message.server
     db = fileIO(self.load, "load")
     if server.id in db:
         if role.id not in db[server.id]["Roles"]:
             db[server.id]["Roles"].append(role.id)
             fileIO(self.load, "save", db)
             await self.bot.say("Role added to the ignore list.")
             return
         if role.id in db[server.id]["Roles"]:
             await self.bot.say("This role is already in the ignore list.")
             return
예제 #17
0
def get_prefix(self, ctx):
    jsoncheck()
    prefixes = fileIO("data/write/prefix.json", "load")
    settings = fileIO("settings.json", "load")
    default_prefix = settings["DEFAULT_PREFIX"]

    if not ctx.guild:
        return default_prefix
    elif str(ctx.guild.id) not in prefixes:
        return default_prefix
    else:
        prefix = prefixes[str(ctx.guild.id)]
        return prefix
예제 #18
0
 async def disable(self, ctx):
     """Disables the welcomer."""
     server = ctx.message.server
     db = fileIO(self.load, "load")
     if not server.id in db:
         await self.bot.say(
             "Welcomer was never enabled on this server. :face_palm::drool:"
         )
         return
     del db[server.id]
     fileIO(self.load, "save", db)
     await self.bot.say(
         "Successfully deleted all settings for welcomer for this server.")
예제 #19
0
    async def passport(self, ctx, userid):

        try:
            strippedUser = int(userid.strip("<@!&>"))
        except Exception as e:
            embed = Embed(title="Error",
                          description="{} is not a valid id.".format(userid),
                          colour=0xFF0000)
            await ctx.channel.send(embed=embed)
            return

        passports = fileIO('data/scambot_protection/passport.json', 'load')
        try:
            passports[str(ctx.guild.id)]
        except:
            passports[str(ctx.guild.id)] = {}

        try:
            passports[str(ctx.guild.id)]['users']
        except:
            passports[str(ctx.guild.id)]['users'] = {}

        try:
            pp = passports[str(ctx.guild.id)]['users'][str(strippedUser)]
            if (pp == 1):
                del passports[str(ctx.guild.id)]['users'][str(strippedUser)]
                fileIO('data/scambot_protection/passport.json', 'save',
                       passports)
                sharedBot.passports.remove(str(strippedUser))

                embed = Embed(
                    title="Success",
                    description="**Revoked** passport for user {}.".format(
                        strippedUser),
                    colour=0x443a59)
                await ctx.channel.send(embed=embed)
                return
        except:
            passports[str(ctx.guild.id)]['users'][str(strippedUser)] = 1
            sharedBot.passports.append(str(strippedUser))

            fileIO('data/scambot_protection/passport.json', 'save', passports)
            try:
                await ctx.guild.unban(discord.Object(id=int(strippedUser)))
            except:
                pass

            await ctx.channel.send(
                "Unbanned and given passport to user: <@{}>.\nThey will now not be intercepted by the scambot filter"
                .format(strippedUser))
예제 #20
0
 async def _user(self, ctx, *, user: discord.Member):
     """Unignore a role."""
     server = ctx.message.server
     db = fileIO(self.load, "load")
     if server.id in db:
         if user.id not in db[server.id]["Users"]:
             await self.bot.say("User is not in the ignore list.")
             return
         if user.id in db[server.id]["Users"]:
             db[server.id]["Users"].remove(user.id)
             fileIO(self.load, "save", db)
             await self.bot.say(
                 "This user has been removed from the ignore list.")
             return
예제 #21
0
 async def _role(self, ctx, *, role: discord.Role):
     """Unignore a role."""
     server = ctx.message.server
     db = fileIO(self.load, "load")
     if server.id in db:
         if role.id not in db[server.id]["Roles"]:
             await self.bot.say("Role is not in the ignore list.")
             return
         if role.id in db[server.id]["Roles"]:
             db[server.id]["Roles"].remove(role.id)
             fileIO(self.load, "save", db)
             await self.bot.say(
                 "This role has been removed from the ignore list.")
             return
예제 #22
0
 async def _channel(self, ctx, *, channel: discord.Channel):
     """Unignore a channel."""
     server = ctx.message.server
     db = fileIO(self.load, "load")
     if server.id in db:
         if channel.id not in db[server.id]["Channels"]:
             await self.bot.say("Channel is not in the ignore list.")
             return
         if channel.id in db[server.id]["Channels"]:
             db[server.id]["Channels"].remove(channel.id)
             fileIO(self.load, "save", db)
             await self.bot.say(
                 "This channel has been removed from the ignore list.")
             return
예제 #23
0
 async def channel(self, ctx, *, channel: discord.Channel):
     """Ignore a channel."""
     server = ctx.message.server
     db = fileIO(self.load, "load")
     if server.id in db:
         if channel.id not in db[server.id]["Channels"]:
             db[server.id]["Channels"].append(channel.id)
             fileIO(self.load, "save", db)
             await self.bot.say("Channel added to the ignore list.")
             return
         if channel.id in db[server.id]["Channels"]:
             await self.bot.say(
                 "This channel is already in the ignore list.")
             return
예제 #24
0
파일: merit.py 프로젝트: notLeM/OpenBot
    async def rmmerit(self, ctx, meritID: int=0):
        """CATEG_MOD Delete a merit."""
        if ctx.message.author.guild_permissions.manage_messages == False:
            embed=discord.Embed(title="🔴 Error", description="You do not have the necessary permissions.", color=0xdd2e44, timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
            return
        if meritID < 100000000000000000 or meritID > 9999999999999999999:
            embed=discord.Embed(title="🔴 Error", description="Invalid merit ID.", color=0xdd2e44, timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
            return

        channel = ctx.message.channel
        author = ctx.message.author
        guild = ctx.message.guild
        guildstr = str(guild.id)
        meritstr = str(meritID)

        embed=discord.Embed(title=":warning: {}".format(self.client.user.name), description="Are you sure you want to delete this merit?", color=0xffcd4c, timestamp=datetime.utcnow())
        embed.set_footer(icon_url=self.client.user.avatar_url,text="Reply with yes to continue.")
        await ctx.send(embed=embed)

        def check(m):
            return m.channel == channel and m.author == author

        msg = await self.client.wait_for('message', check=check)
        if msg.content == "yes" or msg.content == "y":
            for x in self.db[guildstr]:
                if meritstr in self.db[guildstr][x]:
                    del self.db[guildstr][x][meritstr]
                    fileIO(self.path, "save", self.db)
                    embed = discord.Embed(title="🌟 Merit", description="Successfully removed the merit.", color=client_role_color(self, ctx), timestamp=datetime.utcnow())
                    embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
                    await ctx.send(embed=embed)
                    
                    if not self.db[guildstr][x]:
                        del self.db[guildstr][x]
                        if not self.db[guildstr]:
                            del self.db[guildstr]
                        fileIO(self.path, "save", self.db)
                    return
            embed=discord.Embed(title="🔴 Error", description="merit not found.", color=0xdd2e44, timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
        else:
            embed = discord.Embed(title="🌟 Merit", description="Cancelling...", color=client_role_color(self, ctx), timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name)
            await ctx.send(embed=embed)
예제 #25
0
파일: fun.py 프로젝트: notLeM/OpenBot
    async def insult(self, ctx, user: discord.Member = None):
        """CATEG_FUN Insult someone."""
        if user == None:
            user = ctx.message.author
        insults = fileIO("data/read/insults.json", "load")

        if user.id == self.client.user.id:
            user = ctx.message.author
            msg = "How original. No one else had thought of trying to get the bot to insult itself. I applaud your creativity. Yawn. Perhaps this is why you don't have friends. You don't add anything new to any conversation. You are more of a bot than me, predictable answers, and absolutely dull to have an actual conversation with."
            embed = discord.Embed(title="😡 Insult",
                                  description=msg,
                                  color=client_role_color(self, ctx),
                                  timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url,
                             text=self.client.user.name)
            return await ctx.send(embed=embed)
        else:
            embed = discord.Embed(title="😡 Insult",
                                  description=user.mention + " " +
                                  random.choice(insults),
                                  color=client_role_color(self, ctx),
                                  timestamp=datetime.utcnow())
            embed.set_footer(icon_url=self.client.user.avatar_url,
                             text=self.client.user.name)
            return await ctx.send(embed=embed)
예제 #26
0
 async def status(self, ctx):
     """Shows modlog settings for the server."""
     server = ctx.message.server
     db = fileIO(self.direct, "load")
     try:
         e = discord.Embed(title="Setting for {}".format(server.name),
                           colour=discord.Colour.blue())
         e.add_field(name="Delete",
                     value=str(db[ctx.message.server.id]['toggledelete']))
         e.add_field(name="Edit",
                     value=str(db[ctx.message.server.id]['toggleedit']))
         e.add_field(name="Roles",
                     value=str(db[ctx.message.server.id]['toggleroles']))
         e.add_field(name="User",
                     value=str(db[ctx.message.server.id]['toggleuser']))
         e.add_field(name="Voice",
                     value=str(db[ctx.message.server.id]['togglevoice']))
         e.add_field(name="Ban",
                     value=str(db[ctx.message.server.id]['toggleban']))
         e.add_field(name="Join",
                     value=str(db[ctx.message.server.id]['togglejoin']))
         e.add_field(name="Leave",
                     value=str(db[ctx.message.server.id]['toggleleave']))
         e.add_field(name="Channel",
                     value=str(db[ctx.message.server.id]['togglechannel']))
         e.add_field(name="Server",
                     value=str(db[ctx.message.server.id]['toggleserver']))
         e.set_thumbnail(url=server.icon_url)
         await self.bot.say(embed=e)
     except KeyError:
         await self.bot.say("No settings for this server.")
예제 #27
0
 async def on_member_update(self, before, after):
     server = before.server
     db = fileIO(self.direct, "load")
     if not server.id in db:
         return
     if db[server.id]['toggleuser'] and db[
             server.id]['toggleroles'] == False:
         return
     channel = db[server.id]["Channel"]
     time = datetime.datetime.now()
     fmt = '%H:%M:%S'
     if before.roles != after.roles:
         msg = discord.Embed(colour=discord.Color.blue())
         msg.title = "{}'s roles have changed!".format(before.name)
         msg.add_field(name="Before:",
                       value=css.format(", ".join(
                           [r.name for r in before.roles])),
                       inline=False)
         msg.add_field(name="After:",
                       value=css.format(", ".join(
                           [r.name for r in after.roles])),
                       inline=False)
         msg.set_footer(text=timef)
         msg.set_thumbnail(url=after.avatar_url)
         await self.bot.send_message(server.get_channel(channel), embed=msg)
예제 #28
0
 async def on_message_edit(self, before, after):
     server = before.server
     db = fileIO(self.direct, "load")
     if not server.id in db:
         return
     if db[server.id]['toggleedit'] == False:
         return
     if before.content == after.content:
         return
     if before.author.bot == True:
         return
     if before.channel.id in self.ignore_list["CHANNELS"]:
         return
     channel = db[server.id]["Channel"]
     msg = discord.Embed(colour=discord.Color.blue())
     msg.title = "{} has edited a message in {}".format(
         before.author.display_name, before.channel)
     msg.add_field(name="Before Message:",
                   value=css.format(before.content),
                   inline=False)
     msg.add_field(name="After Message:",
                   value=css.format(after.content),
                   inline=False)
     msg.set_footer(text=timef)
     msg.set_thumbnail(url=before.author.avatar_url)
     await self.bot.send_message(server.get_channel(channel), embed=msg)
예제 #29
0
    async def modlogtoggles(self, ctx):
        """toggle which server activity to log"""
        if ctx.invoked_subcommand is None:
            db = fileIO(self.direct, "load")
            server = ctx.message.server
            e = discord.Embed(description="""b!modlogtoggle

toggle which server activity to log

Commands:
  leave   toggles notofications when a member leaves the server.
  join    toggles notofications when a member joins the server.
  roles   toggle notifications when roles change
  voice   toggle notifications when voice status change
  delete  toggle notifications when a member delete theyre message
  server  toggles notofications when the server updates.
  ban     toggle notifications when a user is banned
  edit    toggle notifications when a member edits theyre message
  channel toggles channel update logging for the server.
  user    toggle notifications when a user changes his profile

Type b!help command for more info on a command.
You can also type b!help category for more info on a category.""")
            e.set_author(name="Help for {}'s command group {}.".format(
                self.bot.user.name, ctx.command),
                         icon_url=ctx.message.server.me.avatar_url)
            e.set_thumbnail(url=ctx.message.server.me.avatar_url)
            await self.bot.say(embed=e)
예제 #30
0
 async def on_message_delete(self, message):
     server = message.server
     db = fileIO(self.direct, "load")
     if not server.id in db:
         return
     if db[server.id]['toggledelete'] == False:
         return
     if message.author.bot == True:
         return
     if message.channel.id in self.ignore_list["CHANNELS"]:
         return
     channel = db[server.id]["Channel"]
     time = datetime.datetime.now()
     fmt = '%H:%M:%S'
     msg = discord.Embed(
         title="{0.name} message has been delete in {1.name}!".format(
             message.author, message.channel),
         colour=discord.Colour.blue())
     msg.add_field(name="Content:",
                   value="```css\n{}```".format(message.content),
                   inline=False)
     msg.set_thumbnail(url=message.author.avatar_url)
     msg.set_footer(
         text=datetime.datetime.now().strftime("%A, %B %-d %Y at %-I:%M%p").
         replace("PM", "pm").replace("AM", "am"))
     await self.bot.send_message(server.get_channel(channel), embed=msg)
예제 #31
0
async def id(ctx):
    """Saves your PAD ID.
    Example usage: ?pad id 334980359"""
    user = ctx.message.author
    pid = ctx.message.content.split()
    if len(pid) != 3:
        await bot.say("""```    Saves your PAD ID.
    Example usage: ?pad id 334980359```""")
    else:
        if pid[2].isdigit():
            if 99999999 < int(pid[2]) < 999999999:
                if pid[2].startswith("3"):
                    savetofile[user.id] = {"name" : user.name, "id" : pid[2], "team1" : "", "team2" : "", "team3" : "", "padherder" : "", "null" : ""}
                    fileIO("data/padid/padid.json", "save", savetofile)
                    await bot.say("{} Saved. Your ID is now {}. All Leads have been cleared. Padherder cleared.".format(user.mention, check_id(user.id)))
                else:
                    await bot.say("NA only atm.")
            else:
                await bot.say("no.")
        else:
            await bot.say("That is not an ID!")
예제 #32
0
async def leads(ctx):
    """Saves your most used PAD Teams. Up to 3 teams!
	Example usage: ?pad leads Yomidra XiangMei Idunn&Idunna"""
    user = ctx.message.author
    pteam = ctx.message.content.split()
    currentid = check_id(user.id)
    currentpadherder = check_padherder(user.id)
    if account_check(user.id):
        if len(pteam) == 2:
            await bot.say("```Wrong! Type your teams like: ?pad teams [Team 1] [Team 2] [Team 3]```")

        elif len(pteam) == 3:
            savetofile[user.id] = {"name" : user.name, "id" : currentid, "team1" : pteam[2], "team2" : "", "team3" : "", "padherder" : currentpadherder, "null" : ""}
            fileIO("data/padid/padid.json", "save", savetofile)
            await bot.say("{} Saved. Your top team is {}.".format(user.mention, check_team1(user.id)))

        elif len(pteam) == 4:
            savetofile[user.id] = {"name" : user.name, "id" : currentid, "team1" : pteam[2], "team2" : pteam[3], "team3" : "", "padherder" : currentpadherder, "null" : ""}
            fileIO("data/padid/padid.json", "save", savetofile)
            await bot.say("{} Saved. Your top 2 teams are {}, and {}.".format(user.mention, check_team1(user.id), check_team2(user.id)))

        elif len(pteam) == 5:
            savetofile[user.id] = {"name" : user.name, "id" : currentid, "team1" : pteam[2], "team2" : pteam[3], "team3" : pteam[4], "padherder" : currentpadherder, "null" : ""}
            fileIO("data/padid/padid.json", "save", savetofile)
            await bot.say("{} Saved. Your top 3 teams are {}, {}, and {}.".format(user.mention, check_team1(user.id), check_team2(user.id), check_team3(user.id)))

        else:
            await bot.say("```Wrong! Type your teams like: ?pad teams [Team 1] [Team 2] [Team 3]. Don't use spaces in team names!```")
    else:
        await bot.say("You dont have your ID saved! Do it with ?pad id")
예제 #33
0
async def box(ctx):
    """Saves your Padherder.
    Example usage: ?pad box [PADHERDER]"""
    user = ctx.message.author
    oldid = check_id(user.id)
    oldteam1 = check_team1(user.id)
    oldteam2 = check_team2(user.id)
    oldteam3 = check_team3(user.id)
    pod = ctx.message.content.split(' ')
    padurl = pod[2].split('/')
    if account_check(user.id):
        if len(pod) != 3:
            await bot.say("""```    Saves your PAD ID.
    Example usage: ?pad box NepNep OR ?pad box https://www.padherder.com/user/NepNep/monsters/```""")
        else:
            if pod[2].startswith("http"):
                realpadherder = "https://www.padherder.com/user/" + padurl[4]
                savetofile[user.id] = {"name" : user.name, "id" : oldid, "team1" : oldteam1, "team2" : oldteam2, "team3" : oldteam3, "padherder" : realpadherder, "null" : ""}
                fileIO("data/padid/padid.json", "save", savetofile)
                await bot.say("Saved.")
            elif pod[2].startswith("www.padherder"):
                realpadherder = "https://www.padherder.com/user/" + padurl[2]
                savetofile[user.id] = {"name" : user.name, "id" : oldid, "team1" : oldteam1, "team2" : oldteam2, "team3" : oldteam3, "padherder" : realpadherder, "null" : ""}
                fileIO("data/padid/padid.json", "save", savetofile)
                await bot.say("Saved.")
            else:
                realpadherder = "https://www.padherder.com/user/" + pod[2]
                savetofile[user.id] = {"name" : user.name, "id" : oldid, "team1" : oldteam1, "team2" : oldteam2, "team3" : oldteam3, "padherder" : pod[2], "null" : ""}
                fileIO("data/padid/padid.json", "save", savetofile)
                await bot.say("Saved.")
예제 #34
0
import os
import time
import sys

token = '' #Bot Token.

formatter = commands.HelpFormatter(show_check_failure=False)

description = '''This bot is designed for the use in all servers.
Bot still in BETA (1.0)'''
bot = commands.Bot(command_prefix='?', formatter=formatter,
                   description=description, pm_help=None)

#############################################

savetofile = fileIO("data/padid/padid.json", "load")

@bot.event
async def on_ready():
    users = str(len(set(bot.get_all_members())))
    servers = str(len(bot.servers))
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')
    print("{} servers".format(servers))
    print("{} users".format(users))


####Creates pad command set########################################################################
예제 #35
0
def check_files():
    f = "data/padid/padid.json"
    if not fileIO(f, "check"):
        print("Creating empty padid.json...")
        fileIO(f, "save", {})