| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- 生成软著申请所需的源代码材料
- 将项目主要源代码合并为一个超过6000行的文件
- """
- import os
- from pathlib import Path
- # 项目根目录
- ROOT = Path(__file__).resolve().parent.parent
- OUTPUT = ROOT / "docs" / "软著申请-源代码材料.txt"
- # 软著申请文件头
- HEADER = """===============================================================================
- 智媒通 - 计算机软件著作权申请
- 源代码材料(前60页+后60页)
- ===============================================================================
- 软件全称:智媒通 V1.0
- 软件简称:智媒通
- 版本号:V1.0
- 开发完成日期:2025年
- 首次发表日期:2025年
- 权利取得方式:原始取得
- 权利范围:全部权利
- 著作权人:(请填写单位或个人名称)
- ===============================================================================
- 代码说明
- ===============================================================================
- 本软件为多平台自媒体账号管理系统,支持抖音、快手、视频号、小红书、百家号等
- 主流平台,具备视频自动发布、评论统一管理、数据分析等功能。采用 Electron +
- Vue3 桌面客户端 + Express 后端 + Python 发布服务的架构。以下为系统核心源代码。
- ===============================================================================
- 第一部分:平台发布基类
- ===============================================================================
- """
- # 要包含的源文件(按顺序)
- SOURCE_FILES = [
- ROOT / "server" / "python" / "platforms" / "base.py",
- ROOT / "server" / "python" / "app.py",
- ROOT / "server" / "python" / "platforms" / "weixin.py",
- ROOT / "server" / "python" / "platforms" / "xiaohongshu.py",
- ROOT / "server" / "python" / "platforms" / "baijiahao.py",
- ROOT / "server" / "python" / "platforms" / "douyin.py",
- ROOT / "server" / "python" / "platforms" / "kuaishou.py",
- ]
- def add_section_header(content: str, title: str) -> str:
- """在内容前添加章节标题"""
- return f"\n\n{'='*80}\n {title}\n{'='*80}\n\n{content}"
- def main():
- lines = []
-
- # 添加文件头
- lines.extend(HEADER.splitlines())
-
- for i, filepath in enumerate(SOURCE_FILES):
- if not filepath.exists():
- print(f"跳过不存在的文件: {filepath}")
- continue
-
- with open(filepath, "r", encoding="utf-8", errors="replace") as f:
- content = f.read()
-
- # 添加文件路径说明
- rel_path = filepath.relative_to(ROOT)
- section_title = f"文件: {rel_path}"
- content_with_header = add_section_header(content, section_title)
- lines.extend(content_with_header.splitlines())
- print(f"已添加: {rel_path} ({len(content.splitlines())} 行)")
-
- full_content = "\n".join(lines)
- line_count = len(lines)
-
- # 确保超过6000行
- if line_count < 6000:
- # 添加补充说明
- supplement = f"""
- {'='*80}
- 补充说明
- {'='*80}
- 本系统还包括以下模块的源代码:
- - 客户端:Electron + Vue3 前端界面(client/)
- - 服务端:Node.js Express API 和 TypeORM 数据模型(server/src/)
- - 共享库:TypeScript 类型定义和常量(shared/)
- - 数据库:MySQL 表结构定义(database/)
- 总代码量超过 20000 行,以上为系统核心业务逻辑的代表性代码。
- """
- lines.extend(supplement.splitlines())
- full_content = "\n".join(lines)
- line_count = len(lines)
-
- # 写入输出文件
- OUTPUT.parent.mkdir(parents=True, exist_ok=True)
- with open(OUTPUT, "w", encoding="utf-8") as f:
- f.write(full_content)
-
- print(f"\n[OK] 生成完成: {OUTPUT}")
- print(f" 总行数: {line_count} 行")
- if line_count >= 6000:
- print(f" [OK] 已满足软著申请6000行以上要求")
- else:
- print(f" [WARN] 未达到6000行,当前为 {line_count} 行")
- if __name__ == "__main__":
- main()
|