Rebuild as tgscraper: library, CLI, MCP server, Claude skill, dashboard - #1
Merged
Merged
Conversation
- Structured Message/Channel models (views, reactions, media, replies, forwards, hashtags...) - Sync + async clients with retries, rate limiting, proxy rotation, timeouts - Filters, server-side search, incremental scraping, media download, monitoring - Export to JSON/JSONL/CSV/XLSX/SQLite/Markdown; analytics with EN/FA sentiment - tgscraper CLI, MCP server (8 tools, mcp 1.x and 2.x), Claude skill, .mcp.json - Streamlit dashboard, Docker, pyproject packaging, offline test suite - New README, llms.txt and AGENTS.md; legacy TelegramScraper kept as a shim Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Koo8a1vU5D6JttUkzjxE6H
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Koo8a1vU5D6JttUkzjxE6H
Live run on t.me showed every reaction merged into one "custom" key. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Koo8a1vU5D6JttUkzjxE6H
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Turns the single-class scraper into the
tgscraperpackage, with a one-line API (tg.scrape("durov")) and a CLI (tgscraper durov).Retry-Afterhandling, rate limiting and proxy rotation.tgscraper-mcpwith 8 tools, 2 prompts and 1 resource; works withmcp1.x and 2.x..mcp.jsonregisters the server automatically in this repo..claude/skills/telegram-scraper.llms.txtandAGENTS.mddescribe the project for AI tools.pyproject.tomlwith optional extras, CI on Python 3.9–3.13.from telegram_scraper import TelegramScraperstill works as a shim.Testing
43 offline tests (respx mocks and an HTML fixture) pass on Python 3.9–3.13; flake8 reports no errors.
New Live test workflow scrapes the real
t.meand runs on PRs, weekly, and on demand. It covers:It passes.
The live run caught one real bug: all reactions were merged into a single
"custom"key. Fixed in e751afd, which parses image-encoded, custom and paid reactions.The Streamlit dashboard was not run, only compiled.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Koo8a1vU5D6JttUkzjxE6H