Various cleanup

This commit is contained in:
emeric
2019-04-19 14:06:43 +02:00
parent 3df9a2ad54
commit 099d516091
4 changed files with 81 additions and 12 deletions
+5 -5
View File
@@ -10,19 +10,19 @@ lms_cssdir=$(lms_docrootdir)/css
lms_jsdir=$(lms_docrootdir)/js
lms_imagesdir=$(lms_approotdir)/images
lms_css_DATA = \
dist_lms_css_DATA = \
docroot/css/lms.css
lms_js_DATA = \
dist_lms_js_DATA = \
docroot/js/bootstrap-notify.js \
docroot/js/jquery-1.10.2.min.js \
docroot/js/mediaplayer.js
lms_images_DATA = \
dist_lms_images_DATA = \
approot/images/unknown-cover.jpg \
approot/images/unknown-artist.jpg
lms_approot_DATA = \
dist_lms_approot_DATA = \
approot/admin-database.xml \
approot/admin-user.xml \
approot/admin-users.xml \
@@ -49,6 +49,6 @@ lms_approot_DATA = \
approot/tracks.xml \
approot/tracksinfo.xml
sysconf_DATA = \
dist_sysconf_DATA = \
$(top_srcdir)/conf/lms.conf
+5 -4
View File
@@ -5,12 +5,13 @@ LMS is a self-hosted music streaming software: access your music files from anyw
A [demo](http://lms.demo.poupon.io) instance is available, with the following limitations:
- Settings cannot be saved
- No persistent playqueue
- No administration panel
## Main features
- Persistent play queue across sessions
- User management
- Recommendation engine
- Audio transcode for maximum interoperability and low bandwith requirements
- Persistent play queue across sessions
- Subsonic API
- Multi-value tags
- Custom tag support (ex: "mood", "genre", "albummood", "albumgrouping", ...)
@@ -28,7 +29,7 @@ LMS provides several ways to help you find the music you like:
The recommendation engine makes use of [Self-Organizing Maps](https://en.wikipedia.org/wiki/Self-organizing_map).</br>
Please note this engine:
- may require some significant computation time on very large datasets
- makes use of computed data available on [AcousticBrainz](https://acousticbrainz.org/). Therefore your music must contain the [MusicBrainz Identifier](https://musicbrainz.org/doc/MusicBrainz_Identifier) for the recommendation engine to work properly
- makes use of computed data available on [AcousticBrainz](https://acousticbrainz.org/). Therefore your music must contain the [MusicBrainz Identifier](https://musicbrainz.org/doc/MusicBrainz_Identifier) for the recommendation engine to work properly (otherwise, only tag-based recommendations are provided)
## Subsonic API
For now, the API version implemented is 1.12.0 and has been tested on Android using the official application, Ultrasonic and DSub.
@@ -38,7 +39,7 @@ As LMS does not aim to implement all the features of Subsonic, some commands are
The Subsonic API is enabled by default.
## Installation
Here are the required packages to build on Debian Stretch:
Here are the required packages to build LMS on Debian Stretch:
```sh
apt-get install g++ autoconf automake libboost-filesystem-dev libboost-system-dev libavcodec-dev libavutil-dev libavformat-dev libav-tools libmagick++-dev libpstreams-dev libconfig++-dev libpstreams-dev ffmpeg libtag1-dev
```
@@ -94,7 +95,7 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:5091;
proxy_pass http://localhost:5082;
proxy_read_timeout 120;
}
}
+69 -1
View File
@@ -2,67 +2,135 @@ bin_PROGRAMS = lms
lms_SOURCES = \
$(srcdir)/api/subsonic/SubsonicId.cpp \
$(srcdir)/api/subsonic/SubsonicId.hpp \
$(srcdir)/api/subsonic/SubsonicResource.cpp \
$(srcdir)/api/subsonic/SubsonicResource.hpp \
$(srcdir)/api/subsonic/SubsonicResponse.cpp \
$(srcdir)/api/subsonic/SubsonicResponse.hpp \
$(srcdir)/av/AvInfo.cpp \
$(srcdir)/av/AvInfo.hpp \
$(srcdir)/av/AvTranscoder.cpp \
$(srcdir)/av/AvTranscoder.hpp \
$(srcdir)/cover/CoverArtGrabber.cpp \
$(srcdir)/cover/CoverArtGrabber.hpp \
$(srcdir)/database/Artist.cpp \
$(srcdir)/database/Artist.hpp \
$(srcdir)/database/Cluster.cpp \
$(srcdir)/database/Cluster.hpp \
$(srcdir)/database/DatabaseHandler.cpp \
$(srcdir)/database/DatabaseHandler.hpp \
$(srcdir)/database/TrackFeatures.cpp \
$(srcdir)/database/TrackFeatures.hpp \
$(srcdir)/database/TrackList.cpp \
$(srcdir)/database/TrackList.hpp \
$(srcdir)/database/Types.hpp \
$(srcdir)/database/Release.cpp \
$(srcdir)/database/Release.hpp \
$(srcdir)/database/ScanSettings.cpp \
$(srcdir)/database/ScanSettings.hpp \
$(srcdir)/database/SimilaritySettings.cpp \
$(srcdir)/database/SimilaritySettings.hpp \
$(srcdir)/database/SqlQuery.cpp \
$(srcdir)/database/SqlQuery.hpp \
$(srcdir)/database/Track.cpp \
$(srcdir)/database/Track.hpp \
$(srcdir)/database/User.cpp \
$(srcdir)/database/User.hpp \
$(srcdir)/image/Image.cpp \
$(srcdir)/image/Image.hpp \
$(srcdir)/main/main.cpp \
$(srcdir)/main/Service.hpp \
$(srcdir)/metadata/AvFormat.cpp \
$(srcdir)/metadata/AvFormat.hpp \
$(srcdir)/metadata/MetaData.hpp \
$(srcdir)/metadata/TagLibParser.cpp \
$(srcdir)/metadata/TagLibParser.hpp \
$(srcdir)/scanner/MediaScanner.cpp \
$(srcdir)/scanner/MediaScanner.hpp \
$(srcdir)/scanner/MediaScannerAddon.hpp \
$(srcdir)/similarity/SimilaritySearcher.cpp \
$(srcdir)/similarity/SimilaritySearcher.hpp \
$(srcdir)/similarity/cluster/SimilarityClusterSearcher.cpp \
$(srcdir)/similarity/cluster/SimilarityClusterSearcher.hpp \
$(srcdir)/similarity/features/AcousticBrainzUtils.cpp \
$(srcdir)/similarity/features/AcousticBrainzUtils.hpp \
$(srcdir)/similarity/features/SimilarityFeaturesCache.cpp \
$(srcdir)/similarity/features/SimilarityFeaturesCache.hpp \
$(srcdir)/similarity/features/SimilarityFeaturesScannerAddon.cpp \
$(srcdir)/similarity/features/SimilarityFeaturesScannerAddon.hpp \
$(srcdir)/similarity/features/SimilarityFeaturesSearcher.cpp \
$(srcdir)/similarity/features/SimilarityFeaturesSearcher.hpp \
$(srcdir)/similarity/features/som/DataNormalizer.cpp \
$(srcdir)/similarity/features/som/DataNormalizer.hpp \
$(srcdir)/similarity/features/som/InputVector.hpp \
$(srcdir)/similarity/features/som/Matrix.hpp \
$(srcdir)/similarity/features/som/Network.cpp \
$(srcdir)/similarity/features/som/Network.hpp \
$(srcdir)/ui/Auth.cpp \
$(srcdir)/ui/Auth.hpp \
$(srcdir)/ui/LmsApplication.cpp \
$(srcdir)/ui/LmsApplication.hpp \
$(srcdir)/ui/LmsApplicationGroup.cpp \
$(srcdir)/ui/LmsApplicationGroup.hpp \
$(srcdir)/ui/MediaPlayer.cpp \
$(srcdir)/ui/MediaPlayer.hpp \
$(srcdir)/ui/PlayQueueView.cpp \
$(srcdir)/ui/PlayQueueView.hpp \
$(srcdir)/ui/PlayHistoryView.cpp \
$(srcdir)/ui/PlayHistoryView.hpp \
$(srcdir)/ui/SettingsView.cpp \
$(srcdir)/ui/SettingsView.hpp \
$(srcdir)/ui/admin/DatabaseSettingsView.cpp \
$(srcdir)/ui/admin/DatabaseSettingsView.hpp \
$(srcdir)/ui/admin/InitWizardView.cpp \
$(srcdir)/ui/admin/InitWizardView.hpp \
$(srcdir)/ui/admin/UserView.cpp \
$(srcdir)/ui/admin/UserView.hpp \
$(srcdir)/ui/admin/UsersView.cpp \
$(srcdir)/ui/admin/UsersView.hpp \
$(srcdir)/ui/common/Validators.cpp \
$(srcdir)/ui/common/Validators.hpp \
$(srcdir)/ui/explore/ArtistInfoView.cpp \
$(srcdir)/ui/explore/ArtistInfoView.hpp \
$(srcdir)/ui/explore/ArtistLink.cpp \
$(srcdir)/ui/explore/ArtistLink.hpp \
$(srcdir)/ui/explore/ArtistsInfoView.cpp \
$(srcdir)/ui/explore/ArtistsInfoView.hpp \
$(srcdir)/ui/explore/ArtistView.cpp \
$(srcdir)/ui/explore/ArtistView.hpp \
$(srcdir)/ui/explore/ArtistsView.cpp \
$(srcdir)/ui/explore/ArtistsView.hpp \
$(srcdir)/ui/explore/Explore.cpp \
$(srcdir)/ui/explore/Explore.hpp \
$(srcdir)/ui/explore/Filters.cpp \
$(srcdir)/ui/explore/Filters.hpp \
$(srcdir)/ui/explore/ReleaseInfoView.cpp \
$(srcdir)/ui/explore/ReleaseInfoView.hpp \
$(srcdir)/ui/explore/ReleaseLink.cpp \
$(srcdir)/ui/explore/ReleaseLink.hpp \
$(srcdir)/ui/explore/ReleasesInfoView.cpp \
$(srcdir)/ui/explore/ReleasesInfoView.hpp \
$(srcdir)/ui/explore/ReleasesView.cpp \
$(srcdir)/ui/explore/ReleasesView.hpp \
$(srcdir)/ui/explore/ReleaseView.cpp \
$(srcdir)/ui/explore/ReleaseView.hpp \
$(srcdir)/ui/explore/TracksInfoView.cpp \
$(srcdir)/ui/explore/TracksInfoView.hpp \
$(srcdir)/ui/explore/TracksView.cpp \
$(srcdir)/ui/explore/TracksView.hpp \
$(srcdir)/ui/resource/ImageResource.cpp \
$(srcdir)/ui/resource/ImageResource.hpp \
$(srcdir)/ui/resource/AudioResource.cpp \
$(srcdir)/ui/resource/AudioResource.hpp \
$(srcdir)/utils/Config.cpp \
$(srcdir)/utils/Config.hpp \
$(srcdir)/utils/Exception.hpp \
$(srcdir)/utils/Logger.cpp \
$(srcdir)/utils/Logger.hpp \
$(srcdir)/utils/Path.cpp \
$(srcdir)/utils/Utils.cpp
$(srcdir)/utils/Path.hpp \
$(srcdir)/utils/Utils.cpp \
$(srcdir)/utils/Utils.hpp
lms_CXXFLAGS=-std=c++14 -Wall -I$(srcdir)/ui $(MAGICKXX_CFLAGS) -D_REENTRANT
lms_LDADD=$(MAGICKXX_LIBS)
+2 -2
View File
@@ -51,7 +51,7 @@ std::vector<std::string> generateWtConfig(std::string execPath)
if (Config::instance().getBool("tls-enable", false))
{
args.push_back("--https-port=" + std::to_string( Config::instance().getULong("listen-port", 5081)));
args.push_back("--https-port=" + std::to_string( Config::instance().getULong("listen-port", 5082)));
args.push_back("--https-address=" + Config::instance().getString("listen-addr", "0.0.0.0"));
args.push_back("--ssl-certificate=" + Config::instance().getString("tls-cert"));
args.push_back("--ssl-private-key=" + Config::instance().getString("tls-key"));
@@ -59,7 +59,7 @@ std::vector<std::string> generateWtConfig(std::string execPath)
}
else
{
args.push_back("--http-port=" + std::to_string( Config::instance().getULong("listen-port", 5081)));
args.push_back("--http-port=" + std::to_string( Config::instance().getULong("listen-port", 5082)));
args.push_back("--http-address=" + Config::instance().getString("listen-addr", "0.0.0.0"));
}