从零开始在服务器上搭建QQ机器人——插件(二)

本文介绍了如何为NoneBot安装和配置插件以增强功能,包括从官方插件商店选取插件以及手动编写代码添加新功能。在遇到端口冲突问题时,通过命令查找并结束占用端口的进程。最终成功实现了关键词触发的渣男文案生成插件,并展示了结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

在做完基本构建之后,自己的机器人旧可以开始使用了,但是只有一个内置的/echo命令。功能不够丰富。

因此,需要安装插件来获得更多的功能。

二、配置

参照nonebot的官网,编写命令 | NoneBot

首先是使用插件商店里面的插件来丰富功能,之后进一步探索新的领域,自制插件。

参考网址:GitHub - nonebot/nb-cli: CLI for nonebot2

如下:

nb plugin list
服务器状态查看 (nonebot-plugin-status)                                - 通过戳一戳获取服务器状态
HarukaBot (haruka-bot)                                                - 将B站UP主的动态和直播信息推送至QQ
RAM 授权管理 (nonebot-plugin-rauthman)                                - 基于规则的授权管理
NoneBot离线文档 (nonebot-plugin-docs)                                 - 在本地浏览NoneBot文档
Sentry日志监控 (nonebot-plugin-sentry)                                - 使用Sentry监控机器人日志并处理报错
前端测试机器人插件 (nonebot-plugin-test)                              - 在浏览器中测试你的 NoneBot 机器人
定时任务 (nonebot-plugin-apscheduler)                                 - APScheduler 定时任务插件
图片搜索 (nonebot-plugin-picsearcher)                                 - 从基本上所有你想的出名字的搜图平台找图片
通用数据库连接 (nonebot-plugin-navicat)                               - 连接至各种数据库,为其他插件导出连接对象
多语种翻译插件 (nonebot-plugin-translator)                            - 基于腾讯机器翻译 TMT
Web监视器 (nonebot-plugin-web)                                        - Web Monitor 时刻视奸你的bot
nonebot-plugin-wordbank (nonebot-plugin-wordbank)                     - 无数据库的轻量问答插件,支持模糊问答
冷却事件 (nonebot-plugin-cooldown)                                    - 为用户调用功能添加冷却时间(调用频率限制)功能
mqtt接入 (nonebot-plugin-mqtt)                                        - 接入mqtt网络,订阅和发布消息
消息交互式 python 解释器 (nonebot-plugin-ipypreter)                   - 消息交互式 python 解释器
songpicker2 (nonebot-plugin-songpicker2)                              - 点播歌曲,支持候选菜单、热评显示,数据源为网易云
风格化字符串管理 (nonebot-plugin-styledstr)                           - 通过字符串标签管理字符串资源
Arcaea 查分器 (nonebot-plugin-arcaea)                                 - Arcaea 查分器,可以实现 best30 | recent | songinfo 之类的查询功能并支持 D
hk-reporter (nonebot-hk-reporter)                                     - 订阅如微博,bilibili,rss的更新消息
网易云无损音乐下载 (nonebot-plugin-ncm)                               - 网易云无损音乐下载
nonebot-plugin-cocdicer (nonebot-plugin-cocdicer)                     - COC跑团骰子娘
跑团记录记录器 (nonebot-plugin-trpglogger)                            - 记录跑团记录并上传
nonebot-plugin-r6s (nonebot-plugin-r6s)                               - 查询彩虹六号玩家信息
猜猜看 (nonebot-plugin-guess)                                         - 多次互动猜名字游戏,自带猜城市名,可定制
缩写查询器 (nonebot_plugin_abbrreply)                                 - 输入拼音首字母,猜测文字
biliav小程序转换器 (nonebot_plugin_biliav)                            - 将用户发的av号或者bv号转成小程序返回
插件管理器 (nonebot-plugin-manager)                                   - 基于 import hook 的插件管理
bilibili视频、番剧解析 (nonebot-plugin-analysis-bilibili)             - 自动解析bilibili视频、番剧解析
本地数据存储 (nonebot-plugin-localstore)                              - 存储插件数据至本地文件
nonebot_plugin_puppet (nonebot-plugin-puppet)                         - 多对多的会话转接
Minecraft 服务器状态查询 (nonebot-plugin-mcstatus)                    - 顾名思义
Nonebot2插件轻量帮助列表 (nonebot-plugin-help)                        - 读取并提供已加载Nonebot2插件开发者提供的帮助信息(用途)
nonebot_plugin_gamedraw (nonebot-plugin-gamedraw)                     - 基于爬取wiki实现自动更新的抽卡,目前支持赛马娘,原神,明日方舟,坎公骑冠剑,公主连结(国/台),碧蓝航线,
nonebot-plugin-alias (nonebot-plugin-alias)                           - 为 nonebot2 的指令创建别名
Nonebot2 消息撤回插件 (nonebot-plugin-withdraw)                       - 用于让机器人撤回自己发出的消息
nonebot_plugin_pixivrank_search (nonebot-plugin-pixivrank-search)     - 基于RSSHUB阅读器的P站排行和P站搜图
nonebot_plugin_russian (nonebot-plugin-russian)                       - 群内小游戏,使用金币赌注的俄罗斯轮盘
nonebot_plugin_statistical (nonebot-plugin-statistical)               - 一个简单的功能调用统计以及可视化插件
nonebot_plugin_setu (nonebot_plugin_setu)                             - 基于loliconImage Api的涩图插件,内置涩图CD
FlightRadar24查询模块 (nonebot-plugin-fr24)                           - 通过FlightRadar24查询航班信息
和风天气 (nonebot-plugin-heweather)                                   - 获取和风天气信息并转换为图片
nonebot-plugin-autohelp (nonebot-plugin-autohelp)                     - 响应help/菜单/帮助(群消息或私信)并提供已载入插件的帮助信息(如命令名,aliases,模块文档)
孤寡机器人 (gugua_bot)                                                - 让你的孤寡朋友露出阳光的笑容
布谷机器人 (bugu_bot)                                                 - 增进你和你单身朋友的友谊
nonebot-plugin-flexperm (nonebot-plugin-flexperm)                     - 精细化的 NoneBot 权限管理插件
Epic 限免游戏资讯 (nonebot_plugin_epicfree)                           - EpicGameStore 喜加一资讯插件,发送「喜加一」逝世看吧!
ELF_RSS (ELF-RSS)                                                     - QQ机器人 RSS订阅 插件,订阅源建议选择 RSSHub
ATRI语音包 (nonebot-plugin-atri)                                      - 一个ATRI语音包,基于文本相似度匹配回复
HanayoriBot (nonebot-plugin-hanayori)                                 - B站动态推送与开播提醒插件
HTTP静态文件托管 (nonebot-plugin-filehost)                            - 一款 HTTP 静态文件托管插件, 为跨机文件传输提供了优雅的解决方案
SimpleMusic (nonebot-plugin-simplemusic)                              - 最简Q群点歌插件,支持网易云、QQ音乐
pornhub风格图标生成 (nonebot-plugin-phlogo)                           - 生成pornhub风格logo
Twitter推送 (nonebot-plugin-twitter)                                  - Twitter推送插件,自带推文翻译功能
nb2chan (nb2chan)                                                     - Nonebot2酱推送
nonebot-plugin-setu-now (nonebot-plugin-setu-now)                     - 另一个色图插件,即时下载并保存,可选WebDAV。可选特殊色图

