Skip to content

Allow flex time to be filled by more than just filler content #1939

Description

@nappillow

I feel like there are many ways to build content sets in Tunarr, but I can't use them all interchangeably. Here's an example:

I'd like to just have a channel of Dropout/CollegeHumor shorts running 24/7, and for channels where I deem the shorts appropriate for breaks, just cut over to them. Mid play, whatever. I don't think I care about right sizing them, just whatever happens to be on there at any given time. Maybe that model is more suited to a music channel than a bunch of clips, but nevertheless, it feels like there's a place for it. I'd like to accomplish this with a channel redirect.

In researching how I might apply this, I looked at both expanding the scope of how "filler" content is defined and at expanding options for Flex time, and I feel like allowing Flex time to point at different things a la:

FlexProgrammingSlotSchema = z.object({
  type: z.literal('flex'),
  fillSource: z.discriminatedUnion('type', [
    z.object({type: z.literal('dead-air')}),         // current behavior
    z.object({type: z.literal('filler-list'), fillerListId, ...}),
    z.object({type: z.literal('channel-redirect'), channelId}),
    z.object({type: z.literal('custom-show'), customShowId, ordering}),
    z.object({type: z.literal('smart-collection'), smartCollectionId, ordering}),
  ]).default({type: 'dead-air'}),
})

feels more like the right shape to me.

Discussion #1399 raised the same shape for music playlists; this extends it to channel-as-filler more generally.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions