苹果CMSV10豆瓣API接口本地化

机器人
摘要
Mxchild
生成中...

在使用苹果CMS添加影视资料的过程中,经常使用到一键获取豆瓣资料的功能,操作流程为输入豆瓣ID后点击查询按钮就可以自动填充表单数据,但苹果CMS的自带接口老版已经不能使用,最新版有时也不稳定,所以在此发文记录一下修改方法

一、实现功能

  1. 豆瓣api接口本地化,douban.php(替代 api.maccms.la
  2. 修复苹果cms自带豆瓣接口不可用问题
  3. 采集配置加豆瓣信息(让管理员控制要不要回填)
后台视频编辑页(输入豆瓣 ID)
        ↓ 点"查询资料"
本地 API: /douban.php?id=XXX
        ↓
豆瓣官方电影页: movie.douban.com/subject/XXX
        ↓
返回 20+ 字段(演员/导演/海报/集数/剧情/评分...)
        ↓ 自动写回表单

后台采集配置(勾选 tv / av)
        ↓ 触发采集任务
资源站带豆瓣 ID 的数据 → 自动回填 vod_douban_id
资源站带豆瓣评分的     → 自动回填 vod_douban_score

二、效果预览

效果1:后台 系统 → 采集参数配置 里多出两个勾选项,勾哪个就启用哪个回填。

图片[1] - 苹果CMSV10豆瓣API接口本地化 - 迅维博客网

效果2:视频编辑页面效果

图片[2] - 苹果CMSV10豆瓣API接口本地化 - 迅维博客网

三、操作步骤

3.1 准备 douban.php

核心功能是:

  • 接收 ?id=XXX(豆瓣影片 ID)
  • 抓取 movie.douban.com/subject/XXX/
  • 解析 HTML 返回 JSON
  • 海报自动下载到本地 upload/vod/

关键点:这份代码自带缓存机制(/douban/ 目录存 JSON)+ 多线路重试 + 随机 UA 伪装。别自己造轮子,直接用现成的。

下载图标
苹果cms豆瓣接口修复文件

3.2:后台采集配置页加 2 个复选框

文件:application/admin/view/system/configcollect.html

找到 更新规则 区域,加两行:

3.3:Collect.php 加回填逻辑

文件:application/common/model/Collect.php

在采集循环体里(约第 1199 行,跟其他回填规则同一位置)加:

这俩回填不影响其他字段——只动 vod_douban_idvod_douban_score

3.4:后台JS切换URL(最关键)

文件:application/admin/view/vod/info.html

搜这一段:

// 改动前 —— 接的是第三方公共服务, 已死 ❌
timeout: 5000,
url: '//' + 'api' + '.' + 'mac'+ 'cms' + '.'+ 'la' + '/douban/index/id/' + id,

改成:

// 改动后 —— 本地 API ✅
timeout: 10000,
url: '/douban.php?id=' + id,

timeout 改 10000ms——本地 API 也涉及远程抓取,5 秒太紧容易超时。10 秒给足余量。
那个 'api.mac' + 'cms.la' 是字符串拼接的反爬写法,原作者怕被搜刮代码时一眼看出域名。挺巧妙,但既然服务都死了,留着也没意义。

3.5:douban.php 放根目录

douban.php 上传到 /www/wwwroot/www.yunbo.net/douban.php,实现豆瓣api接口本地化。
注意:不是 application/ 目录下,不是 api/ 目录下,是项目根目录。这是上一步 JS URL 决定的——/douban.php 是从根目录算的路径。

四、验收测试

4.1 接口测试(curl)

# 1. 基础测试 —— 狂飙
curl "https://你的域名/douban.php?id=35465232"
# 预期: HTTP 200, JSON 完整, vod_name="狂飙", vod_douban_score="8.5"

# 2. JSONP 测试
curl "https://你的域名/douban.php?id=35465232&callback=jQuery_test"
# 预期: jQuery_test({...})

# 3. 经典影片测试
curl "https://你的域名/douban.php?id=1292052"
# 预期: HTTP 200, vod_name="肖申克的救赎", year=1994

# 4. 错误处理测试
curl "https://你的域名/douban.php"
# 预期: code=102, msg="请提供豆瓣ID参数"

curl "https://你的域名/douban.php?id=invalid"
# 预期: code=102, msg="无效的豆瓣ID"

4.2 后台手动测试

  1. 登录后台 → 视频 → 视频列表
  2. 打开任意一个影片的编辑页
  3. 在 “豆瓣ID” 输入框输入 35465232(狂飙的豆瓣 ID)
  4. 点 “查询资料” 按钮
  5. 预期:表单瞬间被填满 20+ 字段,vod_douban_score = 8.5

4.3 采集自动回填测试

  1. 后台 → 系统 → 采集参数配置 → 勾选 “豆瓣ID” 和 “豆瓣评分” → 保存
  2. 触发任意一次采集任务
  3. 采集完成后查数据库:
SELECT 
  COUNT(*) AS 总数,
  SUM(IF(vod_douban_id > 0, 1, 0))     AS 有douban_id,
  SUM(IF(vod_douban_score > 0, 1, 0))  AS 有评分
FROM mac_vod;

预期有douban_id有评分 数字都明显上涨。


五、总结

整套改造完总共改了4 个文件、净增 11 行代码

文件改动
douban.php+3 行(SITE_ROOT bug 修复)
info.html2 行替换(URL 切本地)
configcollect.html+2 行(采集复选框)
Collect.php+6 行(采集回填逻辑)

下次我打算把猫眼票房也走这套思路,回头单独写一篇。

© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容