deal with stupid gutsy sometimes not being able to connect to dbus

This commit is contained in:
Marcos Pinto 2007-11-22 22:26:06 +00:00
commit bb03e2ff6a

View file

@ -113,24 +113,31 @@ def start_deluge():
interface = deluge.interface.DelugeGTK() interface = deluge.interface.DelugeGTK()
interface.start(get_cmd_line_torrents()) interface.start(get_cmd_line_torrents())
bus = dbus.SessionBus() try:
dbus_objects = dbus.Interface(bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus'), 'org.freedesktop.DBus').ListNames() bus = dbus.SessionBus()
except:
if not "org.deluge_torrent.Deluge" in dbus_objects: if not deluge.common.windows_check():
print "no existing Deluge session" pid = os.fork()
if not os.path.exists(os.path.join(deluge.common.CONFIG_DIR, 'firstrun')): if not pid:
import deluge.wizard os.popen('dbus-launch deluge')
deluge.wizard.WizardGTK()
start_deluge()
else: else:
## This connects to the deluge interface dbus_objects = dbus.Interface(bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus'), 'org.freedesktop.DBus').ListNames()
print "create proxy object"
proxy = bus.get_object('org.deluge_torrent.Deluge', '/org/deluge_torrent/DelugeObject')
print "create iface"
deluge_iface = dbus.Interface(proxy, 'org.deluge_torrent.Deluge')
print "send to iface"
for filename in get_cmd_line_torrents(): if not "org.deluge_torrent.Deluge" in dbus_objects:
deluge_iface.interactive_add_torrent(filename) print "no existing Deluge session"
if not os.path.exists(os.path.join(deluge.common.CONFIG_DIR, 'firstrun')):
import deluge.wizard
deluge.wizard.WizardGTK()
start_deluge()
else:
## This connects to the deluge interface
print "create proxy object"
proxy = bus.get_object('org.deluge_torrent.Deluge', '/org/deluge_torrent/DelugeObject')
print "create iface"
deluge_iface = dbus.Interface(proxy, 'org.deluge_torrent.Deluge')
print "send to iface"
for filename in get_cmd_line_torrents():
deluge_iface.interactive_add_torrent(filename)