Exemple #1
0
def toAudiolist(config):
    if type(config) == configparser.ConfigParser:
        cfg = config
    else:
        cfg = configparser.ConfigParser()
        cfg.read(config)

    audiolist = Audio.AudioList()

    for section in cfg.sections():
        sectionEntry = Audio.AudioSection(section)
        for option in cfg.options(section):
            sectionEntry.add(option, cfg[section][option])

        audiolist.add(sectionEntry)

    return audiolist
Exemple #2
0
class botcfg:

    # Main configuration
    maincfgPath = None
    maincfg = None
    execPath = None
    token = None
    bootmsg = None

    masters = []
    bootmsgChats = []
    methods = []
    binds = []

    # Audio configuration
    audiocfgPath = None
    audiocfg = None
    audiolist = Audio.AudioList()

    # Timed configuration
    timedcfg = None

    #Audio configuration

    def __init__(self, maincfgPath, audiocfgPath, schedcfgPath):

        # Load main configuration (MUST BE PRESENT)
        self.maincfgPath = maincfgPath
        self.maincfg = configparser.ConfigParser()
        self.maincfg.read(maincfgPath)

        if self.maincfg.has_option('META', 'TOKEN'):
            self.token = self.maincfg['META']['TOKEN']
        else:
            raise Exception(mainself.maincfg +
                            ": No token defined in bot configuration")

        self.execPath = self.maincfg[
            'META']['EXEC_PATH'] if self.maincfg.has_option(
                'META', 'EXEC_PATH') else None
        self.masters = [
            int(user_id)
            for user_id in (self.maincfg['USERS']['MASTERS'].split() if self.
                            maincfg.has_option('USERS', 'MASTERS') else None)
        ]

        self.bootmsg = self.maincfg['BOOT'][
            'BOOT_MSG'] if self.maincfg.has_option('BOOT',
                                                   'BOOT_MSG') else None
        self.bootmsgChats = self.maincfg['BOOT']['BOOT_MSG_CHATS'].split(
        ) if self.maincfg.has_option('BOOT', 'BOOT_MSG_CHATS') else None

        self.methods = self.maincfg['COMMANDS']['SUPPORTED_METHODS'].split(
        ) if self.maincfg.has_option('COMMANDS', 'SUPPORTED_METHODS') else None

        if self.maincfg.has_option('COMMANDS', 'PERMA_BINDS'):
            for binds in findall('".+?"',
                                 self.maincfg['COMMANDS']['PERMA_BINDS']):
                self.binds.append(
                    bind(binds[2:binds.find('/', 2)].strip(),
                         binds[binds.find('/', 2) + 1:-1].strip()))

        if audiocfgPath:
            self.audiocfgPath = audiocfgPath
            self.audiocfg = configparser.ConfigParser()
            self.audiocfg.read(audiocfgPath)

            self.audiolist = toAudiolist(self.audiocfg)

        if schedcfgPath:
            self.schedcfg = configparser.ConfigParser()
            self.schedcfg = configparser.ConfigParser()

    def includesMethod(self, method_name):
        return method_name in self.methods

    def exportBot(self):
        return telegram.Bot(self.token)