Commit Graph

143 Commits

Author SHA1 Message Date
Jonas L 5f4badcdeb
ci: build test images for ubuntu jammy (#1743) 2022-04-09 16:18:12 +02:00
Jonas L 8c96c0a094
feat: remove unused python3-venv package (#1728) 2022-04-02 05:41:43 +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 f24996e144 chore(analyzer): remove unused dependency 2022-02-25 11:42:28 +02:00
jo 977b499d5e fix(analyzer): update docstring for organise_file 2022-02-20 22:11:00 +02:00
jo d4ffaf9a89 feat(analyzer): rework organise_file using pathlib
- use uuids instead of datetime
- massively using pathlib to manipulate paths
2022-02-20 22:03:59 +02:00
jo dac09869f3 test(analyzer): use pathlib for tmp paths 2022-02-20 22:03:59 +02:00
jo 8113077fd9 chore: fix broken links 2022-02-16 15:01:25 +02:00
jo 7c354f52f4 test(analyzer): set test logging level to trace 2022-02-16 10:13:00 +02:00
jo 88dcd13fc8 feat(analyzer): rework analyze_metadata step
- Upgrade mutagen to 1.45.1
- Remove custom wave data extraction
- Add .wav and ogg without extension fixtures
- Move md5 sum and mime type in there own function
- Cleanup comments
- Let analyze_cuepoints handle cuein and cueout metadata
- Remove python magic mime guessing
2022-02-16 10:13:00 +02:00
Jonas L 0106b4c6cb
fix(analyzer): remove bad attributes in shutdown handler (#1605)
Fixes #1278
2022-02-15 16:40:01 +02:00
jo 29511cfd2d test(analyzer): fix inconsistent return statement 2022-02-15 16:39:04 +02:00
jo c6124b4012 chore(analyzer): move ffmpeg and utils modules to pipeline 2022-02-15 16:39:04 +02:00
jo 8040d9a6c5 feat(analyzer): do verify ssl certs on requests
BREAKING CHANGE: Analyzer no longer ignore certificate verification when
performing a request. We recommand using Letsencrypt to get a certificat.
If you do rely on self signed certificat, please read the requests
documentation to provide a CA Bundle to verify the cert using
environement variables.
2022-02-14 12:44:17 +02:00
jo a73dacc6b5 chore(analyzer): add bandit linter to analyzer 2022-02-14 12:44:17 +02:00
Jonas L cba905e367
refactor(analyzer): improve analyzer pipeline module (#1542)
* rename steps to pipeline module

* move pipeline entrypoint to pipeline module

* rename steps test module to pipeline

* fix paths after renames

* move step protocol to pipeline

* create pipeline status enum

* use Protocol from typing extensions

* Fix linting
2022-01-28 07:09:19 +02:00
jo 32cb67806a chore: add pyupgrade pre-commit hook
- add --py3-plus flag to pyupgrade hook
- add --py36-plus flag to pyupgrade hook
2022-01-27 10:37:48 +02:00
jo 9de82bb568 chore: make linters config consistent in pyproject.toml
- remove mypy config from makefile
2022-01-26 10:15:35 +02:00
jo 7988b7467b test: allow to set python linters to fail per app 2022-01-26 10:15:35 +02:00
jo 0f8cb1a5ed chore: set python build system in pyproject.toml
- fix local package install
- local packages requirement url format
2022-01-26 10:15:35 +02:00
jo 441028a1d2 chore: make setup.py file chdir consistent 2022-01-26 10:15:35 +02:00
Jonas L 1924919e18
fix(shared): type is required for default config submodel (#1536)
We cannot load submodels values from environment variables without having the submodel type annotations.
2022-01-24 15:24:16 +02:00
jo d93fb44356 feat(analyzer): analyze cuepoint using ffmpeg
- store cue(in|out) as strings
- reraise when executable was not found

BREAKING CHANGE: The analyzer requires 'ffmpeg'. The 'silan' system dependency can be removed.
2022-01-24 12:54:31 +02:00
jo ceab19271d feat(analyzer): analyze replaygain using ffmpeg
- remove pycairo pip install
- fix py36 compatibility
- reraise when executable was not found

BREAKING CHANGE: The analyzer requires 'ffmpeg'. The 'rgain3' python package and it's system dependencies can be removed.
2022-01-24 12:54:31 +02:00
jo bf7b0d44fb test(analyzer): update fixtures
- add fixture with > 2 silences
2022-01-24 12:54:31 +02:00
jo 6a919a9805 test(analyzer): rename and remove unused imports 2022-01-24 12:54:31 +02:00
jo 522d989cab fix(analyzer): install missing steps package 2022-01-21 11:54:00 +02:00
jo aa2d1ff4c7 refactor(analyzer): simplify entrypoint
The AbstractApp only make it more complex.
2022-01-21 11:54:00 +02:00
jo 35d38df9d3 feat(analyzer): load config using shared helpers
- make rabbitmq config optional
2022-01-21 11:54:00 +02:00
Jonas L 1561353b20
feat(shared): allow cli parametrized decorators (#1527) 2022-01-20 07:30:35 +02:00
jo 2cae31a97a refactor(analyzer): redefine *_analyzer into steps
- update imports and names
- define step as a protocol
- extract analyzer function from classes
2022-01-18 11:18:19 +02:00
jo f6a52c8324 refactor(analyzer): rename analyzer files 2022-01-18 11:18:19 +02:00
Jonas L fe0b2c4a7a
feat(analyzer): enhance analyzer cli and logging (#1507)
Some initial work on modernizing the analyzer app. This replace any custom logger or `logging` based logger with the logging tools from `libretime_shared.logging` and `loguru`.

- rename cli to main
- use pathlib in setup.py
- add api-client and shared package as dev deps
- rework main entrypoint cli to use click and shared helpers
- remove unused imports
- replace logging with logger
- rework analyzer app using shared abstract app
- move analyzer log path to systemd service
- change analyzer working dir

BREAKING CHANGE: The analyzer cli has been reworked and uses new flags / environnement variables for configuration.
`--debug` flag becomes `--log-level <level>`
`--rmq-config-file` flag becomes `--config <filepath>`
`--http-retry-queue-file` flag becomes `--retry-queue-filepath`.
`retry-queue-filepath` default value changed from `/tmp/airtime_analyzer_http_retries` to `retry_queue` in the working dir.
`LIBRETIME_CONF_DIR` environnement variable replaced by `LIBRETIME_CONFIG_FILEPATH`.

BREAKING CHANGE: When running analyzer as a systemd service, the working directory is now /var/lib/libretime/analyzer.
2022-01-17 10:26:30 +02:00
Jonas L 0d25a330cf
chore: rename common section to python (#1509)
this will make the section more explicite,
in addition, this allow to exclude python deps
on docker images for example.
2022-01-13 07:12:50 +02:00
jo 02efadc3d0 chore: fixes after libretime_analyzer rename 2022-01-04 09:18:58 +02:00
jo 62476de478 chore: rename airtime_analyzer dir to libretime_analyzer 2022-01-04 09:18:58 +02:00
Jonas L 4057c88cf0
feat: debian 11 support (#1292)
* Debian 11 Support

Run api ci test on bullseye as well

* Silan does not work for mp3 on bullseye

* Liquisoap does not fail with wma files on bullseye
2021-11-09 11:21:40 +02:00
Kyle Robbertze 7182390000
feat: add support for Ubuntu Focal 20.04 (#1168)
Co-authored-by: Valerio Bozzolan <gnu@linux.it>
2021-11-04 09:55:50 +02:00
dependabot[bot] ccde6039e7
Bump php-amqplib/php-amqplib from 2.12.3 to 3.0.0 in /legacy (#1418)
* Bump php-amqplib/php-amqplib from 2.12.3 to 3.0.0 in /legacy

Bumps [php-amqplib/php-amqplib](https://github.com/php-amqplib/php-amqplib) from 2.12.3 to 3.0.0.
- [Release notes](https://github.com/php-amqplib/php-amqplib/releases)
- [Changelog](https://github.com/php-amqplib/php-amqplib/blob/master/CHANGELOG.md)
- [Commits](https://github.com/php-amqplib/php-amqplib/compare/v2.12.3...v3.0.0)

---
updated-dependencies:
- dependency-name: php-amqplib/php-amqplib
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Replace deprecated AMQPConnection with AMQPStreamConnection

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2021-10-17 21:55:12 +02:00
dependabot[bot] d61fae8cfa
Bump rgain3 from 1.1.0 to 1.1.1 in /analyzer (#1411)
Bumps [rgain3](https://github.com/chaudum/rgain) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/chaudum/rgain/releases)
- [Changelog](https://github.com/chaudum/rgain3/blob/1.1.1/CHANGES.md)
- [Commits](https://github.com/chaudum/rgain/compare/1.1...1.1.1)

---
updated-dependencies:
- dependency-name: rgain3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-17 18:50:43 +02:00
Jonas L 30b3470a06
Better format enforcing (#1391)
* Add shared python format-check target

* Add .format-check to api lint target

* Format api code with makefile format target

* Add .format-check to tools lint target

* Add .format-check to analyzer lint target

* Format analyzer code with makefile format target

* Add .format-check to celery lint target

* Add .format-check to api_client lint target

* Format api_client code with makefile format target

* Add .format-check to playout lint target

* Run CI linting in parallel

* Disable isort in pre-commit
2021-10-17 16:24:37 +02:00
jo 08f13d850c Update paths after analyzer move 2021-10-17 08:02:47 +00:00
jo 2ef63e8c4e Move python_apps/airtime_analyzer/ to analyzer/ 2021-10-17 08:02:47 +00:00