Skip to content

sqzw-x/mdcx

Folders and files

NameName
Last commit message
Last commit date
Jun 5, 2024
Dec 18, 2024
Apr 8, 2025
Apr 9, 2025
Oct 22, 2024
Apr 8, 2025
Nov 11, 2023
Nov 25, 2024
Jan 14, 2024
Feb 17, 2024
Apr 8, 2025
Jan 2, 2025
Jan 19, 2024
Sep 24, 2024
Sep 24, 2024
Sep 24, 2024
Apr 8, 2025
Jul 23, 2024
Apr 9, 2025
Feb 7, 2025
Feb 7, 2025
Jan 2, 2025

Repository files navigation

MDCx

python

上游项目

  • yoshiko2/Movie_Data_Capture: CLI 工具, 开源版本现已不活跃, 新版本已闭源商业化.
  • moyy996/AVDC: 上述项目早期的一个 Fork, 使用 PyQt 实现了图形界面, 已停止维护
  • @Hermit/MDCx: AVDC 的 Fork, 一度在 anyabc/something 分发源代码及可执行文件.
  • 2023-11-3 @anyabc 因未知原因销号删库, 其分发的最后一个版本号为 20231014.

向相关开发者表示敬意.

关于本项目

  • 本项目基于 @Hermit/MDCx, 对代码进行了大幅的重构与拆分, 以提高可维护性
  • MacOS 版本为自动构建, 不保证可用性
  • 尽管重构了大部分代码, 但由于代码耦合度仍然很高, 可维护性很差, 因此仅修复 bug, 不考虑加入新功能
  • 当然如果直接 PR 也可以

构建

一般情况请勿自行构建, 至 Release 下载最新版

Windows 7

Windows 7 上需使用 Python 3.8 构建, 代码及依赖均兼容, 可在本地自行构建. 也可使用 GitHub Actions 构建:

  1. fork 本仓库, 在仓库设置中启用 Actions
  2. 参考 为存储库创建配置变量, 设置 BUILD_FOR_WINDOWS_LEGACY 变量, 值非空即可
  3. 在 Actions 中手动运行 Build and Release

macOS

低版本 macOS: 需注意 opencv 兼容性问题, 参考 issue #82. 也可使用 GitHub Actions 构建, 步骤同上, 需设置 BUILD_FOR_MACOS_LEGACY 变量, 值非空即可; 以及 MACOS_LEGACY_CV_VERSION 变量, 值为兼容的 opencv-contrib-python-headless 版本

ARM64(AArch64) 架构: 可本地构建. 若欲使用 GitHub Actions 构建, 需 添加自托管的运行器, 并设置 SELF_HOSTED_MACOS_ARM64_RUNNER 变量

开发

环境准备

  • python 3.9
  • Windows 10/11
  • macOS 10.15.7+

准备源码

  • 方式1: 下载 仓库源码Release源码,下载后解压
  • 方式2: git克隆项目
    git clone https://github.com/sqzw-x/mdcx.git

运行

Windows

  • cmd
cd /d D:\dev\mdcx
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
set PYTHONPATH=.\src;%PYTHONPATH%
python main.py
  • powershell
cd D:\dev\mdcx
python -m venv venv
venv\Scripts\Activate.ps1
pip install -r requirements.txt
$env:PYTHONPATH = "./src;$env:PYTHONPATH"
python main.py

macOS

cd /path/to/mdcx
python -m venv venv
source venv/bin/activate
pip install -r requirements-mac.txt
export PYTHONPATH=./src:$PYTHONPATH
python main.py

如何添加新配置项

  1. config.ini.default 中添加配置项及其默认值, 值类型可以是字符串, 整数, 浮点数
  2. 如果此值非字符串, 在 src/models/config/config_manual.py 中将配置键加入 INT_KEYFLOAT_KEY
  3. 修改 src/models/config/config_generator.py 中的 CONFIG_STR, 这用于生成默认配置文件
  4. 修改 src.models.config.config.MDCxConfig.save_config 方法, 将新配置项加入模板字符串中, 这用于保存配置文件
  5. 运行 src/models/config/config_generator.py, 这将更新 src/models/config/config_generated.py
  6. 现在可以通过 from models.config.config import config 导入配置, 并通过 config.<key> 获取对应值, 且支持 IDE 补全
  7. 按下一节所述在设置界面中添加对应的控件
  8. 修改 src/controllers/main_window/ 目录下 load_config.pysave_config.py, 以实现与图形界面的交互

如何修改图形界面

  • src/views/MDCx.ui 定义了主窗口, src/views/posterCutTool.ui 是图片裁剪窗口, 可使用 Qt Designer 或 Qt Creator 编辑
  • 修改后运行 pyuic5 src\views\MDCx.ui -o src\views\MDCx.py 生成对应的 Python 代码
  • 如需设置控件事件等, 需修改 src.controllers.main_window.init.Init_Singal
  • 所有事件处理函数均在 src/controllers/main_window/main_window.py

代码结构说明

  • src/models 中包括全部业务逻辑, 其中:
  • config 目录包括配置管理相关的代码
  • base 目录包括基本的功能函数, 它们耦合度较低
  • core 包括核心功能实现, 其中 scraper.py 包括刮削过程的实现
  • signals.py 包括 Qt 信号量, 这是 MC 解耦的关键, 它也负责日志打印
  • configsignal 是预定义的单例, 可以在任何位置导入使用
  • viewscontrollers 结构相对简单, 可参考上文说明

授权许可

本插件项目在 GPLv3 许可授权下发行。此外,如果使用本项目表明还额外接受以下条款:

  • 本项目仅供学习以及技术交流使用
  • 请勿在公共社交平台上宣传此项目
  • 使用本软件时请遵守当地法律法规
  • 法律及使用后果由使用者自己承担
  • 禁止将本软件用于任何的商业用途