{"id":32358691,"url":"https://github.com/anicmv/pt-gen-vue","last_synced_at":"2026-05-16T17:08:06.665Z","repository":{"id":319626174,"uuid":"1079232332","full_name":"anicmv/pt-gen-vue","owner":"anicmv","description":"基于 Vue 3 + TypeScript + Cloudflare Workers 的 PT 站点简介生成工具","archived":false,"fork":false,"pushed_at":"2025-10-19T16:44:53.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-19T19:41:31.515Z","etag":null,"topics":["pt","pt-gen","ptgen","vue","vue3"],"latest_commit_sha":null,"homepage":"https://yfk.me","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anicmv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-19T11:51:01.000Z","updated_at":"2025-10-19T16:44:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"ed983716-734d-4808-956c-68bd7db03ba5","html_url":"https://github.com/anicmv/pt-gen-vue","commit_stats":null,"previous_names":["anicmv/pt-gen-vue"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/anicmv/pt-gen-vue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicmv%2Fpt-gen-vue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicmv%2Fpt-gen-vue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicmv%2Fpt-gen-vue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicmv%2Fpt-gen-vue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anicmv","download_url":"https://codeload.github.com/anicmv/pt-gen-vue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicmv%2Fpt-gen-vue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33111500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pt","pt-gen","ptgen","vue","vue3"],"created_at":"2025-10-24T13:29:41.457Z","updated_at":"2026-05-16T17:08:06.660Z","avatar_url":"https://github.com/anicmv.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PT Gen Vue\n\n基于 Vue 3 + TypeScript + Cloudflare Workers 的 PT 站点简介生成工具\n\n## ✨ 功能特性\n\n- 🎬 支持豆瓣电影/电视剧数据抓取\n- 🔍 支持豆瓣移动端搜索接口\n- 📺 支持 Bangumi 番组数据\n- 🚀 基于 Cloudflare Workers 部署，全球加速\n- 💾 支持 KV 缓存，提升响应速度\n- 🎨 现代化 Vue 3 + Tailwind CSS 界面\n\n## 📦 技术栈\n\n- **前端**: Vue 3 + TypeScript + Tailwind CSS\n- **后端**: Cloudflare Workers\n- **构建工具**: Vite\n- **包管理**: pnpm\n\n## 🚀 快速开始\n\n### 1. 克隆项目\n\n```bash\ngit clone https://github.com/anicmv/pt-gen-vue.git\ncd pt-gen-vue\npnpm install\n```\n\n### 2. 配置 Cloudflare KV（必需）\n\n#### 2.1 创建 KV Namespace\n\n1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com/)\n2. 进入 **Workers \u0026 Pages** → **KV**\n3. 点击 **Create a namespace**\n4. 输入名称（如 `PT_GEN_STORE`）\n5. 复制生成的 **Namespace ID**\n\n#### 2.2 修改配置文件\n\n复制配置文件模板：\n\n```bash\ncp wrangler.jsonc.example wrangler.jsonc\n```\n\n编辑 `wrangler.jsonc`，填入你的 KV Namespace ID：\n\n```jsonc\n{\n  \"kv_namespaces\": [\n    {\n      \"binding\": \"PT_GEN_STORE\",\n      \"id\": \"你的KV_NAMESPACE_ID\"  // 替换为实际的 ID\n    }\n  ]\n}\n```\n\n### 3. 本地开发\n\n```bash\npnpm dev\n```\n\n访问 `http://localhost:5173` 即可使用。\n\n### 4. 部署到 Cloudflare\n\n```bash\npnpm run deploy\n```\n\n部署成功后，你会得到一个 `*.workers.dev` 的访问地址。\n\n## ⚙️ 可选配置\n\n### 数据保存功能\n\n如果需要将豆瓣数据保存到外部 API，可以配置以下环境变量。\n\n#### 生产环境（推荐）\n\n使用 Cloudflare Secrets（加密存储）：\n\n```bash\n# 更新 wrangler 到最新版本\npnpm add -D wrangler@latest\n\n# 设置 API URL\npnpm wrangler secret put SAVE_API_URL --name pt-gen-vue\n# 输入: https://your-api-url.com/save\n\n# 设置 API Token\npnpm wrangler secret put SAVE_API_TOKEN --name pt-gen-vue\n# 输入: your_token_here\n```\n\n#### 本地开发\n\n创建 `.dev.vars` 文件（已在 `.gitignore` 中）：\n\n```bash\nSAVE_API_URL=https://your-api-url.com/save\nSAVE_API_TOKEN=your_token_here\n```\n\n\u003e ⚠️ **注意**: 不要将 `.dev.vars` 提交到 Git！\n\n如果不配置这两个变量，数据保存功能将被禁用，不影响正常使用。\n\n## 📖 使用说明\n\n### 搜索功能\n\n1. 在输入框中输入电影/电视剧名称\n2. 点击\"搜索\"按钮\n3. 从搜索结果中选择目标条目\n\n### 直接查询\n\n1. 在输入框中粘贴豆瓣链接（如 `https://movie.douban.com/subject/1292052/`）\n2. 点击\"查询\"按钮\n3. 自动生成格式化的简介信息\n\n### 支持的链接格式\n\n- 豆瓣电影: `https://movie.douban.com/subject/{id}/`\n- Bangumi: `https://bgm.tv/subject/{id}/`\n\n## 🔧 开发命令\n\n```bash\n# 安装依赖\npnpm install\n\n# 本地开发\npnpm dev\n\n# 构建项目\npnpm build\n\n# 预览构建结果\npnpm preview\n\n# 部署到 Cloudflare\npnpm run deploy\n\n# 生成 Cloudflare Workers 类型\npnpm run cf-typegen\n\n# 代码检查\npnpm lint\n```\n\n## 📁 项目结构\n\n```\npt-gen-vue/\n├── api/                    # Cloudflare Workers 后端\n│   ├── config/            # 配置文件\n│   │   └── domain.ts      # 支持的域名正则\n│   ├── lib/               # 核心库\n│   │   ├── common.ts      # 公共函数\n│   │   ├── douban.ts      # 豆瓣数据源\n│   │   ├── doubanMobile.ts # 豆瓣移动端\n│   │   └── bangumi.ts     # Bangumi 数据源\n│   ├── type/              # TypeScript 类型定义\n│   └── index.ts           # Workers 入口\n├── src/                   # Vue 前端\n│   ├── App.vue            # 主组件\n│   ├── main.ts            # 入口文件\n│   └── assets/            # 静态资源\n├── wrangler.jsonc         # Cloudflare Workers 配置\n└── package.json           # 项目配置\n```\n\n## 🔒 安全说明\n\n### 敏感信息保护\n\n以下文件包含敏感信息，**不应提交到 Git**：\n\n- `wrangler.jsonc` - 包含 KV Namespace ID\n- `.dev.vars` - 包含本地开发的 API Token\n- `.wrangler/` - Cloudflare 本地缓存\n\n这些文件已在 `.gitignore` 中配置。\n\n### 配置文件模板\n\n项目提供了以下模板文件供参考：\n\n- `wrangler.jsonc.example` - Workers 配置模板\n- `.dev.vars.example` - 本地环境变量模板\n\n## 🤝 贡献指南\n\n欢迎提交 Issue 和 Pull Request！\n\n1. Fork 本仓库\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 开启 Pull Request\n\n## 📝 许可证\n\n本项目基于 MIT 许可证开源。\n\n## 🙏 致谢\n\n- 原项目: [Rhilip/pt-gen-cfworker](https://github.com/Rhilip/pt-gen-cfworker)\n- 数据来源: 豆瓣电影、Bangumi\n\n## 📮 联系方式\n\n如有问题或建议，欢迎：\n\n- 提交 [Issue](https://github.com/anicmv/pt-gen-vue/issues)\n---\n\n**⭐ 如果这个项目对你有帮助，请给个 Star！**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanicmv%2Fpt-gen-vue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanicmv%2Fpt-gen-vue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanicmv%2Fpt-gen-vue/lists"}