diff --git a/src/browser.py b/src/browser.py new file mode 100644 index 000000000..89d865c0e --- /dev/null +++ b/src/browser.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import webbrowser +import sys +webbrowser.open(sys.argv[1]) diff --git a/src/common.py b/src/common.py index 922a93c8d..3b13dcb71 100644 --- a/src/common.py +++ b/src/common.py @@ -31,8 +31,7 @@ import os.path import xdg.BaseDirectory -import gobject -gobject.threads_init() + PROGRAM_NAME = "Deluge" PROGRAM_VERSION = "0.5.4" @@ -124,11 +123,11 @@ def open_url_in_browser(link): import webbrowser webbrowser.open(link) else: - import webbrowser - import gtk - gtk.gdk.threads_enter() - webbrowser.open(link) - gtk.gdk.threads_leave() + import os, sys + py_version = sys.version[:3] + file = os.path.join(INSTALL_PREFIX, 'lib', 'python' \ + + py_version, 'site-packages', 'deluge', 'browser.py') + os.spawnlp(os.P_NOWAIT, 'python', 'python', file, link) def is_url(url): import re diff --git a/src/info.py b/src/info.py new file mode 100644 index 000000000..645b07edf --- /dev/null +++ b/src/info.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import urllib +import platform +import gtk +import os +import common + +pygtk = '%i.%i.%i' %(gtk.pygtk_version[0],gtk.pygtk_version[1],gtk.pygtk_version[2]) + +urllib.urlopen("http://download.deluge-torrent.org/stats.php?processor=" + \ + platform.machine() + "&python=" + platform.python_version() \ + + "&os=" + platform.system() + "&pygtk=" + pygtk) + +f = open(os.path.join(common.CONFIG_DIR, 'infosent'), 'w') +f.write("") +f.close diff --git a/src/interface.py b/src/interface.py index 33bc43355..f83839ff7 100644 --- a/src/interface.py +++ b/src/interface.py @@ -115,43 +115,26 @@ class DelugeGTK: self.update_interface = True def new_release_check(): - import urllib - new_release = urllib.urlopen("http://download.deluge-torrent.org/version").read().strip() - if new_release > common.PROGRAM_VERSION: - gtk.gdk.threads_enter() - dialog = gtk.MessageDialog(parent = None, - flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, - buttons = gtk.BUTTONS_YES_NO, - message_format=_("There is a newer version of Deluge. Would you like to be taken to our download site?"), - type=gtk.MESSAGE_QUESTION) - dialog.set_title('New Release!') - result = dialog.run() - dialog.destroy() - if result == gtk.RESPONSE_YES: - common.open_url_in_browser('http://download.deluge-torrent.org') - elif result == gtk.RESPONSE_NO: - pass - gtk.gdk.threads_leave() + import sys + py_version = sys.version[:3] + file = os.path.join(common.INSTALL_PREFIX, 'lib', 'python' \ + + py_version, 'site-packages', 'deluge', 'update.py') + os.spawnlp(os.P_NOWAIT, 'python', 'python', file, + common.PROGRAM_VERSION) - def send_info(): import time def _run_script(): - import urllib - import platform - - pygtk = '%i.%i.%i' %(gtk.pygtk_version[0],gtk.pygtk_version[1],gtk.pygtk_version[2]) - gtk.gdk.threads_enter() - urllib.urlopen("http://download.deluge-torrent.org/stats.php?processor=" + \ - platform.machine() + "&python=" + platform.python_version() \ - + "&os=" + platform.system() + "&pygtk=" + pygtk) - - f = open(os.path.join(common.CONFIG_DIR, 'infosent'), 'w') - f.write("") - f.close - gtk.gdk.threads_leave() - + import sys + + py_version = sys.version[:3] + + file = os.path.join(common.INSTALL_PREFIX, 'lib', 'python' \ + + py_version, 'site-packages', 'deluge', 'info.py') + os.spawnlp(os.P_NOWAIT, 'python', 'python', file, + common.PROGRAM_VERSION) + info_file = os.path.join(common.CONFIG_DIR, 'infosent') # Check if we've done this within the last week @@ -1352,7 +1335,6 @@ class DelugeGTK: ## For testing purposes, create a copy of the interface if __name__ == "__main__": - gobject.threads_init() interface = DelugeGTK() interface.start() diff --git a/src/update.py b/src/update.py new file mode 100644 index 000000000..ffcbae70f --- /dev/null +++ b/src/update.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import urllib +import sys + +new_release = urllib.urlopen("http://download.deluge-torrent.org/version").read().strip() +if new_release > sys.argv[1]: + import gtk + import pygtk + dialog = gtk.MessageDialog(parent = None, + flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, + buttons = gtk.BUTTONS_YES_NO, + message_format=_("There is a newer version of Deluge. Would you like to be taken to our download site?"), + type=gtk.MESSAGE_QUESTION) + dialog.set_title('New Release!') + import time + #give main client time to get up and running so we dont get placed in the + #background and hidden. also sleep this long for blocklist import + time.sleep(20) + result = dialog.run() + dialog.destroy() + if result == gtk.RESPONSE_YES: + import os + os.spawnlp(os.P_NOWAIT, 'python', 'python', '-c', "import webbrowser; webbrowser.open('http://download.deluge-torrent.org/')") + elif result == gtk.RESPONSE_NO: + pass