[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79919":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":8,"pushedAt":8,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":12,"lastSyncTime":26,"discoverSource":27},79919,"serenity","haskaomni\u002Fserenity","haskaomni",null,"Python",204,35,2,1,0,3,95,107,33,74.67,false,"main",[],"2026-06-12 04:01:25","# Serenity Signal Dashboard\n\n本项目抓取 `x_curl\u002F` 中的 X GraphQL curl，解析 `@aleabitoreddit` 的帖子、回复、订阅帖，抽取 `$SYMBOL`，写入本地 SQLite，并用 Yahoo chart 接口下载日线价格。\n\n![Serenity dashboard screenshot](docs\u002Fassets\u002Fserenity-dashboard.png)\n\n## 直接体验\n\n如果你不想自己搭建本地环境，可以订阅 [@iamai_omni](https:\u002F\u002Fx.com\u002Fiamai_omni\u002Fcreator-subscriptions\u002Fsubscribe)，然后访问 [app.k2ai.dev](https:\u002F\u002Fapp.k2ai.dev) 直接使用托管版。也可以扫码直接打开订阅页：\n\n\u003Cimg src=\"docs\u002Fassets\u002Fiamai-omni-subscribe-qr.png\" alt=\"Subscribe to @iamai_omni QR code\" width=\"220\">\n\n> 本项目仅用于研究和可视化，不构成投资建议。\n\n## 快速开始\n\n```bash\npython3 -m venv .venv\n.venv\u002Fbin\u002Fpython -m pip install -r requirements.txt\n\npython3 scripts\u002Fingest.py all --max-pages 10 --days 500 --min-mentions 3\npython3 scripts\u002Fserver.py --port 8787\n```\n\n打开 `http:\u002F\u002F127.0.0.1:8787`。\n\n## 从 Chrome 复制 X curl\n\n`scripts\u002Fingest.py fetch-x` 会读取 `x_curl\u002F` 目录中的浏览器请求。首次使用或登录态过期时，需要从 Chrome DevTools 重新复制。\n\n1. 用 Chrome 登录 X，并打开 `https:\u002F\u002Fx.com\u002Faleabitoreddit`。\n2. 打开 DevTools：`F12` 或 `Cmd\u002FCtrl + Shift + I`。\n3. 切到 `Network` 面板，筛选 `Fetch\u002FXHR`，也可以在过滤框输入 `UserTweets`。\n4. 刷新页面，滚动几次，触发帖子、回复或订阅内容加载。\n5. 找到以下 GraphQL 请求，右键选择 `Copy` -> `Copy as cURL`。\n6. 分别保存为这些文件名：\n\n```text\nx_curl\u002FUserTweets.curl\nx_curl\u002FUserTweetsAndReplies.curl\nx_curl\u002FUserSuperFollowTweets.curl\n```\n\n大致样例，真实内容会更长，并包含你的 cookie\u002Ftoken：\n\n```bash\nmkdir -p x_curl\ncat > x_curl\u002FUserTweets.curl \u003C\u003C'EOF_CURL'\ncurl 'https:\u002F\u002Fx.com\u002Fi\u002Fapi\u002Fgraphql\u002F...\u002FUserTweets?variables=...&features=...' \\\n  -H 'authorization: Bearer ...' \\\n  -H 'cookie: auth_token=...; ct0=...' \\\n  -H 'x-csrf-token: ...' \\\n  -H 'x-twitter-active-user: yes'\nEOF_CURL\n```\n\n注意：`x_curl\u002F*.curl` 包含登录 cookie\u002Ftoken，已经被 `.gitignore` 忽略；不要提交或分享这些文件。\n\n## 数据位置\n\n- SQLite: `data\u002Fserenity.sqlite`\n- 原始 X JSON: `data\u002Fraw\u002F*.json`\n- Dashboard: `dashboard\u002Findex.html`, `dashboard\u002Fstyles.css`, `dashboard\u002Fapp.js`\n\n## 常用命令\n\n```bash\npython3 scripts\u002Fingest.py fetch-x --max-pages 20\npython3 scripts\u002Fingest.py prices --days 700 --min-mentions 2\npython3 scripts\u002Fingest.py stats\n```\n\n注意：`x_curl\u002F*.curl` 内的登录态可能过期；若抓取返回空或报错，重新从浏览器复制 curl 后再运行。\n\n## Codex Skill\n\n本仓库内置了可开源分发的 Codex skill：`skills\u002Fserenity-stock-scorer`。它会基于本地 Serenity SQLite 快照，对单个 ticker 输出 0-100 的 Serenity 语料信号分。\n\n```bash\npython3 skills\u002Fserenity-stock-scorer\u002Fscripts\u002Fscore_serenity_stock.py NVDA --pretty\n```\n\n该 skill 默认查找 `data\u002Fserenity.sqlite`；如果数据库在其他位置，可以传 `--db \u002Fpath\u002Fto\u002Fserenity.sqlite` 或设置 `SERENITY_DB_PATH`。\n\n---\n\n# Serenity Signal Dashboard (English)\n\nThis project reads X GraphQL curl commands from `x_curl\u002F`, parses posts, replies, and premium posts from `@aleabitoreddit`, extracts `$SYMBOL` mentions, stores them in a local SQLite database, and downloads daily price bars from Yahoo's chart API.\n\n![Serenity dashboard screenshot](docs\u002Fassets\u002Fserenity-dashboard.png)\n\n## Try It Directly\n\nIf you do not want to set up the local project yourself, subscribe to [@iamai_omni](https:\u002F\u002Fx.com\u002Fiamai_omni\u002Fcreator-subscriptions\u002Fsubscribe), then visit [app.k2ai.dev](https:\u002F\u002Fapp.k2ai.dev) to use the hosted version directly. You can also scan this QR code to open the subscription page:\n\n\u003Cimg src=\"docs\u002Fassets\u002Fiamai-omni-subscribe-qr.png\" alt=\"Subscribe to @iamai_omni QR code\" width=\"220\">\n\n> This project is for research and visualization only. It is not financial advice.\n\n## Quick Start\n\n```bash\npython3 -m venv .venv\n.venv\u002Fbin\u002Fpython -m pip install -r requirements.txt\n\npython3 scripts\u002Fingest.py all --max-pages 10 --days 500 --min-mentions 3\npython3 scripts\u002Fserver.py --port 8787\n```\n\nOpen `http:\u002F\u002F127.0.0.1:8787`.\n\n## Copy X Requests From Chrome\n\n`scripts\u002Fingest.py fetch-x` reads browser-copied requests from `x_curl\u002F`. You need to refresh these files when setting up the project or when the X session expires.\n\n1. Log in to X with Chrome and open `https:\u002F\u002Fx.com\u002Faleabitoreddit`.\n2. Open DevTools with `F12` or `Cmd\u002FCtrl + Shift + I`.\n3. Go to `Network`, select `Fetch\u002FXHR`, and optionally filter by `UserTweets`.\n4. Refresh the page and scroll a few times so X loads posts, replies, or premium content.\n5. Find the GraphQL requests below, right-click each one, then choose `Copy` -> `Copy as cURL`.\n6. Save them with these exact filenames:\n\n```text\nx_curl\u002FUserTweets.curl\nx_curl\u002FUserTweetsAndReplies.curl\nx_curl\u002FUserSuperFollowTweets.curl\n```\n\nApproximate example; the real command is longer and includes your cookie\u002Ftoken values:\n\n```bash\nmkdir -p x_curl\ncat > x_curl\u002FUserTweets.curl \u003C\u003C'EOF_CURL'\ncurl 'https:\u002F\u002Fx.com\u002Fi\u002Fapi\u002Fgraphql\u002F...\u002FUserTweets?variables=...&features=...' \\\n  -H 'authorization: Bearer ...' \\\n  -H 'cookie: auth_token=...; ct0=...' \\\n  -H 'x-csrf-token: ...' \\\n  -H 'x-twitter-active-user: yes'\nEOF_CURL\n```\n\nWarning: `x_curl\u002F*.curl` contains login cookies\u002Ftokens and is ignored by `.gitignore`. Do not commit or share these files.\n\n## Data Files\n\n- SQLite: `data\u002Fserenity.sqlite`\n- Raw X JSON: `data\u002Fraw\u002F*.json`\n- Dashboard: `dashboard\u002Findex.html`, `dashboard\u002Fstyles.css`, `dashboard\u002Fapp.js`\n\n## Common Commands\n\n```bash\npython3 scripts\u002Fingest.py fetch-x --max-pages 20\npython3 scripts\u002Fingest.py prices --days 700 --min-mentions 2\npython3 scripts\u002Fingest.py stats\n```\n\nIf X fetching returns empty or invalid responses, copy fresh curl commands from Chrome and run the ingestion again.\n\n## Codex Skill\n\nThis repo includes an open-source-ready Codex skill at `skills\u002Fserenity-stock-scorer`. It scores a single ticker from the local Serenity SQLite snapshot as a 0-100 Serenity corpus signal.\n\n```bash\npython3 skills\u002Fserenity-stock-scorer\u002Fscripts\u002Fscore_serenity_stock.py NVDA --pretty\n```\n\nThe skill looks for `data\u002Fserenity.sqlite` by default. If your database lives elsewhere, pass `--db \u002Fpath\u002Fto\u002Fserenity.sqlite` or set `SERENITY_DB_PATH`.\n","Serenity Signal Dashboard 是一个用于抓取和解析X（原Twitter）上特定用户帖子、回复及订阅内容的项目，提取其中提及的股票代码，并结合Yahoo财经API获取相关股票的日线价格数据。项目使用Python开发，核心功能包括通过GraphQL请求获取数据、本地SQLite数据库存储以及前端展示。它适合需要监控社交媒体上金融信号的研究者或投资者使用，帮助他们快速获取并可视化相关信息。此外，该项目还提供了一个可以直接体验的在线版本，无需本地搭建环境即可使用。","2026-06-11 03:58:31","CREATED_QUERY"]