def delete(self, video_ids): """ This method deletes a video from the video collection. :param list(ints) video_ids: The video IDs. :raises: CommandLineRouteHandlerError :rtype: None """ video_model = VideoModel() for video_id in video_ids: result = video_model.select(video_id) if result is None: raise CommandLineRouteHandlerError( f'Video with ID {video_id:08d} not found') for video_id in video_ids: result = video_model.select(video_id) path = VideoFile.path(result[2]) video_model.delete(video_id) os.remove(path) debug(f'Video {video_id} was successfully deleted', 3)
def test_delete_one(self): with deepstar_path(): with mock.patch.dict(os.environ, {'DEBUG_LEVEL': '0'}): route_handler = VideoCommandLineRouteHandler() video_0001 = os.path.dirname(os.path.realpath(__file__)) + '/../../support/video_0001.mp4' # noqa route_handler.insert_file(video_0001) video_model = VideoModel() old = video_model.select(1) self.assertIsNotNone(old) args = ['main.py', 'delete', 'videos', '1'] opts = {} route_handler = VideoCommandLineRouteHandler() try: sys.stdout = StringIO() route_handler.handle(args, opts) actual = sys.stdout.getvalue().strip() finally: sys.stdout = sys.__stdout__ # stdout self.assertEqual(actual, 'Video 1 was successfully deleted') # db + files new = video_model.select(1) self.assertIsNone(new) self.assertFalse(os.path.exists(VideoFile.path(old[2])))
def test_delete(self): with deepstar_path(): video_model = VideoModel() video_model.insert('test1', 'test2') result = video_model.select(1) self.assertEqual(result, (1, 'test1', 'test2', None)) result = video_model.delete(1) self.assertTrue(result) result = video_model.select(1) self.assertIsNone(result)
def test_update(self): with deepstar_path(): video_model = VideoModel() video_model.insert('test1', 'test2') result = video_model.select(1) self.assertEqual(result, (1, 'test1', 'test2', None)) video_model.update(1, uri='test3') result = video_model.select(1) self.assertEqual(result, (1, 'test3', 'test2', None))
def test_insert(self): with deepstar_path(): video_model = VideoModel() video_id = video_model.insert('test1', 'test2') self.assertEqual(video_id, 1) result = video_model.select(1) self.assertEqual(result, (1, 'test1', 'test2', None))
def select_deploy(self, video_id, name, opts): """ This method deploys a video via a plugin. :param int video_id: The video ID. :param str name: The plugin name. :param opts dict: The dict of options. :rtype: None """ video_model = VideoModel() result = video_model.select(video_id) if result is None: raise CommandLineRouteHandlerError( f'Video with ID {video_id:08d} not found') plugin = Plugin.get('video_select_deploy', name) if plugin is None: raise CommandLineRouteHandlerError( f"'{name}' is not a valid frame set extraction plugin name") plugin().video_select_deploy(video_id, opts) debug('success', 3)
def select_extract(self, video_ids, opts={}): """ This method extracts frames and thumbnails from a video to a frame set. :param list(int) video_ids: The video IDs. :param dict opts: The optional dict of options. :raises: CommandLineRouteHandlerError :rtype: None """ video_model = VideoModel() for video_id in video_ids: result = video_model.select(video_id) if result is None: raise CommandLineRouteHandlerError( f'Video with ID {video_id:08d} not found') plugin = Plugin.get('video_select_extract', 'default') for video_id in video_ids: frame_set_id = plugin().video_select_extract( video_id, sub_sample=int(opts.get('sub-sample', 1)), max_sample=int(opts.get('max-sample', 0))) debug(f'frame_set_id={frame_set_id}, video_id={video_id}', 3)
def select_detect(self, video_id, model_name, opts): """ This method runs a deepfake detection model over a video. :param int video_id: The video ID. :param str model_name: The name of the detection model to run. :param opts dict: The dict of options. """ video_model = VideoModel() result = video_model.select(video_id) if result is None: raise CommandLineRouteHandlerError( f'Video with ID {video_id:08d} not found') plugin = Plugin.get('video_select_detect', model_name) if plugin is None: raise CommandLineRouteHandlerError( f"'{model_name}' is not a valid video select detect plugin name") video_path = VideoFile.path(result[2]) plugin().video_select_detect(video_path, **opts)