fix(update): prevent repeated check crash and bump to 2.2.2
This commit is contained in:
@@ -1 +1 @@
|
|||||||
APP_VERSION = "2.2.1"
|
APP_VERSION = "2.2.2"
|
||||||
|
|||||||
14
main.py
14
main.py
@@ -171,6 +171,7 @@ class VkChatManager(QMainWindow):
|
|||||||
self.update_channel = UPDATE_CHANNEL_DEFAULT
|
self.update_channel = UPDATE_CHANNEL_DEFAULT
|
||||||
self.update_checker = None
|
self.update_checker = None
|
||||||
self.update_thread = None
|
self.update_thread = None
|
||||||
|
self._update_in_progress = False
|
||||||
self._update_check_silent = False
|
self._update_check_silent = False
|
||||||
self._bulk_worker_thread = None
|
self._bulk_worker_thread = None
|
||||||
self._bulk_worker = None
|
self._bulk_worker = None
|
||||||
@@ -462,10 +463,11 @@ class VkChatManager(QMainWindow):
|
|||||||
self._log_event("update_channel", f"update_channel={self.update_channel}")
|
self._log_event("update_channel", f"update_channel={self.update_channel}")
|
||||||
|
|
||||||
def check_for_updates(self, silent_no_updates=False):
|
def check_for_updates(self, silent_no_updates=False):
|
||||||
if self.update_thread and self.update_thread.isRunning():
|
if self._update_in_progress:
|
||||||
return
|
return
|
||||||
|
|
||||||
self._update_check_silent = silent_no_updates
|
self._update_check_silent = silent_no_updates
|
||||||
|
self._update_in_progress = True
|
||||||
self._set_update_action_state(True)
|
self._set_update_action_state(True)
|
||||||
channel_label = "бета" if self.update_channel == "beta" else "релизы"
|
channel_label = "бета" if self.update_channel == "beta" else "релизы"
|
||||||
self.status_label.setText(f"Статус: проверка обновлений ({channel_label})...")
|
self.status_label.setText(f"Статус: проверка обновлений ({channel_label})...")
|
||||||
@@ -485,13 +487,12 @@ class VkChatManager(QMainWindow):
|
|||||||
self.update_checker.check_failed.connect(self.update_thread.quit)
|
self.update_checker.check_failed.connect(self.update_thread.quit)
|
||||||
self.update_checker.check_finished.connect(self.update_checker.deleteLater)
|
self.update_checker.check_finished.connect(self.update_checker.deleteLater)
|
||||||
self.update_checker.check_failed.connect(self.update_checker.deleteLater)
|
self.update_checker.check_failed.connect(self.update_checker.deleteLater)
|
||||||
|
self.update_thread.finished.connect(self._on_update_thread_finished)
|
||||||
self.update_thread.finished.connect(self.update_thread.deleteLater)
|
self.update_thread.finished.connect(self.update_thread.deleteLater)
|
||||||
self.update_thread.start()
|
self.update_thread.start()
|
||||||
|
|
||||||
def _on_update_check_finished(self, result):
|
def _on_update_check_finished(self, result):
|
||||||
self._set_update_action_state(False)
|
self._set_update_action_state(False)
|
||||||
self.update_checker = None
|
|
||||||
self.update_thread = None
|
|
||||||
|
|
||||||
if result.get("has_update"):
|
if result.get("has_update"):
|
||||||
latest_version = result.get("latest_version") or result.get("latest_tag") or "unknown"
|
latest_version = result.get("latest_version") or result.get("latest_tag") or "unknown"
|
||||||
@@ -552,8 +553,6 @@ class VkChatManager(QMainWindow):
|
|||||||
|
|
||||||
def _on_update_check_failed(self, error_text):
|
def _on_update_check_failed(self, error_text):
|
||||||
self._set_update_action_state(False)
|
self._set_update_action_state(False)
|
||||||
self.update_checker = None
|
|
||||||
self.update_thread = None
|
|
||||||
self._log_event("update_check_failed", error_text, level="WARN")
|
self._log_event("update_check_failed", error_text, level="WARN")
|
||||||
if not self.update_repository_url:
|
if not self.update_repository_url:
|
||||||
self.status_label.setText("Статус: обновления не настроены (URL репозитория не задан).")
|
self.status_label.setText("Статус: обновления не настроены (URL репозитория не задан).")
|
||||||
@@ -570,6 +569,11 @@ class VkChatManager(QMainWindow):
|
|||||||
if not self._update_check_silent:
|
if not self._update_check_silent:
|
||||||
QMessageBox.warning(self, "Проверка обновлений", error_text)
|
QMessageBox.warning(self, "Проверка обновлений", error_text)
|
||||||
|
|
||||||
|
def _on_update_thread_finished(self):
|
||||||
|
self._update_in_progress = False
|
||||||
|
self.update_checker = None
|
||||||
|
self.update_thread = None
|
||||||
|
|
||||||
def setup_token_timer(self):
|
def setup_token_timer(self):
|
||||||
self.token_countdown_timer = QTimer(self)
|
self.token_countdown_timer = QTimer(self)
|
||||||
self.token_countdown_timer.timeout.connect(self.update_token_timer_display)
|
self.token_countdown_timer.timeout.connect(self.update_token_timer_display)
|
||||||
|
|||||||
Reference in New Issue
Block a user