Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(legacy): trim overbooked shows after autoloading a playlist #2897

Merged
merged 23 commits into from
Feb 2, 2024

Conversation

caveman99
Copy link
Contributor

Description

Some combination of preload/postload and autoloding playlists with smartblocks generate massively overbooked shows that clutter up the interface. This addition performs a 'trim overbooked' after filling up the autoload list, and does the same as pushing the 'trim overbooked' button in the UI.

This is a new feature:

New feature that helps with keeping the interface tidy.

I have updated the documentation to reflect these changes:

If a documentation update to reflect this change is deemed neccessary i will provide one.

Testing Notes

What I did:

Define an autoloading playlist of 2 hours and schedule it for a one hour show. Without patch, you'll get entries for 2 hours, with the patch, you only get one hour and a 'overboarding' orange entry at most.

How you can replicate my testing:

see above. UI Button press has identical behaviour.

@jooola
Copy link
Contributor

jooola commented Jan 15, 2024

What do you think about doing this 24h after the show has aired? I think having the overbooked items in the schedule can be useful when removing a track/reordering the track list, e.g. removing a track doesn't end up with a silence at the end because we didn't fully fill the schedule.

So making it a background task sound like a better idea, and maybe also using django/celery ?

@caveman99
Copy link
Contributor Author

My main gripe with the current system is, if you have a fixed schedule and ingest podcast episodes, filling the empty space behind the podcast with a smart block results in massively overbooked shows, if you also want to make sure the random routine doesnt pick a song twice. We don't really interact in this case, merely monitor the playout. When manually editing the autoloaded show the person doing it is responsible for making sure the airtime is fully used and theres no silence. So i took the obvious approach and added it to the autoloader in legacy.

Your suggestion of doing it 24h after the show aired is more a point of database hygene, not UI hygene. I would rather opt for making my patch configurable/switchable. Adding database cleanup via celery 24h after airtime can be done as well. But again those are 2 different stories :-)

@paddatrapper
Copy link
Contributor

paddatrapper commented Jan 17, 2024

I like this change, but agree maybe it should be behind a configuration toggle? Then people who wish to keep things overbooked can

@caveman99
Copy link
Contributor Author

I like this change, but agree maybe it should be behind a configuration toggle? Then people who wish to keep things overbooked can

Setting added. Defaults to old behaviour. If i don't have any spelling errors inside ;-)

Copy link
Contributor

@jooola jooola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, I will test and do another review once the few comments are addressed.

legacy/application/models/ShowInstance.php Outdated Show resolved Hide resolved
legacy/application/models/Preference.php Outdated Show resolved Hide resolved
@caveman99 caveman99 requested a review from jooola January 29, 2024 11:28
Thomas Göttgens and others added 3 commits February 2, 2024 18:32
We don't have tests, debugging simply mean copying the sql query in an sql client and trying it out.
@jooola jooola changed the title feat(legacy): trim Overbooked shows after autoloading a playlist feat(legacy): trim overbooked shows after autoloading a playlist Feb 2, 2024
@jooola
Copy link
Contributor

jooola commented Feb 2, 2024

Next step would be to be able to run this trim on all show instance older than 1 week!

Thanks for the contribution!

@jooola jooola merged commit a95ce3d into libretime:main Feb 2, 2024
17 checks passed
@caveman99 caveman99 deleted the autoload-trim-overbooked branch February 2, 2024 19:45
@caveman99
Copy link
Contributor Author

caveman99 commented Feb 2, 2024

Sheesh, that's for not paying attention when doing last minute copy/past echanges. Thanks for the fixes!

jooola added a commit to mp3butcher/libretime that referenced this pull request Feb 2, 2024
…retime#2897)

### Description

Some combination of preload/postload and autoloding playlists with
smartblocks generate massively overbooked shows that clutter up the
interface. This addition performs a 'trim overbooked' after filling up
the autoload list, and does the same as pushing the 'trim overbooked'
button in the UI.


