|
|
|
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
|
|
|
|
import traceback
|
|
|
|
import xml.etree.ElementTree as XMLTree
|
|
|
|
import json
|
|
|
|
|
|
|
|
log = CPLog(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
class Bluray(Automation, RSS):
|
|
|
|
|
|
|
|
interval = 1800
|
|
|
|
rss_url = 'http://www.blu-ray.com/rss/newreleasesfeed.xml'
|
|
|
|
|
|
|
|
def getIMDBids(self):
|
|
|
|
|
|
|
|
if self.isDisabled():
|
|
|
|
return
|
|
|
|
|
|
|
|
movies = []
|
|
|
|
RSSMovie = {'name': 'placeholder', 'year' : 'placeholder'}
|
|
|
|
RSSMovies = []
|
|
|
|
|
|
|
|
cache_key = 'bluray.%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").lower().split("blu-ray")[0].strip("(").rstrip()
|
|
|
|
RSSMovie['year'] = self.getTextElement(movie, "description").split("|")[1].strip("(").strip()
|
|
|
|
|
|
|
|
if not RSSMovie['name'].find("/") == -1: # make sure it is not a double movie release
|
|
|
|
continue
|
|
|
|
|
|
|
|
if int(RSSMovie['year']) < Env.setting('year', 'automation'): #do year filtering
|
|
|
|
continue
|
|
|
|
|
|
|
|
for test in RSSMovies:
|
|
|
|
if test.values() == RSSMovie.values(): # make sure we did not already include it...
|
|
|
|
break
|
|
|
|
else:
|
|
|
|
log.info('Release found: %s.' % RSSMovie)
|
|
|
|
RSSMovies.append(RSSMovie.copy())
|
|
|
|
|
|
|
|
if not RSSMovies:
|
|
|
|
log.info('No movies found.')
|
|
|
|
return
|
|
|
|
|
|
|
|
log.info("Applying IMDB filter to found movies...")
|
|
|
|
|
|
|
|
for RSSMovie in RSSMovies:
|
|
|
|
imdb = self.getIMDBFromTitle(RSSMovie['name'] + ' ' + RSSMovie['year'])
|
|
|
|
|
|
|
|
if imdb:
|
|
|
|
if self.isMinimalMovie(imdb):
|
|
|
|
movies.append(imdb['imdb'])
|
|
|
|
|
|
|
|
return movies
|