Coder Social home page Coder Social logo

cmhopesunshine / littlepaimon Goto Github PK

View Code? Open in Web Editor NEW
1.1K 9.0 130.0 273.54 MB

小派蒙!基于Nonebot2的原神机器人,包括但不限于UID面板查询、抽卡记录分析、游戏攻略图鉴、实时便签、原石札记、群聊学习、群管等功能。/ LittlePamon! Genshin Impact multifunctional bot based on Nonebot2.

Home Page: https://docs.paimon.cherishmoon.top

License: GNU Affero General Public License v3.0

Python 98.93% HTML 0.28% CSS 0.79%
qqbot genshin genshin-impact nonebot python mihoyo chatbot nonebot2 onebot

littlepaimon's Introduction

LittlePaimon

小派蒙|LittlePaimon

✨基于NoneBot2的原神机器人✨

license python

丨简介

原神多功能机器人,查询游戏信息、图鉴攻略、树脂提醒等等,以及各种各样的好玩的功能,不仅仅是原神。

目前暂只支持onebot协议,正在开发多聊天平台的船新版本。

丨快速部署

使用小派蒙脚手架插件快速部署安装小派蒙。

asciicast

丨文档

文档地址

| 功能示例

帮助列表 help
玩家卡片 ys
角色背包 ysa
角色面板 ysd
角色卡片 ysc
深渊战报 sy
实时便签 ssbq
角色图鉴 map

| Playwright相关问题

因部分系统不适用于chromium(谷歌浏览器),故将默认内核改为FireFox 如需切换,可更改 config/paimon_config_default.yml 的默认值

| 常见问题&致谢

详见常见问题致谢

| 其他

  • 如果你喜欢这个项目,欢迎给个star或者爱发电,十分感谢。
  • 本项目完全开源免费,仅供学习使用,禁止用于商业用途和非法行为,如有他人非法使用,与本作者无关。
  • 如果您使用并修改了本项目源码,请遵循AGPL-3.0将源码开源。

littlepaimon's People

Contributors

cathgao avatar cm-edelweiss avatar cmhopesunshine avatar forchannot avatar github-actions[bot] avatar kuiiue avatar linworld avatar littlemio avatar meatjam avatar mikko-mikust avatar mmx233 avatar mobyw avatar nicklly avatar nwflower avatar pinghigh avatar scuop avatar shenyanshu avatar thelzy avatar wangyu1997 avatar whisperingwhite avatar zmy15 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

littlepaimon's Issues

云服务器的登陆问题

云服务器中扫码登录一直提示存在风险,需要连到同一同一局域网下,有什么解决方法嘛?

既然有了帮助菜单

能否选择让别人第一次加机器人通过的时候自动发送帮助菜单或者发送欢迎提示让对方知道发送help来获取命令大全

云原神代码内类型注解的bug

我无法使用云原神功能,无论是发送“云原神 绑定 XXX”或“云原神 解绑” 均报如下错误:
image
经初步排查,发现是因LittlePaimon/Paimon_CloudGenshin/init.py中消息处理回调函数的参数类型注解,Union中的两个父子类被错误的当作类与实例导致的。
image
假如将上述event的类型注解固定为一种,如event: GroupMessageEvent则可正常运行。

不知道这种情况是为什么会出现呢?

抽卡记录功能报错

nonebot版本是beta3的,并且刚克隆了一次master分支
Python3.9.7

[ERROR] nonebot | Running matcher <Matcher from LittlePaimon.Paimon_Gacha_Log, type=message, priority=5, temp=False> failed.
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\LesdNoneBot2\bot.py", line 38, in <module>
    nonebot.run(app="__mp_main__:app")
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\nonebot\__init__.py", line 261, in run
    get_driver().run(*args, **kwargs)
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\nonebot\drivers\fastapi.py", line 170, in run
    uvicorn.run(
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\uvicorn\main.py", line 463, in run
    server.run()
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\uvicorn\server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\asyncio\base_events.py", line 629, in run_until_complete
    self.run_forever()
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\asyncio\windows_events.py", line 316, in run_forever
    super().run_forever()
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\asyncio\base_events.py", line 596, in run_forever
    self._run_once()
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\asyncio\base_events.py", line 1890, in _run_once
    handle._run()
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\asyncio\events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\nonebot\message.py", line 146, in _check_matcher
    await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)
