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
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
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
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
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)
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))
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