Esempio n. 1
0
    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)
Esempio n. 2
0
    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])))
Esempio n. 3
0
 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)
Esempio n. 4
0
    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))
Esempio n. 5
0
 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))
Esempio n. 6
0
    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)
Esempio n. 7
0
    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)
Esempio n. 8
0
    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)