mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-09-29 08:39:59 +08:00
update .gitignore
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
from nonebot import on_command
|
||||
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent, PrivateMessageEvent
|
||||
from nonebot.typing import T_State
|
||||
from nonebot.rule import to_me
|
||||
from configs.path_config import DATA_PATH
|
||||
from util.init_result import image
|
||||
import os
|
||||
from .data_source import create_help_img, create_group_help_img
|
||||
from nonebot import require
|
||||
|
||||
export = require("nonebot_plugin_manager")
|
||||
|
||||
__plugin_name__ = '帮助'
|
||||
|
||||
|
||||
if not os.path.exists(DATA_PATH + 'group_help/'):
|
||||
os.mkdir(DATA_PATH + 'group_help/')
|
||||
create_help_img()
|
||||
for file in os.listdir(DATA_PATH + 'group_help/'):
|
||||
os.remove(DATA_PATH + 'group_help/' + file)
|
||||
|
||||
_help = on_command("功能", rule=to_me(), aliases={"帮助", 'help'}, priority=1, block=True)
|
||||
|
||||
|
||||
@_help.handle()
|
||||
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
|
||||
if not os.path.exists(DATA_PATH + f'group_help/{event.group_id}.png'):
|
||||
create_group_help_img(event.group_id)
|
||||
await _help.finish(image(abspath=DATA_PATH + f'group_help/{event.group_id}.png'))
|
||||
|
||||
|
||||
@_help.handle()
|
||||
async def _(bot: Bot, event: PrivateMessageEvent, state: T_State):
|
||||
await _help.finish(image('help.png'))
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,52 @@
|
||||
|
||||
# 实用
|
||||
utility_help = {
|
||||
'update_pic': '一些对图片的操作 --> 指令:操作图片/图片/修改图片(包含 10 种图片操作)',
|
||||
'search_buff_skin_price': 'BUFF皮肤底价查询 --> 指令:查询皮肤(代理ip不得劲)',
|
||||
'weather': '天气查询 --> 指令:xx天气',
|
||||
'yiqing': '实时疫情数据 --> 指令:疫情查询/疫情/查询疫情',
|
||||
'bt': 'bt(磁力搜索){仅支持私聊,懂的都懂} --> 指令:bt',
|
||||
'reimu': '老司机必备!{仅支持私聊,懂的都懂}-> 指令:上车',
|
||||
'what_anime': '靠图识番 --> 指令:识番',
|
||||
'nonebot_plugin_picsearcher': '以图搜图 --> 指令:识图/这是什么/上一张图是什么',
|
||||
'search_anime': '找不到想看的动漫吗? --> 指令:搜番',
|
||||
'songpicker2': '来一首歌听听? --> 指令:点歌',
|
||||
'epic': 'epic速速白嫖 --> 指令:epic',
|
||||
'pixiv_r': 'P站排行榜直接冲 --> 指令:p站排行(可含参数)',
|
||||
'pixiv_s': 'P站的图随便搜搜 --> 指令:搜图(可含参数)',
|
||||
'translate': '出国旅游助手(狗头) --> 指令:英翻/翻英/日翻/翻日/韩翻/翻韩'
|
||||
}
|
||||
# 娱乐
|
||||
entertainment_help = {
|
||||
'sign_in': '签到(影响色图几率和开箱次数) --> 指令:签到/我的签到/好感度排行',
|
||||
'send_img': '发送图片 --> 指令:美图/萝莉/壁纸',
|
||||
'send_setu': '不要小看涩图啊混蛋! --> 指令:色图/n张色图/n张xx色图/查色图/...(请查看 色图 帮助)',
|
||||
'white2black_img': '黑白草图 --> 指令:黑白图/黑白草图',
|
||||
'coser': '三次元也不戳 --> 指令:coser',
|
||||
'jitang': '不喝点什么不舒服 --> 指令:鸡汤/语录',
|
||||
'send_dinggong_voice': '骂我(傲娇?) --> 指令:骂老子',
|
||||
'poke': '戳一戳发送语音美图萝莉图不美哉?',
|
||||
'open_cases': '模拟开箱(戒赌) --> 指令:开箱(N连开箱[N<=30])/我的开箱/群开箱统计/我的金色',
|
||||
'luxun': '鲁迅说过 --> 指令:鲁迅说',
|
||||
'fake_msg': '构造一个假消息 --> 指令:假消息',
|
||||
'shop': '商店系统(初始送100金币) --> 指令:商店/我的金币/购买道具/使用道具',
|
||||
'draw_card_p': '换个地方当非酋TvT... --> 指令:方舟一井/方舟N抽(0<N<300)',
|
||||
'draw_card_g': '提瓦特是个好地方! --> 指令:原神一井/原神N抽(0<N<300)/重置原神抽卡次数',
|
||||
'draw_card_h': '赛马娘!!!! --> 指令:赛马娘一井/赛马娘N抽/赛马娘卡一井/赛马娘卡N抽(0<N<300)',
|
||||
'nonebot_plugin_cocdicer': '骰子娘 --> 直接查看 骰子娘帮助!',
|
||||
'one_friend': '我有一个朋友想问问... --> 指令:我有一个朋友想问问xxx(内容)',
|
||||
'nickname': '区区昵称! --> 指令:以后叫我xx(昵称)/我是谁/取消昵称',
|
||||
'almanac': '这是一张正经的黄历 --> 指令:原神黄历',
|
||||
'material_remind': '看看原神今天要刷什么 --> 指令:今日素材/天赋材料',
|
||||
'qiu_qiu_translation': '这家伙到底在说什么? --> 指令:丘丘翻译/丘丘一下/丘丘语翻译',
|
||||
'query_resource_points': '地图资源速速查看 --> 指令:原神资源查询xx/原神资源列表/哪里有xx/xx在哪(xx=资源名称)',
|
||||
}
|
||||
# 其他
|
||||
other_help = [
|
||||
'群内csgo服务器(指定群) --> 指令:服务器/ip(其他群请私聊)',
|
||||
'查看当前的群欢迎消息 --> 指令:群欢迎消息',
|
||||
'这是一份正经的自我介绍 --> 指令:自我介绍',
|
||||
'不得看看自己权力多大? --> 指令:我的权限',
|
||||
'有人记得你是什么时候加入我们的 --> 指令:我的信息',
|
||||
'让我看看更新了什么 --> 指令:更新信息'
|
||||
]
|
||||
@@ -0,0 +1,175 @@
|
||||
from util.img_utils import CreateImg
|
||||
from configs.path_config import IMAGE_PATH, DATA_PATH
|
||||
import ujson as json
|
||||
import os
|
||||
from .config import *
|
||||
from nonebot import require
|
||||
|
||||
export = require("nonebot_plugin_manager")
|
||||
|
||||
width = 1200
|
||||
e_height = 0
|
||||
u_height = 700
|
||||
o_height = 1250
|
||||
# f_height =
|
||||
|
||||
|
||||
def create_help_img():
|
||||
if os.path.exists(IMAGE_PATH + 'help.png'):
|
||||
os.remove(IMAGE_PATH + 'help.png')
|
||||
h = (100 + len(utility_help) * 24 + len(entertainment_help) * 24 + len(other_help) * 24) * 2
|
||||
A = CreateImg(width, h - 200, font_size=24)
|
||||
e = CreateImg(width, len(entertainment_help) * 42, font_size=24)
|
||||
rst = ''
|
||||
i = 0
|
||||
for cmd in entertainment_help:
|
||||
rst += f'{i + 1}.{entertainment_help[cmd]}\n'
|
||||
i += 1
|
||||
e.text((10, 10), '娱乐功能:')
|
||||
e.text((40, 40), rst)
|
||||
u = CreateImg(width, len(utility_help) * 40 + 50, font_size=24, color='black')
|
||||
rst = ''
|
||||
i = 0
|
||||
for cmd in utility_help:
|
||||
rst += f'{i + 1}.{utility_help[cmd]}\n'
|
||||
i += 1
|
||||
u.text((10, 10), '实用功能:', fill=(255, 255, 255))
|
||||
u.text((40, 40), rst, fill=(255, 255, 255))
|
||||
o = CreateImg(width, len(other_help) * 40, font_size=24)
|
||||
rst = ''
|
||||
i = 0
|
||||
for i in range(len(other_help)):
|
||||
rst += f'{i + 1}.{other_help[i]}\n'
|
||||
i += 1
|
||||
o.text((10, 10), '其他功能:')
|
||||
o.text((40, 40), rst)
|
||||
A.paste(e, (0, 0))
|
||||
A.paste(u, (0, u_height))
|
||||
A.paste(o, (0, o_height))
|
||||
A.text((10, h * 0.72), '大部分交互功能可以通过输入‘取消’,‘算了’来取消当前交互\n对我说 “指令名 帮助” 获取对应详细帮助\n'
|
||||
'可以通过 “滴滴滴- 后接内容” 联系管理员(有趣的想法尽管来吧!<还有Bug和建议>)\n[群管理员请看 管理员帮助(群主与管理员自带 5 级权限)]')
|
||||
A.text((10, h * 0.79), f"【注】「色图概率:好感度 + 70%\n"
|
||||
f"\t\t每 3 点好感度 + 1次开箱,初始 20 次\n"
|
||||
f"\t\t开启/关闭功能只需输入‘开启/关闭 指令名’(每个功能的第一个指令)」\n"
|
||||
f"\t\t示例:开启签到")
|
||||
A.save(IMAGE_PATH + 'help.png')
|
||||
|
||||
|
||||
def create_group_help_img(group_id: int):
|
||||
group_id = str(group_id)
|
||||
try:
|
||||
with open(DATA_PATH + 'manager/plugin_list.json', 'r', encoding='utf8') as f:
|
||||
plugin_list = json.load(f)
|
||||
except (ValueError, FileNotFoundError):
|
||||
pass
|
||||
h = (100 + len(utility_help) * 24 + len(entertainment_help) * 24 + len(other_help) * 24) * 2
|
||||
A = CreateImg(1200, h - 200, font_size=24)
|
||||
u = CreateImg(1200, len(utility_help) * 40, font_size=24, color='black')
|
||||
o = CreateImg(1200, len(other_help) * 40, font_size=24)
|
||||
e = CreateImg(width, len(entertainment_help) * 42, font_size=24)
|
||||
rst = ''
|
||||
i = 1
|
||||
# print(plugin_list)
|
||||
for cmd in entertainment_help.keys():
|
||||
# dfg = '_'
|
||||
# if cmd == 'draw_card_p':
|
||||
# cmd = 'draw_card'
|
||||
# dfg = 'p'
|
||||
# elif cmd == 'draw_card_g':
|
||||
# cmd = 'draw_card'
|
||||
# dfg = 'g'
|
||||
# flag = '√'
|
||||
# if group_id in plugin_list[cmd]:
|
||||
# if not plugin_list[cmd][group_id]:
|
||||
# flag = '×'
|
||||
# if cmd in ['nickname']:
|
||||
# flag = '-'
|
||||
flag, dfg = parse_cmd(cmd, group_id, plugin_list)
|
||||
if dfg:
|
||||
cmd = rcmd(dfg)
|
||||
# if dfg == 'p':
|
||||
# cmd = 'draw_card_p'
|
||||
# elif dfg == 'g':
|
||||
# cmd = 'draw_card_g'
|
||||
rst += f'【{flag}】{i}.{entertainment_help[cmd]}\n'
|
||||
i += 1
|
||||
e.text((10, 10), '娱乐功能:')
|
||||
e.text((40, 40), rst)
|
||||
|
||||
rst = ''
|
||||
i = 1
|
||||
for cmd in utility_help.keys():
|
||||
# flag = '√'
|
||||
# if group_id in plugin_list[cmd]:
|
||||
# if not plugin_list[cmd][group_id]:
|
||||
# flag = '×'
|
||||
# if cmd in ['bt', 'reimu']:
|
||||
# flag = '-'
|
||||
flag, dfg = parse_cmd(cmd, group_id, plugin_list)
|
||||
rst += f'【{flag}】{i}.{utility_help[cmd]}\n'
|
||||
i += 1
|
||||
u.text((10, 10), '实用功能:', fill=(255, 255, 255))
|
||||
u.text((40, 40), rst, fill=(255, 255, 255))
|
||||
|
||||
rst = ''
|
||||
for i in range(len(other_help)):
|
||||
rst += f'{i + 1}.{other_help[i]}\n'
|
||||
o.text((10, 10), '其他功能:')
|
||||
o.text((40, 40), rst)
|
||||
|
||||
A.paste(e, (0, 0))
|
||||
A.paste(u, (0, u_height))
|
||||
A.paste(o, (0, o_height))
|
||||
# A.text((width, 10), f'总开关【{"√" if data["总开关"] else "×"}】')
|
||||
A.text((10, h * 0.72), '大部分交互功能可以通过输入‘取消’,‘算了’来取消当前交互\n对我说 “指令名 帮助” 获取对应详细帮助\n'
|
||||
'可以通过 “滴滴滴- 后接内容” 联系管理员(有趣的想法尽管来吧!<还有Bug和建议>)'
|
||||
'\n[群管理员请看 管理员帮助(群主与管理员自带 5 级权限)]')
|
||||
A.text((10, h * 0.79), f"【注】「色图概率:好感度 + 70%\n"
|
||||
f"\t\t每 3 点好感度 + 1次开箱,初始 20 次\n"
|
||||
f"\t\t开启/关闭功能只需输入‘开启/关闭 指令名’(每个功能的第一个指令)」\n"
|
||||
f"\t\t示例:开启签到\n"
|
||||
f"\t\t可以通过管理员开关自动发送消息(早晚安等)\n"
|
||||
f"\t\t^请查看管理员帮助^")
|
||||
A.save(DATA_PATH + f'group_help/{group_id}.png')
|
||||
|
||||
|
||||
def parse_cmd(cmd, group_id, plugin_list):
|
||||
flag = '√'
|
||||
dfg = None
|
||||
if cmd == 'draw_card_p':
|
||||
cmd = 'draw_card'
|
||||
dfg = 'p'
|
||||
elif cmd == 'draw_card_g':
|
||||
cmd = 'draw_card'
|
||||
dfg = 'g'
|
||||
elif cmd == 'draw_card_h':
|
||||
cmd = 'draw_card'
|
||||
dfg = 'h'
|
||||
elif cmd == 'pixiv_r':
|
||||
cmd = 'pixiv'
|
||||
dfg = 'r'
|
||||
elif cmd == 'pixiv_s':
|
||||
cmd = 'pixiv'
|
||||
dfg = 's'
|
||||
if group_id in plugin_list[cmd]:
|
||||
if not plugin_list[cmd][group_id]:
|
||||
flag = '×'
|
||||
if cmd in ['bt', 'reimu', 'nickname']:
|
||||
flag = '- '
|
||||
return flag, dfg
|
||||
|
||||
|
||||
def rcmd(dfg):
|
||||
if dfg == 'p':
|
||||
return 'draw_card_p'
|
||||
if dfg == 'g':
|
||||
return 'draw_card_g'
|
||||
if dfg == 'g':
|
||||
return 'draw_card_h'
|
||||
if dfg == 'r':
|
||||
return 'pixiv_r'
|
||||
if dfg == 's':
|
||||
return 'pixiv_s'
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user