Commit Graph

283 Commits

Author SHA1 Message Date
jo d36fc56f51 refactor(playout): boot_timestamp can be static
The previous use of interactive was used to hack the boot_timestamp after a settings change/liquidsoap restart.
2023-02-25 21:43:37 +02:00
jo 14cfc4ea97 refactor(playout): rename dynamic_source to web_stream 2023-02-25 21:43:37 +02:00
jo 9b9defe935 refactor(playout): rename inputs config variables 2023-02-25 21:43:37 +02:00
jo 9518db6c75 refactor(playout): rename stream control variables 2023-02-25 21:43:37 +02:00
jo c610ea1885 feat(playout): remove unused liquidsoap output namespace 2023-02-25 21:43:37 +02:00
jo 0694c34ec0 feat(playout): remove unused liquidsoap restart function 2023-02-25 21:43:37 +02:00
jo a0f232ba66 feat(playout): remove unused liquidsoap outputs connection status 2023-02-25 21:43:37 +02:00
jo aed90d835f chore(playout): clean comments 2023-02-25 21:43:37 +02:00
jo 0eced23e4e refactor(playout): remove unused check_version 2023-02-25 21:43:37 +02:00
jo c95733191a refactor(playout): rename web_stream variables 2023-02-25 21:43:37 +02:00
jo 654259824c feat(playout): use liquidsoap interactive variables 2023-02-22 15:05:40 +01:00
jo 394cf68b61 fix(playout): quote escape strings in liquidsoap entrypoint 2023-02-22 15:05:40 +01:00
jo 3c8bf6c9eb feat(playout): add jinja2 quote filter for liquidsoap 2023-02-22 15:05:40 +01:00
jo 1b027262ee feat(playout): use jinja2 env for template loading 2023-02-22 15:05:40 +01:00
jo d35ee41bb9 chore: release 3.0.2 2023-02-21 13:37:04 +01:00
jo 75bc72be6d chore: raise from specific exceptions 2023-02-21 13:25:35 +01:00
Jonas L 7c873edc19
test(playout): refresh snapshots after major upgrade (#2381) 2023-02-21 09:06:52 +02:00
jo 4b1a9e6604 test(playout): refresh snapshots after major upgrade 2023-02-03 12:40:30 +01:00
jo 35ba139c08 chore: remove venv activation 2023-02-03 12:40:30 +01:00
renovate[bot] c8957e3e1b chore(deps): update dependency syrupy to v4 2023-02-03 12:40:30 +01:00
jo 3606bd2b2b chore: add isort pre-commit hook 2023-02-03 12:38:58 +01:00
jo f8f6fda794 chore: raise from specific exceptions 2023-02-03 07:36:58 +02:00
jo 284fd5c688 chore: set dev dependencies version ranges 2023-02-03 07:36:58 +02:00
jo 1e6c5a84d3 style: format code using black 2023-02-01 11:20:32 +01:00
jo bd76971312 style: format code using black 2023-02-01 11:17:49 +01:00
jo cfa90c89d1 refactor: improve backports imports 2023-01-16 08:42:23 +02:00
jo 715144a92d chore: move isort config to pyproject.toml 2023-01-16 08:42:23 +02:00
jo 14beb885a3 chore: split test and coverage tasks 2023-01-16 08:42:23 +02:00
jo 37ba9d0986 chore: release 3.0.1 2022-12-20 16:27:29 +01:00
jo 86ceac76d8 chore: release 3.0.1 2022-12-20 16:16:30 +01:00
jo 29a02e6797 refactor: improve backports imports 2022-12-07 15:59:52 +02:00
jo f394336efc chore: move isort config to pyproject.toml 2022-12-07 15:59:52 +02:00
jo 5738edb49c chore: split test and coverage tasks 2022-12-07 15:59:52 +02:00
Jonas L 696666475c
fix: remove systemd ProtectHome feature (#2244)
Fix #2242
2022-10-19 12:37:39 +02:00
Jonas L 959c0378d6
fix: remove systemd ProtectHome feature (#2243)
Fix #2242
2022-10-19 12:27:02 +02:00
Jonas L 7f4ce865d4
docs(playout): add simple inputs pipeline schema (#2240) 2022-10-17 11:57:08 +02:00
Jonas L 730548b891
test: liquidsoap package from ppa is version 1.4.2 (#2233)
The PPA was previously not properly installed in the dev container.

Partial cherry-pick from 499f4d37ed
2022-10-12 16:16:47 +02:00
jo 4ada25a3ff fix(playout): add types
This reverts commit d6348d5575.
2022-10-11 09:28:52 +02:00
jo 0e1dfaa9ff refactor: upgrade code to Python 3.8 2022-10-11 09:28:52 +02:00
jo ea8131ec43 feat: drop Python 3.7 support 2022-10-10 23:49:10 +02:00
jo 182d1616af chore: add snapshot target 2022-10-10 23:29:21 +02:00
jo 1742890370 fix(playout): remove outdated liquidsoap code
Fixes #1482
2022-10-10 23:29:21 +02:00
Jonas L 499f4d37ed
test: liquidsoap package from ppa is version 1.4.2 (#2223)
The PPA was previously not properly installed in the dev container.
2022-10-10 21:14:41 +02:00
jo 5817750b62 feat: drop Liquidsoap 1.3 support 2022-10-10 20:11:33 +02:00
jo ace9365e92 feat: drop Liquidsoap 1.1 support 2022-10-10 20:11:33 +02:00
jo 7d514a9306 chore: list distribution releases by release date
Old releases should be popped from the left/top and new releases should be added to the right/bottom of any distro release list.
2022-10-10 20:11:33 +02:00
jo 5eda6093f4 feat: drop Debian Buster support
Fixes #2036
2022-10-10 20:11:33 +02:00
jo d29d837d01 feat: drop Python 3.6 support 2022-10-10 20:11:33 +02:00
jo 448cff7600 feat: drop Ubuntu Bionic support
Fixes #2035
2022-10-10 20:11:33 +02:00
Jonas L 96ded62c32
chore: release 3.0.0 (#2216) 2022-10-10 17:51:15 +02:00
renovate[bot] 019b4686ae chore(deps): update dependency mutagen to >=1.45.1,<1.47 2022-10-10 12:21:55 +02:00
jo 04490676f6 chore: release 3.0.0-beta.2 2022-10-03 12:43:38 +02:00
Jonas L c9bc3a1298
feat: extra systemd service hardening (#2197) 2022-09-27 13:17:43 +02:00
Jonas L 4c18cf5ef2
feat: systemd service hardening (#2186) 2022-09-27 11:51:17 +02:00
Jonas L 956d19ec95
fix: start playout service after liquidsoap (#2164)
Do not set a hard requirement on the service, only define the startup order.
2022-09-26 13:20:11 +02:00
jo ddae3202cc chore: release 3.0.0-beta.1 2022-09-23 13:41:14 +02:00
jo bdc2e92454 chore: release 3.0.0-beta.0 2022-09-16 16:32:00 +02:00
jo a79980e65f feat(playout): move message handling to main thread 2022-09-16 13:16:06 +02:00
jo b1c2e34ceb fix(playout): remove shutdown_handler 2022-09-16 13:16:06 +02:00
jo 64b3d164c9 refactor(playout): move daemon flag to thread class 2022-09-16 12:33:44 +02:00
jo d79cf00800 chore(playout): add types-backports dependency 2022-09-16 12:33:44 +02:00
Jonas L 45a131b668
chore: update outdated readmes (#2131) 2022-09-12 20:45:37 +02:00
jo 2afb766b41 chore: outdated python packages versions 2022-09-12 10:48:43 +02:00
Jonas L 36264ed4a5
test(playout): use snapshot testing tool (#2115) 2022-09-09 16:57:22 +02:00
Jonas L 03902f6aef
fix(playout): also shutdown on SIGTERM (#2104) 2022-09-08 12:41:56 +02:00
Jonas L 8b5749ec98
ci: build test images for debian bookworm (#2097) 2022-09-07 23:17:46 +02:00
Jonas L ef1de34111
fix(playout): missing live show events (#2087) 2022-09-06 14:09:04 +02:00
jo 37b8b17ed3 feat(playout): allow liquidsoap listen address configuration 2022-09-06 13:21:54 +02:00
jo c8cb100645 feat(playout): liquidsoap boostrap using new api endpoints 2022-09-06 13:21:54 +02:00
jo 2fa045a8ef feat(playout): remove stream_setting update handler 2022-09-06 13:21:54 +02:00
jo f5a83dbabb feat(playout): allow updating message_offline value 2022-09-06 13:21:54 +02:00
jo 314c70a208 feat(playout): stats collector using stream config 2022-09-06 13:21:54 +02:00
jo b9368d1b7b feat(playout): build liquidsoap entrypoint with stream config 2022-09-06 13:21:54 +02:00
Jonas L 510d55c7c1
feat(playout): improve generate_*_events (#2088) 2022-09-05 18:41:04 +02:00
jo 9b40885d9f fix(playout): py39 compatibility zoneinfo import 2022-09-01 19:17:33 +02:00
jo d6348d5575 fix(playout): py36 compatibility broken typings
This partially reverts commit 5505222df6.
2022-09-01 19:17:33 +02:00
jo cfcfcc82e4 chore: revert pin setuptools to <64.0.0 for build backend
This reverts commit 2bde574487.
2022-08-25 09:51:36 +02:00
jo 5505222df6 refactor(playout): rename vars and add typing 2022-08-21 16:13:34 +02:00
jo 1d59310156 refactor(playout): simplify legacy api check 2022-08-21 16:13:34 +02:00
jo a9cd1fb3df refactor(playout): move liq io to liq_client 2022-08-18 08:36:41 +02:00
jo fd2381624a refactor(playout): use vars setter in liq client 2022-08-18 08:36:41 +02:00
jo da6458caea feat(playout): integrate new liquisoap client 2022-08-17 13:18:13 +02:00
jo 624a60c4af feat(playout): create liquidsoap client 2022-08-17 13:18:13 +02:00
jo 3ea085d351 chore: add python docker-* targets
This allow testing in a similar context to the github CI.
2022-08-17 13:18:13 +02:00
Jonas L bddbdf716c
chore(playout): remove unused code (#2058) 2022-08-14 19:56:48 +02:00
Jonas L a730c1b1a4
fix(playout): add thread names (#2056) 2022-08-14 19:55:39 +02:00
Jonas L 8897d390e1
fix(playout): use stream download when fetching files (#2048) 2022-08-12 15:14:19 +02:00
Jonas L 1147853c63
feat(shared): pass config data via init (#2042) 2022-08-12 15:12:39 +02:00
jo 2bde574487 chore: pin setuptools to <64.0.0 for build backend 2022-08-11 22:16:00 +02:00
Jonas L 4019367abc
feat(playout): rewrite stats collector (#2028)
- Replace defusedxml with lxml
2022-08-09 21:14:19 +02:00
jo 02c16de2ab chore(playout): add missing requests types 2022-08-09 21:08:29 +02:00
jo 39941b0fd4 chore(playout): add missing python-dateutil dependency 2022-08-09 21:08:29 +02:00
Jonas L 9413bd5a29
refactor(playout): improve exceptions handling (#2027) 2022-08-09 21:05:21 +02:00
Jonas L b465629977
chore: disable pylint logging-fstring-interpolation format (#2033) 2022-08-09 20:30:44 +02:00
Jonas L d95a77655a
fix(playout): replace deprecated harbor.bind_addr (#2025)
Only for liquidsoap >=1.3.3
2022-08-07 08:50:42 +02:00
jo 406d42323a feat: move stream stats status to pref table 2022-08-07 08:50:06 +02:00
Jonas L e408237be1
refactor(playout): remove unused variable (#2021) 2022-08-06 07:19:47 +02:00
Jonas L 140cf4427b
test: enable logs when running pytest (#2008) 2022-07-31 11:23:27 +02:00
jo 22868ce158 chore: remove chdir in setup.py files 2022-07-27 15:35:57 +02:00
jo b93e1e5570 chore: install local python deps in editable mode 2022-07-27 15:35:57 +02:00
Jonas L e97b06496a
feat(api): don't use hyperlinked serializers (#1984) 2022-07-27 09:54:57 +02:00
jo d9725003c5 feat(playout): integrate api-client v2 calls 2022-07-26 15:14:45 +02:00
Jonas L 77f5c9951e
chore: improve setuptools find_packages (#1985) 2022-07-25 21:19:41 +02:00
Jonas L 368350b269
feat(playout): use single clients instance (#1980)
- Use legacy_client across playout code to make the difference between the old and new clients.
- Setup clients during initialization, and pass clients down to the different apps.
2022-07-22 16:26:43 +02:00
jo 473e770e8a feat: rename AirtimeApiClient to ApiClient 2022-07-22 15:00:38 +02:00
jo 8cb9bd5f32 chore(playout): update api-client imports 2022-07-22 15:00:38 +02:00
jo 71b3f7f065 chore: remove schedule unused independent_event 2022-07-20 12:05:01 +02:00
Jonas L 7e2f2d60f0
chore(playout): restructure modules (#1971) 2022-07-18 15:11:47 +02:00
jo 57046e2a9d chore(api): rename schedule models fields 2022-07-18 00:04:54 +02:00
Jonas L 96af028daa
feat(playout): replace pytz with zoneinfo (#1969) 2022-07-17 22:59:49 +02:00
jo bec5772f8b chore(playout): update defusedxml version range 2022-07-17 21:25:37 +02:00
jo f3af8e1163 chore(playout): remove explicit amqplib 2022-07-17 21:25:37 +02:00
jo 30c202786f chore: update requests version range 2022-07-17 21:25:37 +02:00
jo f256f9bd10 chore: update mutagen version range 2022-07-17 21:25:37 +02:00
jo 5729b116c0 chore(playout): pin kombu version to 4.6.11
This forces to use the same version as the worker.
Previously playout installed kombu>=5.2 and got instanlty
reverted back to 4.6.11 when the worker was installed.
2022-07-17 21:25:37 +02:00
jo 80218f33eb chore: rewrite extract-requirements to python
Using python ast to guess requirements in the setup.py file.
2022-07-17 21:25:37 +02:00
jo 28857fbf49 refactor(playout): remove date_interval_to_seconds function
Replace date_interval_to_seconds function with
either timedelta.total_seconds() or seconds_between().
2022-07-17 13:29:03 +02:00
jo db3f9bed82 chore(playout): remove module docstring 2022-07-17 13:29:03 +02:00
jo ad5dc6caf8 refactor(playout): log level setup 2022-07-17 13:29:03 +02:00
jo 8ef6784a39 refactor(playout): use pathlib to build the path 2022-07-17 13:29:03 +02:00
jo 2bc7d64cc4 feat(playout): use liquidsoap version functions
- remove "packaging" package
2022-07-17 13:29:03 +02:00
jo 58ad40f997 chore(playout): use 'entrypoint' generic module name 2022-07-17 13:29:03 +02:00
jo bd8b17a2cd chore(playout): remove unused liquidsoap.cfg 2022-07-17 11:02:36 +02:00
jo 86a9af1bc1 chore(playout): move liquidsoap package in a module 2022-07-17 11:02:36 +02:00
jo 2f205544c2 feat: use dedicated 'libretime' user
BREAKING CHANGE: The default `www-data` user has been replaced by a dedicated  `libretime` user to run the services. Be sure to change the ownership of the libretime files.
2022-07-07 10:51:07 +02:00
jo b8056a9f7a chore(playout): use EventKind enum 2022-07-01 13:16:57 +02:00
jo 97b723d0a5 chore(playout): rename variables 2022-07-01 13:16:57 +02:00
jo 2ad65bba8c chore(playout): use comments instead of docstrings 2022-07-01 13:16:57 +02:00
jo fa136fad97 chore: explicit schedule file metadata dict values 2022-07-01 11:07:26 +02:00
jo 34864b8623 chore(playout): update file fields 2022-06-29 13:51:07 +02:00
Jonas L 6ef941b3f2
chore(shared): explicit function name time_fromisoformat (#1917) 2022-06-25 17:10:59 +02:00
jo 1faf5a724b chore: move api client get_schedule to playout 2022-06-24 17:56:24 +02:00
jo 510e978952 feat: add systemd libretime.target
- add wanted by
- instantly start services in vagrant
2022-06-08 23:23:08 +02:00
jo ee98387264 feat(installer): rewrite install script
- remove unused root packages.ini
- write config to yaml file
- allow to set public_url during install
- force icecast start right after package install
- move config file in place at the end of installation

BREAKING CHANGE: The bash installer has been rewritten, the flags and
options changed, please run `./install --help` to get more details.
2022-06-08 23:23:08 +02:00
jo aed6d2f294 feat: change config dir path to /etc/libretime
BREAKING: The configuration directory changed from `/etc/airtime` to
`/etc/libretime`. Please rename your configuration directory accordingly.
2022-06-08 23:23:08 +02:00
jo 604ff20239 feat: change config filename to config.yml
BREAKING: The configuration file name changed from `airtime.conf` to
`config.yml`. Please rename your configuration file accordingly.
2022-06-08 23:23:08 +02:00
Jonas L a73084e612
feat(playout): remove unused liquidsoap_prepare_terminate.py (#1854)
Related to cde6db812f
2022-05-21 18:37:54 +02:00
jo bc6b43c43c feat: rotate logs using libretime user 2022-05-05 09:42:34 +02:00
jo f58e51ec84 fix(playout): disable playout-notify log rotation
Let logrotate handle liquidsoap.log log rotation.

Fix #1546
2022-05-05 09:42:34 +02:00
Jonas L d098671f3b
feat: replace click envar with auto_envvar_prefix (#1829) 2022-05-05 09:41:32 +02:00
Jonas L 5f4badcdeb
ci: build test images for ubuntu jammy (#1743) 2022-04-09 16:18:12 +02:00
Jonas L fef38fb131
chore: rename api_client to api-client (#1727) 2022-04-04 10:25:38 +02:00
Jonas L 8c96c0a094
feat: remove unused python3-venv package (#1728) 2022-04-02 05:41:43 +02:00
Jonas L 331df277b4
docs: fix and update links (#1714) 2022-03-29 13:07:38 +02:00
Jonas L be25dea447
fix(playout): add locales to libretime-playout-notify calls (#1715)
Fix python36 encoding runtime error that was failing on bionic,
see https://click.palletsprojects.com/en/8.1.x/unicode-support/ for
details.

Fixes #1606
2022-03-29 13:04:44 +02:00
jo b38596f56e fix(playout): remove stream_buffer_start in event dispatch
Related to 9fc4552cfe
2022-03-06 15:17:44 +02:00
jo f2b9bd6fed chore(playout): api_client schedule data log entry 2022-03-06 15:17:44 +02:00
Jonas L d55e58e416
chore: auto generate requirements.txt (#1651)
- force LC_ALL for the sort command
2022-02-28 20:02:01 +02:00
jo 90e0bcb6f8 test(playout): add bandit linter check 2022-02-14 21:01:35 +02:00
jo 6419435601 style: format code using black 2022-02-09 17:24:36 +02:00