mirror of
https://github.com/codex-storage/deluge.git
synced 2025-01-15 14:05:57 +00:00
Use deluge.component for core components.
This commit is contained in:
parent
559fcdf51c
commit
78b78ce8b3
@ -101,6 +101,10 @@ def get_logo(size):
|
|||||||
return gtk.gdk.pixbuf_new_from_file_at_size(get_pixmap("deluge.svg"), \
|
return gtk.gdk.pixbuf_new_from_file_at_size(get_pixmap("deluge.svg"), \
|
||||||
size, size)
|
size, size)
|
||||||
|
|
||||||
|
def open_file(path):
|
||||||
|
"""Opens a file or folder."""
|
||||||
|
os.popen("xdg-open %s" % path)
|
||||||
|
|
||||||
## Formatting text functions
|
## Formatting text functions
|
||||||
|
|
||||||
def fsize(fsize_b):
|
def fsize(fsize_b):
|
||||||
|
@ -35,19 +35,31 @@
|
|||||||
|
|
||||||
import gobject
|
import gobject
|
||||||
|
|
||||||
|
import deluge.component as component
|
||||||
import deluge.libtorrent as lt
|
import deluge.libtorrent as lt
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
|
||||||
class AlertManager:
|
class AlertManager(component.Component):
|
||||||
def __init__(self, session):
|
def __init__(self, session):
|
||||||
log.debug("AlertManager initialized..")
|
log.debug("AlertManager initialized..")
|
||||||
|
component.Component.__init__(self, "AlertManager")
|
||||||
self.session = session
|
self.session = session
|
||||||
self.session.set_severity_level(lt.alert.severity_levels.info)
|
self.session.set_severity_level(lt.alert.severity_levels.info)
|
||||||
# handlers is a dictionary of lists {"alert_type": [handler1,h2,..]}
|
# handlers is a dictionary of lists {"alert_type": [handler1,h2,..]}
|
||||||
self.handlers = {}
|
self.handlers = {}
|
||||||
|
|
||||||
|
def start(self):
|
||||||
# Handle the alerts every 50 milliseconds
|
# Handle the alerts every 50 milliseconds
|
||||||
gobject.timeout_add(50, self.handle_alerts)
|
self.timer = gobject.timeout_add(50, self.handle_alerts)
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
gobject.source_remove(self.timer)
|
||||||
|
|
||||||
|
def shutdown(self):
|
||||||
|
self.stop()
|
||||||
|
del self.session
|
||||||
|
del self.handlers
|
||||||
|
|
||||||
def register_handler(self, alert_type, handler):
|
def register_handler(self, alert_type, handler):
|
||||||
"""Registers a function that will be called when 'alert_type' is pop'd
|
"""Registers a function that will be called when 'alert_type' is pop'd
|
||||||
in handle_alerts. The handler function should look like:
|
in handle_alerts. The handler function should look like:
|
||||||
|
@ -48,6 +48,7 @@ import threading
|
|||||||
import deluge.libtorrent as lt
|
import deluge.libtorrent as lt
|
||||||
from deluge.configmanager import ConfigManager
|
from deluge.configmanager import ConfigManager
|
||||||
import deluge.common
|
import deluge.common
|
||||||
|
import deluge.component as component
|
||||||
from deluge.core.torrentmanager import TorrentManager
|
from deluge.core.torrentmanager import TorrentManager
|
||||||
from deluge.core.pluginmanager import PluginManager
|
from deluge.core.pluginmanager import PluginManager
|
||||||
from deluge.core.alertmanager import AlertManager
|
from deluge.core.alertmanager import AlertManager
|
||||||
@ -213,6 +214,8 @@ class Core(
|
|||||||
self.alerts.register_handler("torrent_paused_alert",
|
self.alerts.register_handler("torrent_paused_alert",
|
||||||
self._on_alert_torrent_paused)
|
self._on_alert_torrent_paused)
|
||||||
|
|
||||||
|
component.start()
|
||||||
|
|
||||||
t = threading.Thread(target=self.serve_forever)
|
t = threading.Thread(target=self.serve_forever)
|
||||||
t.setDaemon(True)
|
t.setDaemon(True)
|
||||||
t.start()
|
t.start()
|
||||||
@ -224,8 +227,7 @@ class Core(
|
|||||||
def _shutdown(self):
|
def _shutdown(self):
|
||||||
"""This is called by a thread from shutdown()"""
|
"""This is called by a thread from shutdown()"""
|
||||||
log.info("Shutting down core..")
|
log.info("Shutting down core..")
|
||||||
self.plugins.shutdown()
|
component.shutdown()
|
||||||
self.torrents.shutdown()
|
|
||||||
# Make sure the config file has been saved
|
# Make sure the config file has been saved
|
||||||
self.config.save()
|
self.config.save()
|
||||||
del self.config
|
del self.config
|
||||||
|
@ -34,13 +34,16 @@
|
|||||||
"""PluginManager for Core"""
|
"""PluginManager for Core"""
|
||||||
|
|
||||||
import deluge.pluginmanagerbase
|
import deluge.pluginmanagerbase
|
||||||
|
import deluge.component as component
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
|
||||||
class PluginManager(deluge.pluginmanagerbase.PluginManagerBase):
|
class PluginManager(deluge.pluginmanagerbase.PluginManagerBase,
|
||||||
|
component.Component):
|
||||||
"""PluginManager handles the loading of plugins and provides plugins with
|
"""PluginManager handles the loading of plugins and provides plugins with
|
||||||
functions to access parts of the core."""
|
functions to access parts of the core."""
|
||||||
|
|
||||||
def __init__(self, core):
|
def __init__(self, core):
|
||||||
|
component.Component.__init__(self, "PluginManager")
|
||||||
self.core = core
|
self.core = core
|
||||||
# Set up the hooks dictionary
|
# Set up the hooks dictionary
|
||||||
self.hooks = {
|
self.hooks = {
|
||||||
|
@ -33,12 +33,17 @@
|
|||||||
|
|
||||||
import xmlrpclib
|
import xmlrpclib
|
||||||
|
|
||||||
|
import deluge.component as component
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
|
||||||
class SignalManager:
|
class SignalManager(component.Component):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
component.Component.__init__(self, "SignalManager")
|
||||||
self.clients = {}
|
self.clients = {}
|
||||||
|
|
||||||
|
def shutdown(self):
|
||||||
|
del self.clients
|
||||||
|
|
||||||
def deregister_client(self, address):
|
def deregister_client(self, address):
|
||||||
"""Deregisters a client"""
|
"""Deregisters a client"""
|
||||||
log.debug("Deregistering %s as a signal reciever..", address)
|
log.debug("Deregistering %s as a signal reciever..", address)
|
||||||
|
@ -42,6 +42,7 @@ import gobject
|
|||||||
import deluge.libtorrent as lt
|
import deluge.libtorrent as lt
|
||||||
|
|
||||||
import deluge.common
|
import deluge.common
|
||||||
|
import deluge.component as component
|
||||||
from deluge.configmanager import ConfigManager
|
from deluge.configmanager import ConfigManager
|
||||||
from deluge.core.torrent import Torrent
|
from deluge.core.torrent import Torrent
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
@ -61,12 +62,13 @@ class TorrentManagerState:
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.torrents = []
|
self.torrents = []
|
||||||
|
|
||||||
class TorrentManager:
|
class TorrentManager(component.Component):
|
||||||
"""TorrentManager contains a list of torrents in the current libtorrent
|
"""TorrentManager contains a list of torrents in the current libtorrent
|
||||||
session. This object is also responsible for saving the state of the
|
session. This object is also responsible for saving the state of the
|
||||||
session for use on restart."""
|
session for use on restart."""
|
||||||
|
|
||||||
def __init__(self, session, alerts):
|
def __init__(self, session, alerts):
|
||||||
|
component.Component.__init__(self, "TorrentManager")
|
||||||
log.debug("TorrentManager init..")
|
log.debug("TorrentManager init..")
|
||||||
# Set the libtorrent session
|
# Set the libtorrent session
|
||||||
self.session = session
|
self.session = session
|
||||||
@ -79,11 +81,6 @@ class TorrentManager:
|
|||||||
self.max_uploads = -1
|
self.max_uploads = -1
|
||||||
# Create the torrents dict { torrent_id: Torrent }
|
# Create the torrents dict { torrent_id: Torrent }
|
||||||
self.torrents = {}
|
self.torrents = {}
|
||||||
# Try to load the state from file
|
|
||||||
self.load_state()
|
|
||||||
|
|
||||||
# Save the state every 5 minutes
|
|
||||||
self.save_state_timer = gobject.timeout_add(300000, self.save_state)
|
|
||||||
|
|
||||||
# Register set functions
|
# Register set functions
|
||||||
self.config.register_set_function("max_connections_per_torrent",
|
self.config.register_set_function("max_connections_per_torrent",
|
||||||
@ -103,9 +100,15 @@ class TorrentManager:
|
|||||||
self.alerts.register_handler("tracker_alert", self.on_alert_tracker)
|
self.alerts.register_handler("tracker_alert", self.on_alert_tracker)
|
||||||
self.alerts.register_handler("tracker_warning_alert",
|
self.alerts.register_handler("tracker_warning_alert",
|
||||||
self.on_alert_tracker_warning)
|
self.on_alert_tracker_warning)
|
||||||
|
|
||||||
def shutdown(self):
|
def start(self):
|
||||||
log.debug("TorrentManager shutting down..")
|
# Try to load the state from file
|
||||||
|
self.load_state()
|
||||||
|
|
||||||
|
# Save the state every 5 minutes
|
||||||
|
self.save_state_timer = gobject.timeout_add(300000, self.save_state)
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
# Save state on shutdown
|
# Save state on shutdown
|
||||||
self.save_state()
|
self.save_state()
|
||||||
# Pause all torrents and save the .fastresume files
|
# Pause all torrents and save the .fastresume files
|
||||||
@ -113,6 +116,9 @@ class TorrentManager:
|
|||||||
for key in self.torrents.keys():
|
for key in self.torrents.keys():
|
||||||
self.write_fastresume(key)
|
self.write_fastresume(key)
|
||||||
|
|
||||||
|
def shutdown(self):
|
||||||
|
self.stop()
|
||||||
|
|
||||||
def __getitem__(self, torrent_id):
|
def __getitem__(self, torrent_id):
|
||||||
"""Return the Torrent with torrent_id"""
|
"""Return the Torrent with torrent_id"""
|
||||||
return self.torrents[torrent_id]
|
return self.torrents[torrent_id]
|
||||||
|
@ -37,7 +37,7 @@ import gobject
|
|||||||
import socket
|
import socket
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.xmlrpclib as xmlrpclib
|
import deluge.xmlrpclib as xmlrpclib
|
||||||
import deluge.common
|
import deluge.common
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
|
@ -45,7 +45,7 @@ elif dbus.version >= (0,80,0):
|
|||||||
from dbus.mainloop.glib import DBusGMainLoop
|
from dbus.mainloop.glib import DBusGMainLoop
|
||||||
DBusGMainLoop(set_as_default=True)
|
DBusGMainLoop(set_as_default=True)
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
import deluge.common
|
import deluge.common
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
@ -38,7 +38,7 @@ import gettext
|
|||||||
import locale
|
import locale
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
from mainwindow import MainWindow
|
from mainwindow import MainWindow
|
||||||
from menubar import MenuBar
|
from menubar import MenuBar
|
||||||
|
@ -38,7 +38,7 @@ import gobject
|
|||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
from deluge.configmanager import ConfigManager
|
from deluge.configmanager import ConfigManager
|
||||||
|
|
||||||
import deluge.common
|
import deluge.common
|
||||||
|
@ -36,7 +36,7 @@ pygtk.require('2.0')
|
|||||||
import gtk, gtk.glade
|
import gtk, gtk.glade
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
|
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
# this exception statement from your version. If you delete this exception
|
# this exception statement from your version. If you delete this exception
|
||||||
# statement from all source files in the program, then also delete it here.
|
# statement from all source files in the program, then also delete it here.
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.pluginmanagerbase
|
import deluge.pluginmanagerbase
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
from deluge.configmanager import ConfigManager
|
from deluge.configmanager import ConfigManager
|
||||||
|
@ -36,7 +36,7 @@ pygtk.require('2.0')
|
|||||||
import gtk, gtk.glade
|
import gtk, gtk.glade
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
import deluge.common
|
import deluge.common
|
||||||
|
@ -36,7 +36,7 @@ import os.path
|
|||||||
import gtk, gtk.glade
|
import gtk, gtk.glade
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
import deluge.common
|
import deluge.common
|
||||||
from deluge.configmanager import ConfigManager
|
from deluge.configmanager import ConfigManager
|
||||||
|
@ -36,7 +36,7 @@ import pkg_resources
|
|||||||
|
|
||||||
import deluge.common
|
import deluge.common
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
|
||||||
class RemoveTorrentDialog:
|
class RemoveTorrentDialog:
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
import gtk
|
import gtk
|
||||||
import gtk.glade
|
import gtk.glade
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.common
|
import deluge.common
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
# this exception statement from your version. If you delete this exception
|
# this exception statement from your version. If you delete this exception
|
||||||
# statement from all source files in the program, then also delete it here.
|
# statement from all source files in the program, then also delete it here.
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
from deluge.ui.signalreceiver import SignalReceiver
|
from deluge.ui.signalreceiver import SignalReceiver
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
import gtk
|
import gtk
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.common
|
import deluge.common
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
import gtk
|
import gtk
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
import deluge.common
|
import deluge.common
|
||||||
from deluge.configmanager import ConfigManager
|
from deluge.configmanager import ConfigManager
|
||||||
|
@ -36,7 +36,7 @@ pygtk.require('2.0')
|
|||||||
import gtk, gtk.glade
|
import gtk, gtk.glade
|
||||||
import gobject
|
import gobject
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
from deluge.common import TORRENT_STATE
|
from deluge.common import TORRENT_STATE
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
|
@ -38,7 +38,7 @@ pygtk.require('2.0')
|
|||||||
import gtk, gtk.glade
|
import gtk, gtk.glade
|
||||||
import gettext
|
import gettext
|
||||||
|
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
import deluge.common
|
import deluge.common
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
|
@ -40,7 +40,7 @@ import gettext
|
|||||||
import gobject
|
import gobject
|
||||||
|
|
||||||
import deluge.common
|
import deluge.common
|
||||||
import deluge.ui.component as component
|
import deluge.component as component
|
||||||
import deluge.ui.client as client
|
import deluge.ui.client as client
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
import deluge.ui.gtkui.listview as listview
|
import deluge.ui.gtkui.listview as listview
|
||||||
|
Loading…
x
Reference in New Issue
Block a user