### Testing Notes

Define an autoloading playlist of 2 hours and schedule it for a one hour
show. Without patch, you'll get entries for 2 hours, with the patch, you
only get one hour and a 'overboarding' orange entry at most.

---------

Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
Co-authored-by: Thomas Göttgens <tgoettgens@mail.com>
Co-authored-by: jo <ljonas@riseup.net>
jooola added a commit that referenced this pull request May 5, 2024
🤖 I have created a release *beep* *boop*
---


## [4.1.0](4.0.0...4.1.0)
(2024-05-05)


### Features

* **api:** implement file deletion
([#2960](#2960))
([9757b1b](9757b1b))
* build schedule events exclusively in playout
([#2946](#2946))
([40b4fc7](40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](#2881))
([95283ef](95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](#2903))
([170d095](170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](#2897))
([a95ce3d](a95ce3d))
* **legacy:** visual cue point editor
([#2947](#2947))
([da02e74](da02e74))
* start celery worker programmatically
([#2988](#2988))
([9c548b3](9c548b3))


### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](#2931))
([29f73e0](29f73e0)),
closes [#2910](#2910)
* apply replay gain preferences on scheduled files
([#2945](#2945))
([35d0dec](35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](#2899))
([3e05748](3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](#2963))
([22c303c](22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](#2972))
([9192aaa](9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](#2993))
([a2cf769](a2cf769))
* incorrect docker compose version
([#2975](#2975))
([634e6e2](634e6e2))
* **installer:** setup the worker entrypoint
([#2996](#2996))
([71b20ae](71b20ae))
* **legacy:** allow deleting file with api token
([#2995](#2995))
([86da46e](86da46e))
* **legacy:** allow updating track types code
([#2955](#2955))
([270aa08](270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](#2915))
([12dd477](12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](#2985))
([5ad69bf](5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](#2932))
([f4b260f](f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](#2943))
([37d1a76](37d1a76))
* remove obsolete docker compose version
([#2982](#2982))
([fb0584b](fb0584b))
* trigger legacy tasks manager every 5m
([#2987](#2987))
([7040d0e](7040d0e))
* **worker:** ensure celery beat is started
([#3007](#3007))
([bfde17e](bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
paddatrapper pushed a commit to libretime/website that referenced this pull request May 5, 2024
🤖 I have created a release *beep* *boop*
---

## [4.1.0](libretime/libretime@4.0.0...4.1.0)
(2024-05-05)

### Features

* **api:** implement file deletion
([#2960](libretime/libretime#2960))
([9757b1b](libretime/libretime@9757b1b))
* build schedule events exclusively in playout
([#2946](libretime/libretime#2946))
([40b4fc7](libretime/libretime@40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](libretime/libretime#2881))
([95283ef](libretime/libretime@95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](libretime/libretime#2903))
([170d095](libretime/libretime@170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](libretime/libretime#2897))
([a95ce3d](libretime/libretime@a95ce3d))
* **legacy:** visual cue point editor
([#2947](libretime/libretime#2947))
([da02e74](libretime/libretime@da02e74))
* start celery worker programmatically
([#2988](libretime/libretime#2988))
([9c548b3](libretime/libretime@9c548b3))

### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](libretime/libretime#2931))
([29f73e0](libretime/libretime@29f73e0)),
closes [#2910](libretime/libretime#2910)
* apply replay gain preferences on scheduled files
([#2945](libretime/libretime#2945))
([35d0dec](libretime/libretime@35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](libretime/libretime#2899))
([3e05748](libretime/libretime@3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](libretime/libretime#2963))
([22c303c](libretime/libretime@22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](libretime/libretime#2972))
([9192aaa](libretime/libretime@9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](libretime/libretime#2993))
([a2cf769](libretime/libretime@a2cf769))
* incorrect docker compose version
([#2975](libretime/libretime#2975))
([634e6e2](libretime/libretime@634e6e2))
* **installer:** setup the worker entrypoint
([#2996](libretime/libretime#2996))
([71b20ae](libretime/libretime@71b20ae))
* **legacy:** allow deleting file with api token
([#2995](libretime/libretime#2995))
([86da46e](libretime/libretime@86da46e))
* **legacy:** allow updating track types code
([#2955](libretime/libretime#2955))
([270aa08](libretime/libretime@270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](libretime/libretime#2915))
([12dd477](libretime/libretime@12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](libretime/libretime#2985))
([5ad69bf](libretime/libretime@5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](libretime/libretime#2932))
([f4b260f](libretime/libretime@f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](libretime/libretime#2943))
([37d1a76](libretime/libretime@37d1a76))
* remove obsolete docker compose version
([#2982](libretime/libretime#2982))
([fb0584b](libretime/libretime@fb0584b))
* trigger legacy tasks manager every 5m
([#2987](libretime/libretime#2987))
([7040d0e](libretime/libretime@7040d0e))
* **worker:** ensure celery beat is started
([#3007](libretime/libretime#3007))
([bfde17e](libretime/libretime@bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
libretime/libretime@1a985a4
paddatrapper pushed a commit to libretime/website that referenced this pull request May 5, 2024
🤖 I have created a release *beep* *boop*
---

## [4.1.0](libretime/libretime@4.0.0...4.1.0)
(2024-05-05)

### Features

* **api:** implement file deletion
([#2960](libretime/libretime#2960))
([9757b1b](libretime/libretime@9757b1b))
* build schedule events exclusively in playout
([#2946](libretime/libretime#2946))
([40b4fc7](libretime/libretime@40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](libretime/libretime#2881))
([95283ef](libretime/libretime@95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](libretime/libretime#2903))
([170d095](libretime/libretime@170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](libretime/libretime#2897))
([a95ce3d](libretime/libretime@a95ce3d))
* **legacy:** visual cue point editor
([#2947](libretime/libretime#2947))
([da02e74](libretime/libretime@da02e74))
* start celery worker programmatically
([#2988](libretime/libretime#2988))
([9c548b3](libretime/libretime@9c548b3))

### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](libretime/libretime#2931))
([29f73e0](libretime/libretime@29f73e0)),
closes [#2910](libretime/libretime#2910)
* apply replay gain preferences on scheduled files
([#2945](libretime/libretime#2945))
([35d0dec](libretime/libretime@35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](libretime/libretime#2899))
([3e05748](libretime/libretime@3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](libretime/libretime#2963))
([22c303c](libretime/libretime@22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](libretime/libretime#2972))
([9192aaa](libretime/libretime@9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](libretime/libretime#2993))
([a2cf769](libretime/libretime@a2cf769))
* incorrect docker compose version
([#2975](libretime/libretime#2975))
([634e6e2](libretime/libretime@634e6e2))
* **installer:** setup the worker entrypoint
([#2996](libretime/libretime#2996))
([71b20ae](libretime/libretime@71b20ae))
* **legacy:** allow deleting file with api token
([#2995](libretime/libretime#2995))
([86da46e](libretime/libretime@86da46e))
* **legacy:** allow updating track types code
([#2955](libretime/libretime#2955))
([270aa08](libretime/libretime@270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](libretime/libretime#2915))
([12dd477](libretime/libretime@12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](libretime/libretime#2985))
([5ad69bf](libretime/libretime@5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](libretime/libretime#2932))
([f4b260f](libretime/libretime@f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](libretime/libretime#2943))
([37d1a76](libretime/libretime@37d1a76))
* remove obsolete docker compose version
([#2982](libretime/libretime#2982))
([fb0584b](libretime/libretime@fb0584b))
* trigger legacy tasks manager every 5m
([#2987](libretime/libretime#2987))
([7040d0e](libretime/libretime@7040d0e))
* **worker:** ensure celery beat is started
([#3007](libretime/libretime#3007))
([bfde17e](libretime/libretime@bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
libretime/libretime@1a985a4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants