advplyr
42ff3d8314
Add new library item scanner
2023-09-03 17:51:58 -05:00
advplyr
9123dcb365
Remove series search api endpoint, update authors and series to load from db
2023-09-03 10:49:02 -05:00
advplyr
1b1bdea3c8
Remove authors search api endpoint
2023-09-03 09:54:23 -05:00
advplyr
2c8448d147
Updates to new library scanner and adding jsdoc types
2023-08-27 17:19:57 -05:00
advplyr
469167df66
Update get all feeds route to be admin-only, map translation strings
2023-08-22 16:37:22 -05:00
Shawn Hoffman
24989e73ae
Merge branch 'master' into shawn/rss-feeds
2023-08-22 10:30:16 -07:00
Shawn Hoffman
13427b9f70
Add RSS feeds config page
2023-08-22 10:11:10 -07:00
advplyr
6c1b4e3a36
Update db model references
2023-08-20 13:34:03 -05:00
advplyr
4f94deefa0
Fix remove items with issues API route & remove old endpoints
2023-08-19 17:12:24 -05:00
advplyr
332078e6c1
Update library stats API route to load from db
2023-08-19 16:53:33 -05:00
advplyr
ff0d6326d3
Update OPML api route to load podcasts from db
2023-08-19 15:19:27 -05:00
advplyr
8d451217a3
Update recent-episodes API route to load from db
2023-08-19 14:49:06 -05:00
advplyr
c77cead9ae
Update search endpoints to search db directly
2023-08-19 13:59:22 -05:00
advplyr
b334d40998
Update library routes to middlewareNew
2023-08-18 17:12:15 -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
fc44c801f2
Update playlist API endpoints to load library items from DB
2023-08-13 11:22:38 -05:00
advplyr
09c9c28028
Remove test API endpoint for albums
2023-08-12 15:54:59 -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
b9633691f4
Add new personalized home page shelves API endpoint
2023-08-02 18:29:28 -05:00
advplyr
4dbe8d29d9
Update db migration for duration, size, lastFirst, and ignore prefix columns
2023-07-28 18:03:31 -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
89aa4a8bdc
Update logger to support dev only log, remove old model docs
2023-07-14 14:50:37 -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
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
cf7fd315b6
Init sqlite take 2
2023-07-04 18:14:44 -05:00
advplyr
aeba7674f8
Add new api route for downloading backup, remove static metadata route
2023-06-27 16:41:32 -05:00
advplyr
5b0d105e21
Remove deprecated /s/ and /ebook/ api routes
2023-06-27 15:56:33 -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
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
b3f19ef628
Fix:Static file route check authorization
2023-05-28 09:34:03 -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
eb7f66c89e
Add:Narrators page #860 #1139
2023-04-30 14:11:54 -05:00
advplyr
e4961feffb
Update:Remove item metadata path when removing item #1561
2023-04-16 16:23:13 -05:00
advplyr
5a21e63d0b
Add:Delete library files, condense item options in more menu #1439
2023-04-13 18:03:39 -05:00
advplyr
718890cfad
Add:Download button to download full library item #580
2023-04-09 17:05:35 -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
9fdc8df8bc
Update:API endpoint for updating book media does not require an id for new series/authors #1540
2023-03-31 17:04:26 -05:00
advplyr
575a162f8b
Update:API endpoint for get all users to use minimal payload
2023-03-29 14:56:50 -05:00
advplyr
aef2c52630
Merge pull request #1581 from mfcar/improvePodcastEditing
...
Improve podcast editing
2023-03-05 12:28:12 -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
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
5bde320ac7
Update:Remove X-Powered-By express response headers
2023-02-01 14:34: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
2cd9079692
Add MusicBrainz provider
2023-01-07 13:05:33 -06:00
advplyr
49c581ed35
Add:Podcast option to quick match all unmatched episodes
2023-01-04 18:13:46 -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
c6763dee2d
Remove invalid RSS feeds on init and remove feeds when associated entity is removed
2022-12-31 14:08:34 -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
Paul Nettleton
2cba83f1dd
Server socket event fixes
2022-12-22 16:26:11 -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
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
7e171576e0
Update:Add libraries playlists API endpoint, add lazy playlists card
2022-11-26 17:24:46 -06:00
advplyr
f9b87b94bf
Add:Playlist API endpoints
2022-11-26 15:14:45 -06:00
advplyr
180293ebc1
Update:Cleanup socket usage & add func for emitting events to admin users
2022-11-24 16:35:26 -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
e3ba739db5
Update:Encode & embed metadata API endpoints, separate cache & search endpoints into controllers
2022-11-19 13:28:06 -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
fdf67e17a0
Add:API endpoint to get users online and open listening sessions #1125
2022-11-10 17:42:20 -06: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
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
advplyr
0ef2a2e4b6
Update:Notifications onTest for testing and parse title/body template #996
2022-09-24 16:15:16 -05:00
advplyr
37a3fdb606
Notifications UI update and delete endpoint
2022-09-23 18:10:03 -05:00