refactor: 将 WebUI 源码纳入仓库,移除打包产物
- 新增 webui/ 前端源码目录(React+Vite+TypeScript+Tailwind) - 删除 api/webui/ 中旧的打包静态资源 - 更新 .gitignore 忽略 api/webui/ 构建输出和 webui/node_modules - 更新 README 增加前端构建说明
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"status": {
|
||||
"active": "ACTIVE",
|
||||
"standby": "STANDBY",
|
||||
"idle": "IDLE",
|
||||
"running": "RUNNING",
|
||||
"stopping": "STOPPING",
|
||||
"error": "ERROR"
|
||||
},
|
||||
"sidebar": {
|
||||
"title": "MediaCrawler",
|
||||
"api": "API",
|
||||
"local": "LOCAL",
|
||||
"disclaimer": "For personal learning only, commercial use prohibited",
|
||||
"license": "License"
|
||||
},
|
||||
"action": {
|
||||
"loading": "Loading...",
|
||||
"skip": "SKIP_CHECK",
|
||||
"retry": "RETRY_SCAN"
|
||||
},
|
||||
"unit": {
|
||||
"entries": "entries",
|
||||
"records": "records"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"section": {
|
||||
"targetMatrix": {
|
||||
"title": "TARGET_MATRIX",
|
||||
"description": "Platform, mode & search parameters"
|
||||
},
|
||||
"authMatrix": {
|
||||
"title": "AUTH_MATRIX",
|
||||
"description": "Login method configuration"
|
||||
},
|
||||
"outputConfig": {
|
||||
"title": "OUTPUT_CONFIG",
|
||||
"description": "Save format & comment options"
|
||||
},
|
||||
"runtime": {
|
||||
"title": "RUNTIME",
|
||||
"description": "Runtime parameters"
|
||||
}
|
||||
},
|
||||
"field": {
|
||||
"platform": "PLATFORM",
|
||||
"platformPlaceholder": "Select platform",
|
||||
"crawlType": "CRAWL_TYPE",
|
||||
"crawlTypePlaceholder": "Select type",
|
||||
"startPage": "START_PAGE",
|
||||
"keywords": "KEYWORDS",
|
||||
"keywordsHint": "Press Enter to add keyword",
|
||||
"keywordsPlaceholder": "Type keyword, press Enter to add...",
|
||||
"specifiedIds": "POST/VIDEO_ID",
|
||||
"specifiedIdsHint": "Enter post or video ID/URL, one per line or comma-separated",
|
||||
"specifiedIdsPlaceholder": {
|
||||
"bili": "Examples:\nBV1xxxx\nhttps://www.bilibili.com/video/BV1xxxx",
|
||||
"xhs": "Examples:\nhttps://www.xiaohongshu.com/explore/xxx?xsec_token=xxx\n(must include xsec_token)",
|
||||
"dy": "Examples:\n7525538910311632128\nhttps://www.douyin.com/video/xxx\nhttps://v.douyin.com/xxx (short link)",
|
||||
"wb": "Examples:\n4982041758140155\nhttps://weibo.com/xxx/xxx",
|
||||
"ks": "Examples:\n3xf8enb8dbj6uig\nhttps://www.kuaishou.com/short-video/xxx",
|
||||
"default": "Enter post/video ID or URL..."
|
||||
},
|
||||
"creatorIds": "CREATOR_ID",
|
||||
"creatorIdsHint": "Enter creator ID/URL, one per line or comma-separated",
|
||||
"creatorIdsPlaceholder": {
|
||||
"bili": "Examples:\n434377496\nhttps://space.bilibili.com/434377496",
|
||||
"xhs": "Examples:\nhttps://www.xiaohongshu.com/user/profile/xxx?xsec_token=xxx\n(must include xsec_token)",
|
||||
"dy": "Examples:\nMS4wLjABAAAAxxx\nhttps://www.douyin.com/user/MS4wLjABAAAAxxx",
|
||||
"wb": "Examples:\n5533390220\nhttps://weibo.com/u/5533390220",
|
||||
"ks": "Examples:\n3x84qugg4ch9zhs\nhttps://www.kuaishou.com/profile/xxx",
|
||||
"default": "Enter creator ID or URL..."
|
||||
},
|
||||
"loginMethod": "LOGIN_METHOD",
|
||||
"loginMethodPlaceholder": "Select login method",
|
||||
"cookies": "COOKIES",
|
||||
"cookiesHint": "Paste cookie string",
|
||||
"cookiesPlaceholder": "Paste cookies here...",
|
||||
"saveFormat": "SAVE_FORMAT",
|
||||
"saveFormatPlaceholder": "Select format",
|
||||
"commentExtraction": "Comment Extraction",
|
||||
"subComments": "Sub-comments",
|
||||
"headlessMode": "HEADLESS_MODE",
|
||||
"headlessModeHint": "Run browser without GUI"
|
||||
},
|
||||
"button": {
|
||||
"initiateScan": "INITIATE SCAN",
|
||||
"initiating": "INITIATING...",
|
||||
"terminate": "TERMINATE",
|
||||
"stopping": "STOPPING..."
|
||||
},
|
||||
"warning": {
|
||||
"cookieSlider": "[Note] Cookie login is not recommended for Xiaohongshu and Douyin due to slider captcha",
|
||||
"xhsToken": "[Important] Xiaohongshu URLs must contain xsec_token parameter, please copy the full URL from browser"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"dialog": {
|
||||
"button": "PAYLOAD_MATRIX",
|
||||
"title": "DATA_EXPLORER"
|
||||
},
|
||||
"explorer": {
|
||||
"title": "CAPTURED_PAYLOAD_MATRIX",
|
||||
"records": "{{count}} RECORDS",
|
||||
"rescan": "RESCAN",
|
||||
"loading": "[LOADING] Scanning payload directory...",
|
||||
"noData": "NO_DATA_CAPTURED",
|
||||
"noDataHint": "Initialize crawler to begin data extraction sequence. Results will appear here upon completion.",
|
||||
"allCategories": "ALL"
|
||||
},
|
||||
"file": {
|
||||
"entries": "{{count}} entries",
|
||||
"extract": "EXTRACT",
|
||||
"preview": "PREVIEW"
|
||||
},
|
||||
"preview": {
|
||||
"title": "Data Preview",
|
||||
"records": "{{count}} RECORDS",
|
||||
"download": "DOWNLOAD",
|
||||
"loading": "[LOADING] Decoding payload...",
|
||||
"error": "[ERROR] Failed to decode payload",
|
||||
"searchPlaceholder": "Search in data...",
|
||||
"showing": "Showing {{filtered}} of {{total}} records"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"title": "ENV_DIAGNOSTICS",
|
||||
"scanning": "[SCAN] Analyzing MediaCrawler environment...",
|
||||
"success": "[OK] {{message}}",
|
||||
"error": "[ERR] {{message}}",
|
||||
"defaultError": "Cannot connect to API server",
|
||||
"defaultErrorHint": "Please ensure backend service is running (uvicorn api.main:app --port 8080)",
|
||||
"showDetails": "[+] SHOW_DETAILS",
|
||||
"hideDetails": "[-] HIDE_DETAILS",
|
||||
"requirements": "[REQUIREMENTS]",
|
||||
"requirementsList": {
|
||||
"1": "Install uv package manager",
|
||||
"2": "Execute uv sync in project root",
|
||||
"3": "Verify all dependencies installed"
|
||||
},
|
||||
"skipCheck": "SKIP_CHECK",
|
||||
"retryCheck": "RETRY_SCAN"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"title": "Usage Notice",
|
||||
"warning": "Please read the following terms carefully",
|
||||
"content": {
|
||||
"line1": "This project is for personal learning and research purposes only",
|
||||
"line2": "Commercial use or profit-making activities are strictly prohibited",
|
||||
"line3": "By using this project, you agree to comply with all applicable laws",
|
||||
"line4": "Users bear full responsibility for any consequences of misuse"
|
||||
},
|
||||
"license": "View Full License",
|
||||
"github": "Visit GitHub Repository",
|
||||
"confirm": "I understand and agree to the above terms",
|
||||
"decline": "Disagree, Exit",
|
||||
"author": {
|
||||
"name": "Relakkes (阿江)",
|
||||
"tagline": "40K+ Star Open Source Author",
|
||||
"description": "Author of MediaCrawler (40K stars), focused on crawler tech and AI Agent knowledge sharing",
|
||||
"support": "If you find this project helpful, please follow the author on social media",
|
||||
"slogan": "Open source is hard, please star ⭐"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"header": {
|
||||
"title": "SYSTEM_CONSOLE",
|
||||
"entries": "{{count}} entries",
|
||||
"active": "ACTIVE",
|
||||
"clear": "CLEAR",
|
||||
"restore": "RESTORE ALL LOGS"
|
||||
},
|
||||
"banner": {
|
||||
"systemInit": "[SYS] System initialized successfully",
|
||||
"configHint": "[INFO] Configure parameters and initiate scan sequence..."
|
||||
},
|
||||
"footer": {
|
||||
"awaiting": "awaiting_command..."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"status": {
|
||||
"active": "运行中",
|
||||
"standby": "待机",
|
||||
"idle": "空闲",
|
||||
"running": "运行中",
|
||||
"stopping": "停止中",
|
||||
"error": "错误"
|
||||
},
|
||||
"sidebar": {
|
||||
"title": "MediaCrawler",
|
||||
"api": "API",
|
||||
"local": "本地",
|
||||
"disclaimer": "仅供个人学习研究使用,禁止商业用途",
|
||||
"license": "查看协议"
|
||||
},
|
||||
"action": {
|
||||
"loading": "加载中...",
|
||||
"skip": "跳过检测",
|
||||
"retry": "重新扫描"
|
||||
},
|
||||
"unit": {
|
||||
"entries": "条记录",
|
||||
"records": "条"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"section": {
|
||||
"targetMatrix": {
|
||||
"title": "目标配置",
|
||||
"description": "平台、模式与搜索参数"
|
||||
},
|
||||
"authMatrix": {
|
||||
"title": "登录配置",
|
||||
"description": "登录方式配置"
|
||||
},
|
||||
"outputConfig": {
|
||||
"title": "输出配置",
|
||||
"description": "保存格式与评论选项"
|
||||
},
|
||||
"runtime": {
|
||||
"title": "运行参数",
|
||||
"description": "运行时参数"
|
||||
}
|
||||
},
|
||||
"field": {
|
||||
"platform": "平台",
|
||||
"platformPlaceholder": "选择平台",
|
||||
"crawlType": "爬取类型",
|
||||
"crawlTypePlaceholder": "选择类型",
|
||||
"startPage": "起始页",
|
||||
"keywords": "关键词",
|
||||
"keywordsHint": "输入关键词后按回车添加",
|
||||
"keywordsPlaceholder": "输入关键词,按回车添加...",
|
||||
"specifiedIds": "帖子/视频 ID",
|
||||
"specifiedIdsHint": "输入帖子或视频的ID/URL,每行一个或用逗号分隔",
|
||||
"specifiedIdsPlaceholder": {
|
||||
"bili": "示例:\nBV1xxxx\nhttps://www.bilibili.com/video/BV1xxxx",
|
||||
"xhs": "示例:\nhttps://www.xiaohongshu.com/explore/xxx?xsec_token=xxx\n(必须包含xsec_token参数)",
|
||||
"dy": "示例:\n7525538910311632128\nhttps://www.douyin.com/video/xxx\nhttps://v.douyin.com/xxx (短链接)",
|
||||
"wb": "示例:\n4982041758140155\nhttps://weibo.com/xxx/xxx",
|
||||
"ks": "示例:\n3xf8enb8dbj6uig\nhttps://www.kuaishou.com/short-video/xxx",
|
||||
"default": "输入帖子/视频 ID 或 URL..."
|
||||
},
|
||||
"creatorIds": "创作者 ID",
|
||||
"creatorIdsHint": "输入创作者的ID/URL,每行一个或用逗号分隔",
|
||||
"creatorIdsPlaceholder": {
|
||||
"bili": "示例:\n434377496\nhttps://space.bilibili.com/434377496",
|
||||
"xhs": "示例:\nhttps://www.xiaohongshu.com/user/profile/xxx?xsec_token=xxx\n(必须包含xsec_token参数)",
|
||||
"dy": "示例:\nMS4wLjABAAAAxxx\nhttps://www.douyin.com/user/MS4wLjABAAAAxxx",
|
||||
"wb": "示例:\n5533390220\nhttps://weibo.com/u/5533390220",
|
||||
"ks": "示例:\n3x84qugg4ch9zhs\nhttps://www.kuaishou.com/profile/xxx",
|
||||
"default": "输入创作者 ID 或 URL..."
|
||||
},
|
||||
"loginMethod": "登录方式",
|
||||
"loginMethodPlaceholder": "选择登录方式",
|
||||
"cookies": "Cookies",
|
||||
"cookiesHint": "粘贴 Cookie 字符串",
|
||||
"cookiesPlaceholder": "在此粘贴 Cookies...",
|
||||
"saveFormat": "保存格式",
|
||||
"saveFormatPlaceholder": "选择格式",
|
||||
"commentExtraction": "评论抓取",
|
||||
"subComments": "子评论",
|
||||
"headlessMode": "无头模式",
|
||||
"headlessModeHint": "无 GUI 运行浏览器"
|
||||
},
|
||||
"button": {
|
||||
"initiateScan": "开始爬虫",
|
||||
"initiating": "启动中...",
|
||||
"terminate": "终止",
|
||||
"stopping": "停止中..."
|
||||
},
|
||||
"warning": {
|
||||
"cookieSlider": "[提示] 小红书和抖音平台不建议使用 Cookie 登录,因为可能会触发滑块验证",
|
||||
"xhsToken": "[重要] 小红书 URL 必须包含 xsec_token 参数,请从浏览器复制完整 URL"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"dialog": {
|
||||
"button": "数据管理",
|
||||
"title": "数据浏览器"
|
||||
},
|
||||
"explorer": {
|
||||
"title": "数据文件管理",
|
||||
"records": "{{count}} 条",
|
||||
"rescan": "重新扫描",
|
||||
"loading": "[加载中] 正在扫描数据目录...",
|
||||
"noData": "暂无数据",
|
||||
"noDataHint": "启动爬虫开始数据采集,完成后结果将显示在此处。",
|
||||
"allCategories": "全部"
|
||||
},
|
||||
"file": {
|
||||
"entries": "{{count}} 条",
|
||||
"extract": "下载",
|
||||
"preview": "预览"
|
||||
},
|
||||
"preview": {
|
||||
"title": "数据预览",
|
||||
"records": "{{count}} 条记录",
|
||||
"download": "下载",
|
||||
"loading": "[加载中] 正在解析数据...",
|
||||
"error": "[错误] 数据解析失败",
|
||||
"searchPlaceholder": "搜索数据...",
|
||||
"showing": "显示 {{filtered}} / {{total}} 条记录"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"title": "环境检测",
|
||||
"scanning": "[扫描] 正在分析 MediaCrawler 环境...",
|
||||
"success": "[成功] {{message}}",
|
||||
"error": "[错误] {{message}}",
|
||||
"defaultError": "无法连接到 API 服务器",
|
||||
"defaultErrorHint": "请确保后端服务已启动 (uvicorn api.main:app --port 8080)",
|
||||
"showDetails": "[+] 显示详情",
|
||||
"hideDetails": "[-] 隐藏详情",
|
||||
"requirements": "[环境要求]",
|
||||
"requirementsList": {
|
||||
"1": "安装 uv 包管理器",
|
||||
"2": "在项目根目录执行 uv sync",
|
||||
"3": "确认所有依赖已安装"
|
||||
},
|
||||
"skipCheck": "跳过检测",
|
||||
"retryCheck": "重新检测"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"title": "使用须知",
|
||||
"warning": "请仔细阅读以下条款",
|
||||
"content": {
|
||||
"line1": "本项目仅供个人学习和研究爬虫技术使用",
|
||||
"line2": "严禁将本项目用于任何商业用途或盈利活动",
|
||||
"line3": "使用本项目即表示您同意遵守相关法律法规",
|
||||
"line4": "任何因违规使用造成的后果由使用者自行承担"
|
||||
},
|
||||
"license": "查看完整协议",
|
||||
"github": "访问 GitHub 仓库",
|
||||
"confirm": "我已知晓并同意上述条款",
|
||||
"decline": "不同意,退出",
|
||||
"author": {
|
||||
"name": "程序员阿江-Relakkes",
|
||||
"tagline": "40K+ Star 开源项目作者",
|
||||
"description": "40K开源项目MediaCrawler作者,专注爬虫技术和AI Agent知识分享",
|
||||
"support": "如果觉得项目有帮助,欢迎关注作者的社交媒体账号",
|
||||
"slogan": "开源不易,求个关注 ⭐"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"header": {
|
||||
"title": "系统控制台",
|
||||
"entries": "{{count}} 条记录",
|
||||
"active": "活跃",
|
||||
"clear": "清除",
|
||||
"restore": "恢复所有日志"
|
||||
},
|
||||
"banner": {
|
||||
"systemInit": "[系统] 系统初始化成功",
|
||||
"configHint": "[信息] 配置参数并启动扫描序列..."
|
||||
},
|
||||
"footer": {
|
||||
"awaiting": "等待命令..."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user