def in_music_channel(message: Message): try: return message.channel.id == get_music_channel_id_for_guild( message.guild.id) except KeyError: log_event( f"Failed trying to find a music channel for server '{message.guild}'", logging.WARN) return True # if there is no music channel then all channels are music channels
def get_prefix_for_guild(guild_id: int): prefixes_raw_dict = db.get(PREFIXES_DB_KEY) if prefixes_raw_dict is not None: try: return get_dict(prefixes_raw_dict)[str(guild_id)] except KeyError: log_event( f"Failed trying to fetch prefix for server id {guild_id}", logging.CRITICAL) return DEFAULT_PREFIX log_event(f"Error Fetching prefixes DB", logging.CRITICAL) return DEFAULT_PREFIX
async def process_msg_for_music(message: Message, elfbot: Bot): if is_music_related(message) and not in_music_channel(message): log_event(f"<server='{message.guild}'> Caught unauthorized music related message by {message.author}") music_channel = elfbot.get_channel(get_music_channel_id_for_guild(message.guild.id)) if message.embeds: for embed in message.embeds: await music_channel.send(embed=embed) if message.content: await music_channel.send(message.content) await message.delete() return True return False
def get_db_url(): """ the db_url is in a private file called "db_url" first we try to find the token file for case of running from individual machine if file not found we look for environment var for case of running from a deployed server :return: redis db_url (string) """ try: db_url = open("utils/db_url", "r").read() log_event('Fetched db_url from db_url file') return db_url except FileNotFoundError: log_event('Fetched db_url from environment variable') return os.getenv('REDIS_URL', 'redis://localhost:6379')
async def delmusic(self, ctx: Context): self.remove_server(guild_id=ctx.guild.id) event = f"Music spam settings for the server '{ctx.guild}' have been deleted" log_event(event) await ctx.send(f'{ctx.author.mention} {event}')
async def setmusic(self, ctx: Context): self.set_value_for_server(ctx.guild.id, ctx.channel.id) message = f"'{ctx.channel.name}' is now set as the music spam channel for the server '{ctx.guild}'" log_event(message) await ctx.send(f'{ctx.author.mention} {message}')
async def pf(self, ctx: Context, prefix): self.set_value_for_server(guild_id=ctx.guild.id, value=prefix) message = f"set '{prefix}' as the prefix for the server '{ctx.guild}'" log_event(message) await ctx.send(f'{ctx.author.mention} {message}')
async def on_guild_join(self, guild: Context.guild): self.set_value_for_server(guild_id=guild.id, value=DEFAULT_PREFIX) log_event(f'Joined the server: {guild.name} - {guild.id}')
async def on_guild_remove(self, guild: Context.guild): self.remove_server(guild_id=guild.id) log_event(f"left the server '{guild}'")
async def on_ready(self): log_event(f'{self.qualified_name} extension loaded')