From b32ff162963751eba874ec9bbac5c1e27a615054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Fri, 28 Mar 2008 12:02:42 +0100 Subject: Make find_version run every 30 minutes --- plugins/new_version.xml | 4 ++-- portato/plugins/new_version.py | 36 ++++++++++++++++++++++++++---------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/plugins/new_version.xml b/plugins/new_version.xml index 41c9ccb..2711054 100644 --- a/plugins/new_version.xml +++ b/plugins/new_version.xml @@ -7,10 +7,10 @@ portato.plugins.new_version - + - Check for new _versions + Check for new _versions diff --git a/portato/plugins/new_version.py b/portato/plugins/new_version.py index 687e107..462d67c 100644 --- a/portato/plugins/new_version.py +++ b/portato/plugins/new_version.py @@ -2,16 +2,14 @@ try: from bzrlib import plugin, branch except ImportError: plugin = branch = None - -from threading import Thread - import gobject from portato.helper import debug, warning from portato import get_listener from portato.constants import VERSION, APP_ICON, APP +from portato.gui.exception_handling import GtkThread -def find_thread (rev): +def find_version (rev): try: b = branch.Branch.open("lp:portato") except Exception, e: @@ -26,17 +24,35 @@ def find_thread (rev): gobject.idle_add(callback) -def find_version (*args, **kwargs): +def start_thread(rev): + t = GtkThread(target = find_version, name = "Version Updater Thread", args = (rev,)) + t.setDaemon(True) + t.start() + return True + +def run_menu (*args, **kwargs): + """ + Run the thread once. + """ if not all((plugin, branch)): - return + return None v = VERSION.split() if len(v) != 3 or v[0] != "9999": - return + return None rev = v[-1] plugin.load_plugins() # to have lp: addresses parsed - t = Thread(target = find_thread, args=(rev,)) - t.setDaemon(True) - t.start() + + start_thread(rev) + return rev + +def run (*args, **kwargs): + """ + Run the thread once and add a 30 minutes timer. + """ + rev = run_menu() + + if rev is not None: + gobject.timeout_add(30*60*1000, start_thread, rev) # call it every 30 minutes -- cgit v1.2.3