|
|
@ -1,19 +1,22 @@ |
|
|
|
from bs4 import BeautifulSoup |
|
|
|
from couchpotato.core.helpers.variable import tryInt, splitString |
|
|
|
from couchpotato.core.logger import CPLog |
|
|
|
from couchpotato.core.providers.automation.base import Automation |
|
|
|
from bs4 import BeautifulSoup |
|
|
|
import re |
|
|
|
|
|
|
|
log = CPLog(__name__) |
|
|
|
|
|
|
|
|
|
|
|
class Letterboxd(Automation): |
|
|
|
|
|
|
|
url = 'http://letterboxd.com/%s/watchlist/' |
|
|
|
pattern = re.compile(r'(.*)\((\d*)\)') |
|
|
|
|
|
|
|
def getIMDBids(self): |
|
|
|
|
|
|
|
if not self.conf('automation_username'): |
|
|
|
log.error('Please fill in your username') |
|
|
|
urls = splitString(self.conf('automation_urls')) |
|
|
|
|
|
|
|
if len(urls) == 0: |
|
|
|
return [] |
|
|
|
|
|
|
|
movies = [] |
|
|
@ -25,13 +28,22 @@ class Letterboxd(Automation): |
|
|
|
return movies |
|
|
|
|
|
|
|
def getWatchlist(self): |
|
|
|
url = self.url % self.conf('automation_username') |
|
|
|
soup = BeautifulSoup(self.getHTMLData(url)) |
|
|
|
|
|
|
|
enablers = [tryInt(x) for x in splitString(self.conf('automation_urls_use'))] |
|
|
|
urls = splitString(self.conf('automation_urls')) |
|
|
|
|
|
|
|
index = -1 |
|
|
|
movies = [] |
|
|
|
for username in urls: |
|
|
|
|
|
|
|
index += 1 |
|
|
|
if not enablers[index]: |
|
|
|
continue |
|
|
|
|
|
|
|
soup = BeautifulSoup(self.getHTMLData(self.url % username)) |
|
|
|
|
|
|
|
for movie in soup.find_all('a', attrs = { 'class': 'frame' }): |
|
|
|
match = filter(None, self.pattern.split(movie['title'])) |
|
|
|
movies.append({ 'title': match[0], 'year': match[1] }) |
|
|
|
for movie in soup.find_all('a', attrs = { 'class': 'frame' }): |
|
|
|
match = filter(None, self.pattern.split(movie['title'])) |
|
|
|
movies.append({'title': match[0], 'year': match[1] }) |
|
|
|
|
|
|
|
return movies |
|
|
|