nonebot-plugin-file-opener


Namenonebot-plugin-file-opener JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/Xenith-Ethereon/nonebot-plugin-file-opener.git
Summary通过检测特定私聊关键词来打开对应文件的 NoneBot2 插件
upload_time2025-10-08 16:37:27
maintainerNone
docs_urlNone
author星淆_xenith
requires_python<4.0,>=3.9
licenseMIT
keywords nonebot nonebot2 plugin file opener remote
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 文件打开插件

通过检测特定私聊关键词来打开对应文件的 NoneBot 插件。


## 快速开始

1. **配置管理员** - 在 `.env` 文件中设置你的QQ号
2. **设置关键词** - 配置关键词和对应的文件路径
3. **开始使用** - 私聊机器人发送关键词即可打开文件

### 最小配置示例
```bash
# 在 .env 文件中添加
file_opener_admins=["你的QQ号"]
file_opener_keywords={"打开日志": "debug.log", "打开崩铁": "C:/Program Files/miHoYo Launcher/launcher.exe"}
```

## 功能特性

- **权限控制**: 只有配置的管理员QQ号可以使用
- **关键词匹配**: 支持自定义关键词和文件路径映射
- **路径支持**: 支持相对路径和绝对路径
- **跨平台**: 支持 Windows、macOS 和 Linux
- **日志记录**: 可选的操作日志记录
- **即时反馈**: 操作成功或失败都会有消息反馈

## 配置说明

在 `.env` 文件中添加以下配置:

```bash
# 文件打开插件配置
# 启用插件
file_opener_enable=true

# 管理员QQ号列表(只有这些用户可以私聊使用文件打开功能)
file_opener_admins=["3498923240", "1234567890"]

# 关键词到文件路径的映射(JSON格式)
# 支持相对路径(相对于项目根目录)和绝对路径
file_opener_keywords={"打开日志": "debug.log", "打开配置": ".env", "打开记录": "data/record.json", "打开笔记": "C:/Users/YourName/Documents/notes.txt"}

# 是否记录操作日志
file_opener_log_enabled=true
```

### 配置项说明

| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `file_opener_enable` | bool | true | 是否启用插件 |
| `file_opener_admins` | List[str] | [] | 管理员QQ号列表 |
| `file_opener_keywords` | Dict[str, str] | {} | 关键词到文件路径的映射 |
| `file_opener_log_enabled` | bool | true | 是否记录操作日志 |

## 使用方法

1. **配置管理员**: 在 `file_opener_admins` 中添加你的QQ号
2. **设置关键词**: 在 `file_opener_keywords` 中配置关键词和对应的文件路径
3. **私聊触发**: 使用配置的管理员QQ号私聊机器人,发送包含关键词的消息

### 示例

假设配置了以下关键词映射:
```json
{
  "打开日志": "debug.log",
  "打开配置": ".env",
  "查看记录": "data/record.json"
}
```

那么在私聊中发送:
- "帮我打开日志" → 会打开 `debug.log` 文件
- "打开配置文件" → 会打开 `.env` 文件  
- "我要查看记录" → 会打开 `data/record.json` 文件

## 路径说明

### 相对路径
相对路径是相对于项目根目录(包含 `pyproject.toml` 的目录):
- `"debug.log"` → `项目根目录/debug.log`
- `"data/record.json"` → `项目根目录/data/record.json`

### 绝对路径
可以使用完整的文件路径:
- Windows: `"C:/Users/YourName/Documents/notes.txt"`
- macOS/Linux: `"/home/username/documents/notes.txt"`

## 故障排除

### 文件打开失败
1. 检查文件路径是否正确
(注意:路径应使用"/",而并非默认复制的”\“)
2. 确认文件确实存在
3. 检查文件权限
4. 查看日志获取详细错误信息

### 关键词不生效
1. 确认QQ号在管理员列表中
2. 检查关键词配置格式是否正确
3. 确认是在私聊中发送消息

