Panel webowy do automatyzacji i zarządzania wysyłkami Telegram
To jest panel sterowania, napisany w Pythonie z wykorzystaniem frameworka FastAPI, który służy jako graficzny interfejs dla wcześniej opisanego skryptu automatyzacji wysyłek w Telegramie (core_logic.py). Panel pozwala użytkownikowi zarządzać kontami Telegram, uruchamiać wysyłki i śledzić ich wykonanie przez przeglądarkę. Do przechowywania danych używana jest baza danych SQLAlchemy.
Kluczowe możliwości
Centralne zarządzanie kontami: Interfejs webowy pozwala na dodawanie nowych, przeglądanie listy istniejących oraz usuwanie kont Telegram z bazy danych wraz z ich plikami sesji.
Autoryzacja webowa: Zrealizowano krokowy proces dodawania nowych kont bezpośrednio przez przeglądarkę. Użytkownik wprowadza numer telefonu, następnie kod potwierdzający z Telegramu, a w razie potrzeby, hasło dwuskładnikowej autoryzacji (2FA). System przetwarza wszystkie etapy, tworzy plik sesji i zapisuje konto.
Uruchamianie i konfigurowanie kampanii: Użytkownik może wybierać konta do udziału w wysyłce i uruchamiać zadania w tle. Dla każdej kampanii można określić indywidualne ustawienia (np. pliki z celami i wiadomościami).
Wykonywanie zadań w tle: Wysyłki są realizowane jako procesy w tle (BackgroundTasks). Oznacza to, że użytkownik może zamknąć stronę w przeglądarce, a zadanie będzie kontynuowane na serwerze.
Monitorowanie w czasie rzeczywistym: Panel wyświetla bieżący status zadania (np. "Gotowy do uruchomienia", "Wykonywane", "Zakończone", "Błąd") i pozwala przeglądać ostatnie wpisy z pliku logów, co umożliwia śledzenie postępu i diagnozowanie problemów.
Bezpieczne zatrzymanie: Przewidziano możliwość wysłania sygnału do poprawnego zatrzymania bieżącego zadania. Skrypt zakończy swoją bieżącą akcję (np. wysyłanie wiadomości) i zatrzyma się, nie przerywając procesu nagle.
Logika działania
Użytkownik otwiera stronę główną, gdzie widzi tabelę ze wszystkimi dodanymi kontami Telegram i ich statusami, a także panel sterowania do uruchamiania zadań.
Dodawanie konta: Użytkownik wypełnia formularz, podając numer telefonu i inne ustawienia (proxy, pliki). Serwer inicjuje proces autoryzacji przez Telethon, wysyłając kod na podany numer. Po wprowadzeniu kodu (i hasła 2FA, jeśli to konieczne) serwer zapisuje plik sesji i dodaje wpis o koncie do bazy danych.
Uruchamianie kampanii: Użytkownik wybiera jedno lub kilka aktywnych kont, konfiguruje parametry i naciska przycisk "Start".
Przeglądarka wysyła zapytanie do serwera. Serwer (FastAPI) przyjmuje to zapytanie, sprawdza, czy nie jest wykonywane inne zadanie, i uruchamia główną logikę wysyłki (run_script_logic) w tle.
Użytkownik natychmiast zostaje przekierowany z powrotem na stronę główną, gdzie widzi, że status zadania zmienił się na "Uruchamiane..." lub "Wykonywane".
JavaScript na stronie okresowo wysyła zapytania do serwera w celu uzyskania aktualnego statusu i logów, aktualizując informacje na ekranie bez przeładowania strony.
Po zakończeniu wysyłki status automatycznie aktualizuje się na "Zakończone" lub "Błąd".
Kluczowe możliwości
Centralne zarządzanie kontami: Interfejs webowy pozwala na dodawanie nowych, przeglądanie listy istniejących oraz usuwanie kont Telegram z bazy danych wraz z ich plikami sesji.
Autoryzacja webowa: Zrealizowano krokowy proces dodawania nowych kont bezpośrednio przez przeglądarkę. Użytkownik wprowadza numer telefonu, następnie kod potwierdzający z Telegramu, a w razie potrzeby, hasło dwuskładnikowej autoryzacji (2FA). System przetwarza wszystkie etapy, tworzy plik sesji i zapisuje konto.
Uruchamianie i konfigurowanie kampanii: Użytkownik może wybierać konta do udziału w wysyłce i uruchamiać zadania w tle. Dla każdej kampanii można określić indywidualne ustawienia (np. pliki z celami i wiadomościami).
Wykonywanie zadań w tle: Wysyłki są realizowane jako procesy w tle (BackgroundTasks). Oznacza to, że użytkownik może zamknąć stronę w przeglądarce, a zadanie będzie kontynuowane na serwerze.
Monitorowanie w czasie rzeczywistym: Panel wyświetla bieżący status zadania (np. "Gotowy do uruchomienia", "Wykonywane", "Zakończone", "Błąd") i pozwala przeglądać ostatnie wpisy z pliku logów, co umożliwia śledzenie postępu i diagnozowanie problemów.
Bezpieczne zatrzymanie: Przewidziano możliwość wysłania sygnału do poprawnego zatrzymania bieżącego zadania. Skrypt zakończy swoją bieżącą akcję (np. wysyłanie wiadomości) i zatrzyma się, nie przerywając procesu nagle.
Logika działania
Użytkownik otwiera stronę główną, gdzie widzi tabelę ze wszystkimi dodanymi kontami Telegram i ich statusami, a także panel sterowania do uruchamiania zadań.
Dodawanie konta: Użytkownik wypełnia formularz, podając numer telefonu i inne ustawienia (proxy, pliki). Serwer inicjuje proces autoryzacji przez Telethon, wysyłając kod na podany numer. Po wprowadzeniu kodu (i hasła 2FA, jeśli to konieczne) serwer zapisuje plik sesji i dodaje wpis o koncie do bazy danych.
Uruchamianie kampanii: Użytkownik wybiera jedno lub kilka aktywnych kont, konfiguruje parametry i naciska przycisk "Start".
Przeglądarka wysyła zapytanie do serwera. Serwer (FastAPI) przyjmuje to zapytanie, sprawdza, czy nie jest wykonywane inne zadanie, i uruchamia główną logikę wysyłki (run_script_logic) w tle.
Użytkownik natychmiast zostaje przekierowany z powrotem na stronę główną, gdzie widzi, że status zadania zmienił się na "Uruchamiane..." lub "Wykonywane".
JavaScript na stronie okresowo wysyła zapytania do serwera w celu uzyskania aktualnego statusu i logów, aktualizując informacje na ekranie bez przeładowania strony.
Po zakończeniu wysyłki status automatycznie aktualizuje się na "Zakończone" lub "Błąd".