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)
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)