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.
Installing the files on root will have the same effect as for other calls. All installed files will no longer be writable by the "app" user, however can still be used and, if the +x flag is set, can be executed.
- Remove dbus, it's unnecessary and we can no longer run it in the background without the phusion-baseimage's init process.
- Remove setuser calls since that script no longer exists without phusion-baseimage, instead do all as root (will make files read-only for the app user which is more secure anyways).
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.
There is currently no APT repository out there that provides an easy way to install a newer version of VLC as library (libvlc) which is needed for WebChimera.js. Since we already have youtube-dl integrated, we no longer need to rely on VLC's functionality to resolve YouTube links, so in this case we can safely downgrade back to 2.1.x to get the library back.
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.