From 68662d65d64a21a38ce402e4c19fffa151ab264f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rogelio=20Dom=C3=ADnguez=20Hern=C3=A1ndez?= Date: Fri, 17 Jul 2015 09:22:05 -0500 Subject: [PATCH] Correctly remove "partner" query param and some more fail proof in "La Jornada (Mexico)" recipe. The recipe stopped working since July 11th, 2015 because "partner" query param changed position. --- recipes/la_jornada.recipe | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/recipes/la_jornada.recipe b/recipes/la_jornada.recipe index 74565ab179..9077d9a264 100644 --- a/recipes/la_jornada.recipe +++ b/recipes/la_jornada.recipe @@ -5,6 +5,8 @@ www.jornada.unam.mx ''' import re +from urllib import urlencode +from urlparse import urlparse, urlunparse, parse_qs from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe @@ -86,6 +88,14 @@ class LaJornada_mx(BasicNewsRecipe): return soup def get_article_url(self, article): + # Get link to original article URL rurl = article.get('guid', None) - return rurl.rpartition('&partner=')[0] - + if not rurl: + # Use the "link" attribute as failover + return article.get('link', None) + # Remove "partner" query param + u = urlparse(rurl) + query = parse_qs(u.query) + query.pop('partner', None) + u = u._replace(query=urlencode(query, True)) + return urlunparse(u)