Beispiel #1
0
def gatraThirdparty_PostPlay(request):
    allowed_methods = ['POST', 'OPTIONS']

    if request.method == 'OPTIONS':
        response = HttpResponse('', status=http_REQUEST_OK)
        response['Allow'] = ', '.join(allowed_methods)
        return response

    if request.method != 'POST':
        return HttpResponse('', status=http_NOT_ALLOWED)

    try:
        jsonData = json.loads(request.body)
    except:
        return HttpResponse('Could not load json', status=http_BAD_REQUEST)

    if ('device_type' in jsonData.keys() and
        'user_agent' in jsonData.keys() and
        'user_id' in jsonData.keys() and
        'access' in jsonData.keys() and
        'country' in jsonData.keys() and
        'idp' in jsonData.keys() and
        'media_id' in jsonData.keys()):

        play = Play()
        if 'title' in jsonData.keys():
            play.title = jsonData['title']
        if 'duration' in jsonData.keys():
            play.duration = jsonData['duration']
        play.device_type = jsonData['device_type']
        play.user_agent = jsonData['user_agent']
        if 'ip_source' in jsonData.keys():
            play.ip_source = jsonData['ip_source']
        if 'user_name' in jsonData.keys():
            play.user_name = jsonData['user_name']
        play.user_id = jsonData['user_id']
        play.access = jsonData['access']
        play.country = jsonData['country']
        play.idp = jsonData['idp']
        play.media_id = jsonData['media_id']
        if 'media_filename' in jsonData.keys():
            play.media_filename = jsonData['media_filename']
        if 'media_type' in jsonData.keys():
            play.media_type = jsonData['media_type']

        if 'season' in jsonData.keys():
            play.season = jsonData['season']

        if 'episode' in jsonData.keys():
            play.episode = jsonData['episode']

        if 'idp_name' in jsonData.keys():
            play.idp_name = jsonData['idp_name']

        play.save()

        status = http_POST_OK
        response = HttpResponse('', status=status, content_type='application/json')
        return response

    return HttpResponse('Mandatory json value not found', status=http_BAD_REQUEST)
Beispiel #2
0
def gatraPlayer_PostPlay(request):

    allowed_methods = ['POST', 'OPTIONS']

    if request.method == 'OPTIONS':
        response = HttpResponse('', status=http_REQUEST_OK)
        response['Allow'] = ', '.join(allowed_methods)
        return response

    if request.method != 'POST':
        return HttpResponse(request.META, status=http_NOT_ALLOWED)

    if 'HTTP_GATRA_HASH' in request.META.keys():
        _hash = request.META['HTTP_GATRA_HASH']
        try:
            h = Hash.objects.get(valid_hash = _hash)
        except:
            return HttpResponse(_hash, status=http_UNAUTHORIZED)
    else:
        return HttpResponse('', status=http_UNAUTHORIZED)

    try:
        jsonData = json.loads(request.body)
    except:
        return HttpResponse('Could not load json', status=http_BAD_REQUEST)

    if ('title' in jsonData.keys() and
       'duration' in jsonData.keys() and
       'user_name' in jsonData.keys() and
       'user_id' in jsonData.keys() and
       'country' in jsonData.keys() and
       'idp' in jsonData.keys() and
       'media_id' in jsonData.keys() and
       'media_filename' in jsonData.keys() and
       'media_type' in jsonData.keys()):

        play = Play()
        play.title          = jsonData['title']
        play.duration       = jsonData['duration']

        play.user_agent     = get_user_agent(request)

        ua = parse(play.user_agent)
        if ua.is_mobile:
            play.device_type = 'mobile'
        elif ua.is_tablet:
            play.device_type = 'tablet'
        elif ua.is_pc:
            play.device_type = 'desktop'
        else:
            play.device_type = 'unknown'

        play.ip_source      = get_client_ip(request)
        play.user_name      = jsonData['user_name']
        play.user_id        = jsonData['user_id']
        play.country        = jsonData['country']
        play.idp            = jsonData['idp']
        play.media_id       = jsonData['media_id']
        play.media_filename = jsonData['media_filename']
        play.media_type     = jsonData['media_type']

        if 'season' in jsonData.keys():
            play.season = jsonData['season']

        if 'episode' in jsonData.keys():
            play.episode = jsonData['episode']

        if 'idp_name' in jsonData.keys():
            play.idp_name = jsonData['idp_name']

        play.save()

        location = "http://gatra.zolechamedia.net:6969/play/" + str(play.id) + "/"
        status = http_POST_OK
        data = {'location' : location};
        response =  HttpResponse(json.dumps(data), status=status, content_type='application/json')
    #    response['Location'] = location
        return response

    return HttpResponse('Mandatory json value not found', status=http_BAD_REQUEST)