Userscript

This commit is contained in:
Ruud
2011-09-28 09:17:34 +02:00
parent c6f322a2c2
commit f09572b662
5 changed files with 41 additions and 67 deletions
+8 -14
View File
@@ -1,6 +1,4 @@
from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.request import getParam
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
from urlparse import urlparse
@@ -20,30 +18,26 @@ class UserscriptBase(Plugin):
addEvent('userscript.get_excludes', self.getExclude)
addEvent('userscript.get_version', self.getVersion)
addApiView('userscript.add_via_url', self.addViaUrl)
addEvent('userscript.get_movie_via_url', self.belongsTo)
def search(self, name, year = None):
movie = fireEvent('movie.search', q = '%s %s' % (name, year), limit = 1)
return movie
def addViaUrl(self):
def belongsTo(self, url):
url = getParam('url')
host = urlparse(url).hostname
if host.startswith('www.'):
host = host[4:]
# Check if the url matches the provider
is_provider = False
for include in self.includes:
if host in include:
is_provider = True
break
if not is_provider:
return False
return self.getMovie(url)
return
fireEvent()
def getMovie(self, url):
return None
def getInclude(self):
return self.includes
@@ -18,53 +18,9 @@ class IMDB(UserscriptBase):
# Don't add TV show
for head in headers:
if 'seasons' in head.lower():
return False
return 'IMDB url is a TV Show'
identifier = re.search('(?P<id>tt[0-9{7}]+)', url).group('id')
movie = fireEvent('movie.info', identifier = identifier)
movie = fireEvent('movie.info', identifier = identifier, merge = True)
return {
'id': re.search('(?P<id>tt[0-9{7}]+)', url).group('id'),
'year': self.getYear(html)
}
#CouchPotato['imdb.com'] = (function(){
#
# function isMovie(){
# var series = document.getElementsByTagName('h5')
# for (var i = 0; i < series.length; i++) {
# if (series[i].innerHTML == 'Seasons:') {
# return false;
# }
# }
# return true;
# }
#
# function getId(){
# return 'tt' + location.href.replace(/[^\d+]+/g, '');
# }
#
# function getYear(){
# try {
# return document.getElementsByTagName('h1')[0].getElementsByTagName('a')[0].text;
# } catch (e) {
# var spans = document.getElementsByTagName('h1')[0].getElementsByTagName('span');
# var pattern = /^\((TV|Video) ([0-9]+)\)$/;
# for (var i = 0; i < spans.length; i++) {
# if (spans[i].innerHTML.search(pattern)) {
# return spans[i].innerHTML.match(pattern)[1];
# }
# }
# }
# }
#
# var constructor = function(){
# if(isMovie()){
# lib.osd(getId(), getYear());
# }
# }
#
# return constructor;
#
#})();
return movie