summaryrefslogtreecommitdiff
path: root/ATRI/plugins/plugin_utils
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/plugin_utils')
-rw-r--r--ATRI/plugins/plugin_utils/__init__.py63
1 files changed, 32 insertions, 31 deletions
diff --git a/ATRI/plugins/plugin_utils/__init__.py b/ATRI/plugins/plugin_utils/__init__.py
index eeae31d..a35bb41 100644
--- a/ATRI/plugins/plugin_utils/__init__.py
+++ b/ATRI/plugins/plugin_utils/__init__.py
@@ -23,11 +23,11 @@ from datetime import datetime, timedelta
from nonebot.plugin import on_command
from nonebot.adapters.cqhttp import Bot, Event
-from utils.utils_banList import banList
-
+from utils.utils_rule import check_banlist, check_switch
file = Path('.') / 'ATRI' / 'data' / 'data_IDcard' / 'main.bin'
+
def infoID() -> Tuple[Dict[str, List[str]], Dict[str, str]]:
with PyZipFile(os.path.abspath(file), "r") as zipFile:
with zipFile.open("name.json", "r") as f:
@@ -36,23 +36,24 @@ def infoID() -> Tuple[Dict[str, List[str]], Dict[str, str]]:
area = json.loads(f.read().decode())
return name, area
+
NAME, AREA = infoID()
-BIRTH_BEGIN = datetime(*[1980, 10, 10]) # type: ignore
-BIRTH_END = datetime(*[2002, 10, 10]) # type: ignore
+BIRTH_BEGIN = datetime(*[1980, 10, 10]) # type: ignore
+BIRTH_END = datetime(*[2002, 10, 10]) # type: ignore
+
def numberID(area: int, sex: int, birth: int) -> str:
def checkSum(fullCode: str) -> int or str:
assert len(fullCode) == 17
- checkSum = sum(
- [((1 << (17 - i)) % 11) * int(fullCode[i]) for i in range(0, 17)]
- )
+ checkSum = sum([((1 << (17 - i)) % 11) * int(fullCode[i])
+ for i in range(0, 17)])
checkDigit = (12 - (checkSum % 11)) % 11
if checkDigit < 10:
return checkDigit
else:
return "X"
-
+
orderCode = str(random.randint(10, 99))
sexCode = str(random.randrange(sex, 10, step=2))
fullCode = str(area) + str(birth) + str(orderCode) + str(sexCode)
@@ -61,28 +62,28 @@ def numberID(area: int, sex: int, birth: int) -> str:
plugin_name = "one-key-adult"
-generateID = on_command("我要转大人,一天打25小时游戏")
+generateID = on_command("我要转大人,一天打25小时游戏",
+ rule=check_banlist() & check_switch(plugin_name))
+
[email protected]() # type: ignore
[email protected]() # type: ignore
async def _(bot: Bot, event: Event, state: dict) -> None:
- user = str(event.user_id)
- group = str(event.group_id)
-
- if banList(user, group):
- id_card_area = int(random.choice(list(AREA.keys())))
- id_card_area_name = AREA[str(id_card_area)]
- id_card_year_old = timedelta(days=random.randint(0, (BIRTH_END - BIRTH_BEGIN).days) + 1)
- id_card_birth_day = strftime("%Y%m%d", (BIRTH_BEGIN + id_card_year_old).timetuple())
- id_card_sex = random.choice([0, 1])
- id_card_name = random.choice(NAME[{0: "female", 1: "male"}[id_card_sex]])
- id_card_id = numberID(id_card_area, id_card_sex, id_card_birth_day)
-
- msg0 = "恭喜,你已经成大人了!\n"
- msg0 += "这是你一天25h游戏的通行证:\n"
- msg0 += f"NumberID: {id_card_id}\n"
- msg0 += f"Sex: {'男' if id_card_sex == 1 else '女'}\n"
- msg0 += f"Name: {id_card_name} || Address: {id_card_area_name}\n"
- msg0 += "注: 1、以上信息根据国家公开标准生成,非真实信息。\n"
- msg0 += " 2、不适用于网易和腾讯。"
-
- await generateID.finish(msg0)
+ id_card_area = int(random.choice(list(AREA.keys())))
+ id_card_area_name = AREA[str(id_card_area)]
+ id_card_year_old = timedelta(
+ days=random.randint(0, (BIRTH_END - BIRTH_BEGIN).days) + 1)
+ id_card_birth_day = strftime("%Y%m%d",
+ (BIRTH_BEGIN + id_card_year_old).timetuple())
+ id_card_sex = random.choice([0, 1])
+ id_card_name = random.choice(NAME[{0: "female", 1: "male"}[id_card_sex]])
+ id_card_id = numberID(id_card_area, id_card_sex, id_card_birth_day)
+
+ msg0 = "恭喜,你已经成大人了!\n"
+ msg0 += "这是你一天25h游戏的通行证:\n"
+ msg0 += f"NumberID: {id_card_id}\n"
+ msg0 += f"Sex: {'男' if id_card_sex == 1 else '女'}\n"
+ msg0 += f"Name: {id_card_name} || Address: {id_card_area_name}\n"
+ msg0 += "注: 1、以上信息根据国家公开标准生成,非真实信息。\n"
+ msg0 += " 2、不适用于网易和腾讯。"
+
+ await generateID.finish(msg0)