def build_pagination_links(request, paged_list): """ This takes the data sent in the 'links' part of an api response and generates a dictionary of navigation links based on that. """ if not hasattr(paged_list, 'page'): return {} page_nav = { 'page': int(paged_list.page), 'total_pages': int(paged_list.total_pages), 'limit': int(paged_list.limit), 'offset': int(paged_list.offset) } for item in request: url = str.replace(str(item['href']), '/search', '/today/') url = str.replace(url, '?since=-1&type=conversation&type=event&type=profile&type=huddle', '') url = str.replace(url, '&since=-1&type=conversation&type=event&type=profile&type=huddle', '') url = str.replace(url, '/&offset=', '/?offset=') item['href'] = api_url_to_gui_url(url) page_nav[item['rel']] = item return page_nav
def build_pagination_links(request, paged_list): """ This takes the data sent in the 'links' part of an api response and generates a dictionary of navigation links based on that. """ if not hasattr(paged_list, 'page'): return {} page_nav = { 'page': int(paged_list.page), 'total_pages': int(paged_list.total_pages), 'limit': int(paged_list.limit), 'offset': int(paged_list.offset) } for item in request: url = str.replace(str(item['href']), '/search', '/today/') url = str.replace( url, '?since=-1&type=conversation&type=event&type=profile&type=huddle', '') url = str.replace( url, '&since=-1&type=conversation&type=event&type=profile&type=huddle', '') url = str.replace(url, '/&offset=', '/?offset=') item['href'] = api_url_to_gui_url(url) page_nav[item['rel']] = item return page_nav
def build_newest_comment_link(response): response = response['comments']['links'] for link in response: if link['rel'] == 'self': response = link['href'] response = api_url_to_gui_url(response) pr = urlparse(response) queries = parse_qs(pr[4]) frag = "" if queries.get('comment_id'): frag = 'comment' + queries['comment_id'][0] del queries['comment_id'] # queries is a dictionary of 1-item lists (as we don't re-use keys in our query string) # urlencode will encode the lists into the url (offset=[25]) etc. So get the values straight. for (key, value) in queries.items(): queries[key] = value[0] queries = urlencode(queries) response = urlunparse((pr[0], pr[1], pr[2], pr[3], queries, frag)) return response
def build_pagination_links(request, paged_list): """ This takes the data sent in the 'links' part of an api response and generates a dictionary of navigation links based on that. """ if not hasattr(paged_list, 'page'): return {} page_nav = { 'page': int(paged_list.page), 'total_pages': int(paged_list.total_pages), 'limit': int(paged_list.limit), 'offset': int(paged_list.offset) } for item in request: item['href'] = api_url_to_gui_url(item['href']) page_nav[item['rel']] = item return page_nav
def build_newest_comment_link(response, request=None): source = '' medium = '' campaign = '' if request is not None: source = request.GET.get('utm_source', '') medium = request.GET.get('utm_medium', '') campaign = request.GET.get('utm_campaign', '') response = response['comments']['links'] for link in response: if link['rel'] == 'self': response = link['href'] response = api_url_to_gui_url(response) pr = urlparse(response) queries = parse_qs(pr[4]) frag = "" if queries.get('comment_id'): frag = 'comment' + queries['comment_id'][0] del queries['comment_id'] # queries is a dictionary of 1-item lists (as we don't re-use keys in our query string) # urlencode will encode the lists into the url (offset=[25]) etc. So get the values straight. for (key, value) in queries.items(): queries[key] = value[0] # preserve utm tracking from original request if source and medium and campaign: queries['utm_source'] = source queries['utm_medium'] = medium queries['utm_campaign'] = campaign queries = urlencode(queries) response = urlunparse((pr[0], pr[1], pr[2], pr[3], queries, frag)) return response