Ejemplo n.º 1
0
def template_list(event: SignalEvent) -> str:
    category = ' '.join(event.args).lower()
    templates = event.db.templates
    if category == 'все':
        message = '📃 Список всех шаблонов:'
        for i, t in enumerate(templates, 1):
            message += f"\n{i}. {t['name']} | {t['cat']}"
    elif not category:
        cats = {}
        for t in templates:
            cats[t['cat']] = cats.get(t['cat'], 0) + 1
        message = "📚 Категории шаблонов:"
        for cat in cats:
            message += f"\n-- {cat} ({cats[cat]})"
    else:
        message = f'📖 Шаблоны категории "{category}":'
        for t in templates:
            if t['cat'] == category:
                message += f"\n-- {t['name']}"
    if '\n' not in message:
        if templates == []:
            message = '👀 Нет ни одного шаблона... Для создания используй команду "+шаб"'  # noqa
        else:
            message = '⚠️ Шаблоны по указанному запросу не найдены'
    event.msg_op(2, message)
    return "ok"
Ejemplo n.º 2
0
def template_delete(event: SignalEvent, name: str) -> str:
    event.db.templates, exist = delete_template(name, event.db.templates)
    if exist:
        msg = f'✅ Шаблон "{name}" удален'
        event.db.save()
    else:
        msg = f'⚠️ Шаблон "{name}" не найден'
    event.msg_op(2, msg, delete=1)
    return "ok"
Ejemplo n.º 3
0
def ping(event: SignalEvent) -> str:
    c_time = datetime.now().timestamp()
    delta = round(c_time - event.msg['date'], 2)

    r_type = ('ПОНГ' if event.command == "пинг" else "ПАУ" if event.command
              == "пиу" else "ТОК" if event.command == "тик" else "КОНГ")

    event.send(event.responses['ping_duty'].format(время=delta, ответ=r_type))
    return "ok"
Ejemplo n.º 4
0
def template_show(event: SignalEvent, name: str) -> str:
    template = None
    for temp in event.db.templates:
        if temp['name'] == name:
            template = temp
            break
    if template:
        atts = template['attachments']
        atts.extend(event.attachments)
        event.msg_op(2,
                     temp['payload'] + '\n' + event.payload,
                     keep_forward_messages=1,
                     attachment=','.join(atts))
    else:
        event.msg_op(2, f'❗ Шаблон "{name}" не найден')
    return "ok"
Ejemplo n.º 5
0
def sinfo(event: SignalEvent) -> str:
    if event.msg['from_id'] not in event.db.trusted_users:
        message_id = event.send(event.responses['not_in_trusted'])
        time.sleep(3)
        event.api.msg_op(3, msg_id=message_id)
        return "ok"

    owner = event.api('users.get', user_ids=event.db.duty_id)[0]

    # TODO: сделать функцию для формата инфы (в трех местах юзается)
    event.send(event.responses['info_duty'].format(версия=__version__,
                                                   владелец=ment_user(owner),
                                                   чаты=len(
                                                       event.db.chats.keys()),
                                                   ид=event.chat.iris_id,
                                                   имя=event.chat.name))
    return "ok"
Ejemplo n.º 6
0
def repeat(event: SignalEvent) -> str:
    if event.msg['from_id'] not in event.db.trusted_users:
        message_id = event.send(event.responses['not_in_trusted'])
        time.sleep(3)
        event.api.msg_op(3, msg_id=message_id)
        return "ok"

    msg = event.payload.lower()
    for word in event.responses['repeat_forbidden_words']:
        if word in msg or (msg.startswith('!') and not msg.startswith('!с')):
            event.send(event.responses['repeat_if_forbidden'])
            return "ok"

    message = f'{" ".join(event.args[1:])}\n{event.payload}'
    if message == '\n':
        event.send('А че написать-то?')
    else:
        event.send(message, attachment=",".join(event.attachments))
    return "ok"
Ejemplo n.º 7
0
def send_signal(event: Event):
    return dp.signal_event_run(SignalEvent(event))
Ejemplo n.º 8
0
def template_create(event: SignalEvent) -> str:
    name = re.findall(r"([^|]+)\|?([^|]*)", ' '.join(event.args))
    if not name:
        event.msg_op(2, "❗ Не указано название")
        return "ok"
    category = name[0][1].lower().strip() or 'без категории'
    name = name[0][0].lower().strip()

    if category == 'все':
        event.msg_op(2, '❗ Невозможно создать шаблон с категорией "все"')
        return "ok"

    if not (event.payload or event.attachments or event.reply_message):
        event.msg_op(2, "❗ Нет данных")
        return "ok"

    if event.reply_message:
        data = event.reply_message['text']
        event.attachments = att_parse(event.reply_message['attachments'])
        if event.attachments:
            if event.attachments[0].startswith('audio_message'):
                event.msg_op(2, '⚠️ Для сохранения ГС используй команду "+гс"')
                return "ok"
    else:
        data = event.payload

    event.db.templates, exist = delete_template(name, event.db.templates)
    event.db.templates.append({
        "name": name,
        "payload": data,
        "cat": category,
        "attachments": event.attachments
    })
    event.db.save()

    event.msg_op(2,
                 f'✅ Шаблон "{name}" ' +
                 ("перезаписан" if exist else "сохранен"),
                 delete=2)
    return "ok"