Browse Source

Userscript installation and updater

pull/62/head
Ruud 14 years ago
parent
commit
e8ae2dced0
  1. 10
      couchpotato/core/helpers/request.py
  2. 1
      couchpotato/core/notifications/core/static/notification.js
  3. 4
      couchpotato/core/plugins/updater/static/updater.js
  4. 16
      couchpotato/core/plugins/userscript/main.py
  5. 69
      couchpotato/core/plugins/userscript/static/userscript.js
  6. 57
      couchpotato/core/plugins/userscript/template.js
  7. 2
      couchpotato/core/providers/nzb/x264/main.py
  8. 3
      couchpotato/core/providers/userscript/base.py
  9. 17
      couchpotato/core/providers/userscript/imdb/main.py
  10. 9
      couchpotato/static/scripts/couchpotato.js
  11. 3
      couchpotato/templates/_desktop.html

10
couchpotato/core/helpers/request.py

@ -2,6 +2,7 @@ from couchpotato.core.helpers.variable import natcmp
from flask.globals import current_app
from flask.helpers import json
from libs.werkzeug.urls import url_decode
from urllib import unquote_plus
import flask
import re
@ -24,7 +25,7 @@ def getParams():
for item in nested:
if item is nested[-1]:
current[item] = value
current[item] = unquote_plus(value)
else:
try:
current[item]
@ -33,7 +34,7 @@ def getParams():
current = current[item]
else:
temp[param] = value
temp[param] = unquote_plus(value)
return dictToList(temp)
@ -54,7 +55,10 @@ def dictToList(params):
return new
def getParam(attr, default = None):
return getattr(flask.request, 'args').get(attr, default)
try:
return unquote_plus(getattr(flask.request, 'args').get(attr, default))
except:
return None
def padded_jsonify(callback, *args, **kwargs):
content = str(callback) + '(' + json.dumps(dict(*args, **kwargs)) + ')'

1
couchpotato/core/notifications/core/static/notification.js

