Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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')
Example #5
0
 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}')
Example #6
0
 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}')
Example #7
0
 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}')
Example #8
0
 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}')
Example #9
0
 async def on_guild_remove(self, guild: Context.guild):
     self.remove_server(guild_id=guild.id)
     log_event(f"left the server '{guild}'")
Example #10
0
 async def on_ready(self):
     log_event(f'{self.qualified_name} extension loaded')