Evan Harris
093f7c028d
Fix podcast download issues
...
Some podcast feeds use circular redirects (with query parameters).
Fixes #1013
Avoids HttpClient cookie handling producing "Invalid cookie" errors due to
not handling latest "expires" attribute formats.
5 years ago
jvoisin
3b8993e860
Replace Hashtable with HashMap, since Hashtable are deprecated
5 years ago
François-Xavier Thomas
073b7e35e1
Add simple test cases for internet radios
5 years ago
François-Xavier Thomas
19082afc11
Mark cached internet radio sources as a final variable
5 years ago
François-Xavier Thomas
53b174a8f4
Follow HTTP redirects when loading internet radio playlists
5 years ago
François-Xavier Thomas
760a6e957a
Limit the amount of data we parse from remote internet radio playlists
5 years ago
François-Xavier Thomas
b1185601d5
Tweak logging for internet radio playlists
5 years ago
François-Xavier Thomas
aeabfa1044
Add internet radio source cache
...
This helps us avoid loading and parsing the external playlists each time
we try to load an internet radio.
5 years ago
François-Xavier Thomas
cab3f60a25
Refactor internet radio loading into a service
5 years ago
Evan Harris
59db5073e3
Added webm to default video file types
5 years ago
tesshucom
767b39ed5b
Split SearchService
...
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
5 years ago
jvoisin
1640411573
Fix some invalid/incomplete javadoc comments
5 years ago
jvoisin
643be3930f
Remove superfluous casts
5 years ago
jvoisin
3202a1086d
Minor simplification
...
`.sorted(Comparator.reverseOrder()).findFirst()`
can be replaced with `max(Comparator.naturalOrder()`
5 years ago
jvoisin
def5f854fb
Inline some variables
...
There is no point in `Type a = …; return a;`
5 years ago
jvoisin
57df709cd8
Replace things like size == 0 with isEmpty
5 years ago
jvoisin
977b656bc6
Remove superfluous escape in two regexp
5 years ago
jvoisin
3492fc0c05
Fix a crash when transcoding a track without album
5 years ago
jvoisin
b1eb0536b8
Fix a crash when transcoding a track without artist
5 years ago
jvoisin
b697dc5bfc
An other batch of LGTM-found issues
5 years ago
tesshucom
1c4a70af99
Fixed null check with StringUtils/ObjectUtils.
5 years ago
Peter Marheine
3efa2d3e2c
Remove the option to never set Content-Length
...
This workaround is obsolete with correct handling of ranges when
requested.
5 years ago
François-Xavier Thomas
8a90d9f77b
Add system properties for persisting the 'remember me' key
...
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.
5 years ago
jvoisin
3d54ef1afb
Mark the player cookie httpOnly
...
It doesn't improve much security-wise,
but it's a good practise anyway.
5 years ago
jvoisin
8123716d52
Remove unused loggers
5 years ago
jvoisin
4a06823057
Balance some synchronized
...
Balance synchronized used on getters and not setters
as well as the other way around.
5 years ago
Andrew DeMaria
a3e59e9724
Fix file encoding
...
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
5 years ago
jvoisin
a21188a064
Add a permission check for the podcast folder
...
This should make podcast-related stacktraces a bit
more obvious to debug for users.
5 years ago
tesshucom
133cf666b7
Fix processing when artist and albumArtist are null
5 years ago
tesshucom
f5f1ec336f
Fix to get fields when file format is ID3v2.4
5 years ago
tesshucom
4cd9e9deac
revert cling-core, cling-support, seamless-util and configuration
5 years ago
jvoisin
910802b64f
Fix a small resource leak
5 years ago
jvoisin
30fa4d0467
Second pass of trivial modernizations
...
- Replace unnecessary getters/setters with inline assignments
- Simplify string constructions
- Improve containers construction
5 years ago
jvoisin
ca489f8220
This is a first batch of simple modernization of the codebase
...
I threw airsonic at IntelliJ's IDEA analysis,
and asked it to flag what could be modernized
for Java > 5.
- foreach instead of for…
- I added some null-deref checks
- Integer.ValueOf, since Integer(…) is deprecated
- Contextual try
- Objects.equals instead of handcrafted comparisons
- StringBuilder instead of StringBuffer
- Removal of outdated/wrong javadoc comments
5 years ago
SenorSmartyPants
07daf86bf0
Add m4b to m4a locations in java
...
anywhere m4a is referenced in java code add support for m4b as well.
Signed-off-by: <senorsmartypants@gmail.com>
5 years ago
François-Xavier Thomas
c0f3606091
Force database checkpoints on 'Clean-up' and 'Scan' actions
...
This will only affect the (embedded/legacy) HSQLDB driver. Even though
cff97ea9
should prevent the db log from getting uncontrollably large,
the 'Clean-up database' and 'Scan' actions will additionally force a
checkpoint to ensure this happens on big operations.
5 years ago
Andrew DeMaria
1a88f46c18
CVE-2018-20222 Prevent xxe during parse
...
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
5 years ago
Andrew DeMaria
ac0e29bf9c
Remove unused import
6 years ago
Andrew DeMaria
61c0c0d758
Fix import style error
6 years ago
Rémi Cocula
ac453883fc
jukebox code quality and unit tests
6 years ago
randomnicode
86e58cea3a
Update dependencies in airsonic-main
6 years ago
Andrew DeMaria
8c6ddb1aba
Dependency tweaks and remove extraneous code
...
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
6 years ago
Rémi Cocula
6b4874f33c
archetype code for rest api integration tests
6 years ago
Andrew DeMaria
995d1fa667
Remove potential cast exception
...
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
6 years ago
WillyPillow
84144f287a
Add option to disable seeking on transcodes. (Mitigates #548 & #723 )
...
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>
6 years ago
Carlos Galindo
f78b108939
Optionally parse podcast episode duration in seconds to [hh:]mm:ss
6 years ago
Peter Marheine
a928b9ee3f
Add settings for CAPTCHA in account recovery.
...
Allowing users to enable it and specify the site and secret key to use
with reCAPTCHA.
The old hard-coded keys were insecure; the secret key must not be
distributed publicly. The current defaults are the test keys provided at
https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha-v2-what-should-i-do
Signed-off-by: Peter Marheine <peter@taricorp.net>
6 years ago
Peter Marheine
ae7f35a9cd
Don't use HTTPS for scrobbling
...
Turns out HTTPS isn't supported for the old API that we're using, so go
back to using plain HTTP.
Signed-off-by: Peter Marheine <peter@taricorp.net>
6 years ago
Peter Marheine
69e2ba0825
Use HTTPS and java.net.URI for scrobbling
...
HTTPS will help prevent eavesdropping on the auth token, and using URI
will ensure unusual characters (like spaces, accidental or otherwise)
are escaped correctly.
Fixes #588
Signed-off-by: Peter Marheine <peter@taricorp.net>
6 years ago
Andrew DeMaria
e3ea7beb96
Fix #764
...
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
6 years ago