From 84a2afe08f467125542e455b562f38237e29bfd9 Mon Sep 17 00:00:00 2001 From: Ruud Date: Sat, 5 Apr 2014 11:30:23 +0200 Subject: [PATCH] Refactor downloaders and pages --- couchpotato/core/_base/clientscript.py | 2 -- couchpotato/core/_base/downloader/__init__.py | 20 +++++++++++++++++++ .../base.py => _base/downloader/main.py} | 8 +++++++- .../_base/downloader/static}/downloaders.js | 4 ++-- couchpotato/core/downloaders/__init__.py | 13 ------------ couchpotato/core/downloaders/blackhole.py | 4 ++-- couchpotato/core/downloaders/deluge.py | 4 ++-- couchpotato/core/downloaders/nzbget.py | 4 ++-- couchpotato/core/downloaders/nzbvortex.py | 4 ++-- couchpotato/core/downloaders/pneumatic.py | 4 ++-- couchpotato/core/downloaders/qbittorrent_.py | 8 ++++---- couchpotato/core/downloaders/rtorrent_.py | 6 +++--- couchpotato/core/downloaders/sabnzbd.py | 4 ++-- couchpotato/core/downloaders/synology.py | 4 ++-- couchpotato/core/downloaders/transmission.py | 4 ++-- couchpotato/core/downloaders/utorrent.py | 4 ++-- .../media/movie/_base/static/1_wanted.js} | 0 .../media/movie/_base/static/2_manage.js} | 0 .../notifications/core/static/notification.js | 2 +- .../notifications/twitter/static/twitter.js | 2 +- .../core/plugins/category/static/category.js | 2 +- .../core/plugins/quality/static/quality.js | 2 +- .../plugins/userscript/static/userscript.js | 2 +- couchpotato/static/scripts/couchpotato.js | 2 ++ couchpotato/static/scripts/page/about.js | 4 ++-- 25 files changed, 63 insertions(+), 50 deletions(-) create mode 100644 couchpotato/core/_base/downloader/__init__.py rename couchpotato/core/{downloaders/base.py => _base/downloader/main.py} (97%) rename couchpotato/{static/scripts/misc => core/_base/downloader/static}/downloaders.js (94%) rename couchpotato/{static/scripts/page/wanted.js => core/media/movie/_base/static/1_wanted.js} (100%) rename couchpotato/{static/scripts/page/manage.js => core/media/movie/_base/static/2_manage.js} (100%) diff --git a/couchpotato/core/_base/clientscript.py b/couchpotato/core/_base/clientscript.py index 603c57dc..ee29578c 100644 --- a/couchpotato/core/_base/clientscript.py +++ b/couchpotato/core/_base/clientscript.py @@ -49,10 +49,8 @@ class ClientScript(Plugin): 'scripts/block/footer.js', 'scripts/block/menu.js', 'scripts/page/home.js', - 'scripts/page/wanted.js', 'scripts/page/settings.js', 'scripts/page/about.js', - 'scripts/page/manage.js', 'scripts/misc/downloaders.js', ], } diff --git a/couchpotato/core/_base/downloader/__init__.py b/couchpotato/core/_base/downloader/__init__.py new file mode 100644 index 00000000..0b9201bd --- /dev/null +++ b/couchpotato/core/_base/downloader/__init__.py @@ -0,0 +1,20 @@ +from .main import Downloader + + +def autoload(): + return Downloader() + + +config = [{ + 'name': 'download_providers', + 'groups': [ + { + 'label': 'Downloaders', + 'description': 'You can select different downloaders for each type (usenet / torrent)', + 'type': 'list', + 'name': 'download_providers', + 'tab': 'downloaders', + 'options': [], + }, + ], +}] diff --git a/couchpotato/core/downloaders/base.py b/couchpotato/core/_base/downloader/main.py similarity index 97% rename from couchpotato/core/downloaders/base.py rename to couchpotato/core/_base/downloader/main.py index dfbff9ff..7db788a2 100644 --- a/couchpotato/core/downloaders/base.py +++ b/couchpotato/core/_base/downloader/main.py @@ -7,12 +7,18 @@ from couchpotato.core.event import addEvent from couchpotato.core.helpers.variable import mergeDicts from couchpotato.core.logger import CPLog from couchpotato.core.media._base.providers.base import Provider +from couchpotato.core.plugins.base import Plugin log = CPLog(__name__) -class Downloader(Provider): +## This is here to load the static files +class Downloader(Plugin): + pass + + +class DownloaderBase(Provider): protocol = [] http_time_between_calls = 0 diff --git a/couchpotato/static/scripts/misc/downloaders.js b/couchpotato/core/_base/downloader/static/downloaders.js similarity index 94% rename from couchpotato/static/scripts/misc/downloaders.js rename to couchpotato/core/_base/downloader/static/downloaders.js index c3611a2f..ec85ce3d 100644 --- a/couchpotato/static/scripts/misc/downloaders.js +++ b/couchpotato/core/_base/downloader/static/downloaders.js @@ -6,7 +6,7 @@ var DownloadersBase = new Class({ var self = this; // Add test buttons to settings page - App.addEvent('load', self.addTestButtons.bind(self)); + App.addEvent('loadSettings', self.addTestButtons.bind(self)); }, @@ -72,4 +72,4 @@ var DownloadersBase = new Class({ }); -window.Downloaders = new DownloadersBase(); +var Downloaders = new DownloadersBase(); diff --git a/couchpotato/core/downloaders/__init__.py b/couchpotato/core/downloaders/__init__.py index a81ce881..e69de29b 100644 --- a/couchpotato/core/downloaders/__init__.py +++ b/couchpotato/core/downloaders/__init__.py @@ -1,13 +0,0 @@ -config = [{ - 'name': 'download_providers', - 'groups': [ - { - 'label': 'Downloaders', - 'description': 'You can select different downloaders for each type (usenet / torrent)', - 'type': 'list', - 'name': 'download_providers', - 'tab': 'downloaders', - 'options': [], - }, - ], -}] diff --git a/couchpotato/core/downloaders/blackhole.py b/couchpotato/core/downloaders/blackhole.py index d77e7464..262776a8 100644 --- a/couchpotato/core/downloaders/blackhole.py +++ b/couchpotato/core/downloaders/blackhole.py @@ -2,7 +2,7 @@ from __future__ import with_statement import os import traceback -from couchpotato.core.downloaders.base import Downloader +from couchpotato.core._base.downloader.main import DownloaderBase from couchpotato.core.helpers.encoding import sp from couchpotato.core.helpers.variable import getDownloadDir from couchpotato.core.logger import CPLog @@ -14,7 +14,7 @@ log = CPLog(__name__) autoload = 'Blackhole' -class Blackhole(Downloader): +class Blackhole(DownloaderBase): protocol = ['nzb', 'torrent', 'torrent_magnet'] status_support = False diff --git a/couchpotato/core/downloaders/deluge.py b/couchpotato/core/downloaders/deluge.py index 26592ca7..0c49233d 100644 --- a/couchpotato/core/downloaders/deluge.py +++ b/couchpotato/core/downloaders/deluge.py @@ -6,7 +6,7 @@ import re import traceback from bencode import bencode as benc, bdecode -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList from couchpotato.core.helpers.encoding import isInt, sp from couchpotato.core.helpers.variable import tryFloat, cleanHost from couchpotato.core.logger import CPLog @@ -18,7 +18,7 @@ log = CPLog(__name__) autoload = 'Deluge' -class Deluge(Downloader): +class Deluge(DownloaderBase): protocol = ['torrent', 'torrent_magnet'] log = CPLog(__name__) diff --git a/couchpotato/core/downloaders/nzbget.py b/couchpotato/core/downloaders/nzbget.py index cfa75985..b46de778 100644 --- a/couchpotato/core/downloaders/nzbget.py +++ b/couchpotato/core/downloaders/nzbget.py @@ -6,7 +6,7 @@ import socket import traceback import xmlrpclib -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList from couchpotato.core.helpers.encoding import ss, sp from couchpotato.core.helpers.variable import tryInt, md5, cleanHost from couchpotato.core.logger import CPLog @@ -17,7 +17,7 @@ log = CPLog(__name__) autoload = 'NZBGet' -class NZBGet(Downloader): +class NZBGet(DownloaderBase): protocol = ['nzb'] rpc = 'xmlrpc' diff --git a/couchpotato/core/downloaders/nzbvortex.py b/couchpotato/core/downloaders/nzbvortex.py index 573e2592..9094055f 100644 --- a/couchpotato/core/downloaders/nzbvortex.py +++ b/couchpotato/core/downloaders/nzbvortex.py @@ -12,7 +12,7 @@ import time import traceback import urllib2 -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList from couchpotato.core.helpers.encoding import tryUrlencode, sp from couchpotato.core.helpers.variable import cleanHost from couchpotato.core.logger import CPLog @@ -23,7 +23,7 @@ log = CPLog(__name__) autoload = 'NZBVortex' -class NZBVortex(Downloader): +class NZBVortex(DownloaderBase): protocol = ['nzb'] api_level = None diff --git a/couchpotato/core/downloaders/pneumatic.py b/couchpotato/core/downloaders/pneumatic.py index 7500b18f..8cf1aebb 100644 --- a/couchpotato/core/downloaders/pneumatic.py +++ b/couchpotato/core/downloaders/pneumatic.py @@ -2,7 +2,7 @@ from __future__ import with_statement import os import traceback -from couchpotato.core.downloaders.base import Downloader +from couchpotato.core._base.downloader.main import DownloaderBase from couchpotato.core.helpers.encoding import sp from couchpotato.core.logger import CPLog @@ -12,7 +12,7 @@ log = CPLog(__name__) autoload = 'Pneumatic' -class Pneumatic(Downloader): +class Pneumatic(DownloaderBase): protocol = ['nzb'] strm_syntax = 'plugin://plugin.program.pneumatic/?mode=strm&type=add_file&nzb=%s&nzbname=%s' diff --git a/couchpotato/core/downloaders/qbittorrent_.py b/couchpotato/core/downloaders/qbittorrent_.py index 0f88beba..d4bfced1 100644 --- a/couchpotato/core/downloaders/qbittorrent_.py +++ b/couchpotato/core/downloaders/qbittorrent_.py @@ -1,21 +1,21 @@ from base64 import b16encode, b32decode -from bencode import bencode, bdecode from hashlib import sha1 import os -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from bencode import bencode, bdecode +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList from couchpotato.core.helpers.encoding import sp from couchpotato.core.helpers.variable import cleanHost from couchpotato.core.logger import CPLog - from qbittorrent.client import QBittorrentClient + log = CPLog(__name__) autoload = 'qBittorrent' -class qBittorrent(Downloader): +class qBittorrent(DownloaderBase): protocol = ['torrent', 'torrent_magnet'] qb = None diff --git a/couchpotato/core/downloaders/rtorrent_.py b/couchpotato/core/downloaders/rtorrent_.py index ab3ee9a6..cccecb90 100644 --- a/couchpotato/core/downloaders/rtorrent_.py +++ b/couchpotato/core/downloaders/rtorrent_.py @@ -4,14 +4,14 @@ from hashlib import sha1 from urlparse import urlparse import os -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList + from couchpotato.core.event import addEvent from couchpotato.core.helpers.encoding import sp from couchpotato.core.helpers.variable import cleanHost, splitString from couchpotato.core.logger import CPLog from bencode import bencode, bdecode from rtorrent import RTorrent -from rtorrent.err import MethodError from scandir import scandir @@ -20,7 +20,7 @@ log = CPLog(__name__) autoload = 'rTorrent' -class rTorrent(Downloader): +class rTorrent(DownloaderBase): protocol = ['torrent', 'torrent_magnet'] rt = None diff --git a/couchpotato/core/downloaders/sabnzbd.py b/couchpotato/core/downloaders/sabnzbd.py index 548889fa..cd51cb87 100644 --- a/couchpotato/core/downloaders/sabnzbd.py +++ b/couchpotato/core/downloaders/sabnzbd.py @@ -4,7 +4,7 @@ import json import os import traceback -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList from couchpotato.core.helpers.encoding import tryUrlencode, ss, sp from couchpotato.core.helpers.variable import cleanHost, mergeDicts from couchpotato.core.logger import CPLog @@ -16,7 +16,7 @@ log = CPLog(__name__) autoload = 'Sabnzbd' -class Sabnzbd(Downloader): +class Sabnzbd(DownloaderBase): protocol = ['nzb'] diff --git a/couchpotato/core/downloaders/synology.py b/couchpotato/core/downloaders/synology.py index f7145dea..125d750a 100644 --- a/couchpotato/core/downloaders/synology.py +++ b/couchpotato/core/downloaders/synology.py @@ -1,7 +1,7 @@ import json import traceback -from couchpotato.core.downloaders.base import Downloader +from couchpotato.core._base.downloader.main import DownloaderBase from couchpotato.core.helpers.encoding import isInt from couchpotato.core.helpers.variable import cleanHost from couchpotato.core.logger import CPLog @@ -13,7 +13,7 @@ log = CPLog(__name__) autoload = 'Synology' -class Synology(Downloader): +class Synology(DownloaderBase): protocol = ['nzb', 'torrent', 'torrent_magnet'] status_support = False diff --git a/couchpotato/core/downloaders/transmission.py b/couchpotato/core/downloaders/transmission.py index 5c25dcf4..49c8bc58 100644 --- a/couchpotato/core/downloaders/transmission.py +++ b/couchpotato/core/downloaders/transmission.py @@ -6,7 +6,7 @@ import os.path import re import urllib2 -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList from couchpotato.core.helpers.encoding import isInt, sp from couchpotato.core.helpers.variable import tryInt, tryFloat, cleanHost from couchpotato.core.logger import CPLog @@ -17,7 +17,7 @@ log = CPLog(__name__) autoload = 'Transmission' -class Transmission(Downloader): +class Transmission(DownloaderBase): protocol = ['torrent', 'torrent_magnet'] log = CPLog(__name__) diff --git a/couchpotato/core/downloaders/utorrent.py b/couchpotato/core/downloaders/utorrent.py index 83df48ea..08b8d5a5 100644 --- a/couchpotato/core/downloaders/utorrent.py +++ b/couchpotato/core/downloaders/utorrent.py @@ -12,7 +12,7 @@ import urllib import urllib2 from bencode import bencode as benc, bdecode -from couchpotato.core.downloaders.base import Downloader, ReleaseDownloadList +from couchpotato.core._base.downloader.main import DownloaderBase, ReleaseDownloadList from couchpotato.core.helpers.encoding import isInt, ss, sp from couchpotato.core.helpers.variable import tryInt, tryFloat, cleanHost from couchpotato.core.logger import CPLog @@ -24,7 +24,7 @@ log = CPLog(__name__) autoload = 'uTorrent' -class uTorrent(Downloader): +class uTorrent(DownloaderBase): protocol = ['torrent', 'torrent_magnet'] utorrent_api = None diff --git a/couchpotato/static/scripts/page/wanted.js b/couchpotato/core/media/movie/_base/static/1_wanted.js similarity index 100% rename from couchpotato/static/scripts/page/wanted.js rename to couchpotato/core/media/movie/_base/static/1_wanted.js diff --git a/couchpotato/static/scripts/page/manage.js b/couchpotato/core/media/movie/_base/static/2_manage.js similarity index 100% rename from couchpotato/static/scripts/page/manage.js rename to couchpotato/core/media/movie/_base/static/2_manage.js diff --git a/couchpotato/core/notifications/core/static/notification.js b/couchpotato/core/notifications/core/static/notification.js index c999fc77..81bf9500 100644 --- a/couchpotato/core/notifications/core/static/notification.js +++ b/couchpotato/core/notifications/core/static/notification.js @@ -14,7 +14,7 @@ var NotificationBase = new Class({ App.on('message', self.showMessage.bind(self)); // Add test buttons to settings page - App.addEvent('load', self.addTestButtons.bind(self)); + App.addEvent('loadSettings', self.addTestButtons.bind(self)); // Notification bar self.notifications = []; diff --git a/couchpotato/core/notifications/twitter/static/twitter.js b/couchpotato/core/notifications/twitter/static/twitter.js index c817fe03..75c96a8e 100644 --- a/couchpotato/core/notifications/twitter/static/twitter.js +++ b/couchpotato/core/notifications/twitter/static/twitter.js @@ -2,7 +2,7 @@ var TwitterNotification = new Class({ initialize: function(){ var self = this; - App.addEvent('load', self.addRegisterButton.bind(self)); + App.addEvent('loadSettings', self.addRegisterButton.bind(self)); }, addRegisterButton: function(){ diff --git a/couchpotato/core/plugins/category/static/category.js b/couchpotato/core/plugins/category/static/category.js index b3234912..6d160be1 100644 --- a/couchpotato/core/plugins/category/static/category.js +++ b/couchpotato/core/plugins/category/static/category.js @@ -3,7 +3,7 @@ var CategoryListBase = new Class({ initialize: function(){ var self = this; - App.addEvent('load', self.addSettings.bind(self)); + App.addEvent('loadSettings', self.addSettings.bind(self)); }, setup: function(categories){ diff --git a/couchpotato/core/plugins/quality/static/quality.js b/couchpotato/core/plugins/quality/static/quality.js index d103908b..285ed1d9 100644 --- a/couchpotato/core/plugins/quality/static/quality.js +++ b/couchpotato/core/plugins/quality/static/quality.js @@ -11,7 +11,7 @@ var QualityBase = new Class({ self.profiles = []; Array.each(data.profiles, self.createProfilesClass.bind(self)); - App.addEvent('load', self.addSettings.bind(self)) + App.addEvent('loadSettings', self.addSettings.bind(self)) }, diff --git a/couchpotato/core/plugins/userscript/static/userscript.js b/couchpotato/core/plugins/userscript/static/userscript.js index 3a7fd9dd..2ef1ea6a 100644 --- a/couchpotato/core/plugins/userscript/static/userscript.js +++ b/couchpotato/core/plugins/userscript/static/userscript.js @@ -53,7 +53,7 @@ var UserscriptSettingTab = new Class({ initialize: function(){ var self = this; - App.addEvent('load', self.addSettings.bind(self)) + App.addEvent('loadSettings', self.addSettings.bind(self)) }, diff --git a/couchpotato/static/scripts/couchpotato.js b/couchpotato/static/scripts/couchpotato.js index 27ae9c09..ffc0e9aa 100644 --- a/couchpotato/static/scripts/couchpotato.js +++ b/couchpotato/static/scripts/couchpotato.js @@ -141,6 +141,8 @@ var pg = new Page[class_name](self, {}); self.pages[class_name] = pg; + self.fireEvent('load'+class_name); + $(pg).inject(self.content); }); diff --git a/couchpotato/static/scripts/page/about.js b/couchpotato/static/scripts/page/about.js index b4326ae5..a2482f8b 100644 --- a/couchpotato/static/scripts/page/about.js +++ b/couchpotato/static/scripts/page/about.js @@ -6,7 +6,7 @@ var AboutSettingTab = new Class({ initialize: function(){ var self = this; - App.addEvent('load', self.addSettings.bind(self)) + App.addEvent('loadSettings', self.addSettings.bind(self)) }, @@ -124,4 +124,4 @@ var AboutSettingTab = new Class({ window.addEvent('domready', function(){ new AboutSettingTab(); -}); \ No newline at end of file +});