diff --git a/couchpotato/core/providers/automation/letterboxd/__init__.py b/couchpotato/core/providers/automation/letterboxd/__init__.py
index 17f5ae2..f2b8486 100644
--- a/couchpotato/core/providers/automation/letterboxd/__init__.py
+++ b/couchpotato/core/providers/automation/letterboxd/__init__.py
@@ -11,7 +11,7 @@ config = [{
'list': 'watchlist_providers',
'name': 'letterboxd_automation',
'label': 'Letterboxd',
- 'description': 'import movies from your Letterboxd watchlist',
+ 'description': 'Import movies from any public Letterboxd watchlist',
'options': [
{
'name': 'automation_enabled',
@@ -19,10 +19,16 @@ config = [{
'type': 'enabler',
},
{
- 'name': 'automation_username',
+ 'name': 'automation_urls_use',
+ 'label': 'Use',
+ },
+ {
+ 'name': 'automation_urls',
'label': 'Username',
+ 'type': 'combined',
+ 'combine': ['automation_urls_use', 'automation_urls'],
},
],
},
],
-}]
\ No newline at end of file
+}]
diff --git a/couchpotato/core/providers/automation/letterboxd/main.py b/couchpotato/core/providers/automation/letterboxd/main.py
index 3c60d58..7bae2ad 100644
--- a/couchpotato/core/providers/automation/letterboxd/main.py
+++ b/couchpotato/core/providers/automation/letterboxd/main.py
@@ -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