Browse Source

Movies.io userscript and automation

pull/639/merge
Ruud 13 years ago
parent
commit
000c5fa591
  1. 33
      couchpotato/core/providers/automation/movies_io/__init__.py
  2. 69
      couchpotato/core/providers/automation/movies_io/main.py
  3. 6
      couchpotato/core/providers/userscript/moviesio/__init__.py
  4. 6
      couchpotato/core/providers/userscript/moviesio/main.py

33
couchpotato/core/providers/automation/movies_io/__init__.py

@ -0,0 +1,33 @@
from .main import MoviesIO
def start():
return MoviesIO()
config = [{
'name': 'moviesio',
'groups': [
{
'tab': 'automation',
'name': 'moviesio',
'label': 'Movies.io',
'description': 'Imports movies from <a href="http://movies.io">Movies.io</a> RSS watchlists',
'options': [
{
'name': 'automation_enabled',
'default': False,
'type': 'enabler',
},
{
'name': 'automation_urls_use',
'label': 'Use',
},
{
'name': 'automation_urls',
'label': 'url',
'type': 'combined',
'combine': ['automation_urls_use', 'automation_urls'],
},
],
},
],
}]

69
couchpotato/core/providers/automation/movies_io/main.py

@ -0,0 +1,69 @@
from couchpotato.core.event import fireEvent
from couchpotato.core.helpers.rss import RSS
from couchpotato.core.helpers.variable import md5
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 xml.etree.ElementTree import ParseError
import time
import traceback
import xml.etree.ElementTree as XMLTree
log = CPLog(__name__)
class MoviesIO(Automation, RSS):
interval = 1800
def getIMDBids(self):
if self.isDisabled():
return
movies = []
enablers = self.conf('automation_urls_use').split(',')
index = -1
for rss_url in self.conf('automation_urls').split(','):
index += 1
if not enablers[index]:
continue
prop_name = 'automation.moviesio.last_update.%s' % md5(rss_url)
last_update = float(Env.prop(prop_name, default = 0))
last_movie_added = 0
try:
cache_key = 'imdb.rss.%s' % md5(rss_url)
rss_data = self.getCache(cache_key, rss_url, headers = {'Referer': ''})
data = XMLTree.fromstring(rss_data)
rss_movies = self.getElements(data, 'channel/item')
for movie in rss_movies:
created = int(time.mktime(parse(self.getTextElement(movie, "pubDate")).timetuple()))
if created > last_movie_added:
last_movie_added = created
if created <= last_update:
continue
nameyear = fireEvent('scanner.name_year', self.getTextElement(movie, "title"), single = True)
imdb = self.search(nameyear.get('name'), nameyear.get('year'), imdb_only = True)
if not imdb:
continue
movies.append(imdb)
except ParseError:
log.debug('Failed loading Movies.io watchlist, probably empty: %s', (rss_url))
except:
log.error('Failed loading Movies.io watchlist: %s %s', (rss_url, traceback.format_exc()))
Env.prop(prop_name, last_movie_added)
return movies

6
couchpotato/core/providers/userscript/moviesio/__init__.py

@ -0,0 +1,6 @@
from .main import MoviesIO
def start():
return MoviesIO()
config = []

6
couchpotato/core/providers/userscript/moviesio/main.py

@ -0,0 +1,6 @@
from couchpotato.core.providers.userscript.base import UserscriptBase
class MoviesIO(UserscriptBase):
includes = ['*://movies.io/m/*']
Loading…
Cancel
Save