• bbs1org
    MP3 附件播放器
    ID mp3_player版本 1.0.26插件制作者 bbs1org免费1914 行 / 77.7 KBHook / 路由 / 后台页
    在主题中直接播放 MP3 附件,支持播放列表、倍速播放和断点续听。
    app/plugins/mp3_player/plugin.php
    开发日志已有 3 条

    个人独立维护项目。

    • bbs1org
      bbs1org
      版本 1.0.26 878d3c2585d2 更新:修改js冲突release
    • bbs1org
      bbs1org
      版本 1.0.26 aad5be2597ed 更新:topic.after_render 在列表页逐行触发,且没有 list 拦截,每行含 mp3 的主题都执行 mp3_player_history_for_tracks()(一条对当前用户 (user,topic) 的历史查询)→ N 个 mp3 主题 = N 次。这 是本批唯一真·O(N) 循环违规。 修复
    • bbs1org
      bbs1org
      版本 1.0.25 412f7c190609 更新:旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。
    主楼
  • 质量报告

    插件质量报告

    插件:mp3_player

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    sidebar.feature_links首页/侧栏快捷功能否5----
    topic.after_render首页/版块列表/主题查看逐条渲染是(列表跳过)5读 修正❗️--读 plugin_mp3_player_history
    topic.before_delete主题删除操作否2---写 plugin_mp3_player_history

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_mp3_player_history

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否-唯一
    track_keykey否-唯一
    topic_iduint否--
    attachment_filekey否--
    filenamestring否--
    position_msuint否0-
    duration_msuint否0-
    rate_milliuint否1000-
    created_atuint否--
    updated_atuint否--
    #1
  • ccc

    万能的插件啊

    #2
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    1. 流媒体路由 plugin.php:98-155 mp3_player_stream_page 只做文件名白名单 ^[a-f0-9]{64}\.mp3$ 校验后直接 readfile,未做登录与主题/版块可见性校验:任何拿到内容哈希者都能读取 UPLOAD_DIR 中的 MP3(含隐藏/私密版块附件)。建议在路由内校验附件所属主题与版块可见性,或至少限制为登录用户。

    ⚡ 性能问题

    1. 红区违规:topic.after_render(plugin.php:1900)→ mp3_player_render_topic(:193)→ mp3_player_history_for_tracks(:163)在渲染链内执行 q('SELECT ...'),违反「渲染循环零数据库读取」。建议改为在 app.boot 或 topic.replies 预加载,渲染钩子只做内存读取。
    2. mp3_player_extract_tracks(:85-91)在渲染路径内对每个附件做 is_file()/filesize() 文件系统 stat,附件多时每页重复,可做请求级缓存。

    🐛 功能/规范缺陷

    1. mp3_player_css_custom()(:380)整段未被 manifest 引用(:1898 用 mp3_player_css_refined),属死代码,建议删除。
    2. CSS 多处写死字号与十六进制色值(如 :354 font-size:10px、:961-963 #ef4444),应改用 var(--font-size-*)/var(--danger) 等语义变量。

    ✅ 修复优先级

    1. 红区 DB 读改预加载(性能,最重要);2) 流媒体路由补可见性校验(安全);3) 删除死代码、CSS 变量化(规范)。
    #3
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:MP3 附件播放器(mp3_player)v1.0.25

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #4
  • bbs1org

    旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。

    #5
  • bbs1org

    版本 1.0.26 更新:
    topic.after_render 在列表页逐行触发,且没有 list 拦截,每行含 mp3 的主题都执行 mp3_player_history_for_tracks()(一条对当前用户 (user,topic) 的历史查询)→ N 个 mp3 主题 = N 次。这
    是本批唯一真·O(N) 循环违规。
    修复

    #6
  • 123456789

    还差个mp4,M3U8,视频多模态发布就补齐了😎

    #7
  • bbs1org

    视频就算了,转码之类可复杂了。有能力上传视频并做网站的,也有能力开发插件了。

    #8
  • 123456789

    好的

    #9
  • bbs1org

    版本 1.0.26 更新:
    修改js冲突

    #10

发表回复

登录后回复