I accidentally deleted most of my music directory. The database was
still intact. I recovered the music directory by rolling back to a
previous ZFS snapshot and performed a reindex. However, libresonic did
not mark the deleted files as present. Turns out the file timestamp was
unchanged through the ZFS restore, and so libresonic still thought the
last indexing effort was still "good".
This adds the option to ignore file timestamps when scanning files. This
can be helpful in the case of a restore as described above. There might
be a better way to do this, as this was really a quick effort on my part
to fix my own libresonic.
This does not add a UI, just a single property that can be turned on by
editing the lilbresonic.properties file.
@fxthomas suggested this could instead be a query parameter on the
initial issue #359. That would basically move the potential UI to the
scan page. That would be fine, but I could imagine there might be cases
where people want this setting on all the time.
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
This adds the 'airsonic.rememberMeKey' system property (can be set from
command-line with `-Dairsonic.rememberMeKey=<value>`) as well as a
'RememberMeKey' setting in airsonic.properties, so that the key used for
generating 'remember me' tokens can be persisted across server restarts.
It also adds a default, insecure key in case we are running in
development mode with the 'airsonic.development' property set.
As per #548, #723, and tsquillario/Jamstash#131, the current method of
estimating `Content-Length` creates various problems.
However, if headers such as `Accept-Ranges` is omitted, clients will only
use the first connection, which is `Transfer-Encoding: chunked`, and no
`Content-Length` is necessary.
Doing this has the side effect that (at least on the web player) seeking
to a specific time is no longer possible, thus this was made an opt-in
option.
Signed-off-by: WillyPillow <wp@nerde.pw>
Issue 455
(570) Adds a settings option to ignore symlinks during the media scan.
(4550 Adds a regular expression pattern to exclude in addition to the option
of excluding symlinks.
get autowired and component scanned and don't have to be completely
configured in applicationContext-service.xml
Signed-off-by: Derrek Bond <yoyo007@gmail.com>
- This removes all dependencies on deprecated ServiceLocator class.
- Also does some cleanup in the settingsService
Signed-off-by: Ben Kelsey <bfkelsey@gmail.com>
- Use external library chamelon (lizzy)
- Adds the ability to specify playlist export format
- Fixes some deficiences with playlist handling
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
- Use sl4fj as a backend to org.libresonic.Logger
- Output the same logs to libresonic.log as the console
- Use spring-boot logging constructs
- Turn down logging to error for non-libresonic classes info for
libresonic classes and liquibase (perhaps change this in the future,
but might be helpful for folks migrating their databases).
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
- Only paritial pagination, first X, then showAll
- Default is 40 for subDirs and sibling albums each
- showAll parameter causes page refresh with entirely new list
TODO/Future improvements include:
- Finer grain pagination
- Pagination done at the database level
- Seamless refresh with JS
- Unify all pagination uses across the site
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
- Add upnp specific base url
- Use http request base url for areas used by url redirection
- Fix sharing
- Removed Network Settings tab
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
Fixed Google cast icon is not visible on newer Chrome versions.
Also fixed cast is not working because local ip address lookup
is not performing.
Signed-off-by: Egor Berdnikov <egorr.berd@gmail.com>
- Update to latest version of httpclient and httpcomponents
- Fixes resulting deprecations
- Switch to using try with resources
Signed-off-by: Ben Kelsey <bfkelsey@gmail.com>