From 6d7d6834b9a81fce35a30c089de577fc4bcab8f4 Mon Sep 17 00:00:00 2001 From: Salvatore De Paolis Date: Mon, 22 Aug 2016 02:35:58 +0200 Subject: [PATCH 1/2] Retrieve a specific n page --- freesound.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/freesound.py b/freesound.py index f4bba72..cfe4197 100644 --- a/freesound.py +++ b/freesound.py @@ -281,6 +281,23 @@ def previous_page(self): Get a Pager with the previous results page. """ return FSRequest.request(self.previous, {}, self.client, Pager) + def get_page(self, n): + url = self.next + + uri = urlparse(url) + for index,item in enumerate(uri): + if ('query' in item): + urid=index + + query = uri[urid].split("&") + + for index,item in enumerate(query): + if ("page" in item): + query[index] = 'page=' + str(n) + + url = uri[0] + '://' + uri[1] + uri[2] + '?' + "&".join(query) + return FSRequest.request(url, {}, self.client, Pager) + class GenericPager(Pager): From 102f2a5190c91dbdba29cd39b3f75dc9a882ad05 Mon Sep 17 00:00:00 2001 From: Salvatore De Paolis Date: Mon, 29 Aug 2016 17:33:00 +0200 Subject: [PATCH 2/2] Check for url and include urlparse --- freesound.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/freesound.py b/freesound.py index cfe4197..7e70471 100644 --- a/freesound.py +++ b/freesound.py @@ -20,7 +20,7 @@ try: # python 3 from urllib.request import urlopen, FancyUrlOpener, Request # noqa - from urllib.parse import urlencode, quote + from urllib.parse import urlparse, urlencode, quote from urllib.error import HTTPError except ImportError: # python 2.7 from urllib import urlencode, FancyURLopener, quote @@ -283,20 +283,23 @@ def previous_page(self): return FSRequest.request(self.previous, {}, self.client, Pager) def get_page(self, n): url = self.next - - uri = urlparse(url) - for index,item in enumerate(uri): - if ('query' in item): - urid=index + + if (url): + uri = urlparse(url) + for index,item in enumerate(uri): + if ('query' in item): + urid=index - query = uri[urid].split("&") + query = uri[urid].split("&") - for index,item in enumerate(query): - if ("page" in item): - query[index] = 'page=' + str(n) + for index,item in enumerate(query): + if ("page" in item): + query[index] = 'page=' + str(n) - url = uri[0] + '://' + uri[1] + uri[2] + '?' + "&".join(query) - return FSRequest.request(url, {}, self.client, Pager) + url = uri[0] + '://' + uri[1] + uri[2] + '?' + "&".join(query) + return FSRequest.request(url, {}, self.client, Pager) + else: + return None