Esempio n. 1
0
def snap_screenshots(snap_id, session, data=None, files=None):
    method = None
    files_array = None
    headers = get_authorization_header(session)
    headers['Accept'] = 'application/json'

    if data:
        method = 'PUT'

        files_array = []
        if files:
            for f in files:
                files_array.append(
                    (f.filename, (f.filename, f.stream, f.mimetype)))
        else:
            # API requires a multipart request, but we have no files to push
            # https://github.com/requests/requests/issues/1081
            files_array = {'info': ('', data['info'])}
            data = None

    screenshot_response = cache.get(
        SCREENSHOTS_QUERY_URL.format(snap_id=snap_id),
        headers=headers,
        data=data,
        method=method,
        files=files_array)

    if authentication.is_macaroon_expired(screenshot_response.headers):
        raise MacaroonRefreshRequired()

    return screenshot_response.json()
Esempio n. 2
0
def post_agreement(agreed):
    headers = get_authorization_header()

    json = {'latest_tos_accepted': agreed}
    agreement_response = cache.get(AGREEMENT_URL, headers, json)

    return agreement_response.json()
Esempio n. 3
0
def get_snap_info(snap_name, session):
    response = cache.get(SNAP_INFO_URL.format(snap_name=snap_name),
                         headers=get_authorization_header(session))

    if authentication.is_macaroon_expired(response.headers):
        raise MacaroonRefreshRequired()

    return process_response(response)
Esempio n. 4
0
def get_snap_status(snap_id, session):
    status_response = cache.get(STATUS_QUERY_URL.format(snap_id=snap_id),
                                headers=get_authorization_header(session))

    if authentication.is_macaroon_expired(status_response.headers):
        raise MacaroonRefreshRequired()

    return status_response.json()
Esempio n. 5
0
def get_snap_info(snap_name):
    response = cache.get(SNAP_INFO_URL.format(snap_name=snap_name),
                         headers=get_authorization_header())

    if response.status_code == 404:
        message = 'Snap not found: {snap_name}'.format(**locals())
        flask.abort(404, message)

    return response.json()
Esempio n. 6
0
def get_agreement(session):
    headers = get_authorization_header(session)

    agreement_response = cache.get(AGREEMENT_URL, headers)

    if authentication.is_macaroon_expired(agreement_response.headers):
        raise MacaroonRefreshRequired()

    return agreement_response.json()
Esempio n. 7
0
def snap_metadata(snap_id, json=None):
    method = "PUT" if json is not None else None

    metadata_response = cache.get(METADATA_QUERY_URL.format(snap_id=snap_id),
                                  headers=get_authorization_header(),
                                  json=json,
                                  method=method)

    return metadata_response.json()
Esempio n. 8
0
def get_publisher_metrics(json):
    authed_metrics_headers = PUB_METRICS_QUERY_HEADERS.copy()
    auth_header = get_authorization_header()['Authorization']
    authed_metrics_headers['Authorization'] = auth_header

    metrics_response = cache.get(SNAP_PUB_METRICS_URL,
                                 headers=authed_metrics_headers,
                                 json=json)

    return metrics_response.json()
Esempio n. 9
0
def post_agreement(session, agreed):
    headers = get_authorization_header(session)

    json = {'latest_tos_accepted': agreed}
    agreement_response = cache.get(AGREEMENT_URL, headers, json)

    if authentication.is_macaroon_expired(agreement_response.headers):
        raise MacaroonRefreshRequired()

    return agreement_response.json()
Esempio n. 10
0
def snap_metadata(snap_id, session, json=None):
    method = "PUT" if json is not None else None

    metadata_response = cache.get(METADATA_QUERY_URL.format(snap_id=snap_id),
                                  headers=get_authorization_header(session),
                                  json=json,
                                  method=method)

    if authentication.is_macaroon_expired(metadata_response.headers):
        raise MacaroonRefreshRequired()

    return metadata_response.json()
Esempio n. 11
0
def get_publisher_metrics(session, json):
    authed_metrics_headers = PUB_METRICS_QUERY_HEADERS.copy()
    auth_header = get_authorization_header(session)['Authorization']
    authed_metrics_headers['Authorization'] = auth_header

    metrics_response = cache.get(SNAP_PUB_METRICS_URL,
                                 headers=authed_metrics_headers,
                                 json=json)

    if authentication.is_macaroon_expired(metrics_response.headers):
        raise MacaroonRefreshRequired()

    return metrics_response.json()
