Exemple #1
0
    async def on_message(self, message):
        bot = self.bot
        log_channel = bot.get_server("107883969424396288").get_channel("257926036728184832")
        error_channel = bot.get_server("107883969424396288").get_channel("257922447205072897")
        # general values
        server = message.server

        msgtime = datetime.datetime.now().strftime("""%b %d, %Y at %I:%M %p (%H:%M)""")

        if not message.channel.is_private: #If the channel is not private
            fille = "./data/config/servers/"+server.id+"/server_settings.ini"
            if not os.path.isfile(fille):
                moderation.create_server_ini(message.server, True)
            try:
                booleann = moderation.get_value(fille, 'settings', 'log')
            except:
                print(server.name+" "+server.id)

            # if the server id is in the server list, then log the message to the server file
            if booleann.lower() == 'true':
                serverfp = './logs/servers/{}'.format(server.name)
                if os.path.exists(serverfp) == False:
                    os.makedirs(serverfp)
                if not os.path.isfile(serverfp+"/{}.txt".format(message.channel.name)):
                    f = open(serverfp+"/{}.txt".format(message.channel.name), 'w')
                    f.close()
                text = msgtime+" {}: {}".format(message.author.name+'#'+message.author.discriminator, message.content)
                f = open('./logs/servers/{}/{}.txt'.format(server.name, message.channel.name),'a', encoding='utf-8')
                f.write(text+'\n')
                f.close()

        if not message.channel.is_private:
            fp = ("./data/config/servers/"+message.server.id+"/server_settings.ini")
            boolean = moderation.get_value(fp, 'settings', 'ignore').lower()
        if (not message.channel.is_private and ((boolean == 'false' or message.content.startswith(bot.command_prefix[0]+'settings')) or (message.author == message.server.me))): #Check if server config's ignore is true and if so run command
            try:
                await self.process_commands(message)
            except:
                raise
            else:
                for x in range(len(bot.command_prefix)):
                    if message.author != message.server.me and message.content.startswith(bot.command_prefix[x]):
                        begin = "==============================\n"
                        time = datetime.datetime.now().strftime("""%b %d, %Y at %I:%M %p (%H:%M)""")+"\n"
                        ending = "\"{0.content}\" was issued by \"{0.author.name}#{0.author.discriminator}\" on \"{0.server.name}\"({0.channel.name})".format(message)
                        logging.info(ending)
                        await bot.send_message(log_channel, "```{}```".format(time+ending))
        elif message.channel.is_private:
            await self.process_commands(message)
            pass
        else:
            pass
Exemple #2
0
 async def on_member_unban(self, server, user):
     log_channel = self.bot.get_server("107883969424396288").get_channel(
         "257926036728184832")
     error_channel = self.bot.get_server("107883969424396288").get_channel(
         "257922447205072897")
     localtime = time.localtime()
     tm_mon = localtime.tm_mon
     tm_min = localtime.tm_min
     tm_mday = localtime.tm_mday
     tm_hour = localtime.tm_hour
     if localtime.tm_hour >= 13:
         hourmin = localtime.tm_hour - 12
         hourmin = str(hourmin) + ":" + str(localtime.tm_min) + " PM"
     else:
         hourmin = str(localtime.tm_hour) + ":" + str(
             localtime.tm_min) + " AM"
     msgtime = "[ " + "{0}/{1}/16 | {2} ".format(tm_mon, tm_mday,
                                                 hourmin) + " ]\n"
     fp = ("./data/config/servers/" + server.id + "/server_settings.ini")
     boolean = moderation.get_value(fp, 'settings', 'ignore').lower()
     if boolean == 'false':
         begin = "=====================================\n"
         ending = msgtime + "Member ({0}) got unbanned from: {1}".format(
             user.name + "#" + user.discriminator,
             server.name + " (" + str(server.id) + ")")
         logging.info(ending)
         await self.bot.send_message(log_channel, "```{}```".format(ending))
     pass
Exemple #3
0
 def get_whitelist_servers(self, setting, output):
     whitelist = []
     for channel in list(self.bot.get_all_channels()):
         fp = ("./data/config/servers/"+channel.server.id+"/server_settings.ini")
         boolean = str(moderation.get_value(fp, 'settings', setting))
         if bool(boolean) == bool(output) and channel.server.id not in whitelist:
             whitelist.append(channel.server.id)
     return whitelist
Exemple #4
0
 def get_whitelist_servers(self, setting, output):
     whitelist = []
     for channel in list(self.bot.get_all_channels()):
         fp = ("./data/config/servers/" + channel.server.id +
               "/server_settings.ini")
         boolean = str(moderation.get_value(fp, 'settings', setting))
         if bool(boolean) == bool(
                 output) and channel.server.id not in whitelist:
             whitelist.append(channel.server.id)
     return whitelist
