check for add-on updates once a day

This commit is contained in:
Damien Elmes 2020-01-19 11:31:09 +10:00
parent 6134ae9ec6
commit 09e47fbc36
2 changed files with 24 additions and 2 deletions

View file

@ -31,6 +31,7 @@ from anki.lang import _, ngettext
from anki.storage import Collection from anki.storage import Collection
from anki.utils import devMode, ids2str, intTime, isMac, isWin, splitFields from anki.utils import devMode, ids2str, intTime, isMac, isWin, splitFields
from aqt import gui_hooks from aqt import gui_hooks
from aqt.addons import DownloadLogEntry, check_and_prompt_for_updates, show_log_to_user
from aqt.profiles import ProfileManager as ProfileManagerType from aqt.profiles import ProfileManager as ProfileManagerType
from aqt.qt import * from aqt.qt import *
from aqt.qt import sip from aqt.qt import sip
@ -569,6 +570,7 @@ from the profile screen."
gui_hooks.state_did_change(state, oldState) gui_hooks.state_did_change(state, oldState)
def _deckBrowserState(self, oldState: str) -> None: def _deckBrowserState(self, oldState: str) -> None:
self.maybe_check_for_addon_updates()
self.deckBrowser.show() self.deckBrowser.show()
def _colLoadingState(self, oldState) -> None: def _colLoadingState(self, oldState) -> None:
@ -760,6 +762,21 @@ title="%s" %s>%s</button>""" % (
if not self.safeMode: if not self.safeMode:
self.addonManager.loadAddons() self.addonManager.loadAddons()
self.maybe_check_for_addon_updates()
def maybe_check_for_addon_updates(self):
last_check = self.pm.last_addon_update_check()
elap = intTime() - last_check
if elap > 86_400:
check_and_prompt_for_updates(
self, self.addonManager, self.on_updates_installed
)
self.pm.set_last_addon_update_check(intTime())
def on_updates_installed(self, log: List[DownloadLogEntry]) -> None:
if log:
show_log_to_user(self, log)
def setupSpellCheck(self) -> None: def setupSpellCheck(self) -> None:
os.environ["QTWEBENGINE_DICTIONARIES_PATH"] = os.path.join( os.environ["QTWEBENGINE_DICTIONARIES_PATH"] = os.path.join(

View file

@ -34,7 +34,6 @@ metaConf = dict(
suppressUpdate=False, suppressUpdate=False,
firstRun=True, firstRun=True,
defaultLang=None, defaultLang=None,
disabledAddons=[],
) )
profileConf: Dict[str, Any] = dict( profileConf: Dict[str, Any] = dict(
@ -484,7 +483,7 @@ please see:
elif mode == "angle": elif mode == "angle":
self.setGlMode("software") self.setGlMode("software")
# Scale # Helpers
###################################################################### ######################################################################
def uiScale(self) -> float: def uiScale(self) -> float:
@ -492,3 +491,9 @@ please see:
def setUiScale(self, scale: float) -> None: def setUiScale(self, scale: float) -> None:
self.meta["uiScale"] = scale self.meta["uiScale"] = scale
def last_addon_update_check(self) -> int:
return self.meta.get("last_addon_update_check", 0)
def set_last_addon_update_check(self, secs):
self.meta["last_addon_update_check"] = secs