Refactor downloaders and pages
This commit is contained in:
@@ -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',
|
||||
],
|
||||
}
|
||||
|
||||
20
couchpotato/core/_base/downloader/__init__.py
Normal file
20
couchpotato/core/_base/downloader/__init__.py
Normal file
@@ -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': [],
|
||||
},
|
||||
],
|
||||
}]
|
||||
@@ -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
|
||||
@@ -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();
|
||||
@@ -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': [],
|
||||
},
|
||||
],
|
||||
}]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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__)
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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']
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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__)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [];
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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))
|
||||
|
||||
},
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
},
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user