Refactor downloaders and pages

This commit is contained in:
Ruud
2014-04-05 11:30:23 +02:00
parent 98a85f6950
commit 84a2afe08f
25 changed files with 63 additions and 50 deletions
-2
View File
@@ -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',
],
}
@@ -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();
-13
View File
@@ -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 -2
View File
@@ -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
+2 -2
View File
@@ -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__)
+2 -2
View File
@@ -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'
+2 -2
View File
@@ -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 -2
View File
@@ -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'
+4 -4
View File
@@ -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
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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']
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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__)
+2 -2
View File
@@ -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);
});
+2 -2
View File
@@ -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();
});
});