View Single Post
Old 03-15-2020, 12:00 PM   #10
pacha2
Member
pacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameterpacha2 can solve quadratic equations while standing on his or her head reciting poetry in iambic pentameter
 
pacha2's Avatar
 
Posts: 18
Karma: 12710
Join Date: Feb 2020
Device: Kindle Paperwhite
Smile Autosport Plus Working

After much trial, error, pain and debugging I have the Autosport login working.

I have tested this for a couple of days and seems to work for me.

Let me know how you get on.

Spoiler:

#!/usr/bin/env python2
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe

'''
www.autosport.com
'''

class AutosportUserRecipe(BasicNewsRecipe):
language = 'en_GB'
description = u'Smart insight. Published daily. The in-depth, independent F1 analysis you deserve.'
masthead_url = 'http://cdn.images.autosport.com/asdotcom.gif'
remove_empty_feeds = True
__author__ = 'Pacha2 using Autosport.com'
needs_subscription = True
title = 'Autosport Plus'
publication_type = 'magazine'
oldest_article = 7
max_articles_per_feed = 100
auto_cleanup = True
remove_javascript = True
ignore_duplicate_articles = {'title', 'url'}

def get_browser(self):
from mechanize import Request
import json
br = BasicNewsRecipe.get_browser(self)
if self.username is not None and self.password is not None:
# Authentication
user_agent ='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
br.addheaders = [('content-type', 'application/json'),('User-Agent', user_agent),('Referer','https://www.autosport.com/')]
br.open('https://www.autosport.com')
cred = b'{"login":"email_placeholder","password":"pass_pl aceholder","recaptchaResponse":""}'
cred = cred.replace("email_placeholder", self.username )
cred = cred.replace("pass_placeholder", self.password )
login_url = 'https://id.tinypass.com/id/api/v1/identity/login/token?aid=cxPw94Eaz6&lang=en_US'
rq = Request(login_url, headers={
'Content-Type': 'application/json',
'user-agent': user_agent,
}, data=cred)
access_token_resp = br.open(rq).read()
print ("Access Token Response " + access_token_resp)
atj = json.loads(access_token_resp)
access_token=atj['access_token']
print ("Just the Access Token " + str(access_token))
jax=br.open('https://buy.tinypass.com/api/v3/access/token/list?url=https%3A%2F%2Fwww.autosport.com%2F&aid=cx Pw94Eaz6&user_provider=piano_id&user_token='+ access_token).read()
br.open('https://id.tinypass.com/id/api/v1/identity/vxauth/cookie?client_id=cxPw94Eaz6&token='+ access_token)
jaxj = json.loads(jax)
tac = jaxj['access_token_list']['value']
print ("Authorised tac " + tac)
br.set_simple_cookie('__tac', tac, '.autosport.com', path='/')
br.set_simple_cookie('__utp', access_token, '.autosport.com', path='/')
return br

def get_cover_url(self):
from datetime import date, timedelta
## Calculate Date logic for cover Image
today = date.today()
dow=today.isoweekday()
if dow < 4:
offdow=dow+3
if dow >= 4:
offdow=dow-4
jpgdate=today - timedelta(days=offdow)
autosport_cover = 'http://digitaledition.autosport.com/issue/'+ jpgdate.strftime('%Y') + '/covers/' + jpgdate.strftime('%d%m%Y') + '.jpg'
return autosport_cover

def check_words(words):
return lambda x: x and frozenset(words.split()).intersection(x.split())


feeds = [
('Formula 1', 'https://www.autosport.com/rss/feed/f1'),
('Features', 'https://www.autosport.com/rss/feed/features'),
('All News', 'https://www.autosport.com/rss/feed/all'),
]

Attached Files
File Type: recipe Autosport Plus_1001.recipe (3.5 KB, 197 views)
pacha2 is offline   Reply With Quote