Skip to content

📁 项目结构

根目录

misaka_danmu_server/
├── config/                    # 配置文件目录
│   ├── config.yml            # 主配置文件
│   ├── logs/                 # 日志目录
│   └── mysql.cnf             # MySQL配置
├── migrations/                # 数据库迁移脚本
├── src/                       # 后端源代码 (Python/FastAPI)
├── static/                    # 静态资源
│   └── swagger-ui/           # Swagger UI资源
├── tools/                     # 工具脚本
├── web/                       # 前端源代码 (React/Vite)
├── Dockerfile                 # Docker构建文件
├── docker-compose.yml         # Docker Compose配置
├── requirements.txt           # Python依赖
├── run.sh                     # 启动脚本
└── README.md                  # 项目说明

📂 src/ - 后端源代码

核心文件

src/
├── main.py                    # 应用入口
├── _version.py                # 版本信息
├── security.py                # 安全认证模块
└── sql.py                     # SQL工具

API 路由层 (api/)

src/api/
├── control/                   # 控制面板API
│   ├── danmaku_routes.py         # 弹幕相关路由
│   ├── import_routes.py          # 导入相关路由
│   ├── library_routes.py         # 媒体库路由
│   ├── settings_routes.py        # 设置路由
│   ├── task_routes.py            # 任务路由
│   └── token_routes.py           # Token路由
├── dandan/                    # DandanPlay兼容API
│   ├── bangumi.py                # 番剧API
│   ├── comments.py               # 弹幕评论API
│   ├── match.py                  # 匹配API
│   ├── search.py                 # 搜索API
│   ├── danmaku_color.py          # 弹幕颜色处理
│   ├── danmaku_filter.py         # 弹幕过滤
│   └── danmaku_parser.py         # 弹幕解析
├── ui/                        # Web UI API
│   ├── anime.py                  # 番剧管理
│   ├── auth.py                   # 认证
│   ├── backup.py                 # 备份管理
│   ├── config.py                 # 配置管理
│   ├── danmaku_edit.py           # 弹幕编辑
│   ├── episode.py                # 分集管理
│   ├── import_api.py             # 导入API
│   ├── local_danmaku.py          # 本地弹幕
│   ├── media_server.py           # 媒体服务器
│   ├── scraper.py                # 爬虫管理
│   ├── search.py                 # 搜索
│   ├── source.py                 # 弹幕源管理
│   └── task.py                   # 任务管理
└── webhook_api.py             # Webhook API

AI 匹配模块 (ai/)

src/ai/
├── ai_matcher.py              # AI匹配器
├── ai_matcher_manager.py      # AI匹配管理
├── ai_providers.py            # AI提供商
├── ai_prompts.py              # AI提示词
├── ai_cache.py                # AI缓存
└── ai_metrics.py              # AI指标

数据库层 (db/)

src/db/
├── database.py                # 数据库连接
├── orm_models.py              # ORM模型定义
├── models.py                  # Pydantic模型
├── migrations.py              # 迁移管理
├── cache_manager.py           # 缓存管理
├── config_manager.py          # 配置管理
├── db_maintainer.py           # 数据库维护
└── crud/                      # CRUD操作
    ├── anime.py                  # 番剧CRUD
    ├── episode.py                # 分集CRUD
    ├── danmaku.py                # 弹幕CRUD
    ├── source.py                 # 源CRUD
    ├── user.py                   # 用户CRUD
    ├── config.py                 # 配置CRUD
    └── task.py                   # 任务CRUD

弹幕爬取 (scrapers/)

src/scrapers/
├── base.py                    # 爬取基类
└── XXXX.py                    # XXX爬取

元数据源 (metadata_sources/)

src/metadata_sources/
├── base.py                    # 元数据源基类
├── tmdb.py                    # TMDB元数据
├── tvdb.py                    # TVDB元数据
├── bangumi.py                 # Bangumi元数据
├── douban.py                  # 豆瓣元数据
├── imdb.py                    # IMDB元数据
└── 360.py                     # 360影视元数据

媒体服务器集成 (media_servers/)

src/media_servers/
├── base.py                    # 媒体服务器基类
├── emby.py                    # Emby集成
├── jellyfin.py                # Jellyfin集成
└── plex.py                    # Plex集成

