mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-04 17:59:43 +02:00
refactor shutdown process and integrate libtorrent session cleanup
This commit is contained in:
@@ -38,17 +38,18 @@ from core.utils.general.wrappers import run_thread
|
|||||||
from core.utils.data.state import state
|
from core.utils.data.state import state
|
||||||
from core.utils.network.download import download_selected
|
from core.utils.network.download import download_selected
|
||||||
from core.utils.network.update_checker import check_for_updates
|
from core.utils.network.update_checker import check_for_updates
|
||||||
from core.utils.general.shutdown import closehelper
|
|
||||||
from core.interface.utils.tabhelper import create_tab
|
from core.interface.utils.tabhelper import create_tab
|
||||||
from core.interface.utils.searchhelper import return_pressed
|
from core.interface.utils.searchhelper import return_pressed
|
||||||
from core.interface.dialogs.settings import settings_dialog
|
from core.interface.dialogs.settings import settings_dialog
|
||||||
|
from core.network.libtorrent_misc import cleanup_session
|
||||||
|
from core.utils.general.shutdown import closehelper
|
||||||
|
|
||||||
|
|
||||||
def download_update(latest_version):
|
def download_update(latest_version):
|
||||||
new_filename = f"SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe"
|
new_filename = f"SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe"
|
||||||
url = f"https://github.com/KeksPirates/SoftwareManager/releases/latest/download/SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe"
|
url = f"https://github.com/KeksPirates/SoftwareManager/releases/latest/download/SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe"
|
||||||
|
|
||||||
consoleLog("Downloading update...", True)
|
print("Downloading update...", True)
|
||||||
response = r.get(url, allow_redirects=True)
|
response = r.get(url, allow_redirects=True)
|
||||||
with open(new_filename, "wb") as f:
|
with open(new_filename, "wb") as f:
|
||||||
f.write(response.content)
|
f.write(response.content)
|
||||||
@@ -459,7 +460,3 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
super().resizeEvent(event)
|
super().resizeEvent(event)
|
||||||
table_width = self.qtablewidget.viewport().width()
|
table_width = self.qtablewidget.viewport().width()
|
||||||
self.qtablewidget.setColumnWidth(1, int(table_width * 0.3))
|
self.qtablewidget.setColumnWidth(1, int(table_width * 0.3))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,21 @@
|
|||||||
import aria2p
|
|
||||||
import subprocess
|
|
||||||
from core.utils.data.state import state
|
from core.utils.data.state import state
|
||||||
from core.utils.general.logs import update_download_completed_by_hash
|
from core.utils.general.logs import update_download_completed_by_hash
|
||||||
from core.utils.general.logs import consoleLog
|
from core.utils.general.logs import consoleLog
|
||||||
from plyer import notification
|
from plyer import notification
|
||||||
import socket
|
|
||||||
import time
|
import time
|
||||||
import sys
|
|
||||||
|
|
||||||
|
def cleanup_session():
|
||||||
|
if state.dl_session is not None:
|
||||||
|
for magnetdl in state.active_downloads.values():
|
||||||
|
if hasattr(magnetdl, 'pause'): # Check it's a handle
|
||||||
|
magnetdl.pause()
|
||||||
|
|
||||||
|
del state.dl_session
|
||||||
|
state.dl_session = None
|
||||||
|
state.active_downloads.clear()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def send_notification(shutdown_event):
|
def send_notification(shutdown_event):
|
||||||
|
|||||||
@@ -1,30 +1,9 @@
|
|||||||
from core.utils.data.state import state
|
|
||||||
from core.utils.general.logs import consoleLog
|
|
||||||
import threading
|
import threading
|
||||||
import psutil
|
from core.network.libtorrent_misc import cleanup_session
|
||||||
import sys
|
from core.utils.general.wrappers import run_thread
|
||||||
|
|
||||||
|
|
||||||
shutdown_event = threading.Event()
|
shutdown_event = threading.Event()
|
||||||
|
|
||||||
def kill_aria2server():
|
|
||||||
if sys.platform.startswith("win"):
|
|
||||||
process = "aria2c.exe"
|
|
||||||
else:
|
|
||||||
process = "aria2c"
|
|
||||||
|
|
||||||
if state.aria2process:
|
|
||||||
state.aria2process.kill()
|
|
||||||
consoleLog("Killed Aria2")
|
|
||||||
|
|
||||||
try:
|
|
||||||
for proc in psutil.process_iter():
|
|
||||||
if proc.name() == process:
|
|
||||||
proc.kill()
|
|
||||||
consoleLog(f"Killed Aria2c (PID {proc.pid})")
|
|
||||||
except psutil.NoSuchProcess:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def closehelper():
|
def closehelper():
|
||||||
shutdown_event.set()
|
run_thread(threading.Thread(target=cleanup_session))
|
||||||
kill_aria2server()
|
shutdown_event.set()
|
||||||
Reference in New Issue
Block a user