Telegram Tools by Ubden®
A Python-based Telegram automation tool with a graphical user interface for member scraping, adding, and bulk messaging.Developer: Github
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Website:
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
|
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
🚀 Features
- ✅ Multi-Account Support: Configure and use multiple Telegram accounts simultaneously
- ✅ Member Scraping: Extract member information from Telegram groups
- ✅ Member Adding: Add scraped members to target channels/groups
- ✅ Bulk Messaging: Send private messages to multiple group members
- ✅ Proxy Support: Route API requests through HTTP proxies with authentication
- ✅ Flood Control: Configurable delays to avoid Telegram rate limits
- ✅ Secure Storage: Encrypted configuration and session management
- ✅ Turkish Interface: Fully localized Turkish GUI with detailed instructions
- ✅ GUI Authentication: In-app authentication dialogs (no terminal input needed)
📋 Requirements
- Python 3.8 or higher
- Active Telegram API credentials (API ID and API Hash)
- Internet connection for Telegram API access
🔧 Installation
- Clone the repository:
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
cd telegram-tools
- Create virtual environment (recommended):
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
- Install dependencies:
- Run the application:
📖 How to Get Telegram API Credentials
- Go to
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Log in with your phone number
- Click on "API development tools"
- Fill in the application details:
- App title: Any name (e.g., "My Telegram Tools")
- Short name: Any short name (e.g., "mytools")
- Platform: Desktop
- Click "Create application"
- Copy your API ID and API Hash
🎯 Usage Guide
1. Configuration Tab (Yapılandırma)
- Enter your API IDs and API Hashes (comma-separated for multiple accounts)
- Configure proxy settings (optional)
- Set flood control time (delay between operations in seconds)
- Enter source group and target channel names
- Click "Bilgileri Kaydet" to save
2. Member Scraping & Adding (Üye Toplama-Ekleme)
- Ensure configuration is saved
- Click "İşlemi Başlat" to begin
- If first time: Authentication dialogs will appear in the app
- Enter phone number (e.g., +905551234567)
- Enter verification code from Telegram
- Enter 2FA password if enabled
- Monitor progress in the log area
- View success/failure statistics
3. Bulk Messaging (Toplu Mesaj)
- Add groups to the list:
- Type group name or link in the input field
- Click "➕ Ekle" or press Enter
- Format: @groupname or
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Select groups from the list (Ctrl+Click for multiple)
- Write your message in the text area
- Click "Mesaj Gönder" to start sending
- Monitor progress and statistics
- ➕ Ekle: Add new group to list
- 🗑️ Seçileni Sil: Remove selected groups
- 🗑️ Tümünü Temizle: Clear all groups
📁 Project Structure
telegram-tools/├── src/ # Source code
│ ├── config.py # Configuration management
│ ├── session_manager.py # Telegram session handling
│ ├── scraper.py # Member scraping module
│ ├── adder.py # Member adding module
│ ├── bulk_messenger.py # Bulk messaging module
│ ├── flood_controller.py# Rate limiting
│ ├── gui.py # Graphical user interface
│ ├── logger.py # Logging configuration
│ └── models.py # Data models
├── tests/ # Test suite
├── config/ # Configuration directory
├── main.py # Application entry point
├── requirements.txt # Python dependencies
└── README.md # This file
🔒 Security & Privacy
- All sensitive data (API credentials, passwords) is encrypted using Fernet encryption
- Configuration stored in ~/.telegram-tools/config.json
- Session files stored in ~/.telegram-tools/sessions/
- Logs stored in ~/.telegram-tools/app.log
⚠️ Important Notes
- Respect Telegram's Terms of Service: Excessive automation may result in account restrictions
- Use Flood Control: Set appropriate delays to avoid rate limits (recommended: 30-60 seconds)
- Test with Small Groups: Start with small groups to test functionality
- Backup Sessions: Keep backup of session files to avoid re-authentication
🧪 Testing
Run tests using pytest:# Run all tests
python -m pytest tests/ -v
# Run specific test categories
python -m pytest tests/test_config.py -v
python -m pytest tests/test_session_manager.py -v
📦 Releases & Downloads
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Downloading Pre-Built Executables
For Windows users who don't want to install Python, pre-built executables are available:- Go to the
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Download the latest TelegramTools-vX.X.X.exe file
- Run the executable - no installation required!
- Windows 7 or later
- No Python installation needed
- No additional dependencies required
Creating a New Release
Releases are created automatically using GitHub Actions when you push a version tag.Step-by-Step Release Process:
- Ensure your code is ready:
# Make sure all changes are committed
git status
git add .
git commit -m "Prepare for release v1.0.0"
- Create and push a version tag:
# Create an annotated tag with a message (recommended)
git tag -a v1.0.0 -m "Release version 1.0.0 - Initial stable release"
# Or create a lightweight tag (no message)
git tag v1.0.0
# Push the tag to GitHub
git push origin v1.0.0
- Monitor the workflow:
- Go to the
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Watch the "Build and Release" workflow execute
- The workflow will:
- Set up Python environment
- Install dependencies
- Build Windows executable with PyInstaller
- Create GitHub release
- Upload executable as release asset
- Go to the
- Verify the release:
- Check the
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Download and test the executable
- Verify the release notes are correct
- Check the
- Use semantic versioning: v{MAJOR}.{MINOR}.{PATCH}
- Examples: v1.0.0, v1.2.3, v2.0.0
- The workflow only triggers on tags matching v*.*.* pattern
- If you create an annotated tag (with -a and -m), the tag message becomes part of the release notes
- If you create a lightweight tag, default release notes are generated automatically
- Release notes include download instructions and system requirements
Troubleshooting Release Workflow
Workflow doesn't trigger:- ✅ Verify tag matches pattern v*.*.* (e.g., v1.0.0)
- ✅ Check that tag was pushed to GitHub: git push origin v1.0.0
- ✅ View workflow runs in the Actions tab
- ✅ Check requirements.txt for invalid or unavailable packages
- ✅ Verify all packages exist on PyPI
- ✅ Check for version conflicts between dependencies
- ✅ Review workflow logs for specific error messages
- ✅ Verify ikon.png exists in repository root
- ✅ Verify main.py exists and has no syntax errors
- ✅ Check for missing hidden imports (add to PyInstaller command if needed)
- ✅ Review PyInstaller logs in workflow output
- ✅ Ensure ikon.png is in PNG format
- ✅ Consider converting to .ico format for better compatibility
- ✅ Verify icon file is not corrupted
- ✅ Check if release already exists for this tag (delete old release first)
- ✅ Verify repository permissions allow release creation
- ✅ Check GitHub API status for outages
- ✅ Review workflow logs for specific error messages
- ✅ Download executable from release page (not from workflow artifacts)
- ✅ Test on a clean Windows system without Python installed
- ✅ Check Windows Defender or antivirus isn't blocking the executable
- ✅ Verify all dependencies are listed in requirements.txt
# Delete the release on GitHub (via web interface or CLI)
gh release delete v1.0.0
# Delete the tag locally
git tag -d v1.0.0
# Delete the tag on GitHub
git push origin :refs/tags/v1.0.0
# Create a new tag and retry
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
Re-running a failed workflow:
- Go to the
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Click on the failed workflow run
- Click "Re-run all jobs" button
- No need to delete and recreate the tag
Release Workflow Details
The automated release workflow:- Triggers: Automatically on version tag push (v*.*.*)
- Environment: Windows Server (latest)
- Python Version: 3.8
- Build Tool: PyInstaller with --onefile and --windowed flags
- Output: Single standalone .exe file with embedded icon
- Dependencies: All packages from requirements.txt bundled automatically
- Release: Created via GitHub CLI with executable attached
🐛 Troubleshooting
"Can't find a usable init.tcl" Error
- This is automatically fixed by the application
- If persists, ensure Python is properly installed with tkinter support
Authentication Issues
- Ensure phone number includes country code (e.g., +905551234567)
- Check that verification code is entered correctly
- Verify 2FA password if enabled
"The key is not registered" Error
- Session needs authentication
- Delete session files in ~/.telegram-tools/sessions/ and re-authenticate
Flood Errors
- Increase flood control time in configuration
- Wait before retrying operations
- Use fewer accounts or slower operation speed
📝 Dependencies
- telethon (>=1.34.0): Telegram API client library
- cryptography (>=41.0.0): Encryption library for sensitive data
- hypothesis (>=6.92.0): Property-based testing framework
- tkinter: GUI framework (included with Python)
🤝 Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.📄 License
Open Source👨💻 Developer
- GitHub:
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Website:
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
- Portfolio:
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.