Skip to content

Commit 36afe98

Browse files
committed
feat: Add proxy test functionality and session file import
- Add 'Test Proxy' button in account proxy settings - Implement ProxyTestWorker for real-time proxy connection testing - Add session file import method for adding accounts - Fix proxy functionality throughout the application - Ensure all TelegramClient instances use proxy configuration - Update all translation files with new keys - Update documentation (README, CHANGELOG, ROADMAP)
1 parent d051cd7 commit 36afe98

38 files changed

Lines changed: 3070 additions & 139 deletions

.gitignore

Lines changed: 107 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@ MANIFEST
3030
# PyInstaller
3131
*.manifest
3232
*.spec
33+
*.exe
34+
*.dmg
35+
*.pkg
36+
*.deb
37+
*.rpm
38+
*.tar.gz
39+
*.zip
40+
*.app
41+
*.dmg
3342

3443
# Installer logs
3544
pip-log.txt
@@ -48,6 +57,11 @@ coverage.xml
4857
*.py,cover
4958
.hypothesis/
5059
.pytest_cache/
60+
junit.xml
61+
.pytest_cache/
62+
.coverage.*
63+
coverage/
64+
*.lcov
5165

5266
# Translations
5367
*.mo
@@ -69,12 +83,14 @@ instance/
6983
# Sphinx documentation
7084
docs/_build/
7185
docs/site/
86+
docs/.doctrees/
7287

7388
# PyBuilder
7489
target/
7590

7691
# Jupyter Notebook
7792
.ipynb_checkpoints
93+
*.ipynb
7894

7995
# IPython
8096
profile_default/
@@ -98,6 +114,7 @@ celerybeat.pid
98114

99115
# Environments
100116
.env
117+
.env.*
101118
.venv
102119
venv/
103120
env/
@@ -123,6 +140,12 @@ dmypy.json
123140
# Pyre type checker
124141
.pyre/
125142

143+
# PyCharm
144+
.idea/
145+
*.iml
146+
*.iws
147+
*.ipr
148+
126149
# Application specific
127150
app_data/
128151
*.db
@@ -136,6 +159,7 @@ app_data/
136159
# Log files
137160
logs/
138161
*.log
162+
*.log.*
139163

140164
# Temporary files
141165
temp/
@@ -144,13 +168,24 @@ tmp/
144168
*.bak
145169
*.backup
146170
*.old
171+
*.swp
172+
*.swo
173+
*~
147174

148175
# IDE files
149176
.vscode/
150177
.idea/
151-
*.swp
152-
*.swo
153-
*~
178+
*.sublime-project
179+
*.sublime-workspace
180+
181+
# Emacs
182+
\#*\#
183+
/.emacs.desktop
184+
/.emacs.desktop.lock
185+
*.elc
186+
auto-save-list
187+
tramp
188+
.\#*
154189

155190
# OS generated files
156191
.DS_Store
@@ -204,6 +239,9 @@ secrets.json
204239
api_keys.txt
205240
credentials.txt
206241
secrets.txt
242+
*.key
243+
*.pem
244+
*.cert
207245

208246
# Personal data
209247
personal_data/
@@ -212,9 +250,9 @@ contacts.csv
212250
recipients.csv
213251
accounts.csv
214252