### 配置问题
1. 检查 `.env` 文件格式
2. 确认JSON格式的关键词映射是否正确
3. 重启机器人使配置生效
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Xenith-Ethereon/nonebot-plugin-file-opener.git",
    "name": "nonebot-plugin-file-opener",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "nonebot, nonebot2, plugin, file, opener, remote",
    "author": "\u661f\u6dc6_xenith",
    "author_email": "3498923240@qq.com",
    "download_url": "https://files.pythonhosted.org/packages/33/c0/a053b4b52e2720b55509e6d1f6299af41b707cfec1d9deacb3d088480d21/nonebot_plugin_file_opener-1.0.0.tar.gz",
    "platform": null,
    "description": "# \u6587\u4ef6\u6253\u5f00\u63d2\u4ef6\n\n\u901a\u8fc7\u68c0\u6d4b\u7279\u5b9a\u79c1\u804a\u5173\u952e\u8bcd\u6765\u6253\u5f00\u5bf9\u5e94\u6587\u4ef6\u7684 NoneBot \u63d2\u4ef6\u3002\n\n\n## \u5feb\u901f\u5f00\u59cb\n\n1. **\u914d\u7f6e\u7ba1\u7406\u5458** - \u5728 `.env` \u6587\u4ef6\u4e2d\u8bbe\u7f6e\u4f60\u7684QQ\u53f7\n2. **\u8bbe\u7f6e\u5173\u952e\u8bcd** - \u914d\u7f6e\u5173\u952e\u8bcd\u548c\u5bf9\u5e94\u7684\u6587\u4ef6\u8def\u5f84\n3. **\u5f00\u59cb\u4f7f\u7528** - \u79c1\u804a\u673a\u5668\u4eba\u53d1\u9001\u5173\u952e\u8bcd\u5373\u53ef\u6253\u5f00\u6587\u4ef6\n\n### \u6700\u5c0f\u914d\u7f6e\u793a\u4f8b\n```bash\n# \u5728 .env \u6587\u4ef6\u4e2d\u6dfb\u52a0\nfile_opener_admins=[\"\u4f60\u7684QQ\u53f7\"]\nfile_opener_keywords={\"\u6253\u5f00\u65e5\u5fd7\": \"debug.log\", \"\u6253\u5f00\u5d29\u94c1\": \"C:/Program Files/miHoYo Launcher/launcher.exe\"}\n```\n\n## \u529f\u80fd\u7279\u6027\n\n- **\u6743\u9650\u63a7\u5236**: \u53ea\u6709\u914d\u7f6e\u7684\u7ba1\u7406\u5458QQ\u53f7\u53ef\u4ee5\u4f7f\u7528\n- **\u5173\u952e\u8bcd\u5339\u914d**: \u652f\u6301\u81ea\u5b9a\u4e49\u5173\u952e\u8bcd\u548c\u6587\u4ef6\u8def\u5f84\u6620\u5c04\n- **\u8def\u5f84\u652f\u6301**: \u652f\u6301\u76f8\u5bf9\u8def\u5f84\u548c\u7edd\u5bf9\u8def\u5f84\n- **\u8de8\u5e73\u53f0**: \u652f\u6301 Windows\u3001macOS \u548c Linux\n- **\u65e5\u5fd7\u8bb0\u5f55**: \u53ef\u9009\u7684\u64cd\u4f5c\u65e5\u5fd7\u8bb0\u5f55\n- **\u5373\u65f6\u53cd\u9988**: \u64cd\u4f5c\u6210\u529f\u6216\u5931\u8d25\u90fd\u4f1a\u6709\u6d88\u606f\u53cd\u9988\n\n## \u914d\u7f6e\u8bf4\u660e\n\n\u5728 `.env` \u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a\n\n```bash\n# \u6587\u4ef6\u6253\u5f00\u63d2\u4ef6\u914d\u7f6e\n# \u542f\u7528\u63d2\u4ef6\nfile_opener_enable=true\n\n# \u7ba1\u7406\u5458QQ\u53f7\u5217\u8868\uff08\u53ea\u6709\u8fd9\u4e9b\u7528\u6237\u53ef\u4ee5\u79c1\u804a\u4f7f\u7528\u6587\u4ef6\u6253\u5f00\u529f\u80fd\uff09\nfile_opener_admins=[\"3498923240\", \"1234567890\"]\n\n# \u5173\u952e\u8bcd\u5230\u6587\u4ef6\u8def\u5f84\u7684\u6620\u5c04\uff08JSON\u683c\u5f0f\uff09\n# \u652f\u6301\u76f8\u5bf9\u8def\u5f84\uff08\u76f8\u5bf9\u4e8e\u9879\u76ee\u6839\u76ee\u5f55\uff09\u548c\u7edd\u5bf9\u8def\u5f84\nfile_opener_keywords={\"\u6253\u5f00\u65e5\u5fd7\": \"debug.log\", \"\u6253\u5f00\u914d\u7f6e\": \".env\", \"\u6253\u5f00\u8bb0\u5f55\": \"data/record.json\", \"\u6253\u5f00\u7b14\u8bb0\": \"C:/Users/YourName/Documents/notes.txt\"}\n\n# \u662f\u5426\u8bb0\u5f55\u64cd\u4f5c\u65e5\u5fd7\nfile_opener_log_enabled=true\n```\n\n### \u914d\u7f6e\u9879\u8bf4\u660e\n\n| \u914d\u7f6e\u9879 | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e |\n|--------|------|--------|------|\n| `file_opener_enable` | bool | true | \u662f\u5426\u542f\u7528\u63d2\u4ef6 |\n| `file_opener_admins` | List[str] | [] | \u7ba1\u7406\u5458QQ\u53f7\u5217\u8868 |\n| `file_opener_keywords` | Dict[str, str] | {} | \u5173\u952e\u8bcd\u5230\u6587\u4ef6\u8def\u5f84\u7684\u6620\u5c04 |\n| `file_opener_log_enabled` | bool | true | \u662f\u5426\u8bb0\u5f55\u64cd\u4f5c\u65e5\u5fd7 |\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n1. **\u914d\u7f6e\u7ba1\u7406\u5458**: \u5728 `file_opener_admins` \u4e2d\u6dfb\u52a0\u4f60\u7684QQ\u53f7\n2. **\u8bbe\u7f6e\u5173\u952e\u8bcd**: \u5728 `file_opener_keywords` \u4e2d\u914d\u7f6e\u5173\u952e\u8bcd\u548c\u5bf9\u5e94\u7684\u6587\u4ef6\u8def\u5f84\n3. **\u79c1\u804a\u89e6\u53d1**: \u4f7f\u7528\u914d\u7f6e\u7684\u7ba1\u7406\u5458QQ\u53f7\u79c1\u804a\u673a\u5668\u4eba\uff0c\u53d1\u9001\u5305\u542b\u5173\u952e\u8bcd\u7684\u6d88\u606f\n\n### \u793a\u4f8b\n\n\u5047\u8bbe\u914d\u7f6e\u4e86\u4ee5\u4e0b\u5173\u952e\u8bcd\u6620\u5c04\uff1a\n```json\n{\n  \"\u6253\u5f00\u65e5\u5fd7\": \"debug.log\",\n  \"\u6253\u5f00\u914d\u7f6e\": \".env\",\n  \"\u67e5\u770b\u8bb0\u5f55\": \"data/record.json\"\n}\n```\n\n\u90a3\u4e48\u5728\u79c1\u804a\u4e2d\u53d1\u9001\uff1a\n- \"\u5e2e\u6211\u6253\u5f00\u65e5\u5fd7\" \u2192 \u4f1a\u6253\u5f00 `debug.log` \u6587\u4ef6\n- \"\u6253\u5f00\u914d\u7f6e\u6587\u4ef6\" \u2192 \u4f1a\u6253\u5f00 `.env` \u6587\u4ef6  \n- \"\u6211\u8981\u67e5\u770b\u8bb0\u5f55\" \u2192 \u4f1a\u6253\u5f00 `data/record.json` \u6587\u4ef6\n\n## \u8def\u5f84\u8bf4\u660e\n\n### \u76f8\u5bf9\u8def\u5f84\n\u76f8\u5bf9\u8def\u5f84\u662f\u76f8\u5bf9\u4e8e\u9879\u76ee\u6839\u76ee\u5f55\uff08\u5305\u542b `pyproject.toml` \u7684\u76ee\u5f55\uff09\uff1a\n- `\"debug.log\"` \u2192 `\u9879\u76ee\u6839\u76ee\u5f55/debug.log`\n- `\"data/record.json\"` \u2192 `\u9879\u76ee\u6839\u76ee\u5f55/data/record.json`\n\n### \u7edd\u5bf9\u8def\u5f84\n\u53ef\u4ee5\u4f7f\u7528\u5b8c\u6574\u7684\u6587\u4ef6\u8def\u5f84\uff1a\n- Windows: `\"C:/Users/YourName/Documents/notes.txt\"`\n- macOS/Linux: `\"/home/username/documents/notes.txt\"`\n\n## \u6545\u969c\u6392\u9664\n\n### \u6587\u4ef6\u6253\u5f00\u5931\u8d25\n1. \u68c0\u67e5\u6587\u4ef6\u8def\u5f84\u662f\u5426\u6b63\u786e\n\uff08\u6ce8\u610f\uff1a\u8def\u5f84\u5e94\u4f7f\u7528\"/\"\uff0c\u800c\u5e76\u975e\u9ed8\u8ba4\u590d\u5236\u7684\u201d\\\u201c\uff09\n2. \u786e\u8ba4\u6587\u4ef6\u786e\u5b9e\u5b58\u5728\n3. \u68c0\u67e5\u6587\u4ef6\u6743\u9650\n4. \u67e5\u770b\u65e5\u5fd7\u83b7\u53d6\u8be6\u7ec6\u9519\u8bef\u4fe1\u606f\n\n### \u5173\u952e\u8bcd\u4e0d\u751f\u6548\n1. \u786e\u8ba4QQ\u53f7\u5728\u7ba1\u7406\u5458\u5217\u8868\u4e2d\n2. \u68c0\u67e5\u5173\u952e\u8bcd\u914d\u7f6e\u683c\u5f0f\u662f\u5426\u6b63\u786e\n3. \u786e\u8ba4\u662f\u5728\u79c1\u804a\u4e2d\u53d1\u9001\u6d88\u606f\n\n### \u914d\u7f6e\u95ee\u9898\n1. \u68c0\u67e5 `.env` \u6587\u4ef6\u683c\u5f0f\n2. \u786e\u8ba4JSON\u683c\u5f0f\u7684\u5173\u952e\u8bcd\u6620\u5c04\u662f\u5426\u6b63\u786e\n3. \u91cd\u542f\u673a\u5668\u4eba\u4f7f\u914d\u7f6e\u751f\u6548",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u901a\u8fc7\u68c0\u6d4b\u7279\u5b9a\u79c1\u804a\u5173\u952e\u8bcd\u6765\u6253\u5f00\u5bf9\u5e94\u6587\u4ef6\u7684 NoneBot2 \u63d2\u4ef6",
    "version": "1.0.0",
    "project_urls": {
        "Documentation": "https://github.com/Xenith-Ethereon/nonebot-plugin-file-opener.git",
        "Homepage": "https://github.com/Xenith-Ethereon/nonebot-plugin-file-opener.git",
        "Repository": "https://github.com/Xenith-Ethereon/nonebot-plugin-file-opener.git"
    },
    "split_keywords": [
        "nonebot",
        " nonebot2",
        " plugin",
        " file",
        " opener",
        " remote"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5719a95df7d3607c34afa6cd0aef13a0acdbf36678c0d1edfa7ba0277af44ce4",
                "md5": "11d3ca36a478490abed279ced7a20425",
                "sha256": "b20471283aab250126c8d82493dcda274dd5e828236625886da29776fce34a2d"
            },
            "downloads": -1,
            "filename": "nonebot_plugin_file_opener-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "11d3ca36a478490abed279ced7a20425",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 5259,
            "upload_time": "2025-10-08T16:37:25",
            "upload_time_iso_8601": "2025-10-08T16:37:25.690711Z",
            "url": "https://files.pythonhosted.org/packages/57/19/a95df7d3607c34afa6cd0aef13a0acdbf36678c0d1edfa7ba0277af44ce4/nonebot_plugin_file_opener-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "33c0a053b4b52e2720b55509e6d1f6299af41b707cfec1d9deacb3d088480d21",
                "md5": "97d31de51cbfb8eb4d2664e9be9d0bdb",
                "sha256": "fbd07d3db46acd18f1bcc0b5ef12fcee525d9e4793eaa73bc8aa14d5c7e2edae"
            },
            "downloads": -1,
            "filename": "nonebot_plugin_file_opener-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "97d31de51cbfb8eb4d2664e9be9d0bdb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 4334,
            "upload_time": "2025-10-08T16:37:27",
            "upload_time_iso_8601": "2025-10-08T16:37:27.145060Z",
            "url": "https://files.pythonhosted.org/packages/33/c0/a053b4b52e2720b55509e6d1f6299af41b707cfec1d9deacb3d088480d21/nonebot_plugin_file_opener-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-08 16:37:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Xenith-Ethereon",
    "github_project": "nonebot-plugin-file-opener",
    "github_not_found": true,
    "lcname": "nonebot-plugin-file-opener"
}
        
Elapsed time: 2.10080s