<div align="center">
<a href="https://v2.nonebot.dev/store">
<img src="./.docs/NoneBotPlugin.svg" width="300" alt="logo"></a>
</div>
<div align="center">
# nonebot-plugin-resolver2
_✨ NoneBot2 链接分享自动解析插件 ✨_
<a href="./LICENSE">
<img src="https://img.shields.io/github/license/fllesser/nonebot-plugin-resolver2.svg" alt="license">
</a>
<a href="https://pypi.python.org/pypi/nonebot-plugin-resolver2">
<img src="https://img.shields.io/pypi/v/nonebot-plugin-resolver2.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="python">
</div>
## 📖 介绍
[nonebot-plugin-resolver](https://github.com/zhiyu1998/nonebot-plugin-resolver) 重制版
- 重构整体结构,优化交互体验,尽量避免刷屏(尚未完全满意)
- 重构解析逻辑,通过预处理提取文本消息、小程序、卡片中的链接,减少重复的序列化、正则匹配、逻辑判断,匹配消息改用 `on_keyword` 和 `on_message`,防止 `on_regex` 导致 Bot 卡死
- 统一下载逻辑,添加下载进度条,使用 nb 官方的 `localstore` 存储数据,避免重复下载同一资源,并定时清理(原插件使用绝对路径,修改过程艰难)
- 抖音解析采用新方法,不再需要 cookie,支持解析图集中的视频
- 微博解析支持带 fid 的视频链接,图集下载原图
- 添加 B站、Youtube 音频下载功能
| 平台 | 触发的消息形态 | 视频 | 图集 | 音频 |
| -------- | -------------- | ---- | ---- | ---- |
| B站 | BV号/链接(包含短链,BV,av)/卡片/小程序| ✔️ | ✔️ | ✔️ |
| 抖音 | 链接(分享链接,兼容电脑端链接) | ✔️ | ✔️ | ❌️ |
| 网易云 | 链接/卡片 | ❌️ | ❌️ | ✔️ |
| 微博 | 链接(博文,视频,show)| ✔️ | ✔️ | ❌️ |
| 小红书 | 链接(含短链)/卡片 | ✔️ | ✔️ | ❌️ |
| 酷狗 | 链接/卡片 | ❌️ | ❌️ | ✔️ |
| acfun | 链接 | ✔️ | ❌️ | ❌️ |
| youtube | 链接(含短链) | ✔️ | ❌️ | ✔️ |
| tiktok | 链接 | ✔️ | ❌️ | ❌️ |
| twitter | 链接 | ✔️ | ✔️ | ❌️ |
支持的链接,可参考 [测试链接](https://github.com/fllesser/nonebot-plugin-resolver2/blob/master/test_url.md)
## 💿 安装
> [!Warning]
> **如果你已经在使用 nonebot-plugin-resolver,请在安装此插件前卸载**
<details open>
<summary>使用 nb-cli 安装/更新</summary>
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-resolver2 --upgrade
使用 pypi 源更新
nb plugin install nonebot-plugin-resolver2 --upgrade -i https://pypi.org/simple
安装仓库 dev 分支
uv pip install git+https://github.com/fllesser/nonebot-plugin-resolver2.git@dev
</details>
<details>
<summary>使用包管理器安装</summary>
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
<details>
<summary>pip</summary>
pip install --upgrade nonebot-plugin-resolver2
</details>
<details>
<summary>pdm</summary>
pdm add nonebot-plugin-resolver2
</details>
<details>
<summary>poetry</summary>
poetry add nonebot-plugin-resolver2
</details>
<details>
<summary>conda</summary>
conda install nonebot-plugin-resolver2
</details>
打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入
plugins = ["nonebot_plugin_resolver2"]
</details>
<details open>
<summary>安装必要组件</summary>
<summary>部分解析都依赖于 ffmpeg</summary>
# ubuntu/debian
sudo apt-get install ffmpeg
ffmpeg -version
# 其他 linux 参考(原项目推荐): https://gitee.com/baihu433/ffmpeg
# Windows 参考(原项目推荐): https://www.jianshu.com/p/5015a477de3c
</details>
## ⚙️ 配置
在 nonebot2 项目的`.env`文件中添加下表中的必填配置
| 配置项 | 必填 | 默认值 | 说明 |
|:-----:|:----:|:----:|:----:|
| NICKNAME | 否 | [""] | nonebot2 内置配置,可作为解析结果消息的前缀 |
| API_TIMEOUT | 否 | 30.0 | nonebot2 内置配置,若服务器上传带宽太低,建议调高,防止超时 |
| r_xhs_ck | 否 | "" | 小红书 cookie,想要解析小红书必填|
| r_bili_ck | 否 | "" | B站 cookie, 可不填,若填写,必须含有 SESSDATA 项,可附加 B 站 AI 总结功能,如果需要长期使用此凭据则不应该在**浏览器登录账户**导致 Cookies 被刷新,建议注册个小号获取 cookie |
| r_ytb_ck | 否 | "" | Youtube cookie, Youtube 视频因人机检测下载失败,需填 |
| r_is_oversea | 否 | False | 海外服务器部署,或者使用了透明代理,设置为 True |
| r_proxy | 否 | 'http://127.0.0.1:7890' | # 代理,仅在 r_is_oversea=False 时生效 |
| r_video_duration_maximum | 否 | 480 | 视频最大解析长度,单位:_秒_ |
| r_disable_resolvers | 否 | [] | 全局禁止的解析,示例 r_disable_resolvers=["bilibili", "douyin"] 表示禁止了哔哩哔哩和抖, 请根据自己需求填写["bilibili", "douyin", "kugou", "twitter", "ncm", "ytb", "acfun", "tiktok", "weibo", "xiaohongshu"] |
## 🎉 使用
### 指令表
| 指令 | 权限 | 需要@ | 范围 | 说明 |
|:-----:|:----:|:----:|:----:|:----:|
| 开启解析 | SUPERUSER/OWNER/ADMIN | 是 | 群聊 | 开启解析 |
| 关闭解析 | SUPERUSER/OWNER/ADMIN | 是 | 群聊 | 关闭解析 |
| 开启所有解析 | SUPERUSER | 否 | 私聊 | 开启所有群的解析 |
| 关闭所有解析 | SUPERUSER | 否 | 私聊 | 关闭所有群的解析 |
| 查看关闭解析 | SUPERUSER | 否 | - | 获取已经关闭解析的群聊 |
| bm BV... | USER | 否 | - | 下载 b站 音乐 |
## 历史更新
v1.6.9 ~ v1.6.12
- 修复抖音图集解析 [b7190e4](https://github.com/fllesser/nonebot-plugin-resolver2/commit/b7190e435c2008b2584a951a4e244008acc15ffc)
- 修复抖音新发布视频无法解析的问题 #40
- 移除 `fake-useragent`, `tenacity` 依赖 #40
v1.6.8
1. 移除 httpx 依赖,全系换用 aiohtttp 作为请求库(懒得去兼容 💩 httpx 0.28.0 的代理字段名
2. 更新 bilibiliapi 到 17.0.0
v1.6.5 ~ 1.6.7
1. 优化b站专栏,动态,收藏夹解析逻辑(原项目残留
2. 使用 uv 管理依赖
v1.6.4
1. 重写B站解析逻辑,预编译正则,并支持解析av号(之前是av号链接)
2. 事件预处理逻辑优化
3. 支持的链接,可参考 [测试链接](https://github.com/fllesser/nonebot-plugin-resolver2/blob/master/test_url.md)
v1.6.x
1. 添加 B站专栏(article) 解析
2. 更新一些依赖
3. 优化 B站 解析正则,修复动态和收藏夹解析的潜藏错误
4. 配置项 r_disable_resolvers 使用字面量限制,防止用户填错
5. 添加 ffmpeg 未正确配置报错
6. 修复小红书图集名称问题
7. 添加事件预处理,用于提取小程序链接
8. 优化 B站,小红书,酷狗,网易云,acfun链接/资源ID 提取逻辑
v1.5.x
1. 适配 B 站新域名 bili2233.cn
2. 支持解析微博带 fid 的视频链接
3. 抖音解析添加重试
4. 优化 acfun 解析的逻辑
5. 支持解析小红书分享卡片
6. 支持解析抖音图集中的视频
7. 缓存,避免重复下载同一资源
8. 添加下载进度条
9. 修复windows环境特殊字符导致的路径问题
10. 优化历史遗留逻辑
## 致谢
[nonebot-plugin-resolver](https://github.com/zhiyu1998/nonebot-plugin-resolver)
[parse-video-py](https://github.com/wujunwei928/parse-video-py)
Raw data
{
"_id": null,
"home_page": null,
"name": "nonebot-plugin-resolver2",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "nonebot, nonebot2, resolver, bilibili, youtube, tiktok, twitter",
"author": null,
"author_email": "fllesser <fllessive@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/95/4c/36a379c41180a40e72a846b0dcd1938e6b92c3129c99a2279574d7e77a91/nonebot_plugin_resolver2-1.6.14.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <a href=\"https://v2.nonebot.dev/store\">\n <img src=\"./.docs/NoneBotPlugin.svg\" width=\"300\" alt=\"logo\"></a>\n</div>\n\n<div align=\"center\">\n\n# nonebot-plugin-resolver2\n\n_\u2728 NoneBot2 \u94fe\u63a5\u5206\u4eab\u81ea\u52a8\u89e3\u6790\u63d2\u4ef6 \u2728_\n\n\n<a href=\"./LICENSE\">\n <img src=\"https://img.shields.io/github/license/fllesser/nonebot-plugin-resolver2.svg\" alt=\"license\">\n</a>\n<a href=\"https://pypi.python.org/pypi/nonebot-plugin-resolver2\">\n <img src=\"https://img.shields.io/pypi/v/nonebot-plugin-resolver2.svg\" alt=\"pypi\">\n</a>\n<img src=\"https://img.shields.io/badge/python-3.10+-blue.svg\" alt=\"python\">\n\n</div>\n\n## \ud83d\udcd6 \u4ecb\u7ecd\n\n[nonebot-plugin-resolver](https://github.com/zhiyu1998/nonebot-plugin-resolver) \u91cd\u5236\u7248\n\n- \u91cd\u6784\u6574\u4f53\u7ed3\u6784\uff0c\u4f18\u5316\u4ea4\u4e92\u4f53\u9a8c\uff0c\u5c3d\u91cf\u907f\u514d\u5237\u5c4f\uff08\u5c1a\u672a\u5b8c\u5168\u6ee1\u610f\uff09\n- \u91cd\u6784\u89e3\u6790\u903b\u8f91\uff0c\u901a\u8fc7\u9884\u5904\u7406\u63d0\u53d6\u6587\u672c\u6d88\u606f\u3001\u5c0f\u7a0b\u5e8f\u3001\u5361\u7247\u4e2d\u7684\u94fe\u63a5\uff0c\u51cf\u5c11\u91cd\u590d\u7684\u5e8f\u5217\u5316\u3001\u6b63\u5219\u5339\u914d\u3001\u903b\u8f91\u5224\u65ad\uff0c\u5339\u914d\u6d88\u606f\u6539\u7528 `on_keyword` \u548c `on_message`\uff0c\u9632\u6b62 `on_regex` \u5bfc\u81f4 Bot \u5361\u6b7b\n- \u7edf\u4e00\u4e0b\u8f7d\u903b\u8f91\uff0c\u6dfb\u52a0\u4e0b\u8f7d\u8fdb\u5ea6\u6761\uff0c\u4f7f\u7528 nb \u5b98\u65b9\u7684 `localstore` \u5b58\u50a8\u6570\u636e\uff0c\u907f\u514d\u91cd\u590d\u4e0b\u8f7d\u540c\u4e00\u8d44\u6e90\uff0c\u5e76\u5b9a\u65f6\u6e05\u7406\uff08\u539f\u63d2\u4ef6\u4f7f\u7528\u7edd\u5bf9\u8def\u5f84\uff0c\u4fee\u6539\u8fc7\u7a0b\u8270\u96be\uff09\n\n- \u6296\u97f3\u89e3\u6790\u91c7\u7528\u65b0\u65b9\u6cd5\uff0c\u4e0d\u518d\u9700\u8981 cookie\uff0c\u652f\u6301\u89e3\u6790\u56fe\u96c6\u4e2d\u7684\u89c6\u9891\n- \u5fae\u535a\u89e3\u6790\u652f\u6301\u5e26 fid \u7684\u89c6\u9891\u94fe\u63a5\uff0c\u56fe\u96c6\u4e0b\u8f7d\u539f\u56fe\n- \u6dfb\u52a0 B\u7ad9\u3001Youtube \u97f3\u9891\u4e0b\u8f7d\u529f\u80fd\n\n| \u5e73\u53f0 | \u89e6\u53d1\u7684\u6d88\u606f\u5f62\u6001 | \u89c6\u9891 | \u56fe\u96c6 | \u97f3\u9891 |\n| -------- | -------------- | ---- | ---- | ---- |\n| B\u7ad9 | BV\u53f7/\u94fe\u63a5(\u5305\u542b\u77ed\u94fe,BV,av)/\u5361\u7247/\u5c0f\u7a0b\u5e8f| \u2714\ufe0f | \u2714\ufe0f | \u2714\ufe0f |\n| \u6296\u97f3 | \u94fe\u63a5(\u5206\u4eab\u94fe\u63a5\uff0c\u517c\u5bb9\u7535\u8111\u7aef\u94fe\u63a5) | \u2714\ufe0f | \u2714\ufe0f | \u274c\ufe0f |\n| \u7f51\u6613\u4e91 | \u94fe\u63a5/\u5361\u7247 | \u274c\ufe0f | \u274c\ufe0f | \u2714\ufe0f |\n| \u5fae\u535a | \u94fe\u63a5(\u535a\u6587\uff0c\u89c6\u9891\uff0cshow)| \u2714\ufe0f | \u2714\ufe0f | \u274c\ufe0f |\n| \u5c0f\u7ea2\u4e66 | \u94fe\u63a5(\u542b\u77ed\u94fe)/\u5361\u7247 | \u2714\ufe0f | \u2714\ufe0f | \u274c\ufe0f |\n| \u9177\u72d7 | \u94fe\u63a5/\u5361\u7247 | \u274c\ufe0f | \u274c\ufe0f | \u2714\ufe0f |\n| acfun | \u94fe\u63a5 | \u2714\ufe0f | \u274c\ufe0f | \u274c\ufe0f |\n| youtube | \u94fe\u63a5(\u542b\u77ed\u94fe) | \u2714\ufe0f | \u274c\ufe0f | \u2714\ufe0f |\n| tiktok | \u94fe\u63a5 | \u2714\ufe0f | \u274c\ufe0f | \u274c\ufe0f |\n| twitter | \u94fe\u63a5 | \u2714\ufe0f | \u2714\ufe0f | \u274c\ufe0f |\n\n\u652f\u6301\u7684\u94fe\u63a5\uff0c\u53ef\u53c2\u8003 [\u6d4b\u8bd5\u94fe\u63a5](https://github.com/fllesser/nonebot-plugin-resolver2/blob/master/test_url.md)\n\n## \ud83d\udcbf \u5b89\u88c5\n> [!Warning]\n> **\u5982\u679c\u4f60\u5df2\u7ecf\u5728\u4f7f\u7528 nonebot-plugin-resolver\uff0c\u8bf7\u5728\u5b89\u88c5\u6b64\u63d2\u4ef6\u524d\u5378\u8f7d**\n \n<details open>\n<summary>\u4f7f\u7528 nb-cli \u5b89\u88c5/\u66f4\u65b0</summary>\n\u5728 nonebot2 \u9879\u76ee\u7684\u6839\u76ee\u5f55\u4e0b\u6253\u5f00\u547d\u4ee4\u884c, \u8f93\u5165\u4ee5\u4e0b\u6307\u4ee4\u5373\u53ef\u5b89\u88c5\n\n nb plugin install nonebot-plugin-resolver2 --upgrade\n\u4f7f\u7528 pypi \u6e90\u66f4\u65b0\n\n nb plugin install nonebot-plugin-resolver2 --upgrade -i https://pypi.org/simple\n\u5b89\u88c5\u4ed3\u5e93 dev \u5206\u652f\n\n uv pip install git+https://github.com/fllesser/nonebot-plugin-resolver2.git@dev\n</details>\n\n<details>\n<summary>\u4f7f\u7528\u5305\u7ba1\u7406\u5668\u5b89\u88c5</summary>\n\u5728 nonebot2 \u9879\u76ee\u7684\u63d2\u4ef6\u76ee\u5f55\u4e0b, \u6253\u5f00\u547d\u4ee4\u884c, \u6839\u636e\u4f60\u4f7f\u7528\u7684\u5305\u7ba1\u7406\u5668, \u8f93\u5165\u76f8\u5e94\u7684\u5b89\u88c5\u547d\u4ee4\n\n<details>\n<summary>pip</summary>\n\n pip install --upgrade nonebot-plugin-resolver2\n</details>\n<details>\n<summary>pdm</summary>\n\n pdm add nonebot-plugin-resolver2\n</details>\n<details>\n<summary>poetry</summary>\n\n poetry add nonebot-plugin-resolver2\n</details>\n<details>\n<summary>conda</summary>\n\n conda install nonebot-plugin-resolver2\n</details>\n\n\u6253\u5f00 nonebot2 \u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u7684 `pyproject.toml` \u6587\u4ef6, \u5728 `[tool.nonebot]` \u90e8\u5206\u8ffd\u52a0\u5199\u5165\n\n plugins = [\"nonebot_plugin_resolver2\"]\n\n</details>\n\n<details open>\n<summary>\u5b89\u88c5\u5fc5\u8981\u7ec4\u4ef6</summary>\n<summary>\u90e8\u5206\u89e3\u6790\u90fd\u4f9d\u8d56\u4e8e ffmpeg</summary>\n\n # ubuntu/debian\n sudo apt-get install ffmpeg\n ffmpeg -version\n # \u5176\u4ed6 linux \u53c2\u8003(\u539f\u9879\u76ee\u63a8\u8350): https://gitee.com/baihu433/ffmpeg\n # Windows \u53c2\u8003(\u539f\u9879\u76ee\u63a8\u8350): https://www.jianshu.com/p/5015a477de3c\n</details>\n\n## \u2699\ufe0f \u914d\u7f6e\n\n\u5728 nonebot2 \u9879\u76ee\u7684`.env`\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e0b\u8868\u4e2d\u7684\u5fc5\u586b\u914d\u7f6e\n\n| \u914d\u7f6e\u9879 | \u5fc5\u586b | \u9ed8\u8ba4\u503c | \u8bf4\u660e |\n|:-----:|:----:|:----:|:----:|\n| NICKNAME | \u5426 | [\"\"] | nonebot2 \u5185\u7f6e\u914d\u7f6e\uff0c\u53ef\u4f5c\u4e3a\u89e3\u6790\u7ed3\u679c\u6d88\u606f\u7684\u524d\u7f00 |\n| API_TIMEOUT | \u5426 | 30.0 | nonebot2 \u5185\u7f6e\u914d\u7f6e\uff0c\u82e5\u670d\u52a1\u5668\u4e0a\u4f20\u5e26\u5bbd\u592a\u4f4e\uff0c\u5efa\u8bae\u8c03\u9ad8\uff0c\u9632\u6b62\u8d85\u65f6 |\n| r_xhs_ck | \u5426 | \"\" | \u5c0f\u7ea2\u4e66 cookie\uff0c\u60f3\u8981\u89e3\u6790\u5c0f\u7ea2\u4e66\u5fc5\u586b|\n| r_bili_ck | \u5426 | \"\" | B\u7ad9 cookie, \u53ef\u4e0d\u586b\uff0c\u82e5\u586b\u5199\uff0c\u5fc5\u987b\u542b\u6709 SESSDATA \u9879\uff0c\u53ef\u9644\u52a0 B \u7ad9 AI \u603b\u7ed3\u529f\u80fd,\u5982\u679c\u9700\u8981\u957f\u671f\u4f7f\u7528\u6b64\u51ed\u636e\u5219\u4e0d\u5e94\u8be5\u5728**\u6d4f\u89c8\u5668\u767b\u5f55\u8d26\u6237**\u5bfc\u81f4 Cookies \u88ab\u5237\u65b0\uff0c\u5efa\u8bae\u6ce8\u518c\u4e2a\u5c0f\u53f7\u83b7\u53d6 cookie |\n| r_ytb_ck | \u5426 | \"\" | Youtube cookie, Youtube \u89c6\u9891\u56e0\u4eba\u673a\u68c0\u6d4b\u4e0b\u8f7d\u5931\u8d25\uff0c\u9700\u586b |\n| r_is_oversea | \u5426 | False | \u6d77\u5916\u670d\u52a1\u5668\u90e8\u7f72\uff0c\u6216\u8005\u4f7f\u7528\u4e86\u900f\u660e\u4ee3\u7406\uff0c\u8bbe\u7f6e\u4e3a True |\n| r_proxy | \u5426 | 'http://127.0.0.1:7890' | # \u4ee3\u7406\uff0c\u4ec5\u5728 r_is_oversea=False \u65f6\u751f\u6548 |\n| r_video_duration_maximum | \u5426 | 480 | \u89c6\u9891\u6700\u5927\u89e3\u6790\u957f\u5ea6\uff0c\u5355\u4f4d\uff1a_\u79d2_ |\n| r_disable_resolvers | \u5426 | [] | \u5168\u5c40\u7981\u6b62\u7684\u89e3\u6790\uff0c\u793a\u4f8b r_disable_resolvers=[\"bilibili\", \"douyin\"] \u8868\u793a\u7981\u6b62\u4e86\u54d4\u54e9\u54d4\u54e9\u548c\u6296, \u8bf7\u6839\u636e\u81ea\u5df1\u9700\u6c42\u586b\u5199[\"bilibili\", \"douyin\", \"kugou\", \"twitter\", \"ncm\", \"ytb\", \"acfun\", \"tiktok\", \"weibo\", \"xiaohongshu\"] |\n\n## \ud83c\udf89 \u4f7f\u7528\n### \u6307\u4ee4\u8868\n| \u6307\u4ee4 | \u6743\u9650 | \u9700\u8981@ | \u8303\u56f4 | \u8bf4\u660e |\n|:-----:|:----:|:----:|:----:|:----:|\n| \u5f00\u542f\u89e3\u6790 | SUPERUSER/OWNER/ADMIN | \u662f | \u7fa4\u804a | \u5f00\u542f\u89e3\u6790 |\n| \u5173\u95ed\u89e3\u6790 | SUPERUSER/OWNER/ADMIN | \u662f | \u7fa4\u804a | \u5173\u95ed\u89e3\u6790 |\n| \u5f00\u542f\u6240\u6709\u89e3\u6790 | SUPERUSER | \u5426 | \u79c1\u804a | \u5f00\u542f\u6240\u6709\u7fa4\u7684\u89e3\u6790 |\n| \u5173\u95ed\u6240\u6709\u89e3\u6790 | SUPERUSER | \u5426 | \u79c1\u804a | \u5173\u95ed\u6240\u6709\u7fa4\u7684\u89e3\u6790 |\n| \u67e5\u770b\u5173\u95ed\u89e3\u6790 | SUPERUSER | \u5426 | - | \u83b7\u53d6\u5df2\u7ecf\u5173\u95ed\u89e3\u6790\u7684\u7fa4\u804a |\n| bm BV... | USER | \u5426 | - | \u4e0b\u8f7d b\u7ad9 \u97f3\u4e50 |\n\n\n## \u5386\u53f2\u66f4\u65b0\nv1.6.9 ~ v1.6.12\n\n- \u4fee\u590d\u6296\u97f3\u56fe\u96c6\u89e3\u6790 [b7190e4](https://github.com/fllesser/nonebot-plugin-resolver2/commit/b7190e435c2008b2584a951a4e244008acc15ffc)\n- \u4fee\u590d\u6296\u97f3\u65b0\u53d1\u5e03\u89c6\u9891\u65e0\u6cd5\u89e3\u6790\u7684\u95ee\u9898 #40 \n- \u79fb\u9664 `fake-useragent`, `tenacity` \u4f9d\u8d56 #40 \n\nv1.6.8\n1. \u79fb\u9664 httpx \u4f9d\u8d56\uff0c\u5168\u7cfb\u6362\u7528 aiohtttp \u4f5c\u4e3a\u8bf7\u6c42\u5e93\uff08\u61d2\u5f97\u53bb\u517c\u5bb9 \ud83d\udca9 httpx 0.28.0 \u7684\u4ee3\u7406\u5b57\u6bb5\u540d\n2. \u66f4\u65b0 bilibiliapi \u5230 17.0.0 \n\nv1.6.5 ~ 1.6.7\n1. \u4f18\u5316b\u7ad9\u4e13\u680f\uff0c\u52a8\u6001\uff0c\u6536\u85cf\u5939\u89e3\u6790\u903b\u8f91\uff08\u539f\u9879\u76ee\u6b8b\u7559\n2. \u4f7f\u7528 uv \u7ba1\u7406\u4f9d\u8d56\n\nv1.6.4\n1. \u91cd\u5199B\u7ad9\u89e3\u6790\u903b\u8f91\uff0c\u9884\u7f16\u8bd1\u6b63\u5219\uff0c\u5e76\u652f\u6301\u89e3\u6790av\u53f7(\u4e4b\u524d\u662fav\u53f7\u94fe\u63a5)\n2. \u4e8b\u4ef6\u9884\u5904\u7406\u903b\u8f91\u4f18\u5316\n3. \u652f\u6301\u7684\u94fe\u63a5\uff0c\u53ef\u53c2\u8003 [\u6d4b\u8bd5\u94fe\u63a5](https://github.com/fllesser/nonebot-plugin-resolver2/blob/master/test_url.md)\n\nv1.6.x\n1. \u6dfb\u52a0 B\u7ad9\u4e13\u680f(article) \u89e3\u6790\n2. \u66f4\u65b0\u4e00\u4e9b\u4f9d\u8d56\n3. \u4f18\u5316 B\u7ad9 \u89e3\u6790\u6b63\u5219\uff0c\u4fee\u590d\u52a8\u6001\u548c\u6536\u85cf\u5939\u89e3\u6790\u7684\u6f5c\u85cf\u9519\u8bef\n4. \u914d\u7f6e\u9879 r_disable_resolvers \u4f7f\u7528\u5b57\u9762\u91cf\u9650\u5236\uff0c\u9632\u6b62\u7528\u6237\u586b\u9519\n5. \u6dfb\u52a0 ffmpeg \u672a\u6b63\u786e\u914d\u7f6e\u62a5\u9519\n6. \u4fee\u590d\u5c0f\u7ea2\u4e66\u56fe\u96c6\u540d\u79f0\u95ee\u9898\n7. \u6dfb\u52a0\u4e8b\u4ef6\u9884\u5904\u7406\uff0c\u7528\u4e8e\u63d0\u53d6\u5c0f\u7a0b\u5e8f\u94fe\u63a5\n8. \u4f18\u5316 B\u7ad9\uff0c\u5c0f\u7ea2\u4e66\uff0c\u9177\u72d7\uff0c\u7f51\u6613\u4e91\uff0cacfun\u94fe\u63a5/\u8d44\u6e90ID \u63d0\u53d6\u903b\u8f91\n\nv1.5.x\n1. \u9002\u914d B \u7ad9\u65b0\u57df\u540d bili2233.cn\n2. \u652f\u6301\u89e3\u6790\u5fae\u535a\u5e26 fid \u7684\u89c6\u9891\u94fe\u63a5\n3. \u6296\u97f3\u89e3\u6790\u6dfb\u52a0\u91cd\u8bd5\n4. \u4f18\u5316 acfun \u89e3\u6790\u7684\u903b\u8f91\n5. \u652f\u6301\u89e3\u6790\u5c0f\u7ea2\u4e66\u5206\u4eab\u5361\u7247\n6. \u652f\u6301\u89e3\u6790\u6296\u97f3\u56fe\u96c6\u4e2d\u7684\u89c6\u9891\n7. \u7f13\u5b58\uff0c\u907f\u514d\u91cd\u590d\u4e0b\u8f7d\u540c\u4e00\u8d44\u6e90\n8. \u6dfb\u52a0\u4e0b\u8f7d\u8fdb\u5ea6\u6761\n9. \u4fee\u590dwindows\u73af\u5883\u7279\u6b8a\u5b57\u7b26\u5bfc\u81f4\u7684\u8def\u5f84\u95ee\u9898\n10. \u4f18\u5316\u5386\u53f2\u9057\u7559\u903b\u8f91\n\n\n\n## \u81f4\u8c22\n[nonebot-plugin-resolver](https://github.com/zhiyu1998/nonebot-plugin-resolver)\n[parse-video-py](https://github.com/wujunwei928/parse-video-py)\n",
"bugtrack_url": null,
"license": null,
"summary": "NoneBot2 \u94fe\u63a5\u5206\u4eab\u89e3\u6790\u5668\u63d2\u4ef6, \u652f\u6301\u7684\u89e3\u6790(BV\u53f7/\u94fe\u63a5/\u5c0f\u7a0b\u5e8f/\u5361\u7247),\u652f\u6301\u5e73\u53f0(b\u7ad9\uff0c\u6296\u97f3\uff0c\u7f51\u6613\u4e91\uff0c\u5fae\u535a\uff0c\u5c0f\u7ea2\u4e66\uff0cyoutube\uff0ctiktok\uff0ctwitter...)",
"version": "1.6.14",
"project_urls": null,
"split_keywords": [
"nonebot",
" nonebot2",
" resolver",
" bilibili",
" youtube",
" tiktok",
" twitter"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9412a4e104c49e5c85fefcae28ebb2cee530ee97cafa10ce7721a9aec02c5cda",
"md5": "f2ab9296c8dc092d7fda6ece7c3e4f16",
"sha256": "e494b7f1fb68f28374f41ffd8085fcd812654fe4433ad257274b3f33657576b4"
},
"downloads": -1,
"filename": "nonebot_plugin_resolver2-1.6.14-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f2ab9296c8dc092d7fda6ece7c3e4f16",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 40730,
"upload_time": "2025-02-13T04:07:08",
"upload_time_iso_8601": "2025-02-13T04:07:08.390466Z",
"url": "https://files.pythonhosted.org/packages/94/12/a4e104c49e5c85fefcae28ebb2cee530ee97cafa10ce7721a9aec02c5cda/nonebot_plugin_resolver2-1.6.14-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "954c36a379c41180a40e72a846b0dcd1938e6b92c3129c99a2279574d7e77a91",
"md5": "ba8403fe7f8422be92175fe53266ea3b",
"sha256": "029c715a06f5cc113acdb91e67805fb086d9390e8d7e2f466c23e702ee490455"
},
"downloads": -1,
"filename": "nonebot_plugin_resolver2-1.6.14.tar.gz",
"has_sig": false,
"md5_digest": "ba8403fe7f8422be92175fe53266ea3b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 31854,
"upload_time": "2025-02-13T04:07:12",
"upload_time_iso_8601": "2025-02-13T04:07:12.779798Z",
"url": "https://files.pythonhosted.org/packages/95/4c/36a379c41180a40e72a846b0dcd1938e6b92c3129c99a2279574d7e77a91/nonebot_plugin_resolver2-1.6.14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-13 04:07:12",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "nonebot-plugin-resolver2"
}