fit nonebot.beta2

This commit is contained in:
HibiKier
2022-02-19 18:20:19 +08:00
parent ab443a21ec
commit 7dd68cf1ef
212 changed files with 6857 additions and 5615 deletions
+35 -41
View File
@@ -1,15 +1,15 @@
from typing import Type
from nonebot import on_command
from nonebot.matcher import Matcher
from utils.utils import scheduler, get_message_text, is_number
from nonebot.adapters.cqhttp.permission import GROUP
from utils.utils import scheduler, is_number
from nonebot.adapters.onebot.v11.permission import GROUP
from nonebot.typing import T_State
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent, MessageEvent
from nonebot.adapters.onebot.v11 import GroupMessageEvent, MessageEvent, Message
from nonebot.permission import SUPERUSER
import random
from nonebot.plugin import MatcherGroup
from configs.path_config import IMAGE_PATH
import re
from nonebot.params import CommandArg
from .open_cases_c import (
open_case,
total_open_statistics,
@@ -102,8 +102,8 @@ k_open_case = cases_matcher_group.on_command("开箱")
@k_open_case.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
case_name = get_message_text(event.json())
async def _(event: GroupMessageEvent, arg: Message = CommandArg()):
case_name = arg.extract_plain_text().strip()
case_name = case_name.replace("武器箱", "").strip()
if case_name:
result = await open_case(event.user_id, event.group_id, case_name)
@@ -120,7 +120,7 @@ total_case_data = cases_matcher_group.on_command(
@total_case_data.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
async def _(event: GroupMessageEvent):
await total_case_data.finish(
await total_open_statistics(event.user_id, event.group_id),
at_sender=True,
@@ -131,7 +131,7 @@ group_open_case_statistics = cases_matcher_group.on_command("群开箱统计")
@group_open_case_statistics.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
async def _(event: GroupMessageEvent):
await group_open_case_statistics.finish(await group_statistics(event.group_id))
@@ -139,45 +139,39 @@ my_kinfes = on_command("我的金色", priority=1, permission=GROUP, block=True)
@my_kinfes.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
async def _(event: GroupMessageEvent):
await my_kinfes.finish(
await my_knifes_name(event.user_id, event.group_id), at_sender=True
)
open_shilian: Type[Matcher] = cases_matcher_group.on_regex(".*连开箱")
open_shilian: Type[Matcher] = cases_matcher_group.on_regex("(.*)连开箱(.*?)")
@open_shilian.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
# if not _flmt.check(event.user_id):
# await k_open_case.finish('着什么急啊,慢慢来!', at_sender=True)
# _flmt.start_cd(event.user_id)
msg = get_message_text(event.json())
rs = re.search(r"(.*)连开箱(.*)", msg)
if rs:
num = rs.group(1).strip()
if is_number(num) or num_dict.get(num):
try:
num = num_dict[num]
except KeyError:
num = int(num)
if num > 30:
await open_shilian.finish("开箱次数不要超过30啊笨蛋!", at_sender=True)
if num < 0:
await open_shilian.finish("再负开箱就扣你明天开箱数了!", at_sender=True)
else:
await open_shilian.finish("必须要是数字切不要超过30啊笨蛋!中文也可!", at_sender=True)
case_name = rs.group(2).strip()
case_name = case_name.replace("武器箱", "").strip()
if not case_name:
case_name = random.choice(cases_name)
elif case_name not in cases_name:
await open_shilian.finish("武器箱未收录!", at_sender=True)
await open_shilian.finish(
await open_shilian_case(event.user_id, event.group_id, case_name, num),
at_sender=True,
)
async def _(event: GroupMessageEvent, state: T_State):
num = state["_matched_groups"][0].strip()
if is_number(num) or num_dict.get(num):
try:
num = num_dict[num]
except KeyError:
num = int(num)
if num > 30:
await open_shilian.finish("开箱次数不要超过30啊笨蛋!", at_sender=True)
if num < 0:
await open_shilian.finish("再负开箱就扣你明天开箱数了!", at_sender=True)
else:
await open_shilian.finish("必须要是数字切不要超过30啊笨蛋!中文也可!", at_sender=True)
case_name = state["_matched_groups"][1].strip()
case_name = case_name.replace("武器箱", "").strip()
if not case_name:
case_name = random.choice(cases_name)
elif case_name not in cases_name:
await open_shilian.finish("武器箱未收录!", at_sender=True)
await open_shilian.finish(
await open_shilian_case(event.user_id, event.group_id, case_name, num),
at_sender=True,
)
num_dict = {
@@ -218,7 +212,7 @@ update_price = on_command("更新开箱价格", priority=1, permission=SUPERUSER
@update_price.handle()
async def _(bot: Bot, event: MessageEvent, state: T_State):
async def _( event: MessageEvent):
await update_price.send(await util_get_buff_price(str(event.get_message())))
@@ -226,7 +220,7 @@ update_img = on_command("更新开箱图片", priority=1, permission=SUPERUSER,
@update_img.handle()
async def _(bot: Bot, event: MessageEvent, state: T_State):
async def _(event: MessageEvent):
await update_img.send(await util_get_buff_img(str(event.get_message())))
+4 -4
View File
@@ -89,7 +89,7 @@ async def open_case(user_qq: int, group: int, case_name: str = "狂牙大行动"
dbprice = await BuffPrice.ensure(skin[9 : skin.rfind("(")].strip())
if dbprice.skin_price != 0:
price_result = dbprice.skin_price
print("数据库查询到价格: ", dbprice.skin_price)
logger.info("数据库查询到价格: ", dbprice.skin_price)
uplist[10] = dbprice.skin_price
else:
price = -1
@@ -102,7 +102,7 @@ async def open_case(user_qq: int, group: int, case_name: str = "狂牙大行动"
price = float(pcp[1].strip())
break
if price != -1:
print("存储入数据库---->", price)
logger.info("存储入数据库---->", price)
uplist[10] = price
price_result = str(price)
await dbprice.update(
@@ -242,7 +242,7 @@ async def open_shilian_case(user_qq: int, group: int, case_name: str, num: int =
wImg = BuildImage(200, 270, 200, 200)
wImg.paste(
alpha2white_pil(
Image.open(IMAGE_PATH + f"cases/{case}/{skin_name}.png").resize(
Image.open(IMAGE_PATH / "cases" / case / f"{skin_name}.png").resize(
(200, 200), Image.ANTIALIAS
)
),
@@ -418,7 +418,7 @@ def _pst_my_knife(w, h, knifes_list):
knife_img = BuildImage(470, 600, 470, 470, font_size=20)
knife_img.paste(
alpha2white_pil(
Image.open(IMAGE_PATH + f"cases/{case}/{skin_name}.png").resize(
Image.open(IMAGE_PATH / f"cases" / case / f"{skin_name}.png").resize(
(470, 470), Image.ANTIALIAS
)
),
+15 -27
View File
@@ -4,14 +4,14 @@ from datetime import datetime, timedelta
from configs.path_config import IMAGE_PATH
from utils.http_utils import AsyncHttpx
from .models.open_cases_user import OpenCasesUser
import os
from services.log import logger
from utils.utils import get_bot
from utils.utils import get_bot, cn2py
from asyncio.exceptions import TimeoutError
from nonebot.adapters.cqhttp.exception import ActionFailed
from nonebot.adapters.onebot.v11.exception import ActionFailed
from configs.config import Config
from utils.manager import group_manager
from .config import *
import os
url = "https://buff.163.com/api/market/goods"
# proxies = 'http://49.75.59.242:3128'
@@ -20,9 +20,7 @@ url = "https://buff.163.com/api/market/goods"
async def util_get_buff_price(case_name: str = "狂牙大行动") -> str:
cookie = {"session": Config.get_config("open_cases", "COOKIE")}
failed_list = []
case = ""
for i in pypinyin.pinyin(case_name, style=pypinyin.NORMAL):
case += "".join(i)
case = cn2py(case_name)
if case_name == "狂牙大行动":
case_id = 1
elif case_name == "突围大行动":
@@ -165,12 +163,9 @@ async def util_get_buff_price(case_name: str = "狂牙大行动") -> str:
async def util_get_buff_img(case_name: str = "狂牙大行动") -> str:
cookie = {"session": Config.get_config("open_cases", "COOKIE")}
error_list = []
case = ""
for i in pypinyin.pinyin(case_name, style=pypinyin.NORMAL):
case += "".join(i)
path = "cases/" + case + "/"
if not os.path.exists(IMAGE_PATH + path):
os.mkdir(IMAGE_PATH + path)
case = cn2py(case_name)
path = IMAGE_PATH / "cases/" / case
path.mkdir(exist_ok=True, parents=True)
case = case.upper()
CASE_KNIFE = eval(case + "_CASE_KNIFE")
CASE_RED = eval(case + "_CASE_RED")
@@ -205,11 +200,8 @@ async def util_get_buff_img(case_name: str = "狂牙大行动") -> str:
for j in range(len(data)):
if data[j]["name"] in [f"{skin}(★)"]:
img_url = data[j]["goods_info"]["icon_url"]
for k in pypinyin.pinyin(
skin + "无涂装", style=pypinyin.NORMAL
):
skin_name += "".join(k)
await AsyncHttpx.download_file(img_url, IMAGE_PATH + path + skin_name + ".png")
skin_name = cn2py(skin + "无涂装")
await AsyncHttpx.download_file(img_url, path / f"{skin_name}.png")
flag = True
break
if flag:
@@ -218,11 +210,8 @@ async def util_get_buff_img(case_name: str = "狂牙大行动") -> str:
img_url = (await response.json())["data"]["items"][0][
"goods_info"
]["icon_url"]
for i in pypinyin.pinyin(
skin.replace("|", "-").strip(), style=pypinyin.NORMAL
):
skin_name += "".join(i)
if await AsyncHttpx.download_file(img_url, IMAGE_PATH + path + skin_name + ".png"):
skin_name += cn2py(skin.replace("|", "-").strip())
if await AsyncHttpx.download_file(img_url, path / f"{skin_name}.png"):
logger.info(f"------->写入 {skin} 成功")
else:
logger.info(f"------->写入 {skin} 失败")
@@ -276,11 +265,10 @@ async def update_count_daily():
gl = await bot.get_group_list()
gl = [g["group_id"] for g in gl]
for g in gl:
if await group_manager.check_group_task_status(g, "open_case_reset_remind"):
try:
await bot.send_group_msg(group_id=g, message="今日开箱次数重置成功")
except ActionFailed:
logger.warning(f"{g} 群被禁言,无法发送 开箱重置提醒")
try:
await bot.send_group_msg(group_id=g, message="[[_task|open_case_reset_remind]]今日开箱次数重置成功")
except ActionFailed:
logger.warning(f"{g} 群被禁言,无法发送 开箱重置提醒")
logger.info("今日开箱次数重置成功")
except Exception as e:
logger.error(f"开箱重置错误 e:{e}")