Exemplo n.º 1
0
def manager(self, phrase, mod_name):
    mod_name = mod_name.lower()
    if mod_name not in self.by_name:
        self.log(LNG['mm_no_mod'].format(mod_name), logger.INFO)
        return Next
    mod_ = self.by_name[mod_name]
    if self.all[mod_]['hardcoded']:
        return Say(LNG['mm_sys_mod'].format(mod_name))

    modes = {LNG['mm_act']: NM, LNG['mm_uact']: DM, LNG['mm_act_all']: ANY}
    enables = {LNG['mm_del']: False, LNG['mm_rec']: True}
    if phrase in modes:
        if not self.all[mod_]['enable']:
            return Say(LNG['mm_must_rec'].format(mod_name))
        new_mode = modes[phrase]
        if self.all[mod_]['mode'] == new_mode:
            return Say(LNG['mm_already'].format(mod_name,
                                                get_mode_say(new_mode)))
        say = LNG['mm_now'].format(mod_name, get_mode_say(new_mode))
        return Say(say), Set(mod_mode=[mod_, new_mode])
    elif phrase in enables:
        enable = enables[phrase]
        if self.all[mod_]['enable'] == enable:
            return Say(LNG['mm_already2'].format(mod_name,
                                                 get_enable_say(enable)))
        say = LNG['mm_mod'].format(mod_name, get_enable_say(enable))
        return Say(say), Set(mod_enable=[mod_, enable])
    else:
        self.log(LNG['err_mm'].format(phrase), logger.CRIT)
        return Next
Exemplo n.º 2
0
def help_(self, _, phrase):
    def words():
        return ', '.join(data[0] or 'любую фразу'
                         for data in self.words_by_f(f))

    if phrase:
        if phrase in self.by_name:
            f = self.by_name[phrase]
            is_del = '' if self.all[f]['enable'] else '. Модуль удален'
            say = 'Модуль {} доступен в режиме {}. Для активации скажите {}. Модуль предоставляет {} {}'.format(
                phrase, get_mode_say(self.all[f]['mode']), words(),
                self.all[f]['desc'], is_del)
            return Say(say)
        else:
            return Next
    say = ['Всего доступно {} модулей. Вот они:']

    deleted = []
    for f in self.all:
        if self.all[f]['enable']:
            say.append(
                'Скажите {}. Это активирует {}. Модуль предоставляет {}'.
                format(words(), self.all[f]['name'], self.all[f]['desc']))
        else:
            deleted.append(self.all[f]['name'])
    say[0] = say[0].format(len(self.all) - len(deleted))
    if len(deleted):
        say.append('Всего {} модулей удалены, это: {}'.format(
            len(deleted), ', '.join(deleted)))
    say.append('Работа модуля помощь завершена.')
    return SayLow(say)
Exemplo n.º 3
0
def help_(self, _, phrase):
    def words():
        return ', '.join(
            data[0] for data in self.words_by_f(f)) or LNG['help_any_phrase']

    if phrase:
        if phrase in self.by_name:
            f = self.by_name[phrase]
            is_del = '' if self.all[f]['enable'] else LNG['help_mod_deleted']
            say = LNG['help_mod_full'].format(
                phrase, get_mode_say(self.all[f]['mode']), words(),
                self.all[f]['desc'], is_del)
            return Say(say)
        else:
            return Next
    say = [LNG['help_mod_header']]

    deleted = []
    for f in self.all:
        if self.all[f]['enable']:
            say.append(LNG['help_mod_line'].format(words(),
                                                   self.all[f]['name'],
                                                   self.all[f]['desc']))
        else:
            deleted.append(self.all[f]['name'])
    say[0] = say[0].format(len(self.all) - len(deleted))
    if len(deleted):
        say.append(LNG['help_mod_del_header'].format(len(deleted),
                                                     ', '.join(deleted)))
    say.append(LNG['help_bye'])
    return SayLow(say)
Exemplo n.º 4
0
def manager(self, phrase, mod_name):
    mod_name = mod_name.lower()
    if mod_name not in self.by_name:
        self.log(F('Модуль {} не найден', mod_name), logger.INFO)
        return Next
    mod_ = self.by_name[mod_name]
    if self.all[mod_]['hardcoded']:
        return Say(F('Модуль {} системный, его нельзя настраивать', mod_name))

    modes = {
        F('активировать'): NM,
        F('деактивировать'): DM,
        F('активировать везде'): ANY
    }
    enables = {F('удалить'): False, F('восстановить'): True}
    if phrase in modes:
        if not self.all[mod_]['enable']:
            return Say(
                F('Модуль {} удален. Вначале его нужно восстановить',
                  mod_name))
        new_mode = modes[phrase]
        if self.all[mod_]['mode'] == new_mode:
            return Say(
                F('Модуль {} уже в режиме {}', mod_name,
                  get_mode_say(new_mode)))
        say = F('Теперь модуль {} доступен в режиме {}', mod_name,
                get_mode_say(new_mode))
        return Say(say), Set(mod_mode=[mod_, new_mode])
    elif phrase in enables:
        enable = enables[phrase]
        if self.all[mod_]['enable'] == enable:
            return Say(
                F('Модуль {} и так {}', mod_name, get_enable_say(enable)))
        say = F('Модуль {} {}', mod_name, get_enable_say(enable))
        return Say(say), Set(mod_enable=[mod_, enable])
    else:
        self.log(F('Это невозможно, откуда тут {}', phrase), logger.CRIT)
        return Next
Exemplo n.º 5
0
def help_(self, _, phrase):
    def words():
        triggers = [x[0] for x in self.words_by_f_all(f)]
        if not triggers:
            return ''
        return ', '.join(triggers) or F('любую фразу')

    if phrase:
        phrase = phrase.lower()
        if phrase in self.by_name:
            f = self.by_name[phrase]
            module = self.all[f]
            is_del = '' if module['enable'] else F('. Модуль удален')
            msg = F(
                'Модуль {} доступен в режиме {}. Для активации скажите {}. Модуль предоставляет {} {}'
            )
            say = msg.format(phrase, get_mode_say(module['mode']), words(),
                             module['desc'], is_del)
            return Say(say)
        else:
            return Next

    say, deleted = [], []
    for f, module in self.all.items():
        if module['enable']:
            say.append(
                F('Скажите {}. Это активирует {}. Модуль предоставляет {}',
                  words(), module['name'], module['desc']))
        else:
            deleted.append(module['name'])

    if say:
        say.insert(0, F('Всего доступно {} модулей. Вот они:', len(say)))
    if len(deleted):
        say.append(
            F('Всего {} модулей удалены, это: {}', len(deleted),
              ', '.join(deleted)))
    say.append(F('Работа модуля помощь завершена.'))
    return SayLow(say)