My Computer · 2025/08/19 0

苹果cms 增加线路/资源站网速测速和优选推荐功能

之前有了一键搜片,现在有了一键测速。

即资源站线路速度测试,测试包括延迟、分两次下载ts片段、计算均速、给出实时最快线路和依据历史数据优选线路top3。可开启自动切换优选线路,告别盲目试错。打开视频详情页时,系统将自动切换到最快资源站标签,畅享丝滑。

动作比较大,列一下核心的逻辑,备忘。

核心功能

  • 白名单测速:仅对 speed_targets.php 配置的线路执行测速、写库、绘图与推荐。
  • 一周历史推荐:基于最近 7 天、当前时间段 ± 宽窗的历史数据,计算并输出 TOP3最佳线路
  • 可视化:展示最近 24 小时均速曲线;表格展示每条线路的延迟、分段速率、均速与状态。

前端交互

  • 弹窗即出推荐:打开弹窗立即请求历史推荐并渲染 TOP3(不等待本轮测速)。
  • 表格并发测速:显示占位行→并发测速→动态更新表格,并将结果写入后端。
  • 图表过滤与默认显隐:只绘制白名单;默认仅显示“表格中出现的线路”,“超清”默认隐藏(图例可点开)。
  • Tooltip 排序:同一时间点按均速从高到低显示“颜色点 + 线路名 + 均速”。
  • 状态与标签
    • 成功:可用(浅绿);最快叠加 最快(深绿)。
    • 失败:测速失败(深红),若采到延迟则保留延迟值,不暴露错误细节。
    • 优/缺点:支持 pros/cons 标签(中绿/柔红),按“优点在前、缺点在后、为空不显示”。
  • TOP3 可点击:推荐项以“胶囊标签”展示,点击可直接切换线路。
  • 移动端优化:表格在小屏卡片化展示,状态列靠右对齐,交互与可读性适配良好。
  • 图例记忆:图例显隐状态持久化(localStorage)。

后端与数据

  • 接口
    • line_probe.php 单条测速;speed_write.php 写入测速日志;
    • speed_api.php 返回 24 小时历史曲线;
    • speed_recommend.php 返回当前时段的 besttop3
    • speed_targets.php 维护白名单与 pros/cons
  • 数据清理speed_cron.php 定期清理超过 7 天的记录,并清除不在白名单的线路数据。
  • 存储兼容speed_store.php 兼容不同列名(avg_mbps/avglatency_ms/latency、无 ok 兜底),支持 SQLite/MySQL。

推荐逻辑(摘要)

  • 只在 白名单 ∩ 当前表格线路 集合内,基于一周历史,按“当前时间槽 ± N 个槽(15 分钟粒度)”统计;
  • 稳健聚合(中位/剪枝)得出每条线路的代表均速,结合可用率、延迟进行排序,产出 TOP3

主题与样式

  • 明暗主题:提供正常/暗黑两套风格;暗黑下“测速中…”与 TOP3 胶囊降亮不刺眼;正常主题 TOP3 与“最快”同系风格。
  • 颜色语义清晰:可用/最快/失败与 pros/cons 的配色分明且一致。

性能与加载

  • 按需加载:Chart.js 与弹窗专属 CSS 在需要时加载;弹窗未开不引重资源。
  • 本地优先 + CDN 兜底:前端库支持本地路径与 CDN 回退。
  • 模板注入精简:一次 include 注入 SPEED_TARGET_META;前端从中派生白名单,减少重复数据与 I/O。

前端效果展示