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/footer.js',
'scripts/block/menu.js', 'scripts/block/menu.js',
'scripts/page/home.js', 'scripts/page/home.js',
'scripts/page/wanted.js',
'scripts/page/settings.js', 'scripts/page/settings.js',
'scripts/page/about.js', 'scripts/page/about.js',
'scripts/page/manage.js',
'scripts/misc/downloaders.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.helpers.variable import mergeDicts
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.media._base.providers.base import Provider from couchpotato.core.media._base.providers.base import Provider
from couchpotato.core.plugins.base import Plugin
log = CPLog(__name__) log = CPLog(__name__)
class Downloader(Provider): ## This is here to load the static files
class Downloader(Plugin):
pass
class DownloaderBase(Provider):
protocol = [] protocol = []
http_time_between_calls = 0 http_time_between_calls = 0
@@ -6,7 +6,7 @@ var DownloadersBase = new Class({
var self = this; var self = this;
// Add test buttons to settings page // 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 os
import traceback 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.encoding import sp
from couchpotato.core.helpers.variable import getDownloadDir from couchpotato.core.helpers.variable import getDownloadDir
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -14,7 +14,7 @@ log = CPLog(__name__)
autoload = 'Blackhole' autoload = 'Blackhole'
class Blackhole(Downloader): class Blackhole(DownloaderBase):
protocol = ['nzb', 'torrent', 'torrent_magnet'] protocol = ['nzb', 'torrent', 'torrent_magnet']
status_support = False status_support = False
+2 -2
View File
@@ -6,7 +6,7 @@ import re
import traceback import traceback
from bencode import bencode as benc, bdecode 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.encoding import isInt, sp
from couchpotato.core.helpers.variable import tryFloat, cleanHost from couchpotato.core.helpers.variable import tryFloat, cleanHost
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -18,7 +18,7 @@ log = CPLog(__name__)
autoload = 'Deluge' autoload = 'Deluge'
class Deluge(Downloader): class Deluge(DownloaderBase):
protocol = ['torrent', 'torrent_magnet'] protocol = ['torrent', 'torrent_magnet']
log = CPLog(__name__) log = CPLog(__name__)
+2 -2
View File
@@ -6,7 +6,7 @@ import socket
import traceback import traceback
import xmlrpclib 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.encoding import ss, sp
from couchpotato.core.helpers.variable import tryInt, md5, cleanHost from couchpotato.core.helpers.variable import tryInt, md5, cleanHost
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -17,7 +17,7 @@ log = CPLog(__name__)
autoload = 'NZBGet' autoload = 'NZBGet'
class NZBGet(Downloader): class NZBGet(DownloaderBase):
protocol = ['nzb'] protocol = ['nzb']
rpc = 'xmlrpc' rpc = 'xmlrpc'
+2 -2
View File
@@ -12,7 +12,7 @@ import time
import traceback import traceback
import urllib2 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.encoding import tryUrlencode, sp
from couchpotato.core.helpers.variable import cleanHost from couchpotato.core.helpers.variable import cleanHost
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -23,7 +23,7 @@ log = CPLog(__name__)
autoload = 'NZBVortex' autoload = 'NZBVortex'
class NZBVortex(Downloader): class NZBVortex(DownloaderBase):
protocol = ['nzb'] protocol = ['nzb']
api_level = None api_level = None
+2 -2
View File
@@ -2,7 +2,7 @@ from __future__ import with_statement
import os import os
import traceback 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.encoding import sp
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -12,7 +12,7 @@ log = CPLog(__name__)
autoload = 'Pneumatic' autoload = 'Pneumatic'
class Pneumatic(Downloader): class Pneumatic(DownloaderBase):
protocol = ['nzb'] protocol = ['nzb']
strm_syntax = 'plugin://plugin.program.pneumatic/?mode=strm&type=add_file&nzb=%s&nzbname=%s' 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 base64 import b16encode, b32decode
from bencode import bencode, bdecode
from hashlib import sha1 from hashlib import sha1
import os 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.encoding import sp
from couchpotato.core.helpers.variable import cleanHost from couchpotato.core.helpers.variable import cleanHost
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from qbittorrent.client import QBittorrentClient from qbittorrent.client import QBittorrentClient
log = CPLog(__name__) log = CPLog(__name__)
autoload = 'qBittorrent' autoload = 'qBittorrent'
class qBittorrent(Downloader): class qBittorrent(DownloaderBase):
protocol = ['torrent', 'torrent_magnet'] protocol = ['torrent', 'torrent_magnet']
qb = None qb = None
+3 -3
View File
@@ -4,14 +4,14 @@ from hashlib import sha1
from urlparse import urlparse from urlparse import urlparse
import os 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.event import addEvent
from couchpotato.core.helpers.encoding import sp from couchpotato.core.helpers.encoding import sp
from couchpotato.core.helpers.variable import cleanHost, splitString from couchpotato.core.helpers.variable import cleanHost, splitString
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from bencode import bencode, bdecode from bencode import bencode, bdecode
from rtorrent import RTorrent from rtorrent import RTorrent
from rtorrent.err import MethodError
from scandir import scandir from scandir import scandir
@@ -20,7 +20,7 @@ log = CPLog(__name__)
autoload = 'rTorrent' autoload = 'rTorrent'
class rTorrent(Downloader): class rTorrent(DownloaderBase):
protocol = ['torrent', 'torrent_magnet'] protocol = ['torrent', 'torrent_magnet']
rt = None rt = None
+2 -2
View File
@@ -4,7 +4,7 @@ import json
import os import os
import traceback 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.encoding import tryUrlencode, ss, sp
from couchpotato.core.helpers.variable import cleanHost, mergeDicts from couchpotato.core.helpers.variable import cleanHost, mergeDicts
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -16,7 +16,7 @@ log = CPLog(__name__)
autoload = 'Sabnzbd' autoload = 'Sabnzbd'
class Sabnzbd(Downloader): class Sabnzbd(DownloaderBase):
protocol = ['nzb'] protocol = ['nzb']
+2 -2
View File
@@ -1,7 +1,7 @@
import json import json
import traceback 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.encoding import isInt
from couchpotato.core.helpers.variable import cleanHost from couchpotato.core.helpers.variable import cleanHost
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -13,7 +13,7 @@ log = CPLog(__name__)
autoload = 'Synology' autoload = 'Synology'
class Synology(Downloader): class Synology(DownloaderBase):
protocol = ['nzb', 'torrent', 'torrent_magnet'] protocol = ['nzb', 'torrent', 'torrent_magnet']
status_support = False status_support = False
+2 -2
View File
@@ -6,7 +6,7 @@ import os.path
import re import re
import urllib2 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.encoding import isInt, sp
from couchpotato.core.helpers.variable import tryInt, tryFloat, cleanHost from couchpotato.core.helpers.variable import tryInt, tryFloat, cleanHost
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -17,7 +17,7 @@ log = CPLog(__name__)
autoload = 'Transmission' autoload = 'Transmission'
class Transmission(Downloader): class Transmission(DownloaderBase):
protocol = ['torrent', 'torrent_magnet'] protocol = ['torrent', 'torrent_magnet']
log = CPLog(__name__) log = CPLog(__name__)
+2 -2
View File
@@ -12,7 +12,7 @@ import urllib
import urllib2 import urllib2
from bencode import bencode as benc, bdecode 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.encoding import isInt, ss, sp
from couchpotato.core.helpers.variable import tryInt, tryFloat, cleanHost from couchpotato.core.helpers.variable import tryInt, tryFloat, cleanHost
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -24,7 +24,7 @@ log = CPLog(__name__)
autoload = 'uTorrent' autoload = 'uTorrent'
class uTorrent(Downloader): class uTorrent(DownloaderBase):
protocol = ['torrent', 'torrent_magnet'] protocol = ['torrent', 'torrent_magnet']
utorrent_api = None utorrent_api = None
@@ -14,7 +14,7 @@ var NotificationBase = new Class({
App.on('message', self.showMessage.bind(self)); App.on('message', self.showMessage.bind(self));
// Add test buttons to settings page // Add test buttons to settings page
App.addEvent('load', self.addTestButtons.bind(self)); App.addEvent('loadSettings', self.addTestButtons.bind(self));
// Notification bar // Notification bar
self.notifications = []; self.notifications = [];
@@ -2,7 +2,7 @@ var TwitterNotification = new Class({
initialize: function(){ initialize: function(){
var self = this; var self = this;
App.addEvent('load', self.addRegisterButton.bind(self)); App.addEvent('loadSettings', self.addRegisterButton.bind(self));
}, },
addRegisterButton: function(){ addRegisterButton: function(){
@@ -3,7 +3,7 @@ var CategoryListBase = new Class({
initialize: function(){ initialize: function(){
var self = this; var self = this;
App.addEvent('load', self.addSettings.bind(self)); App.addEvent('loadSettings', self.addSettings.bind(self));
}, },
setup: function(categories){ setup: function(categories){
@@ -11,7 +11,7 @@ var QualityBase = new Class({
self.profiles = []; self.profiles = [];
Array.each(data.profiles, self.createProfilesClass.bind(self)); 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(){ initialize: function(){
var self = this; 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, {}); var pg = new Page[class_name](self, {});
self.pages[class_name] = pg; self.pages[class_name] = pg;
self.fireEvent('load'+class_name);
$(pg).inject(self.content); $(pg).inject(self.content);
}); });
+2 -2
View File
@@ -6,7 +6,7 @@ var AboutSettingTab = new Class({
initialize: function(){ initialize: function(){
var self = this; 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(){ window.addEvent('domready', function(){
new AboutSettingTab(); new AboutSettingTab();
}); });