Esempio n. 12
0
def get_snap_details(snap_name):
    details_response = cache.get(SNAP_DETAILS_URL.format(snap_name=snap_name),
                                 headers=DETAILS_QUERY_HEADERS)

    if details_response.status_code >= 400:
        message = ('Failed to get snap details for {snap_name}'.format(
            **locals()))

        if details_response.status_code == 404:
            message = 'Snap not found: {snap_name}'.format(**locals())

        flask.abort(details_response.status_code, message)

    return details_response.json()
Esempio n. 13
0
def get_cache(reqdata, req_id, debugging):
    log.info("[#%s] get_cache@modules/skill.py: New Request" % req_id)
    # 사용자 ID 가져오고 검증
    uid = json.loads(reqdata)["userRequest"]["user"]["id"]
    if user.auth_admin(uid, req_id, debugging):
        cache_list = cache.get(req_id, debugging)
        if cache_list == "":
            log.info("[#%s] get_cache@modules/skill.py: No Cache" % req_id)
            cache_list = "\n캐시가 없습니다."
        msg = "캐시 목록:" + cache_list
    else:
        log.info("[#%s] get_cache@modules/skill.py: Non-Authorized User" %
                 req_id)
        msg = "사용자 인증에 실패하였습니다.\n당신의 UID는 %s 입니다." % uid
    return skill(msg)
Esempio n. 14
0
def post_username(session, username):
    headers = get_authorization_header(session)
    json = {'short_namespace': username}
    username_response = cache.get(url=ACCOUNT_URL,
                                  headers=headers,
                                  json=json,
                                  method='PATCH')

    if authentication.is_macaroon_expired(username_response.headers):
        raise MacaroonRefreshRequired()

    if username_response.status_code == 204:
        return {}
    else:
        return username_response.json()
Esempio n. 15
0
def get_account(session):
    authorization = authentication.get_authorization_header(
        session['macaroon_root'], session['macaroon_discharge'])

    headers = {
        'X-Ubuntu-Series': '16',
        'X-Ubuntu-Architecture': 'amd64',
        'Authorization': authorization
    }

    response = cache.get(url=ACCOUNT_URL, method='GET', headers=headers)

    if authentication.is_macaroon_expired(response.headers):
        raise MacaroonRefreshRequired()

    return response.json()
Esempio n. 16
0
def resolve(url):
    try:
        log("Resolver called with url: " + url)
        resolved=resolve_it(url)
        if resolved==None:
            #semi-cached resolving
            url=cache.get(find_link,3600*3,url)
            resolved=url
            url=resolve_it(url)
            if url!=None:
                resolved=url
        log("Resolved url: " + resolved)
        return resolved
    except:
        log("Failed to find link.")

        return url
Esempio n. 17
0
def resolve(url, cache_timeout=3, html=None, title='Video'):
    #try:
        log("Resolver called with url: " + url)
        resolved=None
        if html==None:
            resolved=resolve_it(url,title=title)
        if resolved==None:
            if html==None and cache_timeout!=0:
                #semi-cached resolving
                url=cache.get(find_link,cache_timeout,url)
            else:
                url = find_link(url,html=html)
            resolved=url
            url=resolve_it(url,title=title)
            if url!=None:
                resolved=url
        log("Resolved url: " + resolved)
        return resolved
Esempio n. 18
0
def get_account():
    authorization = authentication.get_authorization_header(
        flask.session['macaroon_root'], flask.session['macaroon_discharge'])

    headers = {
        'X-Ubuntu-Series': '16',
        'X-Ubuntu-Architecture': 'amd64',
        'Authorization': authorization
    }

    response = cache.get(url=ACCOUNT_URL, method='GET', headers=headers)

    verified_response = verify_response(response, ACCOUNT_URL, '/account',
                                        '/login')

    if verified_response is not None:
        return {'redirect': verified_response}

    return response.json()
