Esempio n. 1
0
def _url_to_json(state_url):
    """Convert urlencoded state serial to JSON state serial."""
    state = parse_qs(state_url)
    for name, value in state.iteritems():
        if isinstance(value, (list, tuple)):
            for item in value:
                state[name] = xml_unescape(item)
        else:
            state[name] = xml_unescape(value)
    return json.dumps(state, separators=(',', ':'))
Esempio n. 2
0
def _url_to_json(state_url):
    """Convert urlencoded state serial to JSON state serial."""
    state = parse_qs(state_url)
    for name, value in state.iteritems():
        if isinstance(value, (list, tuple)):
            for item in value:
                state[name] = xml_unescape(item)
        else:
            state[name] = xml_unescape(value)
    return json.dumps(state, separators=(',', ':'))
Esempio n. 3
0
 def from_string(s):
     """ Returns a token from something like:
     oauth_token_secret=xxx&oauth_token=xxx
     """
     params = parse_qs(s, keep_blank_values=False)
     key = params['oauth_token'][0]
     secret = params['oauth_token_secret'][0]
     token = OAuthToken(key, secret)
     try:
         token.callback_confirmed = params[b'oauth_callback_confirmed'][0]
     except KeyError:
         pass  # 1.0, no callback confirmed.
     return token
Esempio n. 4
0
def gen_pager(current, count, pagesize, baseurl, seperator="page"):
    """
    current: current page index, shoule always bigger than 0
    return {
        "current": xxx,
        "previous": xxx,
        "next": xxx
        "total_page": xxx
    }
    """
    if current <= 0:
        raise Exception("current page should always bigger than 0!")

    total_page = count // pagesize + 1
    if count % pagesize == 0:
        total_page -= 1
    if total_page == 0:
        total_page = 1

    pager = {}
    pager["current"] = current
    pager["previous"] = current - 1 if current - 1 > 0 else None
    pager["next"] = current + 1 if current + 1 <= total_page else None
    pager["total_page"] = total_page
    pager["seperator"] = seperator

    # this is to make sure baseurl + "page=<int: page>" always make a valid url
    frag = urlparse(baseurl)
    args = parse_qs(frag.query)
    # rebuild the query string, but ignore "page"
    query = "&".join(
        ["=".join((k, args[k][0])) for k in args if k != seperator])
    baseurl = frag.path
    if query:
        baseurl += "?" + query + "&"
    else:
        baseurl += "?"
    pager["baseurl"] = baseurl
    return pager
Esempio n. 5
0
def gen_pager(current, count, pagesize, baseurl, seperator="page"):
    """
    current: current page index, shoule always bigger than 0
    return {
        "current": xxx,
        "previous": xxx,
        "next": xxx
        "total_page": xxx
    }
    """
    if current <= 0:
        raise Exception("current page should always bigger than 0!")

    total_page = count // pagesize + 1
    if count % pagesize == 0:
        total_page -= 1
    if total_page == 0:
        total_page = 1

    pager = {}
    pager["current"] = current
    pager["previous"] = current - 1 if current - 1 > 0 else None
    pager["next"] = current + 1 if current + 1 <= total_page else None
    pager["total_page"] = total_page
    pager["seperator"] = seperator

    # this is to make sure baseurl + "page=<int: page>" always make a valid url
    frag = urlparse(baseurl)
    args = parse_qs(frag.query)
    # rebuild the query string, but ignore "page"
    query = "&".join(["=".join((k, args[k][0])) for k in args if k != seperator])
    baseurl = frag.path
    if query:
        baseurl += "?" + query + "&"
    else:
        baseurl += "?"
    pager["baseurl"] = baseurl
    return pager
Esempio n. 6
0
 def _split_url_string(param_str):
     """Turn URL string into parameters."""
     parameters = parse_qs(param_str, keep_blank_values=False)
     for k, v in parameters.items():
         parameters[k] = unquote(v[0])
     return parameters