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

log = CPLog(__name__)


class Goodfilms(Automation):

    url = 'http://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
