Refactor server state and add health checks
This commit is contained in:
@@ -15,6 +15,7 @@ from telethon import TelegramClient, events
|
||||
from telethon.tl.types import MessageMediaPhoto, MessageMediaDocument, MessageMediaWebPage, User, PeerChannel, Channel, Chat
|
||||
from telethon.errors import FloodWaitError, SessionPasswordNeededError
|
||||
import qrcode
|
||||
from app_state import StateStore
|
||||
|
||||
warnings.filterwarnings("ignore", message="Using async sessions support is an experimental feature")
|
||||
|
||||
@@ -66,6 +67,7 @@ class OptimizedTelegramScraper:
|
||||
self.DATA_DIR.mkdir(exist_ok=True)
|
||||
self.SESSION_DIR.mkdir(exist_ok=True)
|
||||
self.STATE_FILE = str(self.DATA_DIR / 'state.json')
|
||||
self.state_store = StateStore(self.DATA_DIR / 'state.json')
|
||||
self.state = self.load_state()
|
||||
self.client = None
|
||||
self.continuous_scraping_active = False
|
||||
@@ -77,25 +79,11 @@ class OptimizedTelegramScraper:
|
||||
self.forwarding_handler = None
|
||||
|
||||
def load_state(self) -> Dict[str, Any]:
|
||||
if os.path.exists(self.STATE_FILE):
|
||||
try:
|
||||
with open(self.STATE_FILE, 'r') as f:
|
||||
return json.load(f)
|
||||
except:
|
||||
pass
|
||||
return {
|
||||
'api_id': None,
|
||||
'api_hash': None,
|
||||
'channels': {},
|
||||
'channel_names': {},
|
||||
'scrape_media': True,
|
||||
'forwarding_rules': [],
|
||||
}
|
||||
return self.state_store.load()
|
||||
|
||||
def save_state(self):
|
||||
try:
|
||||
with open(self.STATE_FILE, 'w') as f:
|
||||
json.dump(self.state, f, indent=2)
|
||||
self.state_store.save(self.state)
|
||||
except Exception as e:
|
||||
print(f"Failed to save state: {e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user