Files
lubo_comment_query/CLAUDE.md

3.6 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

项目概述

这是一个基于 Laravel 8 框架的视频评论和弹幕查询系统,主要功能包括:

  • 视频评论查询和搜索
  • 节目管理和视频关联
  • 弹幕数据管理(支持B站、西瓜视频、抖音)
  • WebAuthn 身份验证
  • 文件上传和管理

常用开发命令

后端 PHP/Laravel 命令

# 安装 PHP 依赖
composer install

# 开发环境安装(包含开发依赖)
composer install

# 生产环境安装(不含开发依赖)
composer install --optimize-autoloader --no-dev

# 运行测试
vendor/bin/phpunit
# 或
php artisan test

# 清除缓存
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

# 生成应用密钥
php artisan key:generate

# 数据库迁移
php artisan migrate

# 启动开发服务器
php artisan serve

前端构建命令

# 安装前端依赖
yarn install
# 或
npm install

# 开发模式构建
yarn dev
# 或
npm run dev

# 监听文件变化并自动重新构建
yarn watch
# 或
npm run watch

# 生产环境构建
yarn production
# 或
npm run production

生产环境部署

使用 build.sh 脚本进行完整的生产环境构建:

./build.sh

该脚本会依次执行:

  1. 安装 PHP 依赖(生产环境)
  2. 安装前端依赖
  3. 构建前端资源
  4. 缓存配置、路由和视图

核心架构

数据模型关系

  • Videos: 视频主表,以 bvid 为主键
  • VideoComments: 视频评论,关联到 Videos
  • VideoDanmakus: 视频弹幕,支持多平台(B站、西瓜、抖音)
  • Programs: 节目表
  • ProgramVideos: 节目与视频的多对多关联表
  • ProgramAppends: 节目的点播内容
  • User: 用户表,支持传统登录和 WebAuthn

控制器架构

查询控制器(公开访问)

  • CommentQueryController: 评论搜索,支持关键词分词搜索
  • VideoQueryController: 视频信息查询
  • ProgramQueryController: 节目查询,包含关联视频
  • DanmakuQueryController: 弹幕查询

管理控制器(需要登录)

  • ProgramConstructController: 节目创建和编辑
  • ProgramVideoConstructController: 节目视频关联管理
  • ProgramAppendConstructController: 节目点播内容管理
  • DanmakuConstructController: 弹幕批量导入
  • FileController: 文件上传

用户认证

  • UserController: 传统用户名密码认证
  • UserWebAuthnController: WebAuthn 无密码认证

前端资源结构

  • 使用 Laravel Mix 构建工具
  • 支持 TailwindCSS 样式框架
  • JavaScript 组件化,主要包含:
    • from_select.js: 下拉选择组件
    • webauthn.js: WebAuthn 认证逻辑
  • 生产环境支持版本哈希和 S3 部署

视图组件

  • Blade 模板引擎
  • 组件化设计:
    • components/links/: 用户和视频链接组件
    • components/appends/: 点播内容列表组件
  • 支持中文本地化(zh_CN)

特殊功能

  • 多平台弹幕支持: 通过 platform_id 区分不同平台(1=B站,2=西瓜,3=抖音)
  • 关键词分词搜索: 评论搜索支持空格分隔的多关键词
  • WebAuthn 集成: 支持现代无密码认证
  • 文件上传: 支持 S3 兼容存储
  • 时间戳处理: 使用 Unix 时间戳格式存储

路由分组

  • /: 公开评论查询页面
  • /construct/*: 需要认证的管理功能
  • /user/*: 用户认证相关功能

数据库时间格式

模型使用 Unix 时间戳格式 (protected $dateFormat = 'U'),注意在处理时间相关逻辑时需要考虑这个格式。