Beispiel #1
0
    def get_recording(cls, db_session, recording_id):
        recording = DatabaseAccess.query_recording(db_session, recording_id)

        if recording is not None:
            return recording

        raise RecordingNotFoundError
Beispiel #2
0
    def get_recording_program_title(cls, recording_id):
        db_session = Database.create_session()

        try:
            recording = DatabaseAccess.query_recording(db_session,
                                                       recording_id)

            if recording is not None:
                program_title = recording.program_title
            else:
                program_title = 'Recording {0}'.format(recording_id)

            return program_title
        finally:
            db_session.close()
Beispiel #3
0
    def stop_live_recording(cls, db_session, recording):
        with cls._live_recordings_to_recording_thread_lock:
            try:
                cls._live_recordings_to_recording_thread[
                    recording.id].force_stop()

                del cls._live_recordings_to_recording_thread[recording.id]
            except KeyError:
                recording = DatabaseAccess.query_recording(
                    db_session, recording.id)

                if recording is not None:
                    if recording.status == RecordingStatus.LIVE.value:
                        segment_row = DatabaseAccess.query_segments_count(
                            db_session, recording.id)

                        if segment_row is not None and segment_row.count > 0:
                            recording.status = RecordingStatus.PERSISTED.value
                else:
                    raise RecordingNotFoundError