README describes a bit about this repository and how to run this code outside of Docker for testing purposes. More information will be added in the future and as requested. Ideas and suggestions are warmly appreciated!
The code tried to send a "Stopped." message to TeamSpeak3 when VLC shut down. However VLC gets shut down after TeamSpeak3 which causes a null reference on the query interface.
This commit allows the TS3Bot to boot in an environment where
there is no way to boot an isolated graphical environment. In that case
TS3Bot will try to use the already existing display and the desktop
manager that runs on it already.
This adds some undefined error cases which still need to be found and
fixed, so be warned: This commit is very, VERY experimental!
The code removed in this commit was not removed in the process of
migrating to the new HTTP-server-less code. It causes additional errors
and is generally useless now.
Since introducing WebChimera.js the bot is no longer shutting down by itself after all services are shut down since the instances that WebChimera.js generates would still be alive after deletion. There is no way to get around this except if WebChimera.js reveals an explicit release function which it doesn't. The only release function gets called before the VM gets killed.
Use LibVLC via WebChimera.js instead of VLC through its HTTP API.
This closes#17 and fixes#10, finishes two tasks of #2 and actually solves a few additional issues like:
- Not being able to resume playback from a stopped playlist.
- Unclear and buggy definition of volume range.
- Bot just showing "playing next playlist entry" instead of actually showing the title of the next playlist entry.
- Missing "previous" command to go to previous playlist entry.
- Missing "loop" command to loop the playlist. (Now exists in form of "loop on"/"loop off")
- Missing "stop-after" command to stop playback after current track ends.
- A small bug in ts3query.iced that didn't escape line breaks. (Was in use here for "playlist"/"list" commands which got removed in the process.)
Known issues:
- Starting with an empty playlist, adding an entry and then typing "next" will automatically play the first entry. This is not really a bug or even an issue but definitely unexpected behavior that is coming from VLC.
onEndReached does not just trigger the callback at the end of the playlist but actually at the end of each track. This should have been better documented.