engine issueshttps://gitlab.servus.at/aura/engine/-/issues2023-07-17T12:06:25+02:00https://gitlab.servus.at/aura/engine/-/issues/48[STORY] As a host/programme coordinator, I want the ability to add entries to...2023-07-17T12:06:25+02:00David Trattnig[STORY] As a host/programme coordinator, I want the ability to add entries to a playlist which is currently playing / during play-out, when the playlist has not been populated properlyIt should be possible to add entries to a playlist which is currently in broadcast. Think about (expanded) live or stream entries in that context - here their length should be "re-expanded".
In case some removal or change of order of pl...It should be possible to add entries to a playlist which is currently in broadcast. Think about (expanded) live or stream entries in that context - here their length should be "re-expanded".
In case some removal or change of order of playlist entries has happened, no live update is performed.
Related: #491.1https://gitlab.servus.at/aura/engine/-/issues/49[STORY] As a host/programme coordinator, I want to assign a Playlist to a Tim...2023-07-17T12:01:57+02:00David Trattnig[STORY] As a host/programme coordinator, I want to assign a Playlist to a Timeslot after it has been started already, to override any undesired fallback scenarioTo allow intervention when no playlist has been assigned to an active timeslot, it should be possible to do so after the timeslot has started already. The assigned playlist starts from the beginning.
Related: #48To allow intervention when no playlist has been assigned to an active timeslot, it should be possible to do so after the timeslot has started already. The assigned playlist starts from the beginning.
Related: #481.1https://gitlab.servus.at/aura/engine/-/issues/38Email to Programme Coordinator(s) when Fallbacks are playing2020-11-04T21:24:41+01:00David TrattnigEmail to Programme Coordinator(s) when Fallbacks are playing1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/69Engine Installation Documentation: Liquidsoap Repo2021-02-19T18:41:28+01:00Hermann SchwΓ€rzlerEngine Installation Documentation: Liquidsoap RepoWhat exactly is meant by
```
Engine requires at least `Liquidsoap 1.4.3` or newer, installed using [OPAM (OCaml Package Manager)](https://opam.ocaml.org/).
Add the current Liquidsoap repository from [this installation guide](https://w...What exactly is meant by
```
Engine requires at least `Liquidsoap 1.4.3` or newer, installed using [OPAM (OCaml Package Manager)](https://opam.ocaml.org/).
Add the current Liquidsoap repository from [this installation guide](https://www.liquidsoap.info/doc-1.4.3/install.html).
```
In the Liquidsoap installation guide there is no *repository* mentioned. Do you perchance mean:
```
opam init
opam switch create 4.08.0
opam depext taglib mad lame vorbis cry samplerate liquidsoap
```1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/71Error "Duplicate entry for key 'timeslot_id'" due to trying to save existing ...2022-01-21T19:45:24+01:00David TrattnigError "Duplicate entry for key 'timeslot_id'" due to trying to save existing timeslotTry to schedule an timeslot before at least one schedule cycle.
```
- [control.py:387-log_commands()]
2021-01-18 17:36:32,820:AuraEngine:INFO - == start fetching new timeslots (every 30 seconds) == - [scheduler.py:105-run()]
--- Loggin...Try to schedule an timeslot before at least one schedule cycle.
```
- [control.py:387-log_commands()]
2021-01-18 17:36:32,820:AuraEngine:INFO - == start fetching new timeslots (every 30 seconds) == - [scheduler.py:105-run()]
--- Logging error ---
Traceback (most recent call last):
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
self.dialect.do_execute(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
cursor.execute(statement, parameters)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry '361' for key 'timeslot_id'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 108, in run
self.programme.refresh()
File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 79, in refresh
self.timeslots = self.programme_store.store_timeslots(response)
File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 291, in store_timeslots
timeslot_db = self.store_timeslot(timeslot)
File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 390, in store_timeslot
timeslot_db.store(add=havetoadd, commit=True)
File "/home/david/Code/aura/engine/src/scheduling/models.py", line 77, in store
DB.session.commit()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1042, in commit
self.transaction.commit()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 504, in commit
self._prepare_impl()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
self.session.flush()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2523, in flush
self._flush(objects)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2664, in _flush
transaction.rollback(_capture_exception=True)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
compat.raise_(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
raise exception
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2624, in _flush
flush_context.execute()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
rec.execute(self)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
persistence.save_obj(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj
_emit_insert_statements(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements
result = cached_connections[connection].execute(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1020, in execute
return meth(self, multiparams, params)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1133, in _execute_clauseelement
ret = self._execute_context(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1323, in _execute_context
self._handle_dbapi_exception(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1517, in _handle_dbapi_exception
util.raise_(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
raise exception
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
self.dialect.do_execute(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
cursor.execute(statement, parameters)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062, "Duplicate entry '361' for key 'timeslot_id'")
[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (None, None, 9, None, None, None, '2021-01-18T17:38:00', '2021-01-18T17:40:00', 361, 1, 'Musikprogramm', 'Musikredaktion', 'Standard', None, 'Farsi', 'Unmoderiertes Musikprogramm', '', '', '', 0)]
(Background on this error at: http://sqlalche.me/e/gkpj)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not enough arguments for format string
Call stack:
File "/home/david/.vscode/extensions/ms-python.python-2020.12.424452561/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py", line 916, in __call__
ret = self.original_func(*self.args, **self.kwargs)
File "/usr/lib/python3.8/threading.py", line 890, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 115, in run
self.logger.critical(SU.red(f"Unhandled error while fetching & scheduling new programme! ({str(e)})"), e)
Message: '\x1b[31mUnhandled error while fetching & scheduling new programme! ((_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")\n[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]\n[parameters: (None, None, 9, None, None, None, \'2021-01-18T17:38:00\', \'2021-01-18T17:40:00\', 361, 1, \'Musikprogramm\', \'Musikredaktion\', \'Standard\', None, \'Farsi\', \'Unmoderiertes Musikprogramm\', \'\', \'\', \'\', 0)]\n(Background on this error at: http://sqlalche.me/e/gkpj))\x1b[0m'
Arguments: (IntegrityError('(_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")'),)
--- Logging error ---
Traceback (most recent call last):
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
self.dialect.do_execute(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
cursor.execute(statement, parameters)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry '361' for key 'timeslot_id'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 108, in run
self.programme.refresh()
File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 79, in refresh
self.timeslots = self.programme_store.store_timeslots(response)
File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 291, in store_timeslots
timeslot_db = self.store_timeslot(timeslot)
File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 390, in store_timeslot
timeslot_db.store(add=havetoadd, commit=True)
File "/home/david/Code/aura/engine/src/scheduling/models.py", line 77, in store
DB.session.commit()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1042, in commit
self.transaction.commit()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 504, in commit
self._prepare_impl()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
self.session.flush()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2523, in flush
self._flush(objects)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2664, in _flush
transaction.rollback(_capture_exception=True)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
compat.raise_(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
raise exception
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2624, in _flush
flush_context.execute()
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
rec.execute(self)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
persistence.save_obj(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj
_emit_insert_statements(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements
result = cached_connections[connection].execute(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1020, in execute
return meth(self, multiparams, params)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1133, in _execute_clauseelement
ret = self._execute_context(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1323, in _execute_context
self._handle_dbapi_exception(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1517, in _handle_dbapi_exception
util.raise_(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
raise exception
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
self.dialect.do_execute(
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
cursor.execute(statement, parameters)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062, "Duplicate entry '361' for key 'timeslot_id'")
[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (None, None, 9, None, None, None, '2021-01-18T17:38:00', '2021-01-18T17:40:00', 361, 1, 'Musikprogramm', 'Musikredaktion', 'Standard', None, 'Farsi', 'Unmoderiertes Musikprogramm', '', '', '', 0)]
(Background on this error at: http://sqlalche.me/e/gkpj)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not enough arguments for format string
Call stack:
File "/home/david/.vscode/extensions/ms-python.python-2020.12.424452561/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py", line 916, in __call__
ret = self.original_func(*self.args, **self.kwargs)
File "/usr/lib/python3.8/threading.py", line 890, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 115, in run
self.logger.critical(SU.red(f"Unhandled error while fetching & scheduling new programme! ({str(e)})"), e)
Message: '\x1b[31mUnhandled error while fetching & scheduling new programme! ((_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")\n[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]\n[parameters: (None, None, 9, None, None, None, \'2021-01-18T17:38:00\', \'2021-01-18T17:40:00\', 361, 1, \'Musikprogramm\', \'Musikredaktion\', \'Standard\', None, \'Farsi\', \'Unmoderiertes Musikprogramm\', \'\', \'\', \'\', 0)]\n(Background on this error at: http://sqlalche.me/e/gkpj))\x1b[0m'
Arguments: (IntegrityError('(_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")'),)
```1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/21Extend Systemd Unit Files to start using Socket Activation2020-10-30T14:03:11+01:00David TrattnigExtend Systemd Unit Files to start using Socket Activation- Allow usage of two Unit files for Engine Core and Liquidsoap.
- Create a startup dependency using Socket Activation.- Allow usage of two Unit files for Engine Core and Liquidsoap.
- Create a startup dependency using Socket Activation.1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/67Fade-out fallback playout when returning to scheduled playout2023-02-09T15:38:55+01:00David TrattnigFade-out fallback playout when returning to scheduled playout1.0-alpha1 β π’π¦ Dockland DucklingDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/74Failure handling for invalid or broken Audio Streams2023-11-21T14:14:12+01:00David TrattnigFailure handling for invalid or broken Audio StreamsCurrent: Connecting to some invalid stream URL is continuously retried, which breaks other schedules.
Expected: Keep retrying, but only until the end of the playlist entry (expanded end-time, if no duration is provided via API)Current: Connecting to some invalid stream URL is continuously retried, which breaks other schedules.
Expected: Keep retrying, but only until the end of the playlist entry (expanded end-time, if no duration is provided via API)1.0-alpha5Chris PastlChris Pastlhttps://gitlab.servus.at/aura/engine/-/issues/26Fallback Scenario: Play random music from folder2020-10-30T15:28:06+01:00David TrattnigFallback Scenario: Play random music from folderParent Task: Fallback Managment #3
- No fallback level needed
- Play random music as in #25Parent Task: Fallback Managment #3
- No fallback level needed
- Play random music as in #251.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/111Flake8: Add linting for Docstrings2022-08-18T17:39:31+02:00David TrattnigFlake8: Add linting for Docstrings`docstring-convention=google``docstring-convention=google`1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/77Graceful restart by keeping currently playing entry, in case it matches the o...2024-03-21T18:37:39+01:00David TrattnigGraceful restart by keeping currently playing entry, in case it matches the one to be scheduledWhen _Engine_ is crashing/restarting it normally (re-) schedules the entry which is planned per current timeslot. In case _Engine Core_ didn't crash though, it successfully kept playing the planned timeslot-entry. In such case no new sch...When _Engine_ is crashing/restarting it normally (re-) schedules the entry which is planned per current timeslot. In case _Engine Core_ didn't crash though, it successfully kept playing the planned timeslot-entry. In such case no new scheduling should happen i.e. when the playing entry is the one due to be scheduled.
Without the improvement, there is some Dead Air for some time, until the item is re-scheduled.1.0-alpha7Chris PastlChris Pastlhttps://gitlab.servus.at/aura/engine/-/issues/18Integrate Serial Port Connectivity for Heartbeat Monitoring2023-07-17T12:06:13+02:00David TrattnigIntegrate Serial Port Connectivity for Heartbeat MonitoringUse something like PySerial (https://pyserial.readthedocs.io/en/latest/shortintro.html)Use something like PySerial (https://pyserial.readthedocs.io/en/latest/shortintro.html)1.1https://gitlab.servus.at/aura/engine/-/issues/123Less verbose logging when result from Steering playout endpoint cannot be parsed2023-06-06T21:11:39+02:00David TrattnigLess verbose logging when result from Steering playout endpoint cannot be parsedCurrently the Steering playout endpoint returns Error `500`. Deal with that more nicely.Currently the Steering playout endpoint returns Error `500`. Deal with that more nicely.1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/61Python 3.8 as minimum requirement2020-12-08T20:59:13+01:00David TrattnigPython 3.8 as minimum requirement1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/39Refactor to avoid use of Redis2020-10-30T14:42:59+01:00David TrattnigRefactor to avoid use of Redis- [x] Implement alternative communication to Redis
- [x] Remove Redis
- [x] Simplify boot phase- [x] Implement alternative communication to Redis
- [x] Remove Redis
- [x] Simplify boot phase1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/57Remove any "test data" references2020-11-27T17:24:08+01:00David TrattnigRemove any "test data" references1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/59Remove any Comba Recorder leftovers2020-12-08T19:32:04+01:00David TrattnigRemove any Comba Recorder leftovers1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/109Remove Email Monitoring2023-06-07T13:43:23+02:00David TrattnigRemove Email MonitoringThe email notification option should be removed in favor of a real monitoring solution (e.g. meta#98+).The email notification option should be removed in favor of a real monitoring solution (e.g. meta#98+).1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/63Remove obsolete test cases, add minimal test case2020-12-16T10:31:46+01:00David TrattnigRemove obsolete test cases, add minimal test case1.0-alpha2 β βοΈπ¦ Precise PheasantDavid TrattnigDavid Trattnighttps://gitlab.servus.at/aura/engine/-/issues/99Rename "trackservice" module to more generic "playlog" module2023-02-09T12:01:09+01:00David TrattnigRename "trackservice" module to more generic "playlog" module1.0-alpha1 β π’π¦ Dockland DucklingDavid TrattnigDavid Trattnig