-
Notifications
You must be signed in to change notification settings - Fork 481
IMDb login fails #1321
Copy link
Copy link
Closed
Labels
Description
Expected behaviour:
imdb_list plugin logins in successfully with the logged in credentials.
Actual behaviour:
Login fails.
Steps to reproduce:
- Step 1: excute configuration
Config:
tasks:
testtask:
rss: <feed>
imdb_lookup: yes
list_match:
from:
- imdb_list:
login: <username>
password: <password
list: watchlist
download: <dir>
Log:
2016-08-08 20:26 VERBOSE utils.requests testtask Waiting 3.83 seconds until next request to imdb.com
2016-08-08 20:26 VERBOSE utils.requests testtask Waiting 4.66 seconds until next request to imdb.com
2016-08-08 20:26 CRITICAL plugin testtask Login to IMDB failed. Check your credentials.
2016-08-08 20:26 WARNING task testtask Aborting task (plugin: list_match)
Additional information:
liiight advies to raise a ticket. Test was done by Krozer.
- Flexget Version: 2.2.13
- Python Version: 2.7.11
- Installation method: pip
- OS and version: Mac OS X 10.11.6
- Link to crash log:
Test done by Krozer:
import re
import pprint
from flexget.utils.requests import Session as RequestSession, TimedLimiter
from requests.exceptions import RequestException
from flexget.utils.soup import get_soup
from flexget.plugin import PluginError
pp = pprint.PrettyPrinter(indent=4)
_session = RequestSession()
_session.add_domain_limiter(TimedLimiter('imdb.com', '5 seconds'))
_session.headers = {'Accept-Language': 'en-us'}
try:
r = _session.get(
'https://www.imdb.com/ap/signin?openid.return_to=https%3A%2F%2Fwww.imdb.com%2Fap-signin-'
'handler&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&'
'openid.assoc_handle=imdb_mobile_us&openid.mode=checkid_setup&openid.claimed_id=http%3A%'
'2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.ns=http%3A%2F%2Fspecs.ope'
'nid.net%2Fauth%2F2.0')
except RequestException as e:
raise PluginError(e.args[0])
soup = get_soup(r.content)
inputs = soup.select('form#ap_signin_form input')
data = dict((i['name'], i.get('value')) for i in inputs if i.get('name'))
action = soup.find('form', id='ap_signin_form').get('action')
pp.pprint(action)
data['email'] = <email>
data['password'] = <password>
print('email=%s, password=%s', data['email'], data['password'])
d = _session.post(action, data=data)
# Get user id by extracting from redirect url
r = _session.head('http://www.imdb.com/profile', allow_redirects=False)
pp.pprint(r.headers)
if not r.headers.get('location') or 'login' in r.headers['location']:
raise PluginError('Login to IMDB failed. Check your credentials.')
user_id = re.search('ur\d+(?!\d)', r.headers['location']).group()
cookies = dict(d.cookies)
Reactions are currently unavailable