Giter Site home page Giter Site logo

rinfair / suzunobot-aglas Goto Github PK

View Code? Open in Web Editor NEW
13.0 1.0 4.0 299.54 MB

Multifunctional bot recreation based on Nonebot 2 & Kiba 基于Nonebot 2 和 Kiba 二创的多功能音游bot,可用于maimaiDX&Arcaea

License: MIT License

Python 99.98% Batchfile 0.02%

suzunobot-aglas's Introduction

SuzunoBot-AGLAS

Nonebot2 cqhttp Release-version Release date license

欢迎使用

欢迎您使用 SuzunoBot 并搭建属于您自己的 SuzunoBot-AGLAS!

SuzunoBot-AGLAS 项目是基于 Mai-Bot 与 Kiba 项目融合改造创建的适用于为 Maimai DX/Maimai/雀魂/Arcaea 玩家服务的多功能 Bot。本代码的部分原始内容您可以参阅 mai-botKiba

在此感谢 Diving-Fish 的 Mai-Bot / Chiyuki 开源项目以及 Killua 的 Kiba 开源项目。

接下来,本手册为您提供对SuzunoBot最基础的配置教程与支持。更多内容请阅读Wiki。

有关SuzunoBot-AGLAS的更新内容,请参阅更新日志

Step 1. 安装 Python

请自行前往 https://www.python.org/ 下载 Python 3 版本(> 3.7)并将其添加到环境变量(在安装过程中勾选 Add Python to system PATH)。对大多数用户来说,您应该下载 Windows installer (64-bit)。此项目开发者使用Python 3.10.9

在 Linux 系统上,可能需要其他方法安装 Python 3,请自行查找。

Step 2. 初步设置

建议使用 git 对此项目进行版本管理。您也可以直接在本界面下载代码的压缩包进行运行。

在运行项目之前,您需要进入src/static文件夹,解压static.zip,到src/static中。在此之后,您需要打开控制台(Terminal),并切换到该项目所在的目录。

在 Windows 10 / Windows Server 2016 以上的系统上,您可以直接在项目的根目录(即 bot.py)文件所在的位置按下 Shift + 右键,点击【在此处打开 PowerShell 窗口】。 如果您使用的是更旧的操作系统(比如 Windows 7),请自行查找关于命令提示符(Command Prompt)Windows Powershell以及cd命令的教程。

打开控制台后,您可以输入

python --version

控制台应该会打印出 Python 的版本。如果提示找不到 python 命令,请检查环境变量,建议您安装 Python 时勾选 Add Python to system PATH

之后,输入以下命令自动安装依赖。

pip install -r requirements.txt

依赖项目安装完成后,您应设置目录的Config.py。

Config.py在src/libraries文件夹中。使用编辑工具打开后,在 bot_id 一栏中输入您拟运行 Kiba 项目的 QQ 号码,输入完成之后保存关闭。

注意:除 Config.py 外,除非自主添加/删除功能,您不应编辑其他的 '*.py' 文件。否则可能导致 Bot 无法按预期运行。

Step 3. 运行项目

以上的操作均完成后,回到项目的主文件夹,打开命令提示符或 Powershell。输入此命令运行:

python bot.py

如果输出类似如下所示的内容,代表运行成功:

......
08-02 11:26:49 [INFO] uvicorn | Application startup complete.
08-02 11:26:49 [INFO] uvicorn | Uvicorn running on http://127.0.0.1:10219 (Press CTRL+C to quit)

如果输出了【ERROR】的红色输出,请您再次检查依赖项是否安装齐。

Step 4. 连接 CQ-HTTP

前往 https://github.com/Mrs4s/go-cqhttp > Releases,下载适合自己操作系统的可执行文件。

go-cqhttp 在初次启动时会询问代理方式,选择反向 websocket 代理即可。

之后用任何文本编辑器打开config.yml文件,设置反向 ws 地址、上报方式:

message:
  post-format: array
  
servers:
  - ws-reverse:
      universal: ws://127.0.0.1:10219/onebot/v11/ws

