🤖 This is an automated review generated by an AI-powered OSS reviewer bot.
If you'd like to opt out of future reviews, add the label no-bot-review to this repo.
If anything is inaccurate or unhelpful, feel free to close this issue or leave a comment.
👋 Hey there! Thanks for this project — here's some friendly feedback
First off, really appreciate what you've built here. Aggregating free V2Ray/Xray configs by country is genuinely useful for folks dealing with restricted internet access, and the 327 stars speak for themselves!
✨ Strengths
-
Impressive source coverage — The sheer number of Telegram channels you're scraping (90+!) is remarkable. That breadth means users get a wide variety of configs to try, which really increases the chances of finding something that works. Great curation effort!
-
Country-based organization — Splitting configs by IP region is a thoughtful UX decision. Instead of dumping everything into one giant list, users can grab configs relevant to their geography. This is exactly the kind of practical detail that makes a tool genuinely usable.
-
Clean licensing — GPL-3.0 is clearly stated with a badge and a link to the LICENSE file. That's responsible open-source practice and makes it easy for contributors or forks to understand their obligations right away. 👍
💡 Suggestions
-
Address the "Doesn't seem to work anymore?" issue with a status indicator — This is your most recent open issue and likely your most impactful one. Many Telegram channels go inactive or change structure, which can silently break scraping. Consider adding a GitHub Actions workflow badge that shows the last successful run time (e.g., a daily cron job), so users can immediately see whether configs are fresh. Even a simple last_updated.txt file committed on each run would give transparency. Something like:
# .github/workflows/collect.yml
on:
schedule:
- cron: '0 */6 * * *' # every 6 hours
-
Fix the config separation issue — There's an open issue titled "Configs are not separated correctly" and another requesting "Split by protocol." Both point to the same underlying gap: users want to filter by protocol (vmess, vless, trojan, shadowsocks) in addition to by country. Since the protocol prefix is already in the URI (e.g., vmess://, vless://, trojan://), splitting on that string before saving would be a relatively small change with a big quality-of-life improvement. This would also make the subscription lists much more useful for apps that only support specific protocols.
-
Add a setup/usage section to the README — Right now the README jumps straight into the node list without explaining how to run the script locally. New contributors or users who want to self-host have no instructions. A short section like:
## Getting Started
pip install -r requirements.txt
python collector.py
...with a note about any required environment variables (API keys, Telegram tokens?) would dramatically lower the barrier to contribution and reduce duplicate "how do I run this?" issues.
⚡ Quick Wins
-
The runic text in the README is charming but inaccessible — The Overview section written in runic alphabet (ᛏᚺᛁᛊ ᛊcᚱᛁᛈᛏ...) is a fun aesthetic, but it makes the README unreadable for most users and search engines. Consider keeping it as a decorative header but adding the plain-English version directly beneath it (which you actually already do — you could just remove the runic duplicate to reduce confusion).
-
Add a requirements.txt or pyproject.toml — If it's not already in the repo, a simple dependencies file (requests, beautifulsoup4, etc.) makes it trivially easy for anyone to get started. This one file could close several potential "how do I install this?" issues before they're even opened.
Thanks again for maintaining this — it's clearly helping a lot of people access a free internet. Keep it up! 🙌
👋 Hey there! Thanks for this project — here's some friendly feedback
First off, really appreciate what you've built here. Aggregating free V2Ray/Xray configs by country is genuinely useful for folks dealing with restricted internet access, and the 327 stars speak for themselves!
✨ Strengths
Impressive source coverage — The sheer number of Telegram channels you're scraping (90+!) is remarkable. That breadth means users get a wide variety of configs to try, which really increases the chances of finding something that works. Great curation effort!
Country-based organization — Splitting configs by IP region is a thoughtful UX decision. Instead of dumping everything into one giant list, users can grab configs relevant to their geography. This is exactly the kind of practical detail that makes a tool genuinely usable.
Clean licensing — GPL-3.0 is clearly stated with a badge and a link to the LICENSE file. That's responsible open-source practice and makes it easy for contributors or forks to understand their obligations right away. 👍
💡 Suggestions
Address the "Doesn't seem to work anymore?" issue with a status indicator — This is your most recent open issue and likely your most impactful one. Many Telegram channels go inactive or change structure, which can silently break scraping. Consider adding a GitHub Actions workflow badge that shows the last successful run time (e.g., a daily cron job), so users can immediately see whether configs are fresh. Even a simple
last_updated.txtfile committed on each run would give transparency. Something like:Fix the config separation issue — There's an open issue titled "Configs are not separated correctly" and another requesting "Split by protocol." Both point to the same underlying gap: users want to filter by protocol (vmess, vless, trojan, shadowsocks) in addition to by country. Since the protocol prefix is already in the URI (e.g.,
vmess://,vless://,trojan://), splitting on that string before saving would be a relatively small change with a big quality-of-life improvement. This would also make the subscription lists much more useful for apps that only support specific protocols.Add a setup/usage section to the README — Right now the README jumps straight into the node list without explaining how to run the script locally. New contributors or users who want to self-host have no instructions. A short section like:
## Getting Started pip install -r requirements.txt python collector.py...with a note about any required environment variables (API keys, Telegram tokens?) would dramatically lower the barrier to contribution and reduce duplicate "how do I run this?" issues.
⚡ Quick Wins
The runic text in the README is charming but inaccessible — The Overview section written in runic alphabet (
ᛏᚺᛁᛊ ᛊcᚱᛁᛈᛏ...) is a fun aesthetic, but it makes the README unreadable for most users and search engines. Consider keeping it as a decorative header but adding the plain-English version directly beneath it (which you actually already do — you could just remove the runic duplicate to reduce confusion).Add a
requirements.txtorpyproject.toml— If it's not already in the repo, a simple dependencies file (requests,beautifulsoup4, etc.) makes it trivially easy for anyone to get started. This one file could close several potential "how do I install this?" issues before they're even opened.Thanks again for maintaining this — it's clearly helping a lot of people access a free internet. Keep it up! 🙌