advplyr
f21d69339f
Update search query to use user permissions
2023-08-19 14:11:34 -05:00
advplyr
c77cead9ae
Update search endpoints to search db directly
2023-08-19 13:59:22 -05:00
advplyr
4e4a976050
Update get library series api endpoint to load from db
2023-08-18 17:08:34 -05:00
advplyr
9d7d4c6902
Update filterData for authors/series when added/removed
2023-08-18 14:40:36 -05:00
advplyr
7222171c5b
Update checking empty series to load from Db
2023-08-17 17:58:57 -05:00
advplyr
361732a463
Update get User API endpoint to load media progress from db
2023-08-17 17:26:12 -05:00
advplyr
6d6e8613cf
Update library API endpoints to load library items from db
2023-08-13 17:45:53 -05:00
advplyr
3651fffbee
Update library filter data to load from db and cache, update rss feed routes to load library items from db
2023-08-13 15:10:26 -05:00
advplyr
8d03b23f46
Update MiscController api routes to load library items from db
2023-08-13 13:10:34 -05:00
advplyr
fc44c801f2
Update playlist API endpoints to load library items from DB
2023-08-13 11:22:38 -05:00
advplyr
6056c14926
Update podcast controller to load library items from db
2023-08-12 17:29:08 -05:00
advplyr
09c9c28028
Remove test API endpoint for albums
2023-08-12 15:54:59 -05:00
advplyr
f1130eb63a
Update MeController api endpoints to load library items from DB
2023-08-12 15:52:09 -05:00
advplyr
db80cec168
Update collection API routes to load libraryItems from DB
2023-08-12 15:01:27 -05:00
advplyr
38029d1202
Update library collections api endpoint to use libraryItems from db
2023-08-11 17:49:06 -05:00
advplyr
345ff1aa66
Update author API endpoints to load library items from DB
2023-08-06 15:06:45 -05:00
advplyr
56e3449db6
Remove media progress for podcast episodes when episode is removed
2023-08-06 14:18:51 -05:00
advplyr
1372c24535
Update queries to account for user permissions
2023-08-06 13:36:58 -05:00
advplyr
b9633691f4
Add new personalized home page shelves API endpoint
2023-08-02 18:29:28 -05:00
advplyr
95c4b3862b
Include library item podcast queries
2023-07-31 17:59:51 -05:00
advplyr
eeaf012cdc
Update new library item API endpoint to handle collapse series
2023-07-30 17:51:44 -05:00
advplyr
4dbe8d29d9
Update db migration for duration, size, lastFirst, and ignore prefix columns
2023-07-28 18:03:31 -05:00
advplyr
8be1651c6b
Fix:Sync local media progress when library item not found #1971
2023-07-26 18:08:55 -05:00
advplyr
710a62c2af
Update:Load playlists only when needed & remove podcast episode from playlist when deleted
2023-07-23 09:42:57 -05:00
advplyr
5a9eed0a5a
Update:Only load collections when needed
2023-07-22 16:18:55 -05:00
advplyr
354e16e462
Update:Only load Users when needed
2023-07-22 15:32:20 -05:00
advplyr
1d974375a0
Update:Only load libraries from db when needed
2023-07-22 14:25:20 -05:00
advplyr
c2793fe29b
Fix:Crash when author is set without a name #1934
2023-07-19 17:13:57 -05:00
advplyr
6814adffcc
Update:Only load feeds when needed
2023-07-17 16:48:46 -05:00
advplyr
d0cd512be8
Fix:Crash when updating sequence on series #1919
2023-07-17 08:09:08 -05:00
advplyr
d99b2c25e8
Fixes for db migration & local playback sessions
2023-07-16 15:05:51 -05:00
advplyr
63e5cf2e60
Fix:Accessing series page for some users #787
2023-07-16 08:39:08 -05:00
advplyr
ec998dc1ac
Update:Podcast library item covers show number of episodes incomplete #782
2023-07-15 14:45:08 -05:00
advplyr
ddc54c8811
Update:Downloading library item shows log on the server with username #1461
2023-07-15 13:39:12 -05:00
advplyr
c881bcbe59
Update logs for cache purge
2023-07-14 15:04:27 -05:00
advplyr
e85ddc1aa1
Update package.json pkg assets, remove njodb and dependencies
2023-07-09 14:22:30 -05:00
advplyr
b9be7510f8
Remove purge-media-progress api route
2023-07-09 14:08:14 -05:00
advplyr
f4497acd48
Remove API routes for removing all items and purging media progress
2023-07-09 14:07:30 -05:00
advplyr
f73a0cce72
Update Dockerfile for sqlite3, update models for cascade delete, fix backup schedule
2023-07-09 11:39:15 -05:00
advplyr
254ba1f089
Migrate backups manager
2023-07-08 14:40:49 -05:00
advplyr
0a179e4eed
Update author and series to include libraryId
2023-07-08 10:07:57 -05:00
advplyr
0ac63b2678
Update Series and Author model to be library specific
2023-07-08 09:57:32 -05:00
advplyr
1d13d0a553
Merge master
2023-07-08 08:25:33 -05:00
advplyr
e378b79fbc
Fix:Access series that are in multiple libraries and user does not have access to all #1899 , new libraries/series endpoint
2023-07-07 17:59:17 -05:00
advplyr
b5d4c11f6f
Fix RSS feeds to use slug instead of id
2023-07-06 17:07:10 -05:00
advplyr
cf7fd315b6
Init sqlite take 2
2023-07-04 18:14:44 -05:00
advplyr
bdbc5e3161
Add:Library setting to hide single book series #1433
2023-06-29 17:55:17 -05:00
advplyr
bb9013541b
Update:Get all users api endpoint to include latest session, display device info on users table #724
2023-06-28 17:57:46 -05:00
advplyr
aeba7674f8
Add new api route for downloading backup, remove static metadata route
2023-06-27 16:41:32 -05:00
advplyr
d0bce2949e
Add:FFProbe api endpoint
2023-06-25 16:16:11 -05:00
advplyr
014fc45c15
Add:Audiobooks only library settings, supplementary ebooks #1664
2023-06-10 12:46:57 -05:00
advplyr
c382f07b05
Fix:Close player resetting progress #1807
2023-05-30 16:08:30 -05:00
advplyr
05ce9c6eda
Add:Email smtp config & send ebooks to devices #1474
2023-05-29 17:38:38 -05:00
advplyr
15aaf2863c
Add:OPML Export #1260
2023-05-28 15:10:34 -05:00
advplyr
019063e6f4
Update:New API routes for library files and downloads
2023-05-28 12:34:22 -05:00
advplyr
4f75a89633
Update:New EBook API endpoint
2023-05-28 10:47:28 -05:00
advplyr
f16e312319
Fix:Series api check user has access to library
2023-05-28 08:51:34 -05:00
advplyr
9712bdf5f0
Update:Check if directory already exists before upload #1497
2023-05-27 16:00:34 -05:00
advplyr
b52e240025
Add:Batch re-scan #1754
2023-05-27 14:51:03 -05:00
advplyr
9f6bfeb839
Fix:Removing media progress that was started local
2023-05-20 15:19:09 -05:00
advplyr
bac09de23d
Fix:getNarrators API endpoint check narrators are strings #1770
2023-05-12 18:22:09 -05:00
advplyr
eb7f66c89e
Add:Narrators page #860 #1139
2023-04-30 14:11:54 -05:00
advplyr
a5627a1b52
Add:Search for narrators #1495
2023-04-24 18:25:30 -05:00
advplyr
e271e89835
Author API requests to use region from library provider
2023-04-16 15:53:46 -05:00
advplyr
179f11f55d
Add:Delete library items from file system #1439
2023-04-14 16:44:41 -05:00
advplyr
5a21e63d0b
Add:Delete library files, condense item options in more menu #1439
2023-04-13 18:03:39 -05:00
Divyang Joshi
122ec140e8
Add sortBy Last Book Added and Updated to series
2023-04-11 23:18:25 -04:00
advplyr
718890cfad
Add:Download button to download full library item #580
2023-04-09 17:05:35 -05:00
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
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