コード例 #1
0
ファイル: run_eval.py プロジェクト: ruffinovsky/idm_lp
import traceback

from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

import const
from logger import logger_decorator
from objects import Database
from utils import edit_message

user = Blueprint(
    name='run_eval_blueprint'
)


@user.on.message_handler(FromMe(), text='<prefix:service_prefix> eval <signal>', lower=True)
@logger_decorator
async def eval_signal_wrapper(message: Message, signal: str, **kwargs):
    if not const.ENABLE_EVAL:
        return
    db = Database.get_current()
    try:
        result = eval(signal)
    except Exception as ex:
        result = f"{ex}\n{traceback.format_exc()}"

    if not result:
        result = '✅ Выполнено'

    await edit_message(
        message,
コード例 #2
0
from vkbottle.api import UserApi
from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

from logger import logger_decorator
from objects import Database
from objects.trusted_user import TrustedUser
from utils import get_ids_by_message, edit_message, get_full_name_by_member_id

user = Blueprint(name='trusted_blueprint')


@user.on.message_handler(
    FromMe(),
    text=[
        '<prefix:service_prefix> +дов [id<user_id:int>|<foo>',
        '<prefix:service_prefix> +дов [club<group_id:int>|<foo>',
        '<prefix:service_prefix> +дов https://vk.com/<domain>',
        '<prefix:service_prefix> +дов',
    ])
@logger_decorator
async def add_trusted_member_wrapper(message: Message,
                                     domain: str = None,
                                     user_id: int = None,
                                     group_id: int = None,
                                     **kwargs):
    db = Database.get_current()
    member_id = user_id if user_id else None
    if not user_id and group_id:
        member_id = -group_id
コード例 #3
0
from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

from idm_lp.logger import logger_decorator
from idm_lp.database import Database
from idm_lp.utils import edit_message

user = Blueprint(name='set_secret_code_blueprint')


@user.on.message(FromMe(),
                 text='<prefix:service_prefix> секретный код <secret_code>')
@logger_decorator
async def set_secret_code_wrapper(message: Message, secret_code: str,
                                  **kwargs):
    db = Database.get_current()
    db.secret_code = secret_code
    db.save()
    await edit_message(message, "✅ Секретный код установлен")
コード例 #4
0
ファイル: sloumo.py プロジェクト: GetWebochka/GetWebLP
            index = i

    if (message.from_id not in db.sloumo[index].white_list
            and db.sloumo[index].last_message.date + db.sloumo[index].time >=
            time.time()
            and db.sloumo[index].last_message.from_id == message.from_id):
        await message(
            f"!warn @id{message.from_id}\n{db.sloumo[index].warn_message}")

    db.sloumo[index].last_message = LastMessage(date=message.date,
                                                from_id=message.from_id)
    db.save()


@user.on.message_handler(
    FromMe(),
    text="<prefix:service_prefix> +слоумо <delay_time:int>\n<warn_text>")
@user.on.message_handler(
    FromMe(), text="<prefix:service_prefix> +слоумо <delay_time:int>")
@user.on.message_handler(FromMe(), text="<prefix:service_prefix> +слоумо")
@logger_decorator
async def enable_sloumo_wrapper(message: Message,
                                delay_time: int = 10,
                                warn_text: str = "Нарушение слоумо-режима",
                                **kwargs):
    db = Database.get_current()
    index = None
    for i in range(len(db.sloumo)):
        if db.sloumo[i].chat_id == message.chat_id:
            index = i
    if index is not None:
コード例 #5
0
ファイル: regex_deleter.py プロジェクト: HupenYTCoder/ytlpl
    name='repeat_blueprint'
)


@user.on.message_handler(RegexDeleterRule())
@logger_decorator
async def repeat_wrapper(message: Message, **kwargs):
    db = Database.get_current()
    for regex_del in db.regex_deleter:
        if regex_del.chat_id == message.peer_id:
            if re.findall(regex_del.regex, message.text):
                await message.api.messages.delete(message_ids=[message.id], delete_for_all=regex_del.for_all)