上面是插件商店的列表,挑选几个作为测试。

但是下载了之后却在src/plugins路径中没有找到任何东西。很疑惑。

(20211030:今日就此作罢,改日再试验)

今天,调整完状态之后再次试验。由于之前所使用nb商店的方法发现并未将插件写入相应目录。所以这一次直接复制代码进入该目录。

cd src/
cd plugins/
vim zhanan.py
#进入相应目录后,使用vim编辑py文件,即将会使用到的命令
#由于插件商店不管用,此处直接手撸代码,(当然,这些都是从网上复制过来的,不过,出处已经忘记了),代码如下:
from nonebot import on_keyword, on_command
from nonebot.typing import T_State
from nonebot.adapters.cqhttp import Message, Bot, Event  # 这两个没用的别删
from nonebot.adapters.cqhttp.message import MessageSegment
import requests
from nonebot.permission import *
from nonebot.rule import to_me

zhanan = on_keyword({'渣男文案'})

@zhanan.handle()
async def main(bot: Bot, event: Event, state: T_State):
    url = "https://api.iyk0.com/zhanan"
    resp = requests.get(url)
    txt = resp.text

    await zhanan.send(txt)

#之后重启机器人,开始加载新加入的插件的时候出错了,如下:
[Errno 98] error while attempting to bind on address ('127.0.0.1', 8088): address already ...
#经过分析是因为端口号被占用,使用如下命令找到占用端口号的程序,手动kill
netstat -anp | grep 8000
#此处8000为要查询的端口号
#找到占用该端口号的程序之后,使用其ID标志,直接手动kill

三、结果展示

如图,输入关键字即可:

 四、后续

后续可能仍旧会上传一些有用的代码,但是为了尝试获取一下赞赏钱,可能会尝试VIP。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王辞夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值