然后设置您的 QQ 号和密码。您也可以不设置密码,选择扫码登陆的方式。

登陆成功后,后台应该会发送一条类似的信息:

08-02 11:50:51 [INFO] nonebot | WebSocket Connection from CQHTTP Bot 114514 Accepted!

至此,您可以和对应的 QQ 号聊天并使用 SuzunoBot-AGLAS 的所有功能了。

注:自v2.0.1 Beta 0.93起,由于SuzunoBot-AGLAS使用nonebot-plugin-arcaeabot,您需要申请ArcaeaUnlimitedAPI的apiurl以及token才能使用arcaea模块的相关功能,具体请参考nonebot-plugin-arcaeabot的相关文档

FAQ

我不是 Windows 系统?

请您自行查阅其他系统上的 Python 安装方式。cqhttp提供了其他系统的可执行文件,您也可以自行配置 golang module 环境进行编译。

配置 nonebot 或 cq-http 过程中出错?

请查阅 https://github.com/nonebot/nonebot2 以及 https://github.com/Mrs4s/go-cqhttp 中的文档。

部分消息发不出来?

您的账号被风控了。解决方式:换号或者让这个号保持登陆状态和一定的聊天频率,持续一段时间。

歌曲查询显示的图片,左下角"Generated by AGLAS"是否可以更改?

maimai查询方案由Killua设计,您可以自主使用PhotoShop等修图软件更改此样式。但请保留"Powered by Killua"字样。

我有其他问题?

若本仓库Wiki不能给你有关帮助,欢迎提出issue,我会尽快回应。

帮助与说明

SuzunoBot-AGLAS 主要提供了如下功能:

命令 功能
help 查看帮助文档
今日舞萌 查看今天的舞萌运势
XXXmaimaiXXX什么 随机一首歌
随个[dx/标准][绿黄红紫白]<难度> 随机一首指定条件的乐曲
随[数量]首[dx/标准][绿黄红紫白]<难度> 随机指定数量的指定条件的乐曲
注意:数量不得超过4个。
查歌<乐曲标题的一部分> 查询符合条件的乐曲
[绿黄红紫白]id<歌曲编号> 查询乐曲信息或谱面信息
<歌曲别名>是什么歌 查询乐曲别名对应的乐曲
定数查歌 <定数>
定数查歌 <定数下限> <定数上限>
查询定数对应的乐曲
分数线 <难度+歌曲id> <分数线> 展示歌曲的分数线
XrY 在限定的上、下限随机数,要求X、Y均为正整数,且X必须小于Y。
今日性癖/jrxp 你出勤时候的性癖是什么?
戳一戳 戳一戳bot试试吧。
本群戳一戳情况 看一下本群谁那么闲得慌
今日雀魂/雀魂运势 查看今天的雀魂运势
mjxp 你打麻将的时候性癖是什么?
低情商<字段1>高情商<字段2> 输出一张低情商与高情商的图
gocho <字段1> <字段2> 输出一张gocho的图片
金龙盘旋 <字段1> <字段2> <字段3> 输出一张金龙盘旋图
投骰子[数量] 投指定数量的骰子
猜歌 开始一轮猜歌 (Preview)
注意:目前猜歌是 Alpha Preview 阶段。
已知问题:无法判断用户发布的答案的对错。
烟我 随机禁言1-600秒。
*注意:需要Bot有管理员权限。
b40 / b50 根据查分器数据,展示您的 Best 40 或模拟您的 Best 50。

更多的功能,您可以对Bot下达'help'命令。

License

FOSSA Status

您可以自由使用本项目的代码用于商业或非商业的用途,但必须附带MIT License。

suzunobot-aglas's People

Contributors

rinfair avatar

Stargazers

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

Watchers

 avatar

suzunobot-aglas's Issues

运行bot.py出现问题

出现多条[ERROR] nonebot | Failed to import "xxx"的内容
例如 [ERROR] nonebot | Failed to import "maimaidx"
这应当是maibot的基础文件就会出现的问题。
同时,在安装依赖时未出现报错。

