advplyr
22b8622c67
Fix:Crash for invalid payload to update cover endpoint #1644
2023-04-09 15:01:14 -05:00
advplyr
5e5b674c17
Add:Remove all chapters button in chapter editor #1603
2023-04-09 12:47:36 -05:00
advplyr
25ca950dd0
Update listening sessions per device and show open sessions
2023-04-08 18:01:24 -05:00
advplyr
d7f18bdd8b
Remove deprecated user settings
2023-04-03 17:41:03 -05:00
advplyr
05b102722b
Remove unused ebook routes
2023-04-03 17:33:02 -05:00
advplyr
034b8956a2
Add:Batch embed metadata and queue system for metadata embedding #700
2023-04-02 16:13:18 -05:00
advplyr
575a162f8b
Update:API endpoint for get all users to use minimal payload
2023-03-29 14:56:50 -05:00
advplyr
a99257e758
Fix getAllLibraryItemsInProgress route
2023-03-25 14:07:35 -05:00
lukeIam
be53b31712
Merge remote-tracking branch 'origin/master' into auth_passportjs
2023-03-24 18:23:08 +01:00
lukeIam
e1ddb95250
Inital passportjs integration
2023-03-24 18:21:25 +01:00
Vincent Schmandt
4d29ebd647
Save Locations locally, add separate progress tracker
2023-03-23 08:45:00 +01:00
advplyr
785942b94f
Update:Series books page fallback to sort by title/collapsed series name when no sequence #1503
2023-03-05 14:48:20 -06:00
advplyr
aef2c52630
Merge pull request #1581 from mfcar/improvePodcastEditing
...
Improve podcast editing
2023-03-05 12:28:12 -06:00
advplyr
dccad3055b
Remove library item listener from edit episode modal
2023-03-05 12:28:20 -06:00
advplyr
022bf9d0ef
Show current episode download on init and download queue page updates
2023-03-05 10:35:34 -06:00
mfcar
72396c5a98
Add Prev/Next buttons on podcast editing
2023-03-04 19:04:55 +00:00
mfcar
34ac972130
Add download queue
2023-02-27 02:56:07 +00:00
advplyr
caacf461ab
Open rss feed metadataDetails optional
2023-02-25 08:53:09 -06:00
mfcar
0d3e6b1d0a
Add rss details configuration
2023-02-25 13:20:26 +00:00
mfcar
08d7a9aa14
Add size stats
2023-02-19 21:39:28 +00:00
advplyr
8b5d05739f
Fix:Adding new podcast when folder already exists #1462
2023-02-11 15:25:54 -06:00
advplyr
8f8d6f81ab
Fix:Upload API endpoint crashing on invalid request with no files #1473
2023-02-10 17:25:19 -06:00
advplyr
f9e6655359
Update:API endpoint for syncing multiple local sessions. New API endpoint to get current user. Deprecate /me/sync-local-progress endpoint
2023-02-05 16:52:17 -06:00
advplyr
b957e1a36b
Update:API endpoints for library and library item scan updated to POST requests
2023-02-03 17:50:42 -06:00
advplyr
337cf90c4b
Add debug logs to playback sessions
2023-02-02 16:24:34 -06:00
advplyr
d8753aafb9
Fix:Series collapse series filter out empty sequences #1450
2023-01-31 15:53:04 -06:00
advplyr
f83dd29213
Update:syncLocalMediaProgress API response payload
2023-01-28 14:46:01 -06:00
Lars Kiesow
08250e266e
Implement X-Accel Redirect
...
This patch implements [X-Accel](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/ )
redirect headers as an optional way for offloading static file delivery
from Express to Nginx, which is far better optimized for static file
delivery.
This provides a really easy to configure way for getting a huge
performance boost over delivering all files through Audiobookshelf.
How it works
------------
The way this works is basically that Audiobookshelf gets an HTTP request
for delivering a static file (let's say an audiobook). It will first
check the user is authorized and then convert the API path to a local
file path.
Now, instead of reading and delivering the file, Audiobookshelf will
return just the HTTP header with an additional `X-Accel-Redirect`
pointing to the file location on the file syste.
This header is picked up by Nginx which will then deliver the file.
Configuration
-------------
The configuration for this is very simple. You need to run Nginx as
reverse proxy and it must have access to your Audiobookshelf data
folder.
You then configure Audiobookshelf to use X-Accel by setting
`USE_X_ACCEL=/protected`. The path is the internal redirect path used by
Nginx.
In the Nginx configuration you then configure this location and map it
to the storage area to serve like this:
```
location /protected/ {
internal;
alias /;
}
```
That's all.
Impact
------
I just did a very simple performance test, downloading a 1170620819
bytes large audiobook file from another machine on the same network
like this, using `time -p` to measure how log the process took:
```sh
URL='https://url to audiobook…'
for i in `seq 1 50`
do
echo "$i"
curl -s -o /dev/null "${URL}"
done
```
This sequential test with 50 iterations and without x-accel resulted in:
```
real 413.42
user 197.11
sys 82.04
```
That is an average download speed of about 1080 MBit/s.
With X-Accel enabled, serving the files through Nginx, the same test
yielded the following results:
```
real 200.37
user 86.95
sys 29.79
```
That is an average download speed of about 2229 MBit/s, more than
doubling the previous speed.
I have also run the same test with 4 parallel processes and 25 downloads
each. Without x-accel, that test resulted in:
```
real 364.89
user 273.09
sys 112.75
```
That is an average speed of about 2448 MBit/s.
With X-Accel enabled, the parallel test also shows a significant
speedup:
```
real 167.19
user 195.62
sys 78.61
```
That is an average speed of about 5342 MBit/s.
While doing that, I also peaked at the system load which was a bit lower
when using X-Accel. Even though the system was delivering far more data.
But I just looked at the `load1` values and did not build a proper test
for that. That means, I cant provide any definitive data.
Supported Media
---------------
The current implementation works for audio files and book covers. There
are other media files which would benefit from this mechanism like feed
covers or author pictures.
But that's something for a future developer ;-)
2023-01-23 00:02:27 +01:00
advplyr
5a26704c32
Add:Option to disable backup of audio files in embed metadata tool #1370
2023-01-07 15:16:52 -06:00
advplyr
2cd9079692
Add MusicBrainz provider
2023-01-07 13:05:33 -06:00
advplyr
9a85ad1f6b
Fix:Check if Windows before cleaning file path for POSIX separators #1254
2023-01-05 17:45:27 -06:00
advplyr
49c581ed35
Add:Podcast option to quick match all unmatched episodes
2023-01-04 18:13:46 -06:00
advplyr
1609f1a499
Add:Global library search also searches on podcast episode titles #1363
2023-01-04 17:43:15 -06:00
advplyr
d6da161b13
Music albums grouping and page
2023-01-02 18:02:04 -06:00
advplyr
44363f05ac
Start of new epub reader
2023-01-01 18:09:00 -06:00
advplyr
70ba2f7850
Add:RSS feed for series & cleanup empty series from db #1265
2022-12-31 16:58:19 -06:00
advplyr
d8ee61bfab
Update:Personalized API endpoint include query string to add rssFeed to entities
2022-12-31 14:31:38 -06:00
advplyr
c6763dee2d
Remove invalid RSS feeds on init and remove feeds when associated entity is removed
2022-12-31 14:08:34 -06:00
advplyr
0e6b0d3eff
Update:Remove RSS feeds from login response payload and include feeds from library items request
2022-12-31 10:59:12 -06:00
advplyr
8bbfee334c
Update:Show RSS feed icon on collection card & update API endpoint for fetching collections
2022-12-31 10:33:38 -06:00
advplyr
315c83e4c3
RSS feed for collection to update when any item in the collection is updated #606
2022-12-28 18:08:03 -06:00
advplyr
308ccf470f
Add:Open RSS feed for collection #606 #1265
2022-12-27 18:03:31 -06:00
advplyr
061695f922
Add:API endpoint for opening RSS feed for collection #606 #1265
2022-12-26 17:48:39 -06:00
advplyr
e803dcd325
Update:RSS feed API routes
2022-12-26 16:58:36 -06:00
advplyr
45c9038954
Fix:Manually updating author image path & realtime update author image #1317
2022-12-26 15:45:42 -06:00
advplyr
8acf962864
Update:Remove relImagePath from Author entity
2022-12-26 15:29:45 -06:00
advplyr
e4c20d677c
Update server/controllers/SeriesController.js
...
Co-authored-by: Paul Nettleton <paulnett7@hotmail.com>
2022-12-23 07:33:33 -06:00
Paul Nettleton
2cba83f1dd
Server socket event fixes
2022-12-22 16:26:11 -06:00
advplyr
3e15e09c07
Fix:Get libraries endpoint #1296
2022-12-19 17:46:32 -06:00
advplyr
616ffb8f79
Add:M4b tool configurable options bitrate/channels/codec #1029 #1257
2022-12-19 17:13:04 -06:00
advplyr
e1397a6dda
Update:Author cover image API endpoint to get raw cover image #1291
2022-12-19 15:06:43 -06:00
advplyr
4971787482
Add:Manage genres #1163
2022-12-18 14:52:53 -06:00
advplyr
4d93e39fa9
Add:Item metadata utils config page for managing tags #1163
2022-12-18 14:17:52 -06:00
advplyr
5165f11460
Add:Create playlist from a collection #1226
2022-12-17 17:31:19 -06:00
advplyr
49a69193d8
Comments where user settings needs to be removed
2022-12-17 14:52:10 -06:00
advplyr
2d9035d90b
Update get tags route and revert podcast/books search route
2022-12-12 17:45:51 -06:00
advplyr
0ae853c119
Update library items batch get route
2022-12-12 17:36:53 -06:00
advplyr
eede2bbd46
Update for filesystem and libraries api update and revert personalized shelves route
2022-12-12 17:29:56 -06:00
advplyr
5c31687a0f
Merge branch 'master' into server/respond-with-objects
2022-12-12 17:20:14 -06:00
advplyr
67db41a525
Update:Get item cover API endpoint to allow for returning the raw cover image
2022-12-04 16:23:15 -06:00
advplyr
0e292c64c4
Update:Only emit library socket events to users with access to lib
2022-11-30 17:32:59 -06:00
Paul Nettleton
c9ab2a242d
Update MiscController.js to respond with objects
...
Changes:
- `getAllTags` (GET /api/tags)
2022-11-29 12:26:59 -06:00
Paul Nettleton
13532cba14
Update SearchController.js to respond with objects
...
Changes:
- `findCovers` (GET /api/search/covers)
- `findBooks` (GET /api/search/books)
- `findPodcasts` (GET /api/search/podcast)
2022-11-29 12:23:02 -06:00
Paul Nettleton
3fb2bd3362
Update SeriesController.js to respond with objects
...
Changes:
- `search` (GET /api/series/search)
2022-11-29 12:08:40 -06:00
Paul Nettleton
e80c3a1c5a
Update AuthorController.js to respond with objects
...
Changes:
- `search` (GET /api/authors/search)
2022-11-29 12:04:45 -06:00
Paul Nettleton
e04d26307e
Update FileSystemController.js to respond with objects
...
Changes:
- `getPaths` (GET /api/filesystem)
2022-11-29 11:55:22 -06:00
Paul Nettleton
b8f74e1c98
Update CollectionController.js to respond with objects
...
Changes:
- `findAll` (GET /api/collections)
2022-11-29 11:48:21 -06:00
Paul Nettleton
0851050392
Update UserController.js to respond with objects
...
Changes:
- `findAll` (GET /api/users)
2022-11-29 11:43:39 -06:00
Paul Nettleton
b84882d9d1
Update LibraryItemController.js to respond with objects
...
Changes:
- `batchGet` (POST /api/items/batch/get)
2022-11-29 11:37:45 -06:00
Paul Nettleton
cd37a7618e
Update LibraryController.js to respond with objects
...
Changes:
- `findAll` (GET /api/libraries)
- `getLibraryUserPersonalizedOptimal` (GET /api/libraries/<ID>/personalized)
- `getAuthors` (GET /api/libraries/<ID>/authors)
- `reorder` (POST /api/libraries/order)
2022-11-29 11:30:25 -06:00
advplyr
d41366a417
Fix:Playlist API endpoint permissions
2022-11-28 16:29:04 -06:00
advplyr
4541e9ddc3
Fix:Library filters when using other language #1166
2022-11-27 17:54:40 -06:00
advplyr
08f09f81fa
Fix:Updating authors image
2022-11-27 15:35:47 -06:00
advplyr
eb2ea9950a
Remove playlists for user when removing user
2022-11-27 14:54:17 -06:00
advplyr
e307ded192
Remove item from playlist when removing item, update PlaylistController socket events to emit to playlist userId
2022-11-27 14:49:21 -06:00
advplyr
083f8faa46
Update:Fetch library API to return numUserPlaylists, only display playlists in siderail if user has playlists
2022-11-27 14:34:27 -06:00
advplyr
531f947754
Update:Remove playlist if all items are removed
2022-11-27 12:04:49 -06:00
advplyr
7e171576e0
Update:Add libraries playlists API endpoint, add lazy playlists card
2022-11-26 17:24:46 -06:00
advplyr
0979b3e03d
Update:Playlist cover & json expanded
2022-11-26 16:45:54 -06:00
advplyr
f9b87b94bf
Add:Playlist API endpoints
2022-11-26 15:14:45 -06:00
advplyr
e2af33e136
Update:Refactor socket connection management into SocketAuthority
2022-11-24 15:53:58 -06:00
advplyr
64a8a046c1
Update:Backups API endpoints, add get all backups route, update socket init event payload
2022-11-24 13:14:29 -06:00
advplyr
ecefb30f3d
Merge pull request #1206 from lkiesow/400-bad-request
...
Respond with bad request to unvalid request data
2022-11-23 07:27:18 -06:00
Lars Kiesow
a8162b57ba
Respond with bad request to unvalid request data
...
This patch updates the batch progress update endpoint to respond with a
`400 Bad Request` instead of a `500 Internal Server Error` if a user
sends an invalid request with no body. This is a user error after all.
```
❯ curl -i -X PATCH \
'http://127.0.0.1:3333/api/me/progress/batch/update ' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5Q_MoRptP0oI' \
-H 'Content-Type: application/json'
HTTP/1.1 400 Bad Request
…
Missing request payload
```
2022-11-23 02:15:36 +01:00
advplyr
0aa2723063
Update:API status codes and update server settings response payload
2022-11-21 07:52:33 -06:00
advplyr
70d887bada
Update:API status codes and default provider for findCovers route
2022-11-20 16:12:30 -06:00
advplyr
e3ba739db5
Update:Encode & embed metadata API endpoints, separate cache & search endpoints into controllers
2022-11-19 13:28:06 -06:00
advplyr
7485cf1a26
Add:Batch select audiobook play button, item page mobile screen size cleanup
2022-11-19 10:20:10 -06:00
advplyr
7008267e42
Fix:Mobile series books sortBy filter #1152
2022-11-17 17:09:27 -06:00
advplyr
3316394f5c
Add:Button on series books page to re-add series to continue listening #1159
2022-11-15 17:20:57 -06:00
advplyr
4d2bcfd167
Fix:Revert calculating total entities
2022-11-13 16:46:43 -06:00
advplyr
8f83752abc
Fix:Get library items endpoint limit & total entities count
2022-11-13 13:25:20 -06:00
advplyr
dc156a2eac
Update:api/users/online API endpoint unauth status code
2022-11-13 08:26:32 -06:00
advplyr
3357ccfaf3
Add:Buttons to add/remove podcast episodes from player queue
2022-11-12 15:41:41 -06:00
advplyr
7d569e1e3e
Update:Some incorrect status codes returned from API
2022-11-12 09:36:00 -06:00
advplyr
28feed6ea2
Fix:Remove collections when removing library
2022-11-11 17:44:19 -06:00
advplyr
6f901defd6
Fix:Show only collections for selected library #1130
2022-11-11 17:28:05 -06:00
advplyr
4cbc8676c6
Update:Rename UserCollections to Collections
2022-11-11 17:13:10 -06:00
advplyr
fdf67e17a0
Add:API endpoint to get users online and open listening sessions #1125
2022-11-10 17:42:20 -06:00
Scott Ruoti
0643116e9b
Fixing range generation in series labels
2022-11-07 09:24:48 -05:00
Scott Ruoti
b1111912f7
Added sorting by sequence for series and collapsing series in series view
2022-11-05 20:30:13 -04:00
Scott Ruoti
c1035d97e8
Show book sequences for collapsed series when filtering by series
2022-11-05 20:01:01 -04:00
Scott Ruoti
b322d0207b
Fixed sorting to be more consistent for multiple series (and generally)
2022-11-05 20:01:01 -04:00
advplyr
9627f58541
Merge pull request #1110 from keaganhilliard/tone-json
...
Added tone json file support
2022-11-05 13:13:49 -05:00
advplyr
1118b8b782
Metadata embed and m4b merge fixes and cleanup
2022-11-05 13:13:52 -05:00
Scott Ruoti
473257f65e
Makes it so the when sorting and ignoring prefixes, they are actually ignored
2022-11-03 00:14:07 -04:00
advplyr
fbbcbb4af1
Add:Series filters #712
2022-10-29 15:33:38 -05:00
advplyr
ce133cd6f2
Add:Series sort #712
2022-10-29 11:17:51 -05:00
advplyr
ce4e48cbd7
Add:Region support for audible chapter lookup
2022-10-15 15:31:07 -05:00
advplyr
793233e782
Fix:Authors page to only include library items from the current library #1049
2022-10-06 17:06:06 -05:00
advplyr
c254dc5144
Add:Button for testing scan probes in audiobook tracks table
2022-10-02 15:24:32 -05:00
advplyr
142205f060
Add:Purge items cache button and api endpoint
2022-10-02 14:46:48 -05:00
advplyr
02d997897c
Add:Cancel m4b merge button #1008
2022-10-02 14:31:04 -05:00
advplyr
39979ff8a3
Add:Tasks widget in appbar for merging m4bs & remove old m4b merge routes
2022-10-02 14:16:17 -05:00
advplyr
441b8c5bb7
Update:M4b Merge tool moved to manage page
2022-10-02 11:53:53 -05:00
advplyr
98e79f144c
Add:Remove item from continue listening shelf #919
2022-09-28 17:45:39 -05:00
advplyr
ac30a971c5
Fix:Clean user data on server start removing invalid media progress items
2022-09-28 17:12:27 -05:00
advplyr
9ee6eaade9
Add:Hide series from home page option #919
2022-09-27 17:48:45 -05:00
advplyr
f36a5eae6d
Update:Audiobook merge to set metadata with tone and replace m4b in library item #594
2022-09-26 18:07:31 -05:00
advplyr
162a1b7971
Add:Purge media progress button & api endpoint for items that no longer exist #921
2022-09-25 17:11:39 -05:00
advplyr
97da73baf3
Update:Experimental metadata embed tool to use tone
2022-09-25 15:56:06 -05:00
advplyr
a35b35c062
Merge pull request #1005 from Undergrid/multi_select_quick_match
...
Multi select quick match
2022-09-24 17:46:51 -05:00
Undergrid
014ad668a5
Update server/controllers/LibraryItemController.js
...
Co-authored-by: advplyr <67830747+advplyr@users.noreply.github.com>
2022-09-24 23:38:44 +01:00
Undergrid
62c59c634c
Update server/controllers/LibraryItemController.js
...
Co-authored-by: advplyr <67830747+advplyr@users.noreply.github.com>
2022-09-24 23:38:18 +01:00
Nick Thomson
dd8577354b
Fixing tabs again.
2022-09-24 22:20:49 +01:00
Nick Thomson
3e7a76574b
Switch to using the websocket for confirmation of batch updates, allowing the main request to be done asynchronously
2022-09-24 22:17:36 +01:00
advplyr
0ef2a2e4b6
Update:Notifications onTest for testing and parse title/body template #996
2022-09-24 16:15:16 -05:00
advplyr
8e8046541e
Add:Notification edit/delete and UI updates #996
2022-09-24 14:03:14 -05:00
Nick Thomson
2d6f9bab8b
Added totals of updated and unmatched books to toast shown at completion of batch quick match.
2022-09-24 18:57:09 +01:00
advplyr
37a3fdb606
Notifications UI update and delete endpoint
2022-09-23 18:10:03 -05:00
Nick Thomson
731cf8e4ed
Fix whitespace issues
2022-09-23 19:37:30 +01:00
Nick Thomson
dbb62069ef
Implementation of batch quick match API and related options dialog
2022-09-23 17:51:34 +01:00
advplyr
b08ad8785e
Notification create/update events UI
2022-09-22 18:12:48 -05:00
advplyr
ff04eb8d5e
Add:Notification settings, notification manager trigger #996
2022-09-21 18:01:10 -05:00
advplyr
ae4ac392c6
Add:Podcasts latest episodes page
2022-09-17 15:23:33 -05:00
advplyr
f6b6c0a41e
Add:API endpoint for podcasts to get most recent unfinished episodes for all podcasts in the library
2022-09-16 16:59:16 -05:00
advplyr
70ef09f451
Add:Podcast quickmatch attempts quick matching unmatched episodes #983
2022-09-15 18:35:56 -05:00
advplyr
3dc848a106
Update:Podcast episodes look for new episodes after this date add input to set the max # of episodes to download
2022-09-03 08:06:52 -05:00
advplyr
a73b72a07b
Fix:No Series filter on book library #956
2022-08-31 16:45:50 -05:00
advplyr
8ec4bd4279
Fix:User permissions for collection API routes and UI #951
2022-08-31 15:46:10 -05:00
advplyr
3cafa87eda
Add:Podcast episode table batch mark as finished #941
2022-08-28 14:47:31 -05:00
advplyr
33ae93e61e
Fix:Add new podcast crash #920
2022-08-20 19:32:37 -05:00
advplyr
46668854ad
Add:Schedule podcast new episode checks
2022-08-19 18:41:58 -05:00
advplyr
2304f37cbe
Add:Schedule periodic library scans #655
2022-08-17 18:44:21 -05:00
advplyr
9f200ece99
Add:API endpoint to get continue listening items across all libraries for android auto
2022-08-14 10:24:41 -05:00
advplyr
0c5db214d1
Add:Delete playback session button and api route
2022-08-13 12:24:19 -05:00
advplyr
e02169907d
Add:Filter for RSS feeds open #893
2022-08-06 07:58:19 -05:00
advplyr
24a142e718
Add:RSS feed icon over library item covers when feed is open #893
2022-08-05 19:23:18 -05:00
advplyr
fddf850a41
Add:Cron validation api endpoint
2022-08-01 18:06:22 -05:00
advplyr
516c5c3308
Add:Podcast episode match tab and find episode by title api route
2022-07-31 13:12:37 -05:00