2022-04-06 14:39:27 +00:00
|
|
|
|
#!/usr/bin/env python
|
|
|
|
|
# -*- encoding: utf-8 -*-
|
|
|
|
|
"""
|
|
|
|
|
@File : custom.py
|
|
|
|
|
@Time : 2022/04/02 10:17:03
|
|
|
|
|
@Author : Viperorz
|
|
|
|
|
@Version : 1.0.0
|
|
|
|
|
@License : (C)Copyright 2021-2022
|
|
|
|
|
@Desc : None
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
2022-04-07 08:08:10 +00:00
|
|
|
|
from typing import Any, Dict
|
|
|
|
|
|
|
|
|
|
import yaml
|
2022-04-06 14:39:27 +00:00
|
|
|
|
from pyrogram import filters
|
|
|
|
|
from pyrogram.types import Message
|
|
|
|
|
from tools.constants import STORE_TRACE_DATA
|
|
|
|
|
from tools.storage import SimpleStore
|
|
|
|
|
|
2022-04-07 08:08:10 +00:00
|
|
|
|
command_data: Dict[str, Any] = yaml.full_load(open("./data/command.yml", 'rb'))
|
|
|
|
|
|
2022-04-06 14:39:27 +00:00
|
|
|
|
|
2022-04-07 08:08:10 +00:00
|
|
|
|
def command(key: str):
|
2022-04-06 14:39:27 +00:00
|
|
|
|
"""匹配UserBot指令"""
|
2022-04-07 05:03:37 +00:00
|
|
|
|
# 指令前缀
|
|
|
|
|
# 例一:prefixes = "-"
|
|
|
|
|
# 例二:prefixes = ["-", "/", "+"]
|
2022-04-07 08:08:10 +00:00
|
|
|
|
prefixes = command_data.get('help').get('all_prefixes')
|
|
|
|
|
cmd = command_data.get(key).get('cmd')
|
|
|
|
|
return filters.me & filters.text & filters.command(cmd, prefixes)
|
2022-04-06 14:39:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def is_traced():
|
|
|
|
|
"""正则匹配用户输入指令及参数"""
|
|
|
|
|
async def func(flt, _, msg: Message):
|
|
|
|
|
async with SimpleStore(auto_flush=False) as store:
|
|
|
|
|
trace_data = store.get_data(STORE_TRACE_DATA)
|
|
|
|
|
if not trace_data:
|
|
|
|
|
return False
|
|
|
|
|
elif not trace_data.get(msg.from_user.id):
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
# "data" kwarg is accessed with "flt.data" above
|
|
|
|
|
return filters.incoming & filters.create(func)
|