WebUI API 调用接口

BitComet 从 v2.09 开始支持 WebUI,可以从浏览器远程访问软件界面。

WebUI 界面部分使用 Vue + Vuetify 搭建,与软件的通信使用 axios 传送 json 格式的报文。

以下是部分 API 调用接口:

获取任务列表

API 路径: ``` /api_v2/task_list/get


^ 参数名称 ^ 参数类型 ^ 说明 ^ 是否可选 ^ 默认值 ^ 取值范围 ^ 
| state_group | string | 任务分组 | 可选 | ALL | ALL, DOWNLOADING, DOWNLOAD_PAUSED, \\ SEEDING, SEED_PAUSED, \\ COMPLETED, UNCOMPLETED, \\ ACTIVE, INACTIVE |
| task_type | string | 任务类型 | 可选 | ALL | ALL, BT, HTTP |
| tag_filter | string | 任务标签 | 可选 | 空 | ALL, UNTAGGED, TAG_{tag} |
| sort_key | string | 排序键值 | 可选 | 空 | Name, Size, Progress, LeftTime, \\ Download(下载速度), Upload(上传速度),\\  DownloadSize, UploadSize |
| sort_order | string | 排序顺序 | 可选 | unsorted | ascend, descend, unsorted | 

## 获取 peer 列表

API 路径:  ```
/api/task/peers/get

^ 参数名称 ^ 参数类型 ^ 说明 ^ 是否可选 ^ 默认值 ^ 取值范围 ^ | task_id | string | 任务ID | 强制 | 无 | 可通过任务列表获取 | | groups | string | peer 分组 | 可选 | 无 | peers_connected, peers_connecting, \ peers_disconnected, peers_banned, \ ltseeds_connected, ltseeds_connecting, webseeds | | max_count | int | 返回数量上限 | 可选 | 0 | 0 表示返回全部 | | sort_key | string | 排序键值 | 可选 | 空 | ip, remoteport, listenport, progress, \ downrate, uprate, downsize, upsize, \ initiation, protocol, peerdownrate, connecttime, clienttype | | sort_order | string | 排序顺序 | 可选 | unsorted | ascend, descend, unsorted |

封禁 peer

API 路径: ``` /api/task/peers/ban_ip


^ 参数名称 ^ 参数类型 ^ 说明 ^ 是否可选 ^ 默认值 ^ 取值范围 ^ 
| task_id | string | 任务ID | 强制 | 无 | 可通过任务列表获取 |
| ban_time| string | 封禁时间 | 强制 | 无 | ban_ip_5m, ban_ip_1h, ban_ip_1d, \\ ban_ip_forever(永久封禁,并将IP加入ipfilter手动列表) |
| ip_list| string array | IP列表 | 强制 | 无 | 可通过 peer 列表获取 |

## 解封 peer

API 路径:  ```
/api/task/peers/unban_peers

^ 参数名称 ^ 参数类型 ^ 说明 ^ 是否可选 ^ 默认值 ^ 取值范围 ^ | task_id | string | 任务ID | 可选 | 无 | 可通过任务列表获取 | | unban_range | string | 封禁范围 | 强制 | 无 | unban_peers: 解封指定任务内IP匹配的peer, \ unban_peers_in_all_tasks: 解封全部任务内IP匹配的peer, \ unban_all_peers: 解封指定任务内的全部peer, \ unban_all_tasks: 解封全部任务内的全部peer | | ip_list| string array | IP列表 | 可选 | 无 | 可通过 peer 列表获取 |

ipfilter导入IP列表

API 路径: ``` /api/config/ipfilter/upload


^ 参数名称 ^ 参数类型 ^ 说明 ^ 是否可选 ^ 默认值 ^ 取值范围 ^ 
| content_base64 | string | IP列表内容 | 强制 | 无 | Base64 编码 |
| data_type | string | 列表类型 | 强制 | 无 | data_file, manual_list |
| import_type | string | 导入类型 | 可选 | replace | replace, merge |

## ipfilter导出IP列表

API 路径:  ```
/api/config/ipfilter/download

无参数,只能导出 data_file, 不支持导出 manual_list

ipfilter清除IP列表

API 路径: ``` /api/config/ipfilter/clear


无参数,只能清除 data_file, 不支持清除 manual_list

## 修改网络连接参数

API 路径:  ```
/api/config/connection/set

^ 参数名称 ^ 参数类型 ^ 说明 ^ 是否可选 ^ 默认值 ^ 取值范围 ^ | connection_config.max_download_speed | int | 全局下载限速 | 强制 | 无 | 0 为无限速 | | connection_config.max_upload_speed | int | 全局上传限速 | 强制 | 无 | 0 为无限速 | | connection_config.enable_listen_tcp | bool | 启用BT端口监听 | 强制 | 无 | true, false | | connection_config.listen_port_tcp | int | BT监听端口号 | 强制 | 无 | 1024 - 65535 |

添加 HTTP 任务

API 路径: ``` /api/task/http/add


^ 参数名称 ^ 参数类型 ^ 说明 ^ 是否可选 ^ 默认值 ^ 取值范围 ^ 
| url | string | HTTP链接 | 强制 | 无 | 支持 http/https/ftp 协议 |
| max_connection_count | int | 最大连接数 | 可选 | 5 | 1 - 2000 |
| save_folder | string | 文件保存目录 | 强制 | 无 | Win32: C:\downloads \\ macOS: /Users/username/Downloads \\ Android APP私有目录: \\ /storage/emulated/0/Android/data/com.bitcomet.android/files/Download |