但是在其他电脑的win10版本却不会出现此问题,整个过程没有报错,将可运行的文件夹在win11机子(即我的)就报错了。
请问是因为电脑版本是win11的问题吗?

今日性癖功能报错

在用户输入'jrxp'时报错
File "B:\Python_Project\SuzunoBot-AGLAS.\src\libraries\tool.py", line 6, in hash
return (days * qq) >> 8, str(days)
TypeError: unsupported operand type(s) for >>: 'str' and 'int'
初步解决方案:可以使用今日性癖功能,但是无法再随机一个今日性癖
在 maimaidx.py 文件中直接调用 hash() 函数,将返回的整数用作参数无需进行解包。具体的实现方案:
@jrxp.handle()
async def _(event: Event, message: Message = CommandArg()):
check_date()
today = get_today()
qq = int(event.get_user_id())
h = hash(qq)
random.seed(h)
r = random.random()
rp = hash(int(r) + h) % 100

if (qq, today) in random_numbers:
    rp = random_numbers[(qq, today)]

nickname = event.sender.nickname
random_numbers[(qq, today)] = rp
save_random_numbers(random_numbers)
xp = random.randint(0, 32)
s = f"▾ [Sender: {nickname}]\n  今日性癖\n{nickname}今天的性癖是{xp_list[xp]},人品值是{rp}%.\n不满意的话再随一个吧!"
await jrxp.finish(Message([
    MessageSegment("text", {"text": s})
]))

tool.py 中的 hash() 函数,仅返回整数部分,而不再返回字符串
def hash(qq: int):
days = int(time.strftime("%d", time.localtime(time.time()))) + 31 * int(
time.strftime("%m", time.localtime(time.time()))) + 77
return (days * qq) >> 8

maimaiDX功能加载不正常

以下是日志
04-13 12:35:58 [ERROR] nonebot | Failed to import "maimaidx"
Traceback (most recent call last):
File "F:\go-cqhttp_windows_amd64\Kiba-Kiba-5.0.1\Kiba-Kiba-5.0.1\src\libraries\maimaidx_music.py", line 184, in get_music_list
_total_list[__i]['stats'] = obj_stats['charts'][_total_list[__i].id]
KeyError: '10302'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "F:\go-cqhttp_windows_amd64\Kiba-Kiba-5.0.1\Kiba-Kiba-5.0.1\bot.py", line 27, in
nonebot.load_from_json("plugin-list.json", encoding="utf-8")
File "C:\Users\24420\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot\plugin\load.py", line 81, in load_from_json
return load_all_plugins(set(plugins), set(plugin_dirs))
File "C:\Users\24420\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot\plugin\load.py", line 53, in load_all_plugins
return manager.load_all_plugins()
File "C:\Users\24420\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot\plugin\manager.py", line 172, in
load_all_plugins
return set(
File "C:\Users\24420\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot\plugin\manager.py", line 173, in

filter(None, (self.load_plugin(name) for name in self.available_plugins))

File "C:\Users\24420\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot\plugin\manager.py", line 148, in
load_plugin
module = importlib.import_module(
File "C:\Users\24420\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 "C:\Users\24420\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot\plugin\manager.py", line 237, in
exec_module
super().exec_module(module)
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "F:\go-cqhttp_windows_amd64\Kiba-Kiba-5.0.1\Kiba-Kiba-5.0.1\src\plugins\maimaidx.py", line 14, in
from src.libraries.maimaidx_music import *
File "F:\go-cqhttp_windows_amd64\Kiba-Kiba-5.0.1\Kiba-Kiba-5.0.1\src\libraries\maimaidx_music.py", line 193, in
total_list = get_music_list()
File "F:\go-cqhttp_windows_amd64\Kiba-Kiba-5.0.1\Kiba-Kiba-5.0.1\src\libraries\maimaidx_music.py", line 186, in get_music_list
_total_list[__i]['stats'] = obj_stats['charts']['1']
KeyError: '1'

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.