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