diff --git a/couchpotato/core/loader.py b/couchpotato/core/loader.py index 8105a956..e249efb5 100644 --- a/couchpotato/core/loader.py +++ b/couchpotato/core/loader.py @@ -29,6 +29,7 @@ class Loader: 'trailer_provider' : (20, 'couchpotato.core.providers.trailer', os.path.join(providers, 'trailer')), 'subtitle_provider' : (20, 'couchpotato.core.providers.subtitle', os.path.join(providers, 'subtitle')), 'metadata_provider' : (25, 'couchpotato.core.providers.metadata', os.path.join(providers, 'metadata')), + 'extension_provider' : (25, 'couchpotato.core.providers.extension', os.path.join(providers, 'extension')), } for type, tuple in self.paths.iteritems(): diff --git a/couchpotato/core/plugins/extension/main.py b/couchpotato/core/plugins/extension/main.py index 4e13e1a7..3d9bf2fc 100644 --- a/couchpotato/core/plugins/extension/main.py +++ b/couchpotato/core/plugins/extension/main.py @@ -1,25 +1,28 @@ from couchpotato.api import addApiView from couchpotato.core.event import fireEvent from couchpotato.core.plugins.base import Plugin +from flask.globals import request from flask.helpers import url_for -from flask.templating import render_template +from flask.templating import render_template_string +import os class Extension(Plugin): def __init__(self): - addApiView('extension.user.js', self.getExtension) + addApiView('extension', self.getExtension) def getExtension(self): params = { - 'includes': fireEvent('extension.get_includes', single = True), - 'excludes': fireEvent('extension.get_includes', single = True), + 'includes': fireEvent('extension.get_includes', merge = True), + 'excludes': fireEvent('extension.get_excludes', merge = True), 'version': self.getVersion(), - 'host': '%s/extension.add_via_url' % url_for('api.index'), + 'host': '%s%sextension.add_via_url/' % (request.host_url.rstrip('/'), url_for('api.index')), } - return render_template('template.js', **params) + template = open(os.path.join(os.path.dirname(__file__), 'template.js'), 'r').read() + return render_template_string(template, **params) def getVersion(self): diff --git a/couchpotato/core/plugins/extension/template.js b/couchpotato/core/plugins/extension/template.js index 8b2a884b..ab97f74e 100644 --- a/couchpotato/core/plugins/extension/template.js +++ b/couchpotato/core/plugins/extension/template.js @@ -1,16 +1,14 @@ // ==UserScript== // @name CouchPotato UserScript -// @description Add movies to your CouchPotato via external sites +// @description Add movies like a real CouchPotato {% for include in includes %} -// @include {{include}} -{% endfor %} +// @include {{include}}{% endfor %} {% for exclude in excludes %} -// @exclude {{exclude}} -{% endfor %} +// @exclude {{exclude}}{% endfor %} // ==/UserScript== -var version = '{{version}}'; -var cpLocation = '{{host}}'; +var version = {{version}}, + cpLocation = '{{host}}'; function create() { switch (arguments.length) { @@ -41,7 +39,7 @@ function create() { if (typeof GM_addStyle == 'undefined'){ GM_addStyle = function(css) { var head = document.getElementsByTagName('head')[0], - style = document.createElement('style'); + style = document.createElement('style'); if (!head) return; @@ -69,17 +67,17 @@ var osd = function(){ var navbar, newElement; var iFrame = create('iframe', { - 'src': cpLocation + "extension.add_via_url/?url=" + escape(document.location), - 'frameborder': 0, - 'scrolling': 'no' + 'src': cpLocation + "extension.add_via_url/?url=" + escape(document.location), + 'frameborder': 0, + 'scrolling': 'no' }); var addToText = ''; var popupId = 'cpPopup'; var popup = create('div', { - 'id': popupId, - 'innerHTML': addToText + 'id': popupId, + 'innerHTML': addToText }); var addButton = create('a', { 'innerHTML': 'Add to CouchPotato', @@ -94,8 +92,8 @@ var osd = function(){ popup.appendChild(addButton); } })); - popup.appendChild(iFrame) - } + popup.appendChild(iFrame) + } }); popup.appendChild(addButton); diff --git a/couchpotato/core/providers/extension/trakt/main.py b/couchpotato/core/providers/extension/trakt/main.py index 4f2ed315..99bb20fe 100644 --- a/couchpotato/core/providers/extension/trakt/main.py +++ b/couchpotato/core/providers/extension/trakt/main.py @@ -4,7 +4,7 @@ from couchpotato.core.providers.extension.base import ExtensionBase class Trakt(ExtensionBase): includes = ['http://trakt.tv/movie/*', 'http://*.trakt.tv/movie/*'] - included = ['http://trakt.tv/movie/*/*', 'http://*.trakt.tv/movie/*/*'] + excludes = ['http://trakt.tv/movie/*/*', 'http://*.trakt.tv/movie/*/*'] #CouchPotato['trakt.tv'] = (function(){ #