diff --git a/freesound.py b/freesound.py index f4bba72..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 @@ -281,6 +281,26 @@ 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 + + if (url): + 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) + else: + return None + class GenericPager(Pager):