> File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\nonebot\message.py", line 196, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\nonebot\internal\matcher.py", line 668, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\nonebot\internal\matcher.py", line 635, in simple_run
    await handler(
  File "C:\ProgramData\Anaconda3\envs\lesd2\lib\site-packages\nonebot\dependencies\__init__.py", line 92, in __call__
    return await self.call(**values)
  File "C:\Users\Administrator\Desktop\LesdNoneBot2\LittlePaimon\Paimon_Gacha_Log\__init__.py", line 93, in update_ckjl
    await get_data(url)
  File "C:\Users\Administrator\Desktop\LesdNoneBot2\LittlePaimon\Paimon_Gacha_Log\gacha_logs.py", line 64, in get_data
    gachaLog = await getGachaLogs(url, gachaTypeId)
  File "C:\Users\Administrator\Desktop\LesdNoneBot2\LittlePaimon\Paimon_Gacha_Log\gacha_logs.py", line 22, in getGachaLogs
    gacha = j["data"]["list"]
TypeError: 'NoneType' object is not subscriptable

cookie

为什么我公共ck添加成功了但是群里还是无法进行使用

在Linux服务器上部署机器人,在运行nb run时出现以下报错

在Linux服务器上安装机器人时,运行到nb run这一步骤时发生以下报错

06-04 19:29:49 [SUCCESS] nonebot | NoneBot is initializing...
Traceback (most recent call last):
File "/usr/local/bin/nb", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/nb_cli/commands/main.py", line 30, in run
run_bot(file, app)
File "/usr/local/lib/python3.8/site-packages/nb_cli/handlers/deploy.py", line 20, in run_bot
module = importlib.import_module(module_name)
File "/usr/local/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 783, in exec_module
File "", line 219, in _call_with_frames_removed
File "./bot.py", line 17, in
nonebot.init()
File "/usr/local/lib/python3.8/site-packages/nonebot/init.py", line 228, in init
config = Config(
File "pydantic/env_settings.py", line 39, in pydantic.env_settings.BaseSettings.init
File "pydantic/env_settings.py", line 73, in pydantic.env_settings.BaseSettings._build_values
File "/usr/local/lib/python3.8/site-packages/nonebot/config.py", line 57, in call
env_file_vars = read_env_file(
File "pydantic/env_settings.py", line 302, in pydantic.env_settings.read_env_file
File "/usr/local/lib/python3.8/site-packages/dotenv/main.py", line 366, in dotenv_values
return DotEnv(
File "/usr/local/lib/python3.8/site-packages/dotenv/main.py", line 74, in dict
self._dict = OrderedDict(resolve_variables(raw_values, override=self.override))
File "/usr/local/lib/python3.8/site-packages/dotenv/main.py", line 231, in resolve_variables
for (name, value) in values:
File "/usr/local/lib/python3.8/site-packages/dotenv/main.py", line 82, in parse
for mapping in with_warn_for_invalid_lines(parse_stream(stream)):
File "/usr/local/lib/python3.8/site-packages/dotenv/main.py", line 24, in with_warn_for_invalid_lines
for mapping in mappings:
File "/usr/local/lib/python3.8/site-packages/dotenv/parser.py", line 180, in parse_stream
reader = Reader(stream)
File "/usr/local/lib/python3.8/site-packages/dotenv/parser.py", line 71, in init
self.string = stream.read()
File "/usr/local/lib/python3.8/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 24: invalid start byte

然后结束了,本人非相关专业,水平有限,在网上搜索过相关问题后,无法解决,可否指点一下如何解决,如果麻烦的话可以不回复,谢谢。

Cookie的一些说明

每个用户可以绑定多个不同uid的cookie,在首次查询时,先调用用户所查询对应uid的私人cookie,如果没有,则从用户私人ck随机选择,如果用户没有私人cookie,则调用公共cookie,查询成功后,会自动缓存记录下该用户最后查询的uid(下次查询就不用再写明uid了)以及查询该uid时用的cookie,以此完成ck复用,每日0点会清除ck缓存,ck失效时会自动删除并向超级管理员私聊提醒。
我设想的逻辑是这样的,如果有BUG请提issue,或者到qq频道交流。

跟着nonebot安装教程来出现了这个问题

super().exec_module(module)

File "", line 790, in exec_module
File "", line 228, in call_with_frames_removed
File ".\LittlePaimon\Guess_voice_init
.py", line 10, in
from .handler import Guess, get_random_voice
File ".\LittlePaimon\Guess_voice\handler.py", line 13, in
from .download_data import voice_list_by_mys, voice_detail_by_mys
File ".\LittlePaimon\Guess_voice\download_data.py", line 9, in
from bs4 import BeautifulSoup
ModuleNotFoundError: No module named 'bs4'
Traceback (most recent call last):
File "c:\users\administrator\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\administrator\appdata\local\programs\python\python39\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\Administrator\Desktop\nonebot\venv\Scripts\nb.exe_main
.py", line 7, in
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\click\core.py", line 1130, in call
return self.main(*args, **kwargs)
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\click\core.py", line 1055, in main
rv = self.invoke(ctx)
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\click\core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\click\core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\click\core.py", line 760, in invoke
return _callback(*args, **kwargs)
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\nb_cli\commands\main.py", line 30, in run
run_bot(file, app)
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\nb_cli\handlers\deploy.py", line 19, in run_bot
module = importlib.import_module(module_name)
File "c:\users\administrator\appdata\local\programs\python\python39\lib\importlib_init
.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 790, in exec_module
File "", line 228, in _call_with_frames_removed
File ".\bot.py", line 26, in
nonebot.load_from_toml("pyproject.toml")
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\nonebot\plugin\load.py", line 119, in load_from_toml
return load_all_plugins(plugins, plugin_dirs)
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\nonebot\plugin\load.py", line 51, in load_all_plugins
manager = PluginManager(module_path, plugin_dir)
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\nonebot\plugin\manager.py", line 38, in init
self.list_plugins()
File "C:\Users\Administrator\Desktop\nonebot\venv\lib\site-packages\nonebot\plugin\manager.py", line 73, in list_plugins
raise RuntimeError(
RuntimeError: Plugin already exists: nonebot_plugin_apscheduler! Check your plugin name
请问怎么解决

无法正常运行

[WARNING]: 连接到反向WebSocket Universal服务器 ws://127.0.0.1:6660/ws/ 时出现错误: dial tcp 127.0.0.1:6660: connectex: No connection could be made because the target machine actively refused it.
这是啥情况,求教

默认ck问题

机器人默认从第三个ck开始添加一号和二号都是空的
导致前面两个一直调用失败然后延长返回时间

网络错误

[2022-06-12 10:32:05] [INFO]: 开始尝试连接到反向WebSocket Universal服务器: ws://127.0.0.1:6660/onebot/v11/ws/
[2022-06-12 10:32:07] [WARNING]: 连接到反向WebSocket Universal服务器 ws://127.0.0.1:6660/onebot/v11/ws/ 时出现错误: dial tcp 127.0.0.1:6660: connectex: No connection could be made because the target machine actively refused it.
启动go-http报了这个错误

【建议】nonebot加载插件机制导致重复加载

运行时包含"Paimon_CloudGenshin"在内的多个功能加载失败:
image
image
image

经调试排查发现,当运行根目录下的boy.py中的nonebot.load_plugins("LittlePaimon")时,nonebot会自动加载所有该目录下的包作为插件,但像utils这类的工具类包不应被当做插件加载。

根据nonebot的load_plugins函数的注释说明(\venv\Lib\site-packages\nonebot\plugin\load.py),建议重构"utils"包名为"_utils"以排除其作为插件,也可更好的在目录中区分包的功能性。
image

1

手动改了user _cookies.json后用指令加cookie和配置公共cookie没反应

角色面板的圣遗物评分和伤害计算说明

  • 漏了个神子的立绘
  • 莫娜和绫华的天赋显示bug
  • 套装显示bug
  • 天赋等级补上命座加成
  • 优化评分
  • 旅行者面板查看
  • 伤害计算(预计6月末 已完成钟离、胡桃、雷神

圣遗物评级说明:
以有效词条数作为评级的标准,每个角色、不同流派玩法的有效词条数不尽相同。
以常见的攻双暴3种有效词条的角色为例,圣遗物有效词条数:

  • 12以下为C级
  • 12~18为B级
  • 18~24为A级
  • 24~28.8为S级
  • 28.8~33.6为SS级
  • 33.6以上为SSS级

这种按词条的评分方式参考了ysin,评级参考了游创工坊
不同角色之间就相对更公平,但是似乎有虚高的情况,怎么我230暴伤的胡桃有效词条比别人270暴伤的还高,个人感觉可能在词条权重上还得调整一下,但是ysin等评分程序没有针对角色权重来评,只能说先这样吧,等一个更好的方案,大家也可以提提意见。

一个小bug

nonebot分支中我不会部署nonebot下面的三个链接指向的是hoshinobot版本的部署方法

关于米游币抢兑的问题

你好,在我私信派蒙试图使用米游币抢兑功能的时候,派蒙无任何反应,hoshino版本为此项目也就是你的修改版

local variable 'ChasmsMawH' referenced before assignment

派蒙出现了问题:local variable 'ChasmsMawH' referenced before assignment--------qq报错

[2022-04-06 21:22:43,896 原神信息查询] INFO: Message -485411543 triggered player_card.
[2022-04-06 21:22:44,268 hoshino] ERROR: --CMgenshin:qq19521下的cookie-10*82已失效--
[2022-04-06 21:22:44,612 hoshino] INFO: --CMgenshin:公共cookie池-1号已失效--
[2022-04-06 21:22:45,018 hoshino] INFO: --CMgenshin:公共cookie池-2号已失效--
[2022-04-06 21:22:45,422 hoshino] INFO: --CMgenshin:公共cookie池-3号已失效--
[2022-04-06 21:22:45,844 hoshino] INFO: --CMgenshin:公共cookie池-4号已失效--
[2022-04-06 21:22:46,289 hoshino] INFO: --CMgenshin:公共cookie池-5号已失效--
[2022-04-06 21:22:46,696 hoshino] INFO: --CMgenshin:调用公共cookie池-6号执行操作==
[2022-04-06 21:22:47,113 nonebot] INFO: Message -485411543 is ignored: Handled by Hoshino

Windows PowerShell--------

nonebot版本无法触发派蒙语音

无论我怎么发都不会给我回语音,后台也没有任何反馈,这个有概率概率是多高呢
image
执行更新派蒙语音没问题
image
ffmpeg没问题,角色的语音能发送

云原神怎么绑定token呢

我输入云原神 绑定,然后后面加抓到的token会提示我list index out of range,控制台也没什么提示,空格删了也一样。以及后续如何对云原神进行签到,查询能在博客或者help图片里面说明下吗,看博客很久没更新了
image

关于添加ck和删除ck的问题

在我使用删除ck和添加ck命令的时候无任何反应,排查之后我发现了以下问题
image
image
看起来似乎没有导入函数

参量质变仪时间错误

nonebot版本
Screenshot_2022-05-22-21-01-33-284_com mihoyo hyperion
这是mys的显示还有13小时没问题,游戏里面显示也是这么多
37`NA48$7LOOX46TVOCY0ZV
这是机器人的,却显示可使用

添加公共ck报错

[2022-04-12 17:28:43,054 派蒙绑定] INFO: Message 535085478 triggered bing_public.
[2022-04-12 17:28:43,430 派蒙绑定] ERROR: <class 'sqlite3.OperationalError'> occured when bing_public handling message 5
35085478.
[2022-04-12 17:28:43,430 派蒙绑定] ERROR: near ")": syntax error
Traceback (most recent call last):
File "C:\Bot\LittlePaimon-Bot\LittlePaimon\hoshino\msghandler.py", line 28, in handle_message
await service_func.func(bot, event)
File "C:\Bot\LittlePaimon-Bot\LittlePaimon\hoshino\modules\Genshin_Paimon\user_data_init_.py", line 58, in bing_pub
lic
await insert_public_cookie(cookie)
File "C:\Bot\LittlePaimon-Bot\LittlePaimon\hoshino\modules\Genshin_Paimon\db_util.py", line 101, in insert_public_cook
ie
cursor.execute('''CREATE TABLE IF NOT EXISTS public_cookies
sqlite3.OperationalError: near ")": syntax error
[2022-04-12 17:28:43,430 nonebot] INFO: Message 535085478 is ignored: Handled by Hoshino

请问下nb run 启动NoneBot2时报错是什么原因

执行 nb run 后提示 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 24: invalid start byte
试着把bot.by文件改成utf-8编码和用chcp 65001 把powershell窗口改成utf-8编码也不行

TypeError: Subscripted generics cannot be used...报错

go-cqhttp 启动时会有一个 error:[ERROR]: Protocol -> get self guild profile error: decode packet error: oidb result unsuccessful: 36012 msg: no guild tab

nb run 之后第一次会显示 [ERROR] utils | ---派蒙初始化数据库失败,请检查user_cookies.json文件是否存在---
调用抽卡功能会出现报错:[ERROR] nonebot | Running matcher <Matcher from LittlePaimon.Paimon_Gacha, type=message, priority=5, temp=False> failed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.