Exemple #5
0
def on_ready():
    subprocess.call('clear',shell=True)
    logging.info('Successfully Logged in!')
    logging.info('Starting cogs...')
    loaded_cogs = []
    for cog in cogs:
        cog_ext = cog.split(".")[-1]
        cog = cog.split(".")[0]
        try:
            if cog_ext.lower() == "disabled":
                raise Exception("[{}] is disabled.".format(cog))
            bot.load_extension('cogs.'+cog)
            logging.info('Loaded cog: '+cog)
            loaded_cogs.append(cog)
        except Exception as e:
            logging.info('Couldn\'t load cog: '+cog)
            logging.error('Error: {}'.format(type(e).__name__, e))
        yield from asyncio.sleep(0.1)
    loaded_cogs_str =  str(', ').join(list(loaded_cogs))
    logging.info('Cogs Finished loading!!')
    yield from asyncio.sleep(1)
    subprocess.call('clear',shell=True)
    whitelisted_servers = []
    for channel in list(bot.get_all_channels()):
        fp = ("./data/config/servers/"+channel.server.id+"/server_settings.ini")
        boolean = moderation.get_value(fp, 'settings', 'ignore').lower()
        if boolean == 'false' and str(channel.server.name) not in whitelisted_servers:
            whitelisted_servers.append(channel.server.name)
    print('------\nCurrently logged in as ['+bot.user.name+' (ID: "'+bot.user.id+'")]')
    print('Number of Servers Connected: '+str(len(list(bot.servers)))+'\nNumbers of DMs: '+str(len(list(bot.private_channels))))
    print('Current Prefixes: '+", ".join(bot.command_prefix))
    print('------\nCurrently loaded cogs: ({0} out of {1})\n'.format(str(len(loaded_cogs)),str(len(cogs)))+loaded_cogs_str)
    print('------\nCurrently Whitelisted Servers: ('+str(len(whitelisted_servers))+' out of '+str(len(list(bot.servers)))+')\n'+', '.join(whitelisted_servers)+"\n------")
    try:
        f = open("data/game.txt", 'r')
        current_game = f.read()
        f.close()
    except:
        f = open("data/game.txt", 'w')
        f.close()
        current_game = None
    if current_game == '':
        game = None
    else:
        game = discord.Game(name=current_game)
    yield from bot.change_presence(game=game, status=discord.Status.invisible)
Exemple #6
0
 async def on_member_remove(self, member):
     log_channel = self.bot.get_server("107883969424396288").get_channel("257926036728184832")
     error_channel = self.bot.get_server("107883969424396288").get_channel("257922447205072897")
     localtime = time.localtime()
     tm_mon = localtime.tm_mon
     tm_min = localtime.tm_min
     tm_mday = localtime.tm_mday
     tm_hour = localtime.tm_hour
     if localtime.tm_hour >= 13:
         hourmin = localtime.tm_hour - 12
         hourmin = str(hourmin)+":"+str(localtime.tm_min)+" PM"
     else:
         hourmin = str(localtime.tm_hour)+":"+str(localtime.tm_min)+" AM"
     msgtime = "[ "+"{0}/{1}/16 | {2} ".format(tm_mon,tm_mday,hourmin)+" ]\n"
     fp = ("./data/config/servers/"+member.server.id+"/server_settings.ini")
     boolean = moderation.get_value(fp, 'settings', 'ignore').lower()
     if boolean == 'false':
         ending = msgtime+"Member ({0}) Left: {1}".format(member.name+"#"+member.discriminator, member.server.name+" ("+str(member.server.id)+")")
         begin = "=====================================\n"
         logging.info(begin+ending)
         await self.bot.send_message(log_channel, "```{}```".format(ending))
Exemple #7
0
    async def on_message(self, message):
        bot = self.bot
        log_channel = bot.get_server("107883969424396288").get_channel(
            "257926036728184832")
        error_channel = bot.get_server("107883969424396288").get_channel(
            "257922447205072897")
        # general values
        server = message.server

        msgtime = datetime.datetime.now().strftime(
            """%b %d, %Y at %I:%M %p (%H:%M)""")

        if not message.channel.is_private:  #If the channel is not private
            fille = "./data/config/servers/" + server.id + "/server_settings.ini"
            if not os.path.isfile(fille):
                moderation.create_server_ini(message.server, True)
            try:
                booleann = moderation.get_value(fille, 'settings', 'log')
            except:
                print(server.name + " " + server.id)

            # if the server id is in the server list, then log the message to the server file
            if booleann.lower() == 'true':
                serverfp = './logs/servers/{}'.format(server.name)
                if os.path.exists(serverfp) == False:
                    os.makedirs(serverfp)
                if not os.path.isfile(serverfp +
                                      "/{}.txt".format(message.channel.name)):
                    f = open(serverfp + "/{}.txt".format(message.channel.name),
                             'w')
                    f.close()
                text = msgtime + " {}: {}".format(
                    message.author.name + '#' + message.author.discriminator,
                    message.content)
                f = open('./logs/servers/{}/{}.txt'.format(
                    server.name, message.channel.name),
                         'a',
                         encoding='utf-8')
                f.write(text + '\n')
                f.close()

        if not message.channel.is_private:
            fp = ("./data/config/servers/" + message.server.id +
                  "/server_settings.ini")
            boolean = moderation.get_value(fp, 'settings', 'ignore').lower()
        if (not message.channel.is_private and
            ((boolean == 'false' or
              message.content.startswith(bot.command_prefix[0] + 'settings'))
             or (message.author == message.server.me))
            ):  #Check if server config's ignore is true and if so run command
            try:
                await self.process_commands(message)
            except:
                raise
            else:
                for x in range(len(bot.command_prefix)):
                    if message.author != message.server.me and message.content.startswith(
                            bot.command_prefix[x]):
                        begin = "==============================\n"
                        time = datetime.datetime.now().strftime(
                            """%b %d, %Y at %I:%M %p (%H:%M)""") + "\n"
                        ending = "\"{0.content}\" was issued by \"{0.author.name}#{0.author.discriminator}\" on \"{0.server.name}\"({0.channel.name})".format(
                            message)
                        logging.info(ending)
                        await bot.send_message(
                            log_channel, "```{}```".format(time + ending))
        elif message.channel.is_private:
            await self.process_commands(message)
            pass
        else:
            pass