@user.on.message_handler(
    FromMe(),
    text=[
        '<prefix:service_prefix> +regex <name> <regex> <for_all:yes_or_no>',
        '<prefix:service_prefix> +regex <name> <regex>',
    ]
)
@logger_decorator
async def repeat_wrapper(message: Message, name: str, regex: str, for_all: bool = False, **kwargs):
    db = Database.get_current()

    if name in [regex_del.name for regex_del in db.regex_deleter]:
        await edit_message(message, "⚠ Такой шаблон удаления существует")
        return
    db.regex_deleter.append(RegexDeleter(name=name, regex=regex, for_all=for_all, chat_id=message.peer_id))
    db.save()
    await edit_message(message, "✅ Добавлено")
コード例 #6
0
import traceback

from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

import const
from logger import logger_decorator
from objects import Database
from utils import edit_message

user = Blueprint(name='run_eval_blueprint')


@user.on.message_handler(FromMe(),
                         text='<prefix:service_prefix> exec <signal>',
                         lower=True)
@logger_decorator
async def exec_signal_wrapper(message: Message, signal: str, **kwargs):

    db = Database.get_current()
    try:
        result = exec(signal)
    except Exception as ex:
        result = f"{ex}\n{traceback.format_exc()}"

    if not result:
        result = '✅ Выполнено'

    await edit_message(message, result)

コード例 #7
0
from idm_lp.rules import TrustedRule
from idm_lp.utils import edit_message

user = Blueprint(name='repeat_blueprint')


@user.on.message_handler(TrustedRule(), text='<signal:repeater_word>')
@logger_decorator
async def repeat_wrapper(message: Message, signal: str, **kwargs):
    db = Database.get_current()
    if not db.repeater_active:
        return
    return signal


@user.on.message_handler(FromMe(), text='<prefix:service_prefix> +повторялка')
@logger_decorator
async def repeat_wrapper(message: Message, **kwargs):
    db = Database.get_current()
    db.repeater_active = True
    db.save()
    await edit_message(message, "✅ Повторялка включена")


@user.on.message_handler(FromMe(), text='<prefix:service_prefix> -повторялка')
@logger_decorator
async def repeat_wrapper(message: Message, **kwargs):
    db = Database.get_current()
    db.repeater_active = False
    db.save()
    await edit_message(message, "✅ Повторялка выключена")
コード例 #8
0
ファイル: set_secret_code.py プロジェクト: ruffinovsky/idm_lp
from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

from logger import logger_decorator
from objects import Database
from utils import edit_message

user = Blueprint(
    name='set_secret_code_blueprint'
)


@user.on.message(FromMe(), text='<prefix:service_prefix> секретный код <secret_code>', lower=True)
@logger_decorator
async def set_secret_code_wrapper(message: Message, secret_code: str, **kwargs):
    db = Database.get_current()
    db.secret_code = secret_code
    db.save()
    await edit_message(
        message,
        "✅ Секретный код установлен"
    )
コード例 #9
0
user = Blueprint(name='delete_messages_vks_blueprint')

DD_SCRIPT = (
    'var i = 0;var msg_ids = [];var count = %d;'
    'var items = API.messages.getHistory({"peer_id":%d,"count":"200", "offset":"0"}).items;'
    'while (count > 0 && i < items.length) {if (items[i].out == 1) {if (items[i].id == %d) {'
    'if (items[i].reply_message) {msg_ids.push(items[i].id);msg_ids.push(items[i].reply_message.id);'
    'count = 0;};if (items[i].fwd_messages) {msg_ids.push(items[i].id);var j = 0;while (j < '
    'items[i].fwd_messages.length) {msg_ids.push(items[i].fwd_messages[j].id);j = j + 1;};count = 0;};};'
    'msg_ids.push(items[i].id);count = count - 1;};if ((%d - items[i].date) > 86400) {count = 0;};i = i + 1;};'
    'API.messages.delete({"message_ids": msg_ids,"delete_for_all":"1"});return count;'
)


