def add_video_id_transcode_bitrate(request): video_id = request.get_arg("video_id") bitrates = request.get_arg("bitrates") response = X100Response() response.set_header("Access-Control-Allow-Origin", "*") response.set_header("Access-Control-Allow-Methods", "GET") if not video_id or not bitrates: response.set_body('{"status":"failed", "message":"video_id or bitrates empty"}') return response add_bitrates_list = bitrates.split(",") r = redis_connect() ret = r.hget("x100speed_hash_videoid", video_id) if not ret: response.set_body('{"status":"failed", "message":"video_id redis not found"}') return response data_object = DataStructuresSerialized(ret, "|") data_list = data_object.getDeserializationStruct() bitrate_list = DataStructuresSerialized(data_list[3], ',').getDeserializationStruct() bitrate_list.extend(add_bitrates_list) bitrate_list = list(set(bitrate_list)) bitrate_list.sort(key = int) bitrate_string = DataStructuresSerialized(bitrate_list, ',').getSerializedString() bitrate_of_list_index = 3 data_object.update(bitrate_of_list_index, bitrate_string) ret = r.hset("x100speed_hash_videoid", video_id, data_object.getDeserializationStruct()) response.set_body('{"status":"success", "message":""}') return response
def update_video_snap_image_count(request): video_id = request.get_arg('video_id') snap_image_count = request.get_arg('snap_image_count') response = X100Response() response.set_header("Access-Control-Allow-Origin", "*") response.set_header("Access-Control-Allow-Methods", "GET") if not video_id or not snap_image_count: response.set_body('{"status":"failed", "message":"video_id or snap_image_count empty"}') return response value = '' r = redis_connect() ret = r.hget("x100speed_hash_videoid", video_id) if not ret: response.set_body('{"status":"failed", "message":"redis not have video_id"}') return response index = 1 data_object = DataStructuresSerialized(ret, "|") data_object.update(index, snap_image_count) value = data_object.getSerializedString() r.hset('x100speed_hash_videoid', video_id, value) response.set_body('{"status":"success", "message":""}') return response
def update_video_snap_image_count(request): video_id = request.get_arg('video_id') snap_image_count = request.get_arg('snap_image_count') response = X100Response() response.set_header("Access-Control-Allow-Origin", "*") response.set_header("Access-Control-Allow-Methods", "GET") if not video_id or not snap_image_count: response.set_body( '{"status":"failed", "message":"video_id or snap_image_count empty"}' ) return response value = '' r = redis_connect() ret = r.hget("x100speed_hash_videoid", video_id) if not ret: response.set_body( '{"status":"failed", "message":"redis not have video_id"}') return response index = 1 data_object = DataStructuresSerialized(ret, "|") data_object.update(index, snap_image_count) value = data_object.getSerializedString() r.hset('x100speed_hash_videoid', video_id, value) response.set_body('{"status":"success", "message":""}') return response
def test_unserialized(self): testString = 'China|10|beijing' testSeparator = '|' data = DataStructuresSerialized( testString, testSeparator).getDeserializationStruct() self.assertEqual(data, ['China', '10', 'beijing'])
def test_unserializedEmpty(self): testString = '' testSeparator = '|' data = DataStructuresSerialized( testString, testSeparator).getDeserializationStruct() self.assertEqual(data, None)
def test_listSerializedInvalidSeparator(self): testList = ["China", 10, "beijing,haidian"] testSeparator = ',' data = DataStructuresSerialized(testList, testSeparator).getSerializedString() self.assertEqual(data, None)
def test_listSerializedDigit(self): testList = [10, 21, 27] testSeparator = ',' data = DataStructuresSerialized(testList, testSeparator).getSerializedString() self.assertEqual(data, '10,21,27')
def test_listSerialized(self): testList = ["China", 10, "beijing"] testSeparator = '|' data = DataStructuresSerialized(testList, testSeparator).getSerializedString() self.assertEqual(data, 'China|10|beijing')
def test_updateListStruct(self): testData = ['China', 10, 'beijing'] testSeparator = '|' index = 1 subString = 'Hubei' dataClass = DataStructuresSerialized(testData, testSeparator) dataClass.update(index, subString) data = dataClass.getSerializedString() self.assertEqual(data, 'China|Hubei|beijing') dataClass.update(index, 'Ningxia') data = dataClass.getSerializedString() self.assertEqual(data, 'China|Ningxia|beijing')
def update_video_status(request): video_id = request.get_arg('video_id') status = request.get_arg('status') ip = request.get_remote_ip() response = X100Response() response.set_header("Access-Control-Allow-Origin", "*") response.set_header("Access-Control-Allow-Methods", "GET") if not video_id or not status: response.set_body('{"status":"failed", "message":"video_id or status empty"}') return response value = '' r = redis_connect() ret = r.hget("x100speed_hash_videoid", video_id) if not ret: if status == "proceed": bitrate = request.get_arg('bitrate') if not bitrate: response.set_body('{"status":"failed", "message":"proceed first bitrate empty"}') return response value = status + '|' + '|' + ip + '|' + bitrate r.hset('x100speed_hash_videoid', video_id, value) response.set_body('{"status":"success", "message":""}') else: response.set_body('{"status":"failed", "message":"redis not have video_id"}') return response data_object = DataStructuresSerialized(ret, "|") if status == "proceed": bitrate = request.get_arg('bitrate') if not bitrate: response.set_body('{"status":"failed", "message":"bitrate params is empty"}') return response data_list = data_object.getDeserializationStruct() bitrate_list = DataStructuresSerialized(data_list[3], ',').getDeserializationStruct() bitrate_list.append(bitrate) bitrate_list = list(set(bitrate_list)) bitrate_list.sort(key = int) bitrate_string = DataStructuresSerialized(bitrate_list, ',').getSerializedString() bitrate_of_list_index = 3 data_object.update(bitrate_of_list_index, bitrate_string) status_of_list_index = 0 ip_of_list_index = 2 data_object.update(status_of_list_index, status) data_object.update(ip_of_list_index, ip) value = data_object.getSerializedString() r.hset('x100speed_hash_videoid', video_id, value) if status == "success": r.rpush("x100speed_" + ip + "_list", video_id) response.set_body('{"status":"success", "message":""}') return response
def update_video_status(request): video_id = request.get_arg('video_id') status = request.get_arg('status') ip = request.get_remote_ip() response = X100Response() response.set_header("Access-Control-Allow-Origin", "*") response.set_header("Access-Control-Allow-Methods", "GET") if not video_id or not status: response.set_body( '{"status":"failed", "message":"video_id or status empty"}') return response value = '' r = redis_connect() ret = r.hget("x100speed_hash_videoid", video_id) if not ret: if status == "proceed": bitrate = request.get_arg('bitrate') if not bitrate: response.set_body( '{"status":"failed", "message":"proceed first bitrate empty"}' ) return response value = status + '|' + '|' + ip + '|' + bitrate r.hset('x100speed_hash_videoid', video_id, value) response.set_body('{"status":"success", "message":""}') else: response.set_body( '{"status":"failed", "message":"redis not have video_id"}') return response data_object = DataStructuresSerialized(ret, "|") if status == "proceed": bitrate = request.get_arg('bitrate') if not bitrate: response.set_body( '{"status":"failed", "message":"bitrate params is empty"}') return response data_list = data_object.getDeserializationStruct() bitrate_list = DataStructuresSerialized( data_list[3], ',').getDeserializationStruct() bitrate_list.append(bitrate) bitrate_list = list(set(bitrate_list)) bitrate_list.sort(key=int) bitrate_string = DataStructuresSerialized(bitrate_list, ',').getSerializedString() bitrate_of_list_index = 3 data_object.update(bitrate_of_list_index, bitrate_string) status_of_list_index = 0 ip_of_list_index = 2 data_object.update(status_of_list_index, status) data_object.update(ip_of_list_index, ip) value = data_object.getSerializedString() r.hset('x100speed_hash_videoid', video_id, value) if status == "success": r.rpush("x100speed_" + ip + "_list", video_id) response.set_body('{"status":"success", "message":""}') return response
def add_video_id_transcode_bitrate(request): video_id = request.get_arg("video_id") bitrates = request.get_arg("bitrates") response = X100Response() response.set_header("Access-Control-Allow-Origin", "*") response.set_header("Access-Control-Allow-Methods", "GET") if not video_id or not bitrates: response.set_body( '{"status":"failed", "message":"video_id or bitrates empty"}') return response add_bitrates_list = bitrates.split(",") r = redis_connect() ret = r.hget("x100speed_hash_videoid", video_id) if not ret: response.set_body( '{"status":"failed", "message":"video_id redis not found"}') return response data_object = DataStructuresSerialized(ret, "|") data_list = data_object.getDeserializationStruct() bitrate_list = DataStructuresSerialized(data_list[3], ',').getDeserializationStruct() bitrate_list.extend(add_bitrates_list) bitrate_list = list(set(bitrate_list)) bitrate_list.sort(key=int) bitrate_string = DataStructuresSerialized(bitrate_list, ',').getSerializedString() bitrate_of_list_index = 3 data_object.update(bitrate_of_list_index, bitrate_string) ret = r.hset("x100speed_hash_videoid", video_id, data_object.getDeserializationStruct()) response.set_body('{"status":"success", "message":""}') return response
def test_nonsupportDataStructures(self): testTuples = ('China', 10, 'beijing') testSeparator = '|' data = DataStructuresSerialized(testTuples, testSeparator).getSerializedString() self.assertEqual(data, None)
def test_listSerializedNoSeparator(self): testList = [10, 21, 27] data = DataStructuresSerialized(testList).getSerializedString() self.assertEqual(data, '10|21|27')