@ -9,6 +9,7 @@ var NotificationBase = new Class({
// Listener
App.addEvent('load', self.startInterval.bind(self));
App.addEvent('unload', self.stopTimer.bind(self));
self.addEvent('notification', self.notify.bind(self))
// Add test buttons to settings page

4
couchpotato/core/plugins/updater/static/updater.js

@ -4,6 +4,10 @@ var UpdaterBase = new Class({
var self = this;
App.addEvent('load', self.info.bind(self, 1000))
App.addEvent('unload', function(){
if(self.timer)
clearTimeout(self.timer);
});
},
info: function(timeout){

16
couchpotato/core/plugins/userscript/main.py

@ -1,12 +1,12 @@
from couchpotato import index
from couchpotato.api import addApiView
from couchpotato.core.event import fireEvent
from couchpotato.core.event import fireEvent, addEvent
from couchpotato.core.helpers.request import getParam, jsonified
from couchpotato.core.helpers.variable import isDict
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
from flask.globals import request
from flask.helpers import url_for
from flask.helpers import url_for, make_response
log = CPLog(__name__)
@ -18,20 +18,26 @@ class Userscript(Plugin):
addApiView('userscript', self.iFrame)
addApiView('userscript.add_via_url', self.getViaUrl)
addEvent('userscript.get_version', self.getVersion)
def getExtension(self):
params = {
'includes': fireEvent('userscript.get_includes', merge = True),
'excludes': fireEvent('userscript.get_excludes', merge = True),
'version': self.getVersion(),
'host': '%s%suserscript/' % (request.host_url.rstrip('/'), url_for('api.index')),
'api': '%suserscript/' % url_for('api.index').lstrip('/'),
'host': request.host_url,
}
return self.renderTemplate(__file__, 'template.js', **params)
response = make_response(self.renderTemplate(__file__, 'template.js', **params))
response.headers['Content-Type'] = 'text/javascript'
return response
return
def getVersion(self):
versions = fireEvent('userscript.get_version')
versions = fireEvent('userscript.get_provider_version')
version = 0
for v in versions:

69
couchpotato/core/plugins/userscript/static/userscript.js

@ -7,7 +7,7 @@ Page.Userscript = new Class({
options: {
'onOpened': function(){
App.stopLoadTimer();
App.fireEvent('unload');
App.getBlock('header').hide();
}
},
@ -44,3 +44,70 @@ Page.Userscript = new Class({
}
});
var UserscriptSettingTab = new Class({
tab: '',
content: '',
initialize: function(){
var self = this;
App.addEvent('load', self.addSettings.bind(self))
},
addSettings: function(){
var self = this;
self.settings = App.getPage('Settings')
self.settings.addEvent('create', function(){
var tab = self.settings.createTab('userscript', {
'label': 'Userscript',
'name': 'userscript'
});
self.tab = tab.tab;
self.content = tab.content;
self.createUserscript();
});
},
createUserscript: function(){
var self = this;
self.settings.createGroup({
'label': 'Install the Userscript'
}).inject(self.content).adopt(
new Element('a', {
'text': 'Install userscript',
'href': Api.createUrl('userscript.get')+'?couchpotato.user.js',
'normalhref': true
})
);
}
});
window.addEvent('domready', function(){
new UserscriptSettingTab();
});
window.addEvent('load', function(){
var your_version = $(document.body).get('data-userscript_version')
latest_version = App.getOption('userscript_version')
key = 'cp_version_check',
checked_already = Cookie.read(key);
if(your_version < latest_version && checked_already < latest_version){
if(confirm("Update to the latest Userscript?\nYour version: " + your_version + ', new version: ' + latest_version )){
document.location = Api.getOption('url')+'userscript.get/?couchpotato.user.js';
}
Cookie.write(key, latest_version, {duration: 100});
}
});

57
couchpotato/core/plugins/userscript/template.js

@ -1,16 +1,20 @@
// ==UserScript==
// @name CouchPotato UserScript
// @description Add movies like a real CouchPotato
// @version {{version}}
// @include {{host}}*
{% for include in includes %}
// @include {{include}}{% endfor %}
{% for exclude in excludes %}
// @exclude {{exclude}}{% endfor %}
// @exclude {{host}}{{api.rstrip('/')}}*
// ==/UserScript==
var version = {{version}},
cpLocation = '{{host}}';
host = '{{host}}';
api = '{{api}}';
function create() {
switch (arguments.length) {
@ -53,53 +57,56 @@ if (typeof GM_addStyle == 'undefined'){
// Styles
GM_addStyle('\
#cpPopup { opacity: 0.5; width:200px; font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif; -moz-border-radius-topleft: 6px; -moz-border-radius-topright: 6px; -webkit-border-top-left-radius: 6px; -webkit-border-top-right-radius: 6px; -moz-box-shadow: 0 0 20px rgba(0,0,0,0.5); -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.5); position:fixed; z-index:9999; bottom:0; right:0; font-size:15px; margin: 0 20px; display: block; background:#f5f5f5; } \
#cpPopup:hover { opacity: 1; } \
#cpPopup a#addTo { cursor:pointer; text-align:center; text-decoration:none; color: #000; display:block; padding:15px 0 10px; } \
#cpPopup a#closeBtn { cursor:pointer; float: right; padding:10px; } \
#cpPopup a img { vertical-align: middle; } \
#cpPopup a:hover { color:#000; } \
#cpPopup iframe{ background:#f5f5f5; margin:6px; height:70px; width:188px; overflow:hidden; border:none; } \
#cp_popup { font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif; -moz-border-radius-topleft: 6px; -moz-border-radius-bottomleft: 6px; -webkit-border-top-left-radius: 6px; -webkit-border-bottom-left-radius: 6px; -moz-box-shadow: 0 0 20px rgba(0,0,0,0.5); -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.5); position:fixed; z-index:9999; bottom:0; right:0; font-size:15px; margin: 20px 0; display: block; background:#4E5969; } \
#cp_popup:hover { } \
#cp_popup a#add_to { cursor:pointer; text-align:center; text-decoration:none; color: #000; display:block; padding:5px 0 5px 5px; } \
#cp_popup a#close_button { cursor:pointer; float: right; padding:120px 10px 10px; } \
#cp_popup a img { vertical-align: middle; } \
#cp_popup a:hover { color:#000; } \
#cp_popup iframe{ background:#4E5969; margin:6px 0 2px 6px; height:140px; width:450px; overflow:hidden; border:none; } \
');
var movieImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAZCAYAAABQDyyRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+9JREFUeNrMVklIXFkUPVWWY5cDccIpMQ444YCi7UJ3KrpUxAkURRAFW6GdMCI0ooKuxIWCIkrc6FYMcYogrgxoEHFeRFRE42w5D/X73dv1i4pUOiGmkly4/u9779c979x7z3sKSZLwK02JX2y/BYCXwmeESybyGV0Mo6YQNTBzf38f09/fj7GxMRwcHPyQnTk5OSEpKQm5ublQqVTvxdCfXwIg9fT0YGBgAO7u7qipqUFAQACurq7Q29uLoaEhXhgdHY3q6mqo1WocHx+jpaUF8/PzPJeamor8/HwKhKWlJbS2tmJ/f5/nsrKyUFhYSK8vhG8+BmD2j7Dm5mZotVqcnp5ibW0N4eHhcHFxQUREBM7OznhsZ2cHu7u7iI2Nhb29PQOi8b29PaysrECpVCIqKgpubm4IDAzE7OwsLi8vsbW1hYyMDIrVK/yTUQDd3d2oqKjgjygFc3NzCAsLg7OzMyIjI3F+fo7V1VVsbm5ie3sbMTExsLW15acMYmFhAbe3twza1dUVwcHB0Gg0WF9fR15eHsXqNAZA3wUJCQkoKipiGilIQ0MDf2xmZsYUJicn87rp6Wmm+OLigpmglIWEhPDc4OAg+vr6cH19zSwUFBR8tVa4BhITE03aauPj4/QIE75gFMBPanmjAFT05ycxYNRU8svo6CiGh4fR2dkJoQvw8PBAXV0dfHx8cHNzw+MjIyO8Ni4uDpWVlbCxseGibWpqwuLiIs9lZ2cjJycHlpaW3DlTU1N6afhfABMTE+jq6uLgnp6eqK+v5+BU2aQTcvD4+HhUVVXB2toaJycnrAdy8MzMTNYDasnl5WUeIzA6eyWc0GiNdkFbWxvvlIKKzvxs57IYGQYnMWpsbNSLEQWibqHgBIiA2dnZIS0tDbW1taxlwm0o3YYp1zNwd3fHSlheXs4MUO+TElJaZCUsKyuDubk5q9xjJaTd02/ISkgAqR1JCw4PD+XNSiZvQysrKygUClhYWDCrpAX+/v7o6OjQiOkA4RpdGi4/Y+Cp5uDggJKSEj5HiAkCQSmU2T06OlILuadikURqbgXAt+K9khlIT0/nc+ApRqceSe63/FZQUBDa29vp9W9mICUlhU/DJ10slP/Vs6+vLx9gZNRRGxsb3JJeXl76td7e3vrPiIEPYmEEtdrk5CRR9V0AHB0dUVpaitDQUD0gOmGJEV0NUAEeGVxU3gn/CwLAS7qUSCYwUf2SOOSk4uJi+vdYuJtwtfA/6AQgpxR81N1WnIU//4EKbP7w8PBGPJ9REersTHTchaE8G3bBvs6fZHJLiwBW4vakJfr9/Py4JIx+IFNhAqf6em2QkT7hysfr/hVgAIhbr+v/xmSzAAAAAElFTkSuQmCC';
var closeImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA5ElEQVR42tRTQYoEIQwsl/2Bl3gQoY9eBKEf5kvyG8G7h4Z+S38gIu5lp5lZ2R7YPm1BDhZJSFWiGmPgDj5wE7cbfD4/mBkAHprUj9yTTyn9OsGIMSLG+Fxwxc8SiAi9d4QQHskjhIDeO4jorQcq5wwiQmsN3nt479FaAxEh5zxJmyZIKalSClprL1FKQUpJXZr4DBH52xqZeRhjICKw1sJaCxGBMQbMPN41GFpriAicc6i1otYK5xxEBFrraQuThGVZAADbtp2amXms6woAOI7j0gO17/t5MN+HNfEvBf//M30NAKe7aRqUOIlfAAAAAElFTkSuQmCC';
var cp_icon = 'data:image/png;base64,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';
var close_img = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA5ElEQVR42tRTQYoEIQwsl/2Bl3gQoY9eBKEf5kvyG8G7h4Z+S38gIu5lp5lZ2R7YPm1BDhZJSFWiGmPgDj5wE7cbfD4/mBkAHprUj9yTTyn9OsGIMSLG+Fxwxc8SiAi9d4QQHskjhIDeO4jorQcq5wwiQmsN3nt479FaAxEh5zxJmyZIKalSClprL1FKQUpJXZr4DBH52xqZeRhjICKw1sJaCxGBMQbMPN41GFpriAicc6i1otYK5xxEBFrraQuThGVZAADbtp2amXms6woAOI7j0gO17/t5MN+HNfEvBf//M30NAKe7aRqUOIlfAAAAAElFTkSuQmCC';
var osd = function(){
var navbar, newElement;
var iFrame = create('iframe', {
'src': cpLocation + "userscript.add_via_url/?url=" + escape(document.location),
var iframe = create('iframe', {
'src': host + api + "?url=" + escape(document.location.href),
'frameborder': 0,
'scrolling': 'no'
});
var addToText = '<a class="addTo" href="#"></a>';
var popupId = 'cpPopup';
var popup = create('div', {
'id': popupId,
'innerHTML': addToText
'id': 'cp_popup'
});
var addButton = create('a', {
'innerHTML': '<img src="' + movieImg + '" />Add to CouchPotato',
'id': 'addTo',
var add_button = create('a', {
'innerHTML': '<img src="' + cp_icon + '" />',
'id': 'add_to',
'onclick': function(){
popup.innerHTML = '';
popup.appendChild(create('a', {
'innerHTML': '<img src="' + closeImg + '" />',
'id': 'closeBtn',
'innerHTML': '<img src="' + close_img + '" />',
'id': 'close_button',
'onclick': function(){
popup.innerHTML = '';
popup.appendChild(addButton);
popup.appendChild(add_button);
}
}));
popup.appendChild(iFrame)
popup.appendChild(iframe)
}
});
popup.appendChild(addButton);
popup.appendChild(add_button);
document.body.parentNode.insertBefore(popup, document.body);
};
var setVersion = function(){
document.body.setAttribute('data-userscript_version', version)
};
if(document.location.href.indexOf(host) == -1)
osd();
else
setVersion();

2
couchpotato/core/providers/nzb/x264/main.py

@ -60,8 +60,6 @@ class X264(NZBProvider):
'check_nzb': False,
}
print new['name']
new['score'] = fireEvent('score.calculate', new, movie, single = True)
is_correct_movie = fireEvent('searcher.correct_movie',
nzb = new, movie = movie, quality = quality,

3
couchpotato/core/providers/userscript/base.py

@ -17,8 +17,7 @@ class UserscriptBase(Plugin):
def __init__(self):
addEvent('userscript.get_includes', self.getInclude)
addEvent('userscript.get_excludes', self.getExclude)
addEvent('userscript.get_version', self.getVersion)
addEvent('userscript.get_provider_version', self.getVersion)
addEvent('userscript.get_movie_via_url', self.belongsTo)
def search(self, name, year = None):

17
couchpotato/core/providers/userscript/imdb/main.py

@ -1,7 +1,6 @@
from beautifulsoup import BeautifulSoup
from couchpotato.core.event import fireEvent
from couchpotato.core.helpers.variable import getImdb
from couchpotato.core.providers.userscript.base import UserscriptBase
import re
class IMDB(UserscriptBase):
@ -9,16 +8,4 @@ class IMDB(UserscriptBase):
includes = ['http*://*.imdb.com/title/tt*', 'http*://imdb.com/title/tt*']
def getMovie(self, url):
data = self.urlopen(url)
html = BeautifulSoup(data)
headers = html.findAll('h5')
# Don't add TV show
for head in headers:
if 'seasons' in head.lower():
return 'IMDB url is a TV Show'
identifier = re.search('(?P<id>tt[0-9{7}]+)', url).group('id')
return fireEvent('movie.info', identifier = identifier, merge = True)
return fireEvent('movie.info', identifier = getImdb(url), merge = True)

9
couchpotato/static/scripts/couchpotato.js

@ -29,7 +29,7 @@ var CouchPotato = new Class({
else
self.openPage(window.location.pathname);
self.c.addEvent('click:relay(a:not([target=_blank]))', self.pushState.bind(self));
self.c.addEvent('click:relay(a:not([target=_blank]):not([normalhref=true]))', self.pushState.bind(self));
},
getOption: function(name){
@ -72,17 +72,10 @@ var CouchPotato = new Class({
$(pg).inject(self.content);
});
self.load_timer = (function(){
self.fireEvent('load');
}).delay(1000);
},
stopLoadTimer: function(){
if(this.load_timer)
clearInterval(this.load_timer);
},
openPage: function(url) {
var self = this;

3
couchpotato/templates/_desktop.html

@ -66,7 +66,8 @@
'args': '{{ env.get('args') }}',
'options': '{{ env.get('options') }}',
'app_dir': '{{ env.get('app_dir') }}',
'data_dir': '{{ env.get('data_dir') }}'
'data_dir': '{{ env.get('data_dir') }}',
'userscript_version': {{ fireEvent('userscript.get_version', single = True)|safe }}
});
//Wizard.start.delay(100, Wizard);

Loading…
Cancel
Save