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

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',
],
}

View 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': [],
},
],
}]

View File

@@ -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

View File

@@ -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();

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': [],
},
],
}]

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

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__)

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'

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

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'

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

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

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']

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

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__)

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

View File

@@ -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 = [];

View File

@@ -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(){

View File

@@ -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){

View File

@@ -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))
},

View File

@@ -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))
},

View File

@@ -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);
});

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();
});
});