Esempio n. 19
0
def resolve(url, cache_timeout=3, html=None):
    try:
        log("Resolver called with url: " + url)
        resolved = None
        if html == None:
            resolved = resolve_it(url)
        if resolved == None:
            if html == None:
                #semi-cached resolving
                url = cache.get(find_link, cache_timeout, url)
            else:
                url = find_link(url, html=html)
            resolved = url
            url = resolve_it(url)
            if url != None:
                resolved = url
        log("Resolved url: " + resolved)
        return resolved
    except:
        log("Failed to find link.")
        return url
Esempio n. 20
0
def resolve(url, cache_timeout=3, html=None):
    try:
        log("Resolver called with url: " + url)
        resolved=None
        if html==None:
            resolved=resolve_it(url)
        if resolved==None:
            if html==None:
                #semi-cached resolving
                url=cache.get(find_link,cache_timeout,url)
            else:
                url = find_link(url,html=html)
            resolved=url
            url=resolve_it(url)
            if url!=None:
                resolved=url
        log("Resolved url: " + resolved)
        return resolved
    except:
        log("Failed to find link.")
        return url
Esempio n. 21
0
def snap_screenshots(snap_id, data=None, files=None):
    method = None
    files_array = None
    headers = get_authorization_header()
    headers['Accept'] = 'application/json'

    if data is not None:
        method = 'PUT'
        files_array = []
        if files is not None:
            for f in files:
                files_array.append(
                    (f.filename, (f.filename, f.stream, f.mimetype)))

    screenshot_response = cache.get(
        SCREENSHOTS_QUERY_URL.format(snap_id=snap_id),
        headers=headers,
        data=data,
        method=method,
        files=files_array)

    return screenshot_response.json()
Esempio n. 22
0
def resolve(url, cache_timeout=3, html=None, title='Video', icon='x'):
    try:
        log("Resolver called with url: " + url)
        resolved = None
        if html == None:
            resolved = resolve_it(url, title=title)
        if resolved == None:
            if html == None and cache_timeout != 0:
                #semi-cached resolving
                url = cache.get(find_link, cache_timeout, url)
            else:
                url = find_link(url, html=html)
            resolved = url
            url = resolve_it(url, title=title, icon=icon)
            if url != None:
                resolved = url
        log("Resolved url: " + resolved)
        return resolved
    except:
        log("Failed to find link.")

        return url
Esempio n. 23
0
def get_promoted_snaps():
    promoted_response = cache.get(PROMOTED_QUERY_URL,
                                  headers=PROMOTED_QUERY_HEADERS)

    return normalize_searched_snaps(promoted_response.json())
Esempio n. 24
0
def get_agreement():
    headers = get_authorization_header()

    agreement_response = cache.get(AGREEMENT_URL, headers)

    return agreement_response.json()
Esempio n. 25
0
def get_featured_snaps():
    featured_response = cache.get(FEATURE_SNAPS_URL,
                                  headers=SEARCH_QUERY_HEADERS)

    return process_response(featured_response)
Esempio n. 26
0
def get_snap_status(snap_id):
    status_response = cache.get(STATUS_QUERY_URL.format(snap_id=snap_id),
                                headers=get_authorization_header())

    return status_response.json()
Esempio n. 27
0
def get_promoted_snaps():
    promoted_response = cache.get(PROMOTED_QUERY_URL,
                                  headers=PROMOTED_QUERY_HEADERS)

    return process_response(promoted_response)
Esempio n. 28
0
def get_searched_snaps(snap_searched, size, page):
    searched_response = cache.get(SNAP_SEARCH_URL.format(
        snap_name=snap_searched, size=size, page=page),
                                  headers=SEARCH_QUERY_HEADERS)

    return process_response(searched_response)
Esempio n. 29
0
def get_snap_details(snap_name):
    details_response = cache.get(SNAP_DETAILS_URL.format(snap_name=snap_name),
                                 headers=DETAILS_QUERY_HEADERS)

    return process_response(details_response)
Esempio n. 30
0
def get_public_metrics(snap_name, json):
    metrics_response = cache.get(SNAP_METRICS_URL.format(snap_name=snap_name),
                                 headers=METRICS_QUERY_HEADERS,
                                 json=json)

    return process_response(metrics_response)
Esempio n. 31
0
def get_featured_snaps():
    featured_response = cache.get(FEATURE_SNAPS_URL,
                                  headers=SEARCH_QUERY_HEADERS)

    return normalize_searched_snaps(featured_response.json())