[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-96188":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":11,"openIssues":12,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":12,"stars7d":12,"stars30d":12,"stars90d":12,"forks30d":12,"starsTrendScore":12,"compositeScore":12,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":13,"fork":13,"defaultBranch":14,"hasWiki":15,"hasPages":13,"topics":16,"createdAt":9,"pushedAt":9,"updatedAt":17,"readmeContent":18,"aiSummary":19,"trendingCount":12,"starSnapshotCount":12,"syncStatus":20,"lastSyncTime":21,"discoverSource":22},96188,"cdcrafthh","sitimas9\u002Fcdcrafthh","sitimas9","CodeCraft-style account farm — OAuth + coupon + API key harvest",null,"Python",426,0,false,"main",true,[],"2026-09-21 02:04:30","# cdcrafthh 🚀\n\nAutomated **CodeCraft API** account farm — register via Google OAuth, apply the **100%-off yearly coupon**, and harvest the generated `cc_...` API keys.\n\n> ⚠️ **Educational \u002F research use only.** Replace the placeholders below with your own accounts and credentials. Do not use accounts you don't own.\n\n## How it works\n\n```\n┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐\n│  Google OAuth   │───▶│  Apply coupon    │───▶│  Checkout $0    │\n│  (headless CH)  │    │  (DEVWEEK-like)  │    │  (order success)│\n└─────────────────┘    └──────────────────┘    └────────┬────────┘\n                                                        │\n                                                        ▼\n                                            ┌─────────────────────────┐\n                                            │  Create API Key         │\n                                            │  → cc_xxxxxxxxxxxx      │\n                                            │  → saved to keys file   │\n                                            └─────────────────────────┘\n```\n\n1. **Browser step** — Playwright Chromium logs into Google using a saved `storage_state` (password auto-filled if the session expired), then completes the OAuth consent back to the platform.\n2. **HTTP step** — all checkout calls are done via `fetch()` **inside the page session** (critical: a separate `curl` session breaks CSRF + flash-session, which is why the key never appears).\n3. **Key extraction** — the newly created key (`cc_` + 50 chars) is scraped from the dashboard DOM.\n\n## Setup\n\n```bash\npip install playwright curl_cffi\nplaywright install chromium\n```\n\n### Prepare your state files\n\nEach Google account needs a Playwright `storage_state` JSON in `.\u002Fstates\u002F`, named after the account:\n\n```\nstates\u002F\n  YourAccountName.json      # storage_state from a logged-in Google session\n  AnotherAccount.json\n```\n\n> Tip: log into Google once in any Playwright script and save with\n> `await context.storage_state(path=\"states\u002FYourAccountName.json\")`.\n\n## Configuration (PLACEHOLDERS — edit before running)\n\nOpen `cdcrafthh.py` and replace:\n\n| Placeholder | What it is |\n|---|---|\n| `YOUR_EMAIL_DOMAIN` | email domain of your accounts (`\u003Cname>YOUR_EMAIL_DOMAIN`) |\n| `YOUR_ACCOUNT_PASSWORD` | shared Google account password |\n| `YOUR_COUPON_CODE` | the 100%-off coupon code |\n| `YOUR_PLAN_ID` | numeric plan ID from the checkout endpoint |\n| `YOUR_COUPON_AMOUNT` | amount value sent with the coupon request |\n| `YOUR_BILLING_CYCLE` | `monthly` \u002F `yearly` |\n| `YOUR_BASE_URL` | target platform base URL |\n\n## Usage\n\n```bash\n# single account\npython3 cdcrafthh.py \u003CStateNameWithoutJson> \u003Cemail>\n\n# batch (all state files, resume-safe — skips already-harvested emails)\npython3 cdcrafthh_batch.py 0 300\n```\n\nOutput: `codecraft_keys.txt` → `email|cc_xxxxxxxx` (one per line).\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| `OAUTH_FAIL` | storage_state expired → re-login & re-save, or let the script fill the password |\n| checkout OK but no `cc_` key | you're doing checkout in a separate curl session — **all calls must be `fetch()` inside the page** |\n| duplicate key-name error | key name is derived from the email; clear `codecraft_keys.txt` before rerun |\n| proxy needed | add `proxy={\"server\":\"socks5:\u002F\u002F...\"}` to `browser.launch()` |\n\n## Files\n\n- `cdcrafthh.py` — single-account worker\n- `cdcrafthh_batch.py` — batch runner (resume-safe)\n\n---\n\nMade with 💚 — fork it, tweak the placeholders, and go harvest responsibly.\n","cdcrafthh 是一个自动化批量注册 CodeCraft 平台账号并获取 API 密钥的工具，专为合法教育与安全研究目的设计。它通过 Playwright 模拟浏览器完成 Google OAuth 登录、应用指定优惠券（如 100% 折扣年付计划）、零元下单，并在页面上下文中调用 checkout 接口以规避 CSRF 和会话失效问题，最终从控制台 DOM 中提取生成的 `cc_` 开头的 API 密钥。项目依赖 headless Chromium 和 session 状态复用机制，强调状态一致性与前端上下文执行。适用于授权范围内的平台功能测试、API 配额评估及 OAuth 流程安全研究等场景。",2,"2026-09-12 02:30:03","CREATED_QUERY"]