コード例 #1
0
    def get_recordings(cls):
        recordings = []

        db_session = Database.create_session()

        try:
            for recording in DatabaseAccess.query_recordings(db_session):
                recordings.append(recording)
        finally:
            db_session.close()

        return recordings
コード例 #2
0
    def _initialize_recordings(cls, db_session):
        deleted_recordings_log_message = []
        loaded_recordings_log_message = []

        unformatted_message_to_log = 'Provider          => {0}\n' \
                                     'Channel number    => {1}\n' \
                                     'Channel name      => {2}\n' \
                                     'Program title     => {3}\n' \
                                     'Start date & time => {4}\n' \
                                     'End date & time   => {5}\n' \
                                     'Status            => {6}\n'

        for recording in DatabaseAccess.query_recordings(db_session):
            current_date_time_in_utc = datetime.now(pytz.utc)

            formatted_message_to_log = unformatted_message_to_log.format(
                recording.provider, recording.channel_number,
                recording.channel_name, recording.program_title,
                recording.start_date_time_in_utc.astimezone(
                    tzlocal.get_localzone()).strftime('%Y-%m-%d %H:%M:%S%z'),
                recording.end_date_time_in_utc.astimezone(
                    tzlocal.get_localzone()).strftime('%Y-%m-%d %H:%M:%S%z'),
                recording.status)

            if current_date_time_in_utc >= recording.end_date_time_in_utc:
                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

                        loaded_recordings_log_message.append(
                            formatted_message_to_log)
                    else:
                        DatabaseAccess.delete_recording(
                            db_session, recording.id)

                        deleted_recordings_log_message.append(
                            formatted_message_to_log)
                elif recording.status == RecordingStatus.SCHEDULED.value:
                    DatabaseAccess.delete_recording(db_session, recording.id)

                    deleted_recordings_log_message.append(
                        formatted_message_to_log)
            else:
                loaded_recordings_log_message.append(formatted_message_to_log)

        if deleted_recordings_log_message:
            deleted_recordings_log_message.insert(
                0, 'Deleted expired recording{0}\n'.format(
                    's' if len(deleted_recordings_log_message) > 1 else ''))

            logger.debug('\n'.join(deleted_recordings_log_message).strip())

        if loaded_recordings_log_message:
            loaded_recordings_log_message.insert(
                0, 'Loaded recording{0}\n'.format(
                    's' if len(loaded_recordings_log_message) > 1 else ''))

            logger.debug('\n'.join(loaded_recordings_log_message).strip())