#!/bin/bash # 软件著作权源代码提取脚本 # 提取前30页和后30页源代码,每页50行,共3000行 OUTPUT_DIR="c:/Users/caoyg/ai/audio-tts/audio_codebuddy/软件著作权申请材料" TEMP_FILE="$OUTPUT_DIR/source_code_all.txt" OUTPUT_FILE="$OUTPUT_DIR/02-源代码文档.txt" # 清理 > "$TEMP_FILE" > "$OUTPUT_FILE" # 写入页眉 echo "==============================================================================" >> "$OUTPUT_FILE" echo " AI有声书智能生成系统 V1.0 源代码文档" >> "$OUTPUT_FILE" echo "==============================================================================" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" echo "软件全称:AI有声书智能生成系统" >> "$OUTPUT_FILE" echo "软件简称:AI有声书系统" >> "$OUTPUT_FILE" echo "版 本 号:V1.0" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" echo "说明:本文档包含软件前30页和后30页源代码,每页50行。" >> "$OUTPUT_FILE" echo " 前30页为软件前端代码,后30页为软件后端代码。" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" # ======================== # 第一部分:前端代码(前30页,1500行) # ======================== echo "##############################################################################" >> "$OUTPUT_FILE" echo "# 第一部分:前端源代码(前30页)" >> "$OUTPUT_FILE" echo "##############################################################################" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" # 收集前端核心文件 FRONTEND_FILES=( "my-uniapp-vue3/src/main.ts" "my-uniapp-vue3/src/App.vue" "my-uniapp-vue3/src/config.ts" "my-uniapp-vue3/src/store/user.ts" "my-uniapp-vue3/src/store/audio.ts" "my-uniapp-vue3/src/store/notification.ts" "my-uniapp-vue3/src/pages/index/index.vue" "my-uniapp-vue3/src/pages/create/index.vue" "my-uniapp-vue3/src/pages/book-generator/create.vue" "my-uniapp-vue3/src/pages/book-generator/detail.vue" "my-uniapp-vue3/src/pages/book-generator/interactive.vue" "my-uniapp-vue3/src/pages/book-generator/chapter-detail.vue" "my-uniapp-vue3/src/pages/player/index.vue" "my-uniapp-vue3/src/pages/member/index.vue" "my-uniapp-vue3/src/pages/mine/index.vue" "my-uniapp-vue3/src/pages/search/index.vue" "my-uniapp-vue3/src/pages/history/index.vue" "my-uniapp-vue3/src/pages/favorites/index.vue" "my-uniapp-vue3/src/pages/login/index.vue" "my-uniapp-vue3/src/pages/settings/index.vue" "my-uniapp-vue3/src/pages/billing/index.vue" "my-uniapp-vue3/src/pages/notifications/index.vue" "my-uniapp-vue3/src/pages/album/index.vue" "my-uniapp-vue3/src/pages/albums/index.vue" "my-uniapp-vue3/src/pages/pixelle-video/index.vue" "my-uniapp-vue3/src/components/MiniPlayer.vue" "my-uniapp-vue3/src/components/AudioDownload.vue" "my-uniapp-vue3/src/components/SharePanel.vue" "my-uniapp-vue3/src/components/CreditInsufficientModal.vue" "my-uniapp-vue3/src/components/GenerationStatusBadge.vue" ) cd "c:/Users/caoyg/ai/audio-tts/audio_codebuddy" frontend_count=0 for file in "${FRONTEND_FILES[@]}"; do if [ -f "$file" ]; then echo "" >> "$OUTPUT_FILE" echo "// ═══════════════════════════════════════════════════════════════" >> "$OUTPUT_FILE" echo "// 文件: $file" >> "$OUTPUT_FILE" echo "// ═══════════════════════════════════════════════════════════════" >> "$OUTPUT_FILE" # 去除空行,保留有效代码 grep -v '^\s*$' "$file" | head -80 >> "$OUTPUT_FILE" frontend_count=$((frontend_count + 1)) fi done # ======================== # 第二部分:后端代码(后30页,1500行) # ======================== echo "" >> "$OUTPUT_FILE" echo "##############################################################################" >> "$OUTPUT_FILE" echo "# 第二部分:后端源代码(后30页)" >> "$OUTPUT_FILE" echo "##############################################################################" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" # 收集后端核心文件 BACKEND_FILES=( "server/src/app.ts" "server/src/config/index.ts" "server/src/models/index.ts" "server/src/middleware/auth.ts" "server/src/middleware/security.ts" "server/src/middleware/errorHandler.ts" "server/src/middleware/rate-limiter.ts" "server/src/modules/auth/auth.controller.ts" "server/src/modules/auth/auth.service.ts" "server/src/modules/book-generator/book-generator.controller.ts" "server/src/modules/book-generator/book-generator.service.ts" "server/src/modules/book-generator/langgraph-controller.ts" "server/src/modules/book-generator/book-generator.store.ts" "server/src/modules/book-generator/book-generator.types.ts" "server/src/modules/book-generator/graph.ts" "server/src/modules/book-generator/nodes/content.node.ts" "server/src/modules/book-generator/nodes/plan.node.ts" "server/src/modules/book-generator/nodes/outline.node.ts" "server/src/modules/book-generator/nodes/quality-check.node.ts" "server/src/modules/tts/tts.service.ts" "server/src/modules/player/player.controller.ts" "server/src/modules/member/member.controller.ts" "server/src/modules/subscription/subscription.controller.ts" "server/src/modules/payment/payment.controller.ts" "server/src/modules/favorites/favorites.controller.ts" "server/src/modules/history/history.controller.ts" "server/src/modules/search/search.controller.ts" "server/src/services/oss.service.ts" "server/src/services/queue.service.ts" "server/src/services/websocket.service.ts" ) backend_count=0 for file in "${BACKEND_FILES[@]}"; do if [ -f "$file" ]; then echo "" >> "$OUTPUT_FILE" echo "// ═══════════════════════════════════════════════════════════════" >> "$OUTPUT_FILE" echo "// 文件: $file" >> "$OUTPUT_FILE" echo "// ═══════════════════════════════════════════════════════════════" >> "$OUTPUT_FILE" # 去除空行,保留有效代码 grep -v '^\s*$' "$file" | head -80 >> "$OUTPUT_FILE" backend_count=$((backend_count + 1)) fi done # 统计 total_lines=$(grep -c '.' "$OUTPUT_FILE") echo "" >> "$OUTPUT_FILE" echo "##############################################################################" >> "$OUTPUT_FILE" echo "# 统计信息" >> "$OUTPUT_FILE" echo "##############################################################################" >> "$OUTPUT_FILE" echo "# 前端文件数: $frontend_count" >> "$OUTPUT_FILE" echo "# 后端文件数: $backend_count" >> "$OUTPUT_FILE" echo "# 文档总行数: $total_lines" >> "$OUTPUT_FILE" echo "源代码文档已生成: $OUTPUT_FILE" echo "前端文件: $frontend_count 个" echo "后端文件: $backend_count 个" echo "总行数: $total_lines 行"