业务服务层 (services/)

src/services/
├── scraper_manager.py         # 爬取管理器
├── metadata_manager.py        # 元数据管理器
├── media_server_manager.py    # 媒体服务器管理器
├── task_manager.py            # 任务管理器
├── download_task_manager.py   # 下载任务管理器
├── scheduler.py               # 调度器
├── search.py                  # 搜索服务
├── name_converter.py          # 名称转换器
├── title_recognition.py       # 标题识别
├── log_manager.py             # 日志管理器
└── webhook_manager.py         # Webhook管理器

📂 web/ - 前端源代码

web/
├── index.html                 # HTML入口
├── package.json               # NPM配置
├── vite.config.js             # Vite配置
├── dist/                      # 构建输出
├── public/                    # 公共资源
└── src/                       # 源代码
    ├── main.jsx                  # React入口
    ├── App.jsx                   # 根组件
    ├── index.css                 # 全局样式 (Tailwind)
    ├── ThemeProvider.jsx         # 主题提供者 (Ant Design)
    ├── MessageContext.jsx        # 消息上下文
    ├── ModalContext.jsx          # 弹窗上下文

    ├── apis/                  # API调用
    │   ├── fetch.js              # 请求封装
    │   └── index.js              # API导出

    ├── components/            # 通用组件
    │   ├── AddSourceModal.jsx        # 添加源弹窗
    │   ├── BatchImportModal.jsx      # 批量导入弹窗
    │   ├── CreateAnimeModal.jsx      # 创建番剧弹窗
    │   ├── DanmakuEditModal.jsx      # 弹幕编辑弹窗
    │   ├── DarkModeToggle.jsx        # 深色模式切换
    │   ├── ResponsiveModal.jsx       # 响应式弹窗
    │   ├── ResponsiveTable.jsx       # 响应式表格
    │   ├── SortablePriorityList.jsx  # 可拖拽优先级列表
    │   └── VersionModal.jsx          # 版本弹窗

    ├── general/               # 布局组件
    │   ├── Layout.jsx            # 主布局
    │   ├── Header.jsx            # 头部
    │   ├── Router.jsx            # 路由配置
    │   └── NotFound.jsx          # 404页面

    ├── pages/                 # 页面组件
    │   ├── home/                 # 首页
    │   ├── anime/                # 番剧详情页
    │   ├── episode/              # 分集详情页
    │   ├── source/               # 弹幕源管理
    │   ├── bullet/               # 弹幕管理
    │   ├── task/                 # 任务管理
    │   ├── media-fetch/          # 媒体获取
    │   ├── library/              # 媒体库
    │   ├── setting/              # 设置页
    │   ├── control/              # 控制面板
    │   └── login/                # 登录页

    ├── hooks/                 # 自定义Hooks
    │   ├── useDebounce.js        # 防抖Hook
    │   └── useScroll.js          # 滚动Hook

    └── utils/                 # 工具函数
        ├── data.js               # 数据处理
        └── localstroage.js       # 本地存储

📝 关键文件说明

文件说明
src/main.pyFastAPI应用入口,注册所有路由和中间件
src/db/orm_models.pySQLAlchemy ORM模型定义
src/db/models.pyPydantic数据模型
src/scrapers/base.py弹幕基类,定义爬取接口
src/services/scraper_manager.py爬取管理器,统一管理所有弹幕源
web/src/ThemeProvider.jsxAnt Design主题配置(亮色/深色)
web/src/index.cssTailwind CSS全局样式和CSS变量

🎨 主题配色

CSS变量定义 (web/src/index.css)

变量亮色模式深色模式说明
--color-bg#fff9fb#0f172a页面背景
--color-card#ffffff#1e293b卡片背景
--color-hover#fff0f5#273449悬停/高亮背景
--color-primary#ff6b9b#ff6b9b主题色(粉色)
--color-border#ffd9e5#334155边框颜色
--color-text#333333#f8fafc主文字颜色

提示

如需添加新的弹幕源,请参考 src/scrapers/base.py 中的基类定义,并在 src/services/scraper_manager.py 中注册新的爬虫。

基于 AGPL-3.0 许可发布