尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
One page for the day's reading: the top posts from 11 subreddits, Bangladesh news, the
Ritholtz AM Reads + SatPost newsletters, and GitHub's trending top 10. Read/favorite state syncs across devices.
Working on this repo? Read AGENTS.md first. It is the source of truth:
every scraper, the API, the hard rules, tests, monitoring and a runbook. This page is the
short version.查看完整 README ↗One page for the day's reading: the top posts from 11 subreddits, Bangladesh news, the Ritholtz AM Reads + SatPost newsletters, and GitHub's trending top 10. Read/favorite state syncs across devices.
Live: https://reddit-scraper-lyart.vercel.app · Health: /api/status
Working on this repo? Read
AGENTS.mdfirst. It is the source of truth: every scraper, the API, the hard rules, tests, monitoring and a runbook. This page is the short version.
Mac mini (07:35 + 19:35) GitHub Actions (nightly + mornings + every 6 h)
headless browser → Reddit News, AM Reads, SatPost, Reddit backup, GitHub Trending
\ /
CSV files in data/, pushed to main
│ Vercel redeploys on every push
▼
server.py (FastAPI) → /api/data → templates/index.html
│
read + favorites ↔ localStorage ↔ Firebase
core/scrape_reddit_browser.py, run by launchd via mac/reddit-browser.sh), because Reddit
blocks GitHub's servers. It saves real upvotes. Each list has backups on the Mac: the page,
then Reddit's JSON through the same browser, then its RSS feed, then a fresh browser profile.
Every run ends with a METHOD CHECK line saying whether each backup still works. If the Mac
misses a list for 36 hours, GitHub's RSS backup (core/scrape_top.py, every 3 hours) refills
it, showing each post's rank instead of upvotes. No Reddit API key anywhere.core/scrape_github_trending.py).core/reddit_common.py: dataisbeautiful, todayilearned, bestof,
getmotivated, UnethicalLifeProTips, LifeProTips, UpliftingNews, lifehacks,
Productivity, PersonalFinance, explainlikeimfive..venv/bin/uvicorn server:app --reload # local site: http://localhost:8000
.venv/bin/python -m pytest tests -q # unit + robustness tests (~10 s)
python3 tests/e2e_site.py http://localhost:8000 # real-browser checks (needs Playwright)
Deploy = push to main (Vercel). Tests also run on GitHub for every code push.
requirements.txt minimal (Vercel's 250 MB limit; no pandas/numpy since 10 Oct 2026,
see AGENTS.md §3). Scraper libraries go in requirements-scraper.txt.vercel.json uses the legacy builds API; bundled folders go in config.includeFiles.server.py builds every path from BASE_DIR, and calls TemplateResponse with keyword args.data/ must be added with git add -f (the folder is gitignored).Details and the reasons behind each: AGENTS.md §5.