Eagleget For Linux -
def init_database(self): conn = sqlite3.connect(self.db_path) cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS downloads ( id TEXT PRIMARY KEY, url TEXT, filename TEXT, save_path TEXT, total_size INTEGER, downloaded_size INTEGER, status TEXT, threads INTEGER, speed REAL, created_at TEXT, completed_at TEXT, md5 TEXT ) ''') conn.commit() conn.close()
@dataclass class DownloadTask: id: str url: str filename: str save_path: str total_size: int downloaded_size: int status: DownloadStatus threads: int speed: float created_at: datetime completed_at: Optional[datetime] md5: Optional[str] eagleget for linux
import socket import json import threading from http.server import HTTPServer, BaseHTTPRequestHandler class DownloadHandler(BaseHTTPRequestHandler): def do_POST(self): if self.path == '/download': content_length = int(self.headers['Content-Length']) post_data = self.rfile.read(content_length) data = json.loads(post_data.decode('utf-8')) def init_database(self): conn = sqlite3
def stop(self): if self.server: self.server.shutdown() setup.py parent=QModelIndex()): return len(self.manager.tasks)
def load_tasks(self): conn = sqlite3.connect(self.db_path) cursor = conn.cursor() cursor.execute('SELECT * FROM downloads') for row in cursor.fetchall(): task = DownloadTask( id=row[0], url=row[1], filename=row[2], save_path=row[3], total_size=row[4], downloaded_size=row[5], status=DownloadStatus(row[6]), threads=row[7], speed=row[8], created_at=datetime.fromisoformat(row[9]), completed_at=datetime.fromisoformat(row[10]) if row[10] else None, md5=row[11] ) self.tasks[task.id] = task conn.close()
def rowCount(self, parent=QModelIndex()): return len(self.manager.tasks)