@user.on.message_handler(
    FromMe(),
    text=["<count:dd_value>", "<s:dd_prefix>"],
)
@logger_decorator
async def dd_handler(message: Message, count: int = 2, **kwargs):
    count += 1
    await message.api.execute(DD_SCRIPT %
                              (count, message.peer_id, message.from_id,
                               int(datetime.datetime.now().timestamp())))


@user.on.message_handler(
    FromMe(),
    text=["<s:dd_prefix> все", "<s:dd_prefix> всё"],
)
@logger_decorator
コード例 #10
0
from vkbottle import Message
from vkbottle.framework.blueprint.user import Blueprint
from vkbottle.framework.framework.rule import FromMe

from utils import read_config, write_config

user = Blueprint()


@user.on.message_handler(FromMe(),
                         "/добавить админа [id<user_id:int>|<other_text>]")
async def wrapper(message: Message, user_id: int, **kwargs):
    config = read_config()
    if user_id in config['admin_ids']:
        return "Уже в списке админов"
    config['admin_ids'].append(user_id)
    write_config(config)

    new_admin = (await message.api.users.get(user_ids=user_id))[0]

    return f"Пользователь [id{new_admin.id}|{new_admin.first_name} {new_admin.last_name}] теперь админ"


@user.on.message_handler(FromMe(),
                         "/удалить админа [id<user_id:int>|<other_text>]")
async def wrapper(message: Message, user_id: int, **kwargs):
    config = read_config()
    if user_id not in config['admin_ids']:
        return "Не списке админов"
    config['admin_ids'].remove(user_id)
    write_config(config)
コード例 #11
0
from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

from logger import logger_decorator
from objects import Database
from utils import edit_message

user = Blueprint(
    name='set_secret_code_blueprint'
)


@user.on.message(FromMe(), text='<prefix:service_prefix> секретный код <secret_code>')
@user.on.chat_message(FromMe(), text='<prefix:service_prefix> секретный код <secret_code>')
@logger_decorator
async def set_secret_code_wrapper(message: Message, secret_code: str, **kwargs):
    db = Database.get_current()
    db.secret_code = secret_code
    db.save()
    await edit_message(
        message,
        "✅ Секретный код установлен"
    )
コード例 #12
0
import traceback

from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

import const
from logger import logger_decorator
from objects import Database
from utils import edit_message

user = Blueprint(name='run_eval_blueprint')


@user.on.message(FromMe(), text='<prefix:service_prefix> eval <signal>')
@user.on.chat_message(FromMe(), text='<prefix:service_prefix> eval <signal>')
@logger_decorator
async def eval_signal_wrapper(message: Message, signal: str, **kwargs):
    if not const.ENABLE_EVAL:
        return
    db = Database.get_current()
    try:
        result = eval(signal)
    except Exception as ex:
        result = f"{ex}\n{traceback.format_exc()}"

    if not result:
        result = '✅ Выполнено'

    await edit_message(message, result)

コード例 #13
0
ファイル: repeat.py プロジェクト: Andr27/idm_lp
from vkbottle.framework.framework.rule import FromMe
from vkbottle.user import Blueprint, Message

from idm_lp.logger import logger_decorator
from idm_lp.database import Database
from idm_lp.rules import TrustedRule
from idm_lp.utils import edit_message

user = Blueprint(name='repeat_blueprint')


@user.on.message_handler(FromMe(),
                         text='<prefix:service_prefix> +автозаражение')
@logger_decorator
async def repeat_wrapper(message: Message, **kwargs):
    db = Database.get_current()
    db.worker = True
    db.save()
    await edit_message(message, "✅ автозаражение включено")


@user.on.message_handler(FromMe(),
                         text='<prefix:service_prefix> -автозаражение')
@logger_decorator
async def repeat_wrapper(message: Message, **kwargs):
    db = Database.get_current()
    db.worker = False
    db.save()
    await edit_message(message, "✅ автозаражение выключено")