diff --git a/couchpotato/core/providers/automation/kinepolis/__init__.py b/couchpotato/core/providers/automation/kinepolis/__init__.py new file mode 100644 index 0000000..59c1f33 --- /dev/null +++ b/couchpotato/core/providers/automation/kinepolis/__init__.py @@ -0,0 +1,23 @@ +from .main import Kinepolis + +def start(): + return Kinepolis() + +config = [{ + 'name': 'kinepolis', + 'groups': [ + { + 'tab': 'automation', + 'name': 'kinepolis_automation', + 'label': 'Kinepolis', + 'description': 'imports movies from the current top 10 of kinepolis', + 'options': [ + { + 'name': 'automation_enabled', + 'default': False, + 'type': 'enabler', + }, + ], + }, + ], +}] diff --git a/couchpotato/core/providers/automation/kinepolis/main.py b/couchpotato/core/providers/automation/kinepolis/main.py new file mode 100644 index 0000000..133c61e --- /dev/null +++ b/couchpotato/core/providers/automation/kinepolis/main.py @@ -0,0 +1,67 @@ +from couchpotato.core.helpers.rss import RSS +from couchpotato.core.helpers.variable import md5, getImdb, cleanHost +from couchpotato.core.logger import CPLog +from couchpotato.core.providers.automation.base import Automation +from couchpotato.environment import Env +from dateutil.parser import parse +from urllib import quote_plus +import time +import traceback +import xml.etree.ElementTree as XMLTree +import datetime +import json + +log = CPLog(__name__) + + +class Kinepolis(Automation, RSS): + + interval = 1800 + rss_url = 'http://kinepolis.be/nl/top10-box-office/feed' + + def getIMDBids(self): + + if self.isDisabled(): + return + + movies = [] + RSSMovie = {'name': 'placeholder', 'year' : 'placeholder'} + + cache_key = 'kinepolis.%s' % md5(self.rss_url) + rss_data = self.getCache(cache_key, self.rss_url) + data = XMLTree.fromstring(rss_data) + + if data: + rss_movies = self.getElements(data, 'channel/item') + + for movie in rss_movies: + RSSMovie['name'] = self.getTextElement(movie, "title") + currentYear = datetime.datetime.now().strftime("%Y") + RSSMovie['year'] = currentYear + + log.info('Release found: %s.' % RSSMovie) + imdbId = self.getIMDBFromTitle(RSSMovie['name']) + movies.append(imdbId) + + return movies + + def getIMDBFromTitle(self,title): + api_url = self.createApiUrl() + search_url = api_url + '/movie.search/?q=' + quote_plus(title) + data = self.urlopen(search_url) + jsondata = json.loads(data) + return jsondata['movies'][0]['imdb'] + + def createBaseUrl(self): + host = Env.setting('host') + if host == '0.0.0.0': + host = 'localhost' + port = Env.setting('port') + + return '%s:%d%s' % (cleanHost(host).rstrip('/'), int(port), '/' + Env.setting('url_base').lstrip('/') if Env.setting('url_base') else '') + + def createApiUrl(self): + return '%s/api/%s' % (self.createBaseUrl(), Env.setting('api_key')) + + +