215-
# Test files
216-
test_*.py
217-
*_test.py
253+
# Test files (in root directory only, tests/ directory is tracked)
254+
/test_*.py
255+
/*_test.py
218256
test_*.session
219257
test_session*.session
220258

@@ -232,6 +270,10 @@ upload_*.py
232270
init_github_repo.py
233271
build_installers.py
234272
create_windows_installer.py
273+
translate_*.py
274+
complete_*.py
275+
finalize_*.py
276+
update_translations.py
235277

236278
# Build and distribution files
237279
installer.iss
@@ -252,19 +294,6 @@ LANGUAGE_UPDATE_SUMMARY.md
252294
content/
253295
scripts/
254296

255-
# Sublime Text
256-
*.sublime-project
257-
*.sublime-workspace
258-
259-
# Emacs
260-
\#*\#
261-
/.emacs.desktop
262-
/.emacs.desktop.lock
263-
*.elc
264-
auto-save-list
265-
tramp
266-
.\#*
267-
268297
# Personal/sensitive files
269298
personal/
270299
sensitive/
@@ -278,6 +307,65 @@ sample_data/
278307
# Coverage reports
279308
coverage/
280309
htmlcov/
310+
.coverage
311+
.coverage.*
281312

282313
# Profiling data
283314
*.prof
315+
*.pstats
316+
317+
# CI/CD artifacts
318+
.github/workflows/*.log
319+
.github/workflows/*.tmp
320+
*.junit.xml
321+
322+
# Pre-commit
323+
.pre-commit-config.yaml.bak
324+
325+
# Ruff (if used in future)
326+
.ruff_cache/
327+
328+
# Bandit (security linting)
329+
.bandit
330+
331+
# Safety (dependency checking)
332+
.safety
333+
334+
# Local development files
335+
local/
336+
local_*.py
337+
dev_*.py
338+
debug_*.py
339+
340+
# Database migrations (if using Alembic)
341+
alembic/versions/*.pyc
342+
343+
# Backup files
344+
*.orig
345+
*.rej
346+
*.patch
347+
348+
# macOS
349+
.AppleDouble
350+
.LSOverride
351+
352+
# Linux
353+
*~
354+
.directory
355+
356+
# Windows
357+
Thumbs.db
358+
ehthumbs.db
359+
Desktop.ini
360+
$RECYCLE.BIN/
361+
362+
# Temporary Python files
363+
*.pyc
364+
*.pyo
365+
*.pyd
366+
.Python
367+
368+
# Project-specific temporary files
369+
tatus*
370+
*_temp.*
371+
*_tmp.*

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,32 @@ All notable changes to the Telegram Multi-Account Message Sender project will be
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.2.8] - 2025-01-XX
9+
10+
### Added
11+
- **Proxy Test Functionality**: Added "Test Proxy" button in account proxy settings to verify proxy connection before saving
12+
- **Session File Import**: New method to add accounts by importing Telethon session files (.session files)
13+
- **Proxy Connection Testing**: Real-time proxy validation with detailed connection information
14+
- **Session Import Worker**: Background worker thread for validating and extracting account info from session files
15+
- **Proxy Test Worker**: Background worker thread for testing proxy connections through Telegram API
16+
17+
### Fixed
18+
- **Proxy Functionality**: Fixed proxy settings not being applied when creating TelegramClient instances throughout the application
19+
- **Proxy Format**: Corrected proxy configuration format to match Telethon requirements (HTTPS proxies converted to HTTP)
20+
- **Campaign Manager**: Fixed proxy not being passed when creating clients for message sending and forwarding
21+
- **Telegram Selector**: Fixed proxy not being used when fetching chats from Telegram accounts
22+
- **Account Widget**: Fixed proxy not being used during account authorization, testing, and connection
23+
24+
### Changed
25+
- **Account Model**: Added `get_telethon_proxy()` method to convert account proxy settings to Telethon format
26+
- **Translation Files**: Updated all 12 non-English translation files with new proxy test and session import keys
27+
- **Proxy Logging**: Enhanced logging to show when proxy is being used with connection details
28+
29+
### Technical
30+
- **Proxy Integration**: Ensured all TelegramClient instances receive proxy configuration from account settings
31+
- **Session Import**: Added UI for selecting and importing session files with automatic account info extraction
32+
- **Proxy Validation**: Added comprehensive proxy testing with connection verification and DC information
33+
834
## [1.2.7] - 2025-11-27
935

1036
### Added

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ A professional-grade desktop application for managing and sending messages acros
1414
## ✨ Features
1515

1616
### 🚀 Core Functionality
17-
- **Multi-Account Management**: Manage multiple Telegram accounts simultaneously
17+
- **Multi-Account Management**: Manage multiple Telegram accounts simultaneously with proxy support
18+
- **Account Import Methods**: Add accounts via phone number or by importing Telethon session files
19+
- **Proxy Support**: Full proxy support (HTTP, HTTPS, SOCKS4, SOCKS5) with connection testing
1820
- **Campaign Management**: Create, schedule, and manage message campaigns
1921
- **Template System**: Create and manage message templates with spintax support
2022
- **Recipient Management**: Organize and manage recipient lists

ROADMAP.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@
55
## 🎯 Vision Statement
66
Transform Telegram Multi-Account Message Sender into the ultimate Telegram automation platform with advanced features, cross-platform support, and professional integration, while maintaining its safety-first design philosophy.
77

8-
## 📊 Current Status (v1.2.7)
8+
## 📊 Current Status (v1.2.8)
99

1010
### ✅ Completed Features
1111
- **Multi-Account Management**: Full account lifecycle management
12+
- **Account Import Methods**: Support for adding accounts via phone number or session file import
13+
- **Proxy Support**: Complete proxy functionality (HTTP, HTTPS, SOCKS4, SOCKS5) with connection testing
14+
- **Proxy Testing**: Real-time proxy connection validation with detailed feedback
15+
- **Session File Import**: Import accounts from Telethon session files with automatic account info extraction
1216
- **Campaign System**: Complete campaign creation, scheduling, and management
1317
- **Template System**: Advanced template management with spintax support
1418
- **Recipient Management**: CSV import/export and recipient organization
@@ -29,6 +33,7 @@ Transform Telegram Multi-Account Message Sender into the ultimate Telegram autom
2933
- **Telegram Chat Selector**: Interactive browser for selecting channels/groups from Telegram accounts
3034
- **Thread Support**: Full support for Telegram group threads
3135
- **Message Forwarding**: Complete message forwarding functionality for campaigns
36+
- **Plugin System**: Complete plugin architecture with API, management system, UI, and example plugins
3237

3338
### 🔄 In Progress
3439
- **Performance Optimization**: Ongoing database and UI optimizations
@@ -100,18 +105,20 @@ Transform Telegram Multi-Account Message Sender into the ultimate Telegram autom
100105
**Goal**: Add professional features and advanced functionality
101106

102107
#### 🔌 Plugin System
103-
- [ ] **Plugin Architecture**
104-
- Plugin API development
105-
- Plugin management system
106-
- Third-party plugin support
107-
- Plugin marketplace
108+
- [x] **Plugin Architecture**
109+
- Plugin API development
110+
- Plugin management system
111+
- Third-party plugin support
112+
- Plugin marketplace (Future enhancement)
108113
- **Priority**: High | **Effort**: Very High
109114

110-
- [ ] **Core Plugins**
111-
- Advanced analytics plugin
112-
- Social media integration plugin
113-
- CRM integration plugin
114-
- Advanced reporting plugin
115+
- [x] **Core Plugins**
116+
- Example filter plugin ✅
117+
- Example analytics plugin ✅
118+
- Advanced analytics plugin (Future enhancement)
119+
- Social media integration plugin (Future enhancement)
120+
- CRM integration plugin (Future enhancement)
121+
- Advanced reporting plugin (Future enhancement)
115122
- **Priority**: Medium | **Effort**: High
116123

117124
#### ☁️ Cloud Integration

app/core/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
from .compliance import ComplianceChecker, SafetyGuard
1818
from .analytics import AnalyticsCollector, CampaignAnalytics
1919
from .message_forwarder import MessageForwarder
20+
from .plugin import (
21+
Plugin, PluginAPI, PluginMetadata, PluginInfo, PluginStatus, PluginType,
22+
MessageFilterPlugin, AnalyticsPlugin, NotificationPlugin, IntegrationPlugin
23+
)
2024

2125
__all__ = [
2226
# Telegram Client
@@ -44,4 +48,16 @@
4448

4549
# Message Forwarding
4650
"MessageForwarder",
51+
52+
# Plugin System
53+
"Plugin",
54+
"PluginAPI",
55+
"PluginMetadata",
56+
"PluginInfo",
57+
"PluginStatus",
58+
"PluginType",
59+
"MessageFilterPlugin",
60+
"AnalyticsPlugin",
61+
"NotificationPlugin",
62+
"IntegrationPlugin",
4763
]

0 commit comments

Comments
 (0)