mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 08:21:39 -06:00
3ef4a22c37
The walker sorted a book's files by file name, so tracks in disc folders that reuse names, such as CD 1/01.mp3 and CD 2/01.mp3, interleaved in playback, merged chapters, and written track numbers. Order them by their whole path instead, everywhere a track order is chosen. A rescan that only reorders a book's existing tracks now moves every audio bookmark and the listening progress percentage to the same moment of the same track, and rebuilds merged chapters. Disc folders are never skipped by incremental scans, so existing libraries are fixed by their next scan. Also inventory the notebook and dashboard highlights routes in the authorization matrix, and pin the app locale in two date tests that depended on the machine's locale.
927 lines
26 KiB
JSON
927 lines
26 KiB
JSON
[
|
|
{
|
|
"file": "server/src/modules/book-request/download-clients/download-client.controller.ts",
|
|
"className": "DownloadClientController",
|
|
"methodName": "removeOrphan",
|
|
"httpMethod": "DELETE",
|
|
"path": "/admin/download-clients/:id/reconciliation/:hash",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/collection/collection.controller.ts",
|
|
"className": "CollectionController",
|
|
"methodName": "removePodcasts",
|
|
"httpMethod": "DELETE",
|
|
"path": "/collections/:id/podcasts",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/podcast/podcast.controller.ts",
|
|
"className": "PodcastController",
|
|
"methodName": "removeAllDownloads",
|
|
"httpMethod": "DELETE",
|
|
"path": "/podcasts/:podcastId/downloads",
|
|
"permissions": ["Permission.PodcastDownload"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts-admin.controller.ts",
|
|
"className": "TtsAdminController",
|
|
"methodName": "deleteProvider",
|
|
"httpMethod": "DELETE",
|
|
"path": "/tts/admin/providers/:id",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "deletePosition",
|
|
"httpMethod": "DELETE",
|
|
"path": "/tts/position/:bookFileId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "deleteBookPreferences",
|
|
"httpMethod": "DELETE",
|
|
"path": "/tts/preferences/book/:bookId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/upload/upload-session.controller.ts",
|
|
"className": "UploadSessionController",
|
|
"methodName": "cancel",
|
|
"httpMethod": "DELETE",
|
|
"path": "/uploads/:id",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-request/download-clients/download-client.controller.ts",
|
|
"className": "DownloadClientController",
|
|
"methodName": "reconcile",
|
|
"httpMethod": "GET",
|
|
"path": "/admin/download-clients/:id/reconciliation",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/annotation/annotation-hub.controller.ts",
|
|
"className": "AnnotationHubController",
|
|
"methodName": "overview",
|
|
"httpMethod": "GET",
|
|
"path": "/annotations/overview",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/authors/authors.controller.ts",
|
|
"className": "AuthorsController",
|
|
"methodName": "findJumpBuckets",
|
|
"httpMethod": "GET",
|
|
"path": "/authors/jump-buckets",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book/book.controller.ts",
|
|
"className": "BookController",
|
|
"methodName": "downloadAudiolessEpub",
|
|
"httpMethod": "GET",
|
|
"path": "/books/files/:fileId/audioless-epub/download",
|
|
"permissions": ["Permission.LibraryDownload"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/collection/collection.controller.ts",
|
|
"className": "CollectionController",
|
|
"methodName": "getPodcasts",
|
|
"httpMethod": "GET",
|
|
"path": "/collections/:id/podcasts",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/collection/collection.controller.ts",
|
|
"className": "CollectionController",
|
|
"methodName": "findPodcastMembership",
|
|
"httpMethod": "GET",
|
|
"path": "/collections/podcast-membership",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/reader/epub/epub.controller.ts",
|
|
"className": "EpubController",
|
|
"methodName": "getMediaOverlay",
|
|
"httpMethod": "GET",
|
|
"path": "/epub/:bookId/media-overlay",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/reader/epub/epub.controller.ts",
|
|
"className": "EpubController",
|
|
"methodName": "getMediaOverlayFile",
|
|
"httpMethod": "GET",
|
|
"path": "/epub/:bookId/media-overlay/file/*",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/podcast/podcast.controller.ts",
|
|
"className": "PodcastDownloadBatchController",
|
|
"methodName": "listActive",
|
|
"httpMethod": "GET",
|
|
"path": "/podcast-download-batches",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/podcast/podcast.controller.ts",
|
|
"className": "PodcastDownloadBatchController",
|
|
"methodName": "findOne",
|
|
"httpMethod": "GET",
|
|
"path": "/podcast-download-batches/:batchId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/podcast/podcast.controller.ts",
|
|
"className": "PodcastLibraryController",
|
|
"methodName": "getJob",
|
|
"httpMethod": "GET",
|
|
"path": "/podcast-libraries/:libraryId/jobs/:jobId",
|
|
"permissions": ["Permission.PodcastManageFeeds"],
|
|
"libraryAccess": ["'editor'"],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/search/search.controller.ts",
|
|
"className": "SearchController",
|
|
"methodName": "search",
|
|
"httpMethod": "GET",
|
|
"path": "/search",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/smart-scope/smart-scope.controller.ts",
|
|
"className": "SmartScopeController",
|
|
"methodName": "queryEpisodes",
|
|
"httpMethod": "GET",
|
|
"path": "/smart-scopes/:id/episodes",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts-admin.controller.ts",
|
|
"className": "TtsAdminController",
|
|
"methodName": "getAllProviders",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/admin/providers",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts-admin.controller.ts",
|
|
"className": "TtsAdminController",
|
|
"methodName": "discoverVoices",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/admin/providers/:id/voices/discover",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "getPosition",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/position/:bookFileId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "getUserPreferences",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/preferences",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "getBookPreferences",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/preferences/book/:bookId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "getProviders",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/providers",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "getChapterText",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/text/:bookFileId/:chapterIndex",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "getVoices",
|
|
"httpMethod": "GET",
|
|
"path": "/tts/voices",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/upload/upload-session.controller.ts",
|
|
"className": "UploadSessionController",
|
|
"methodName": "get",
|
|
"httpMethod": "GET",
|
|
"path": "/uploads/:id",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/upload/upload-session.controller.ts",
|
|
"className": "UploadSessionController",
|
|
"methodName": "capabilities",
|
|
"httpMethod": "GET",
|
|
"path": "/uploads/capabilities",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
|
|
"className": "UserStatisticsController",
|
|
"methodName": "getActivityCalendar",
|
|
"httpMethod": "GET",
|
|
"path": "/user-statistics/activity-calendar/:year",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
|
|
"className": "UserStatisticsController",
|
|
"methodName": "getActivityDay",
|
|
"httpMethod": "GET",
|
|
"path": "/user-statistics/activity-days/:day",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
|
|
"className": "UserStatisticsController",
|
|
"methodName": "getActivityCompletionSpeed",
|
|
"httpMethod": "GET",
|
|
"path": "/user-statistics/activity-details/completion-speed",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
|
|
"className": "UserStatisticsController",
|
|
"methodName": "getActivityGenreTime",
|
|
"httpMethod": "GET",
|
|
"path": "/user-statistics/activity-details/genre-time",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
|
|
"className": "UserStatisticsController",
|
|
"methodName": "getActivityPaceDetail",
|
|
"httpMethod": "GET",
|
|
"path": "/user-statistics/activity-details/pace",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
|
|
"className": "UserStatisticsController",
|
|
"methodName": "getActivitySessionPatterns",
|
|
"httpMethod": "GET",
|
|
"path": "/user-statistics/activity-details/session-patterns",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
|
|
"className": "UserStatisticsController",
|
|
"methodName": "getActivityOverview",
|
|
"httpMethod": "GET",
|
|
"path": "/user-statistics/activity-overview",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/watch-download/watch-download.controller.ts",
|
|
"className": "WatchDownloadController",
|
|
"methodName": "downloadCover",
|
|
"httpMethod": "GET",
|
|
"path": "/watch-downloads/books/:bookId/cover",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": true,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/watch-download/watch-download.controller.ts",
|
|
"className": "WatchDownloadController",
|
|
"methodName": "downloadFile",
|
|
"httpMethod": "GET",
|
|
"path": "/watch-downloads/files/:fileId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": true,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/watch-download/watch-download.controller.ts",
|
|
"className": "WatchDownloadController",
|
|
"methodName": "downloadMediaOverlayFile",
|
|
"httpMethod": "GET",
|
|
"path": "/watch-downloads/media-overlay/files/:index",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": true,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book/book.controller.ts",
|
|
"className": "BookController",
|
|
"methodName": "updateReadAloudSync",
|
|
"httpMethod": "PATCH",
|
|
"path": "/books/:id/read-aloud-sync",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/achievement/achievement.controller.ts",
|
|
"className": "AchievementController",
|
|
"methodName": "acknowledgeCelebration",
|
|
"httpMethod": "POST",
|
|
"path": "/achievements/celebrations/:claimId/acknowledge",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": ["JwtAuthGuard"]
|
|
},
|
|
{
|
|
"file": "server/src/modules/achievement/achievement.controller.ts",
|
|
"className": "AchievementController",
|
|
"methodName": "claimCelebration",
|
|
"httpMethod": "POST",
|
|
"path": "/achievements/celebrations/claim",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": ["JwtAuthGuard"]
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-request/download-clients/download-client.controller.ts",
|
|
"className": "DownloadClientController",
|
|
"methodName": "adopt",
|
|
"httpMethod": "POST",
|
|
"path": "/admin/download-clients/:id/reconciliation/:hash/adopt",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/collection/collection.controller.ts",
|
|
"className": "CollectionController",
|
|
"methodName": "addPodcasts",
|
|
"httpMethod": "POST",
|
|
"path": "/collections/:id/podcasts",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/dashboard/dashboard.controller.ts",
|
|
"className": "DashboardController",
|
|
"methodName": "refresh",
|
|
"httpMethod": "POST",
|
|
"path": "/dashboard/refresh",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/podcast/podcast.controller.ts",
|
|
"className": "PodcastController",
|
|
"methodName": "downloadLatest",
|
|
"httpMethod": "POST",
|
|
"path": "/podcasts/:podcastId/download-latest",
|
|
"permissions": ["Permission.PodcastDownload"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/podcast/podcast.controller.ts",
|
|
"className": "PodcastController",
|
|
"methodName": "markAllPlayed",
|
|
"httpMethod": "POST",
|
|
"path": "/podcasts/:podcastId/mark-all-played",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/podcast/podcast.controller.ts",
|
|
"className": "PodcastController",
|
|
"methodName": "queueAll",
|
|
"httpMethod": "POST",
|
|
"path": "/podcasts/:podcastId/queue-all",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts-admin.controller.ts",
|
|
"className": "TtsAdminController",
|
|
"methodName": "addProvider",
|
|
"httpMethod": "POST",
|
|
"path": "/tts/admin/providers",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts-admin.controller.ts",
|
|
"className": "TtsAdminController",
|
|
"methodName": "testProvider",
|
|
"httpMethod": "POST",
|
|
"path": "/tts/admin/providers/:id/test",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "previewVoice",
|
|
"httpMethod": "POST",
|
|
"path": "/tts/preview",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "synthesize",
|
|
"httpMethod": "POST",
|
|
"path": "/tts/synthesize",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "synthesizeCaptioned",
|
|
"httpMethod": "POST",
|
|
"path": "/tts/synthesize/captioned",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/upload/upload-session.controller.ts",
|
|
"className": "UploadSessionController",
|
|
"methodName": "create",
|
|
"httpMethod": "POST",
|
|
"path": "/uploads",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/upload/upload-session.controller.ts",
|
|
"className": "UploadSessionController",
|
|
"methodName": "appendChunk",
|
|
"httpMethod": "POST",
|
|
"path": "/uploads/:id/chunks",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/upload/upload-session.controller.ts",
|
|
"className": "UploadSessionController",
|
|
"methodName": "complete",
|
|
"httpMethod": "POST",
|
|
"path": "/uploads/:id/complete",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/watch-download/watch-download.controller.ts",
|
|
"className": "WatchDownloadController",
|
|
"methodName": "create",
|
|
"httpMethod": "POST",
|
|
"path": "/watch-downloads",
|
|
"permissions": ["Permission.LibraryDownload"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/watch-download/watch-download.controller.ts",
|
|
"className": "WatchDownloadController",
|
|
"methodName": "createMediaOverlay",
|
|
"httpMethod": "POST",
|
|
"path": "/watch-downloads/media-overlay",
|
|
"permissions": ["Permission.LibraryDownload"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts-admin.controller.ts",
|
|
"className": "TtsAdminController",
|
|
"methodName": "updateProvider",
|
|
"httpMethod": "PUT",
|
|
"path": "/tts/admin/providers/:id",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts-admin.controller.ts",
|
|
"className": "TtsAdminController",
|
|
"methodName": "reorderProviders",
|
|
"httpMethod": "PUT",
|
|
"path": "/tts/admin/providers/order",
|
|
"permissions": ["Permission.ManageAppSettings"],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "savePosition",
|
|
"httpMethod": "PUT",
|
|
"path": "/tts/position/:bookFileId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "saveUserPreferences",
|
|
"httpMethod": "PUT",
|
|
"path": "/tts/preferences",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/tts/tts.controller.ts",
|
|
"className": "TtsController",
|
|
"methodName": "saveBookPreferences",
|
|
"httpMethod": "PUT",
|
|
"path": "/tts/preferences/book/:bookId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-journal/book-journal.controller.ts",
|
|
"className": "BookJournalController",
|
|
"methodName": "list",
|
|
"httpMethod": "GET",
|
|
"path": "/books/:bookId/journal",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-journal/book-journal.controller.ts",
|
|
"className": "BookJournalController",
|
|
"methodName": "create",
|
|
"httpMethod": "POST",
|
|
"path": "/books/:bookId/journal",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-journal/book-journal.controller.ts",
|
|
"className": "BookJournalController",
|
|
"methodName": "update",
|
|
"httpMethod": "PATCH",
|
|
"path": "/books/:bookId/journal/:clientId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-journal/book-journal.controller.ts",
|
|
"className": "BookJournalController",
|
|
"methodName": "trash",
|
|
"httpMethod": "DELETE",
|
|
"path": "/books/:bookId/journal/:clientId",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-journal/book-journal.controller.ts",
|
|
"className": "BookJournalController",
|
|
"methodName": "restore",
|
|
"httpMethod": "POST",
|
|
"path": "/books/:bookId/journal/:clientId/restore",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/book-journal/book-journal.controller.ts",
|
|
"className": "BookJournalController",
|
|
"methodName": "purge",
|
|
"httpMethod": "DELETE",
|
|
"path": "/books/:bookId/journal/:clientId/permanent",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/notebook/notebook.controller.ts",
|
|
"className": "NotebookController",
|
|
"methodName": "entries",
|
|
"httpMethod": "GET",
|
|
"path": "/notebook/entries",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/notebook/notebook.controller.ts",
|
|
"className": "NotebookController",
|
|
"methodName": "overview",
|
|
"httpMethod": "GET",
|
|
"path": "/notebook/overview",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/notebook/notebook.controller.ts",
|
|
"className": "NotebookController",
|
|
"methodName": "books",
|
|
"httpMethod": "GET",
|
|
"path": "/notebook/books",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/notebook/notebook.controller.ts",
|
|
"className": "NotebookController",
|
|
"methodName": "review",
|
|
"httpMethod": "GET",
|
|
"path": "/notebook/review",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/notebook/notebook.controller.ts",
|
|
"className": "NotebookController",
|
|
"methodName": "onThisDay",
|
|
"httpMethod": "GET",
|
|
"path": "/notebook/on-this-day",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/notebook/notebook.controller.ts",
|
|
"className": "NotebookController",
|
|
"methodName": "trash",
|
|
"httpMethod": "GET",
|
|
"path": "/notebook/trash",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
},
|
|
{
|
|
"file": "server/src/modules/dashboard/dashboard.controller.ts",
|
|
"className": "DashboardController",
|
|
"methodName": "getHighlights",
|
|
"httpMethod": "GET",
|
|
"path": "/dashboard/widgets/highlights",
|
|
"permissions": [],
|
|
"libraryAccess": [],
|
|
"isPublic": false,
|
|
"allowDefault": false,
|
|
"useGuards": []
|
|
}
|
|
]
|