Source code for couchpotato.core.media.movie.providers.automation.goodfilms

from bs4 import BeautifulSoup
from couchpotato.core.logger import CPLog
from couchpotato.core.media.movie.providers.automation.base import Automation

log = CPLog(__name__)

autoload = 'Goodfilms'


[docs]class Goodfilms(Automation):
url = 'https://goodfil.ms/%s/queue?page=%d&without_layout=1' interval = 1800 def getIMDBids(self): if not self.conf('automation_username'): log.error('Please fill in your username') return [] movies = [] for movie in self.getWatchlist(): imdb_id = self.search(movie.get('title'), movie.get('year'), imdb_only = True) movies.append(imdb_id) return movies def getWatchlist(self): movies = [] page = 1 while True: url = self.url % (self.conf('automation_username'), page) data = self.getHTMLData(url) soup = BeautifulSoup(data) this_watch_list = soup.find_all('div', attrs = { 'class': 'movie', 'data-film-title': True }) if not this_watch_list: # No Movies break for movie in this_watch_list: movies.append({ 'title': movie['data-film-title'], 'year': movie['data-film-year'] }) if not 'next page' in data.lower(): break page += 1 return movies config = [{ 'name': 'goodfilms', 'groups': [ { 'tab': 'automation', 'list': 'watchlist_providers', 'name': 'goodfilms_automation', 'label': 'Goodfilms', 'description': 'import movies from your <a href="http://goodfil.ms" target="_blank">Goodfilms</a> queue', 'options': [ { 'name': 'automation_enabled', 'default': False, 'type': 'enabler', }, { 'name': 'automation_username', 'label': 'Username', }, ], }, ], }]