mirror of
https://github.com/zimplexing/OrionTV.git
synced 2026-02-04 03:36:29 +08:00
- Added LoginModal component for user login functionality. - Introduced API routes for user login, favorites, play records, and search history management. - Created JSON files for storing favorites, play records, and search history. - Updated API service to handle new endpoints and refactored data management to use API calls instead of local storage. - Adjusted data structures in types and services to align with new API responses.
6.6 KiB
6.6 KiB
服务器配置
- 接口地址:
/api/server-config - 请求方法:
GET - 功能说明: 获取服务器配置信息
- 请求参数: 无
- 返回格式:
StorageType 可选值:
{ "SiteName": "string", "StorageType": "string" } - "localstorage"
- "redis"
localstorage 方式部署的实例,收藏、播放记录和搜索历史无服务器同步,客户端自行处理即可
localstorage 方式部署的实例,登录时只需输入密码,无用户名
登录校验
- 接口地址:
/api/login - 请求方法:
POST - 功能说明: 用户登录认证
- 请求参数:
{ "password": "string", // 必填,用户密码 "username": "string" // 选填,用户名(非 localStorage 模式时必填) } - 返回格式:
{ "ok": true } - 错误码:
400: 参数错误或密码错误500: 服务器内部错误
response 会设置 set-cookie 的 auth 字段,用于后续请求的鉴权
后续的所有接口请求时都需要携带 auth 字段,否则会返回 401 错误
建议客户端保存用户输入的用户名和密码,在每次 app 启动时请求登录接口获取 cookie
视频搜索接口
- 接口地址:
/api/search - 请求方法:
GET - 功能说明: 搜索视频内容
- 请求参数:
q: 搜索关键词(可选,不传返回空结果)
- 返回格式:
{ "results": [ { "id": "string", // 视频在源站中的 id "title": "string", // 视频标题 "poster": "string", // 视频封面 "source": "string", // 视频源站 key "source_name": "string", // 视频源站名称 "class": "string", // 视频分类 "year": "string", // 视频年份 "desc": "string", // 视频描述 "type_name": "string", // 视频类型 "douban_id": "string" // 视频豆瓣 id } ] } - 错误码:
500: 搜索失败
视频详情接口
- 接口地址:
/api/detail - 请求方法:
GET - 功能说明: 获取视频详细信息
- 请求参数:
id: 视频 ID(必填)source: 视频来源代码(必填)
- 返回格式:
{ "id": "string", // 视频在源站中的 id "title": "string", // 视频标题 "poster": "string", // 视频封面 "source": "string", // 视频源站 key "source_name": "string", // 视频源站名称 "class": "string", // 视频分类 "year": "string", // 视频年份 "desc": "string", // 视频描述 "type_name": "string", // 视频类型 "douban_id": "string" // 视频豆瓣 id } - 错误码:
400: 缺少必要参数或无效参数500: 获取详情失败
豆瓣数据接口
- 接口地址:
/api/douban - 请求方法:
GET - 功能说明: 获取豆瓣电影/电视剧数据
- 请求参数:
type: 类型,必须是tv或movie(必填)tag: 标签,如热门、最新等(必填)pageSize: 每页数量,1-100 之间(可选,默认 16)pageStart: 起始位置,不能小于 0(可选,默认 0)
- 返回格式:
{ "code": 200, "message": "获取成功", "list": [ { "id": "string", "title": "string", "poster": "string", "rate": "string" } ] } - 错误码:
400: 参数错误500: 获取豆瓣数据失败
用户数据接口
收藏管理
- 接口地址:
/api/favorites - 请求方法:
GET/POST/DELETE - 功能说明: 管理用户收藏
- 认证: 需要认证
GET 请求 - 获取收藏
-
请求参数:
key: 收藏项 key(可选,格式为source+id)
-
返回格式:
// 不带key参数时返回所有收藏 { "source+id": { "title": "string", "poster": "string", "source_name": "string", "save_time": 1234567890 } } // 带key参数时返回单个收藏或null { "title": "string", "poster": "string", "source_name": "string", "save_time": 1234567890 }
POST 请求 - 添加收藏
- 请求参数:
{ "key": "string", // 必填,格式为 source+id "favorite": { "title": "string", "poster": "string", "source_name": "string", "save_time": 1234567890 } } - 返回格式:
{ "success": true }
DELETE 请求 - 删除收藏
-
请求参数:
key: 收藏项 key(可选,不传则清空所有收藏)
-
返回格式:
{ "success": true } -
错误码:
400: 参数错误401: 未认证500: 服务器内部错误
播放记录管理
- 接口地址:
/api/playrecords - 请求方法:
GET/POST/DELETE - 功能说明: 管理用户播放记录
- 认证: 需要认证
GET 请求 - 获取播放记录
- 请求参数: 无
- 返回格式:
{ "source+id": { "title": "string", "poster": "string", "source_name": "string", "index": 1, "time": 1234567890 } }
POST 请求 - 保存播放记录
- 请求参数:
{ "key": "string", // 必填,格式为 source+id "record": { "title": "string", "poster": "string", "source_name": "string", "index": 1, "time": 1234567890 } } - 返回格式:
{ "success": true }
DELETE 请求 - 删除播放记录
-
请求参数:
key: 播放记录 key(可选,不传则清空所有记录)
-
返回格式:
{ "success": true } -
错误码:
400: 参数错误401: 未认证500: 服务器内部错误
搜索历史管理
- 接口地址:
/api/searchhistory - 请求方法:
GET/POST/DELETE - 功能说明: 管理用户搜索历史
- 认证: 需要认证
GET 请求 - 获取搜索历史
- 请求参数: 无
- 返回格式:
["搜索关键词1", "搜索关键词2"]
POST 请求 - 添加搜索历史
- 请求参数:
{ "keyword": "string" // 必填,搜索关键词 } - 返回格式:
["搜索关键词1", "搜索关键词2"]
DELETE 请求 - 删除搜索历史
-
请求参数:
keyword: 要删除的关键词(可选,不传则清空所有历史)
-
返回格式:
{ "success": true } -
错误码:
400: 参数错误401: 未认证500: 服务器内部错误