oblecto 0.2.9 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/Oblecto-Web/dist/web/index.html +24 -3
  2. package/Oblecto-Web/dist/web/static/index-C-JsqHHk.css +1 -0
  3. package/Oblecto-Web/dist/web/static/index-DSZgpOOu.js +576 -0
  4. package/README.md +43 -7
  5. package/dist/bin/oblecto.js +12468 -61
  6. package/dist/index.js +10676 -6
  7. package/package.json +67 -39
  8. package/res/AGENTS.md +8 -0
  9. package/res/config.json +29 -7
  10. package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css +0 -1
  11. package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css.map +0 -1
  12. package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js +0 -7150
  13. package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js.map +0 -1
  14. package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js +0 -154
  15. package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js.map +0 -1
  16. package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js +0 -32455
  17. package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js.map +0 -1
  18. package/dist/bin/oblecto.d.ts +0 -2
  19. package/dist/bin/scripts/adduser.d.ts +0 -2
  20. package/dist/bin/scripts/adduser.js +0 -50
  21. package/dist/bin/scripts/changepassword.d.ts +0 -2
  22. package/dist/bin/scripts/changepassword.js +0 -48
  23. package/dist/bin/scripts/deluser.d.ts +0 -2
  24. package/dist/bin/scripts/deluser.js +0 -34
  25. package/dist/bin/scripts/helpers/argumentError.d.ts +0 -2
  26. package/dist/bin/scripts/helpers/argumentError.js +0 -12
  27. package/dist/bin/scripts/helpers/generateAssetDirectories.d.ts +0 -1
  28. package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
  29. package/dist/bin/scripts/init/assets.d.ts +0 -2
  30. package/dist/bin/scripts/init/assets.js +0 -24
  31. package/dist/bin/scripts/init/database.d.ts +0 -2
  32. package/dist/bin/scripts/init/database.js +0 -21
  33. package/dist/bin/scripts/init/general.d.ts +0 -2
  34. package/dist/bin/scripts/init/general.js +0 -54
  35. package/dist/bin/scripts/init/index.d.ts +0 -2
  36. package/dist/bin/scripts/init/index.js +0 -26
  37. package/dist/bin/scripts/removepassword.d.ts +0 -2
  38. package/dist/bin/scripts/removepassword.js +0 -42
  39. package/dist/config.d.ts +0 -7
  40. package/dist/config.js +0 -45
  41. package/dist/core/graphical.d.ts +0 -17
  42. package/dist/core/graphical.js +0 -179
  43. package/dist/core/index.d.ts +0 -9
  44. package/dist/core/index.js +0 -24
  45. package/dist/index.d.ts +0 -1
  46. package/dist/lib/artwork/ArtworkScaler.d.ts +0 -5
  47. package/dist/lib/artwork/ArtworkScaler.js +0 -31
  48. package/dist/lib/artwork/ArtworkUtils.d.ts +0 -8
  49. package/dist/lib/artwork/ArtworkUtils.js +0 -35
  50. package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.d.ts +0 -8
  51. package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
  52. package/dist/lib/artwork/movies/MovieArtworkCollector.d.ts +0 -35
  53. package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
  54. package/dist/lib/artwork/movies/MovieArtworkDownloader.d.ts +0 -8
  55. package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
  56. package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.d.ts +0 -6
  57. package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
  58. package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.d.ts +0 -6
  59. package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
  60. package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.d.ts +0 -8
  61. package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
  62. package/dist/lib/artwork/series/SeriesArtworkCollector.d.ts +0 -37
  63. package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
  64. package/dist/lib/artwork/series/SeriesArtworkDownloader.d.ts +0 -8
  65. package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
  66. package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.d.ts +0 -6
  67. package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
  68. package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.d.ts +0 -16
  69. package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
  70. package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.d.ts +0 -16
  71. package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
  72. package/dist/lib/cleaners/FileCleaner.d.ts +0 -6
  73. package/dist/lib/cleaners/FileCleaner.js +0 -68
  74. package/dist/lib/cleaners/MovieCleaner.d.ts +0 -8
  75. package/dist/lib/cleaners/MovieCleaner.js +0 -48
  76. package/dist/lib/cleaners/SeriesCleaner.d.ts +0 -10
  77. package/dist/lib/cleaners/SeriesCleaner.js +0 -88
  78. package/dist/lib/common/AggregateIdentifier.d.ts +0 -9
  79. package/dist/lib/common/AggregateIdentifier.js +0 -57
  80. package/dist/lib/common/AggregateUpdateRetriever.d.ts +0 -5
  81. package/dist/lib/common/AggregateUpdateRetriever.js +0 -46
  82. package/dist/lib/downloader/index.d.ts +0 -6
  83. package/dist/lib/downloader/index.js +0 -83
  84. package/dist/lib/errors/DebugExtendableError.d.ts +0 -5
  85. package/dist/lib/errors/DebugExtendableError.js +0 -20
  86. package/dist/lib/errors/ExtendableError.d.ts +0 -3
  87. package/dist/lib/errors/ExtendableError.js +0 -22
  88. package/dist/lib/errors/FileExistsError.d.ts +0 -4
  89. package/dist/lib/errors/FileExistsError.js +0 -14
  90. package/dist/lib/errors/IdentificationError.d.ts +0 -4
  91. package/dist/lib/errors/IdentificationError.js +0 -14
  92. package/dist/lib/errors/InfoExtendableError.d.ts +0 -5
  93. package/dist/lib/errors/InfoExtendableError.js +0 -20
  94. package/dist/lib/errors/VideoAnalysisError.d.ts +0 -4
  95. package/dist/lib/errors/VideoAnalysisError.js +0 -14
  96. package/dist/lib/errors/VideoIdentificationError.d.ts +0 -4
  97. package/dist/lib/errors/VideoIdentificationError.js +0 -9
  98. package/dist/lib/errors/WarnExtendableError.d.ts +0 -5
  99. package/dist/lib/errors/WarnExtendableError.js +0 -20
  100. package/dist/lib/federation/client/FederationClient.d.ts +0 -31
  101. package/dist/lib/federation/client/FederationClient.js +0 -127
  102. package/dist/lib/federation/client/FederationClientController.d.ts +0 -9
  103. package/dist/lib/federation/client/FederationClientController.js +0 -45
  104. package/dist/lib/federation/client/FederationDataClient.d.ts +0 -11
  105. package/dist/lib/federation/client/FederationDataClient.js +0 -56
  106. package/dist/lib/federation/client/FederationMediaClient.d.ts +0 -12
  107. package/dist/lib/federation/client/FederationMediaClient.js +0 -70
  108. package/dist/lib/federation/server/FederationController.d.ts +0 -10
  109. package/dist/lib/federation/server/FederationController.js +0 -32
  110. package/dist/lib/federation/server/FederationDataServer.d.ts +0 -4
  111. package/dist/lib/federation/server/FederationDataServer.js +0 -22
  112. package/dist/lib/federation/server/FederationDataServerConnection.d.ts +0 -8
  113. package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
  114. package/dist/lib/federation/server/FederationMediaServer.d.ts +0 -4
  115. package/dist/lib/federation/server/FederationMediaServer.js +0 -22
  116. package/dist/lib/federation/server/FederationMediaServerConnection.d.ts +0 -11
  117. package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
  118. package/dist/lib/federation/server/FederationServer.d.ts +0 -11
  119. package/dist/lib/federation/server/FederationServer.js +0 -40
  120. package/dist/lib/federation/server/FederationServerConnection.d.ts +0 -18
  121. package/dist/lib/federation/server/FederationServerConnection.js +0 -97
  122. package/dist/lib/federationindexer/FederationEpisodeIndexer.d.ts +0 -5
  123. package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
  124. package/dist/lib/federationindexer/FederationMovieIndexer.d.ts +0 -5
  125. package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
  126. package/dist/lib/federationv2/federationController/index.js +0 -13
  127. package/dist/lib/indexers/MediaIdentifier.d.ts +0 -5
  128. package/dist/lib/indexers/MediaIdentifier.js +0 -15
  129. package/dist/lib/indexers/files/FileIndexer.d.ts +0 -10
  130. package/dist/lib/indexers/files/FileIndexer.js +0 -103
  131. package/dist/lib/indexers/movies/MovieCollector.d.ts +0 -25
  132. package/dist/lib/indexers/movies/MovieCollector.js +0 -65
  133. package/dist/lib/indexers/movies/MovieIdentifier.d.ts +0 -10
  134. package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
  135. package/dist/lib/indexers/movies/MovieIndexer.d.ts +0 -11
  136. package/dist/lib/indexers/movies/MovieIndexer.js +0 -64
  137. package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.d.ts +0 -4
  138. package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -52
  139. package/dist/lib/indexers/series/EpisodeIdentifier.d.ts +0 -12
  140. package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -25
  141. package/dist/lib/indexers/series/SeriesCollector.d.ts +0 -25
  142. package/dist/lib/indexers/series/SeriesCollector.js +0 -69
  143. package/dist/lib/indexers/series/SeriesIdentifer.d.ts +0 -11
  144. package/dist/lib/indexers/series/SeriesIdentifer.js +0 -24
  145. package/dist/lib/indexers/series/SeriesIndexer.d.ts +0 -11
  146. package/dist/lib/indexers/series/SeriesIndexer.js +0 -140
  147. package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.d.ts +0 -4
  148. package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -48
  149. package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.d.ts +0 -6
  150. package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -90
  151. package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.d.ts +0 -7
  152. package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -87
  153. package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.d.ts +0 -10
  154. package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
  155. package/dist/lib/oblecto/index.d.ts +0 -68
  156. package/dist/lib/oblecto/index.js +0 -125
  157. package/dist/lib/queue/index.d.ts +0 -32
  158. package/dist/lib/queue/index.js +0 -96
  159. package/dist/lib/realtime/RealtimeClient.d.ts +0 -27
  160. package/dist/lib/realtime/RealtimeClient.js +0 -137
  161. package/dist/lib/realtime/RealtimeController.d.ts +0 -12
  162. package/dist/lib/realtime/RealtimeController.js +0 -50
  163. package/dist/lib/redisQueue/index.js +0 -109
  164. package/dist/lib/sets/tv/MovieSetCollector.d.ts +0 -6
  165. package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
  166. package/dist/lib/streamSessions/StreamSession.d.ts +0 -41
  167. package/dist/lib/streamSessions/StreamSession.js +0 -146
  168. package/dist/lib/streamSessions/StreamSessionController.d.ts +0 -19
  169. package/dist/lib/streamSessions/StreamSessionController.js +0 -78
  170. package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.d.ts +0 -5
  171. package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -116
  172. package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.d.ts +0 -5
  173. package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -41
  174. package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.d.ts +0 -15
  175. package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -148
  176. package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.d.ts +0 -9
  177. package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
  178. package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.d.ts +0 -6
  179. package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -96
  180. package/dist/lib/updaters/files/FileUpdateCollector.d.ts +0 -20
  181. package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
  182. package/dist/lib/updaters/files/FileUpdater.d.ts +0 -49
  183. package/dist/lib/updaters/files/FileUpdater.js +0 -194
  184. package/dist/lib/updaters/movies/MovieUpdateCollector.d.ts +0 -20
  185. package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
  186. package/dist/lib/updaters/movies/MovieUpdater.d.ts +0 -12
  187. package/dist/lib/updaters/movies/MovieUpdater.js +0 -49
  188. package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.d.ts +0 -20
  189. package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -45
  190. package/dist/lib/updaters/series/SeriesUpdateCollector.d.ts +0 -37
  191. package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
  192. package/dist/lib/updaters/series/SeriesUpdater.d.ts +0 -22
  193. package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
  194. package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.d.ts +0 -11
  195. package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -70
  196. package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.d.ts +0 -21
  197. package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -68
  198. package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.d.ts +0 -5
  199. package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
  200. package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.d.ts +0 -21
  201. package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
  202. package/dist/models/episode.d.ts +0 -76
  203. package/dist/models/episode.js +0 -62
  204. package/dist/models/episodeFiles.d.ts +0 -5
  205. package/dist/models/episodeFiles.js +0 -14
  206. package/dist/models/file.d.ts +0 -26
  207. package/dist/models/file.js +0 -32
  208. package/dist/models/movie.d.ts +0 -30
  209. package/dist/models/movie.js +0 -36
  210. package/dist/models/movieFiles.d.ts +0 -5
  211. package/dist/models/movieFiles.js +0 -14
  212. package/dist/models/movieSet.d.ts +0 -20
  213. package/dist/models/movieSet.js +0 -26
  214. package/dist/models/series.d.ts +0 -59
  215. package/dist/models/series.js +0 -50
  216. package/dist/models/seriesSet.d.ts +0 -9
  217. package/dist/models/seriesSet.js +0 -17
  218. package/dist/models/stream.d.ts +0 -73
  219. package/dist/models/stream.js +0 -81
  220. package/dist/models/trackEpisode.d.ts +0 -9
  221. package/dist/models/trackEpisode.js +0 -17
  222. package/dist/models/trackMovie.d.ts +0 -9
  223. package/dist/models/trackMovie.js +0 -17
  224. package/dist/models/user.d.ts +0 -19
  225. package/dist/models/user.js +0 -26
  226. package/dist/submodules/REST/index.d.ts +0 -9
  227. package/dist/submodules/REST/index.js +0 -59
  228. package/dist/submodules/REST/middleware/auth.d.ts +0 -5
  229. package/dist/submodules/REST/middleware/auth.js +0 -28
  230. package/dist/submodules/REST/routes/auth.d.ts +0 -2
  231. package/dist/submodules/REST/routes/auth.js +0 -48
  232. package/dist/submodules/REST/routes/clients.d.ts +0 -2
  233. package/dist/submodules/REST/routes/clients.js +0 -54
  234. package/dist/submodules/REST/routes/episodes.d.ts +0 -2
  235. package/dist/submodules/REST/routes/episodes.js +0 -275
  236. package/dist/submodules/REST/routes/files.d.ts +0 -2
  237. package/dist/submodules/REST/routes/files.js +0 -53
  238. package/dist/submodules/REST/routes/index.d.ts +0 -2
  239. package/dist/submodules/REST/routes/index.js +0 -49
  240. package/dist/submodules/REST/routes/movies.d.ts +0 -2
  241. package/dist/submodules/REST/routes/movies.js +0 -303
  242. package/dist/submodules/REST/routes/sets.d.ts +0 -2
  243. package/dist/submodules/REST/routes/sets.js +0 -35
  244. package/dist/submodules/REST/routes/settings/index.d.ts +0 -2
  245. package/dist/submodules/REST/routes/settings/index.js +0 -22
  246. package/dist/submodules/REST/routes/settings/maintenance.d.ts +0 -2
  247. package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
  248. package/dist/submodules/REST/routes/settings/misc.d.ts +0 -2
  249. package/dist/submodules/REST/routes/settings/misc.js +0 -38
  250. package/dist/submodules/REST/routes/settings/sources.d.ts +0 -2
  251. package/dist/submodules/REST/routes/settings/sources.js +0 -61
  252. package/dist/submodules/REST/routes/streaming.js +0 -91
  253. package/dist/submodules/REST/routes/tvshows.d.ts +0 -2
  254. package/dist/submodules/REST/routes/tvshows.js +0 -137
  255. package/dist/submodules/REST/routes/users.d.ts +0 -2
  256. package/dist/submodules/REST/routes/users.js +0 -107
  257. package/dist/submodules/REST/routes/web.d.ts +0 -2
  258. package/dist/submodules/REST/routes/web.js +0 -43
  259. package/dist/submodules/axiosTimeout.d.ts +0 -1
  260. package/dist/submodules/axiosTimeout.js +0 -31
  261. package/dist/submodules/database.d.ts +0 -1
  262. package/dist/submodules/database.js +0 -180
  263. package/dist/submodules/ffmpeg.d.ts +0 -1
  264. package/dist/submodules/ffmpeg.js +0 -23
  265. package/dist/submodules/ffprobe.d.ts +0 -1
  266. package/dist/submodules/ffprobe.js +0 -22
  267. package/dist/submodules/guessit.d.ts +0 -5
  268. package/dist/submodules/guessit.js +0 -48
  269. package/dist/submodules/logger/index.d.ts +0 -7
  270. package/dist/submodules/logger/index.js +0 -43
  271. package/dist/submodules/promiseTimeout.d.ts +0 -1
  272. package/dist/submodules/promiseTimeout.js +0 -28
  273. package/dist/submodules/zeroconf.js +0 -19
@@ -1,303 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _fs = _interopRequireDefault(require("fs"));
9
-
10
- var _restifyErrors = _interopRequireDefault(require("restify-errors"));
11
-
12
- var _sequelize = _interopRequireDefault(require("sequelize"));
13
-
14
- var _sharp = _interopRequireDefault(require("sharp"));
15
-
16
- var _auth = _interopRequireDefault(require("../middleware/auth"));
17
-
18
- var _trackMovie = require("../../../models/trackMovie");
19
-
20
- var _file = require("../../../models/file");
21
-
22
- var _movie = require("../../../models/movie");
23
-
24
- var _movieSet = require("../../../models/movieSet");
25
-
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
- const Op = _sequelize.default.Op;
29
-
30
- var _default = (server, oblecto) => {
31
- server.get('/movies/list/:sorting', _auth.default.requiresAuth, async function (req, res, next) {
32
- let limit = 20;
33
- let page = 0;
34
- let AllowedOrders = ['desc', 'asc'];
35
- if (AllowedOrders.indexOf(req.params.order.toLowerCase()) === -1) return next(new _restifyErrors.default.BadRequestError('Sorting order is invalid'));
36
- if (!(req.params.sorting in _movie.Movie.rawAttributes)) return next(new _restifyErrors.default.BadRequestError('Sorting method is invalid'));
37
- if (req.params.count && Number.isInteger(req.params.count)) limit = parseInt(req.params.count);
38
- if (req.params.page && Number.isInteger(req.params.page)) page = parseInt(req.params.page);
39
- let results = await _movie.Movie.findAll({
40
- include: [{
41
- model: _trackMovie.TrackMovie,
42
- required: false,
43
- where: {
44
- userId: req.authorization.user.id
45
- }
46
- }],
47
- order: [[req.params.sorting, req.params.order]],
48
- limit,
49
- offset: limit * page
50
- });
51
- res.send(results);
52
- });
53
- server.get('/movies/sets', _auth.default.requiresAuth, async function (req, res) {
54
- let results = await _movieSet.MovieSet.findAll({});
55
- res.send(results);
56
- });
57
- server.get('/movies/set/:id', _auth.default.requiresAuth, async function (req, res, next) {
58
- let limit = req.params.count || 20;
59
- let page = req.params.page || 0;
60
- if (!Number.isInteger(limit) || !Number.isInteger(page)) return next(new _restifyErrors.default.BadRequestError('Limit or Page must be a number'));
61
- let AllowedOrders = ['desc', 'asc'];
62
- if (AllowedOrders.indexOf(req.params.order.toLowerCase()) === -1) return next(new _restifyErrors.default.BadRequestError('Sorting order is invalid'));
63
- let results = await _movieSet.MovieSet.findAll({
64
- include: [{
65
- model: _movie.Movie,
66
- include: [{
67
- model: _trackMovie.TrackMovie,
68
- required: false,
69
- where: {
70
- userId: req.authorization.user.id
71
- }
72
- }]
73
- }],
74
- where: {
75
- id: req.params.id
76
- },
77
- limit,
78
- offset: limit * page
79
- });
80
- res.send(results);
81
- });
82
- server.get('/movie/:id/poster', async function (req, res, next) {
83
- // Get episode data
84
- let movie;
85
-
86
- try {
87
- movie = await _movie.Movie.findByPk(req.params.id);
88
- } catch (e) {
89
- return next(new _restifyErrors.default.NotFoundError('Movie not found'));
90
- }
91
-
92
- let posterPath = oblecto.artworkUtils.moviePosterPath(movie, req.params.size || 'medium');
93
-
94
- _fs.default.createReadStream(posterPath).on('error', () => {
95
- return next(new _restifyErrors.default.NotFoundError('Poster for movie does not exist'));
96
- }).pipe(res);
97
- });
98
- server.put('/movie/:id/poster', _auth.default.requiresAuth, async function (req, res, next) {
99
- let movie = await _movie.Movie.findByPk(req.params.id, {
100
- include: [_file.File]
101
- });
102
-
103
- if (!movie) {
104
- return next(new _restifyErrors.default.NotFoundError('Movie does not exist'));
105
- }
106
-
107
- let posterPath = oblecto.artworkUtils.moviePosterPath(movie);
108
-
109
- if (req.files.length < 1) {
110
- return next(new _restifyErrors.default.MissingParameter('Image file is missing'));
111
- }
112
-
113
- let uploadPath = req.files[Object.keys(req.files)[0]].path;
114
-
115
- try {
116
- let image = await (0, _sharp.default)(uploadPath);
117
- let metadata = await image.metadata();
118
- let ratio = metadata.height / metadata.width;
119
-
120
- if (!(1 <= ratio <= 2)) {
121
- return next(new _restifyErrors.default.InvalidContent('Image aspect ratio is incorrect'));
122
- }
123
- } catch (e) {
124
- return next(new _restifyErrors.default.InvalidContent('File is not an image'));
125
- }
126
-
127
- try {
128
- _fs.default.copyFile(uploadPath, posterPath, err => {
129
- if (err) throw err;
130
-
131
- for (let size of Object.keys(oblecto.config.artwork.poster)) {
132
- oblecto.queue.pushJob('rescaleImage', {
133
- from: oblecto.artworkUtils.moviePosterPath(movie),
134
- to: oblecto.artworkUtils.moviePosterPath(movie, size),
135
- width: oblecto.config.artwork.poster[size]
136
- });
137
- }
138
-
139
- res.send(['success']);
140
- });
141
- } catch (e) {
142
- console.log(e);
143
- return next(new _restifyErrors.default.Internal('An error has occured during upload of poster'));
144
- }
145
-
146
- next();
147
- });
148
- server.get('/movie/:id/fanart', async function (req, res, next) {
149
- // Get episode data
150
- let movie = await _movie.Movie.findByPk(req.params.id, {
151
- include: [_file.File]
152
- });
153
- let fanartPath = oblecto.artworkUtils.movieFanartPath(movie, 'large');
154
-
155
- _fs.default.createReadStream(fanartPath).on('error', () => {
156
- return next(new _restifyErrors.default.NotFoundError('Fanart for movie does not exist'));
157
- }).pipe(res);
158
- });
159
- server.put('/movie/:id/fanart', _auth.default.requiresAuth, async function (req, res, next) {
160
- let movie = await _movie.Movie.findByPk(req.params.id, {
161
- include: [_file.File]
162
- });
163
-
164
- if (!movie) {
165
- return next(new _restifyErrors.default.NotFoundError('Movie does not exist'));
166
- }
167
-
168
- let fanartPath = oblecto.artworkUtils.movieFanartPath(movie);
169
-
170
- if (req.files.length < 1) {
171
- return next(new _restifyErrors.default.MissingParameter('Image file is missing'));
172
- }
173
-
174
- let uploadPath = req.files[Object.keys(req.files)[0]].path;
175
-
176
- try {
177
- let image = await (0, _sharp.default)(uploadPath);
178
- let metadata = await image.metadata();
179
- let ratio = metadata.height / metadata.width;
180
-
181
- if (!(1 <= ratio <= 2)) {
182
- return next(new _restifyErrors.default.InvalidContent('Image aspect ratio is incorrect'));
183
- }
184
- } catch (e) {
185
- return next(new _restifyErrors.default.InvalidContent('File is not an image'));
186
- }
187
-
188
- try {
189
- _fs.default.copyFile(uploadPath, fanartPath, err => {
190
- if (err) throw err;
191
-
192
- for (let size of Object.keys(oblecto.config.artwork.poster)) {
193
- oblecto.queue.pushJob('rescaleImage', {
194
- from: oblecto.artworkUtils.movieFanartPath(movie),
195
- to: oblecto.artworkUtils.movieFanartPath(movie, size),
196
- width: oblecto.config.artwork.poster[size]
197
- });
198
- }
199
-
200
- res.send(['success']);
201
- });
202
- } catch (e) {
203
- console.log(e);
204
- return next(new _restifyErrors.default.Internal('An error has occured during upload of fanart'));
205
- }
206
-
207
- next();
208
- });
209
- server.get('/movie/:id/info', _auth.default.requiresAuth, async function (req, res) {
210
- let movie = await _movie.Movie.findByPk(req.params.id, {
211
- include: [_file.File, {
212
- model: _trackMovie.TrackMovie,
213
- required: false,
214
- where: {
215
- userId: req.authorization.user.id
216
- }
217
- }]
218
- });
219
- res.send(movie);
220
- });
221
- server.get('/movie/:id/play', async function (req, res, next) {
222
- let movie = await _movie.Movie.findByPk(req.params.id, {
223
- include: [{
224
- model: _file.File
225
- }]
226
- });
227
- let file = movie.files[0];
228
- res.redirect(`/stream/${file.id}`, next);
229
- });
230
- server.get('/movie/:id/sets', _auth.default.requiresAuth, async function (req, res) {
231
- let sets = await _movie.Movie.findByPk(req.params.id, {
232
- attributes: [],
233
- include: [{
234
- model: _movieSet.MovieSet,
235
- include: [{
236
- model: _movie.Movie,
237
- include: [{
238
- model: _trackMovie.TrackMovie,
239
- required: false,
240
- where: {
241
- userId: req.authorization.user.id
242
- }
243
- }]
244
- }]
245
- }]
246
- });
247
- res.send(sets.movieSets);
248
- });
249
- server.put('/movie/:id/sets', _auth.default.requiresAuth, async function (req, res, next) {
250
- try {
251
- let [movie] = await _movie.Movie.findByPk(req.params.id);
252
- let [set] = await _movieSet.MovieSet.findByPk(req.params.setId);
253
- set.addMovie(movie);
254
- } catch (e) {
255
- return next(new _restifyErrors.default.NotFoundError('Movie or set could not be found'));
256
- }
257
- });
258
- server.get('/movies/search/:name', _auth.default.requiresAuth, async function (req, res) {
259
- // search for attributes
260
- let movie = await _movie.Movie.findAll({
261
- where: {
262
- movieName: {
263
- [Op.like]: '%' + req.params.name + '%'
264
- }
265
- },
266
- include: [_file.File]
267
- });
268
- res.send(movie);
269
- });
270
- server.get('/movies/watching', _auth.default.requiresAuth, async function (req, res) {
271
- // search for attributes
272
- let tracks = await _trackMovie.TrackMovie.findAll({
273
- include: [{
274
- model: _movie.Movie,
275
- required: true,
276
- include: [{
277
- model: _trackMovie.TrackMovie,
278
- required: false,
279
- where: {
280
- userId: req.authorization.user.id
281
- }
282
- }]
283
- }],
284
- where: {
285
- userId: req.authorization.user.id,
286
- progress: {
287
- [_sequelize.default.Op.lt]: 0.9
288
- },
289
- updatedAt: {
290
- [_sequelize.default.Op.gt]: new Date() - 1000 * 60 * 60 * 24 * 7
291
- }
292
- },
293
- order: [['updatedAt', 'DESC']]
294
- }); // We are only interested in the episode objects, so extract all the episode object from
295
- // each track object and send the final mapped array to the client
296
-
297
- res.send(tracks.map(track => {
298
- return track.Movie;
299
- }));
300
- });
301
- };
302
-
303
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any): void;
2
- export default _default;
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _restifyErrors = _interopRequireDefault(require("restify-errors"));
9
-
10
- var _auth = _interopRequireDefault(require("../middleware/auth"));
11
-
12
- var _movieSet = require("../../../models/movieSet");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- var _default = server => {
17
- server.post('/set/movie', _auth.default.requiresAuth, async function (req, res, next) {
18
- if (typeof req.params.public !== 'boolean') {
19
- return next(new _restifyErrors.default.InvalidArgumentError('Argument public is not a boolean'));
20
- }
21
-
22
- let [set, setInserted] = await _movieSet.MovieSet.findOrCreate({
23
- where: {
24
- setName: req.params.name
25
- },
26
- defaults: {
27
- overview: req.params.overview,
28
- public: req.params.public
29
- }
30
- });
31
- res.send(set);
32
- });
33
- };
34
-
35
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any, oblecto: any): void;
2
- export default _default;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _maintenance = _interopRequireDefault(require("./maintenance"));
9
-
10
- var _sources = _interopRequireDefault(require("./sources"));
11
-
12
- var _misc = _interopRequireDefault(require("./misc"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- var _default = (server, oblecto) => {
17
- (0, _maintenance.default)(server, oblecto);
18
- (0, _sources.default)(server, oblecto);
19
- (0, _misc.default)(server, oblecto);
20
- };
21
-
22
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any, oblecto: any): void;
2
- export default _default;
@@ -1,87 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _auth = _interopRequireDefault(require("../../middleware/auth"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- /**
13
- *
14
- * @param server
15
- * @param {Oblecto} oblecto
16
- */
17
- var _default = (server, oblecto) => {
18
- // API Endpoint to request a re-index of certain library types
19
- server.get('/settings/maintenance/index/:libraries', _auth.default.requiresAuth, function (req, res) {
20
- switch (req.params.libraries) {
21
- case 'series':
22
- oblecto.seriesCollector.collectAll();
23
- break;
24
-
25
- case 'movies':
26
- oblecto.movieCollector.collectAll();
27
- break;
28
-
29
- case 'all':
30
- oblecto.seriesCollector.collectAll();
31
- oblecto.movieCollector.collectAll();
32
- break;
33
- }
34
-
35
- res.send([true]);
36
- }); // API Endpoint to request a re-index of certain library types
37
-
38
- server.get('/settings/maintenance/series/download/art', _auth.default.requiresAuth, function (req, res) {
39
- oblecto.seriesArtworkCollector.collectAll();
40
- res.send([true]);
41
- });
42
- server.get('/settings/maintenance/movies/download/art', _auth.default.requiresAuth, function (req, res) {
43
- oblecto.movieArtworkCollector.collectAll();
44
- res.send([true]);
45
- });
46
- server.get('/settings/maintenance/update/series', _auth.default.requiresAuth, function (req, res) {
47
- oblecto.seriesUpdateCollector.collectAllSeries();
48
- res.send([true]);
49
- });
50
- server.get('/settings/maintenance/update/episodes', _auth.default.requiresAuth, function (req, res) {
51
- oblecto.seriesUpdateCollector.collectAllEpisodes();
52
- res.send([true]);
53
- });
54
- server.get('/settings/maintenance/update/movies', _auth.default.requiresAuth, function (req, res) {
55
- oblecto.movieUpdateCollector.collectAllMovies();
56
- res.send([true]);
57
- });
58
- server.get('/settings/maintenance/update/files', _auth.default.requiresAuth, function (req, res) {
59
- oblecto.fileUpdateCollector.collectAllFiles();
60
- res.send([true]);
61
- });
62
- server.get('/settings/maintenance/clean/:type', _auth.default.requiresAuth, function (req, res) {
63
- switch (req.params.type) {
64
- case 'files':
65
- oblecto.fileCleaner.removeAssoclessFiles();
66
- oblecto.fileCleaner.removedDeletedFiled();
67
- break;
68
-
69
- case 'movies':
70
- oblecto.movieCleaner.removeFileLessMovies();
71
- break;
72
-
73
- case 'series':
74
- oblecto.seriesCleaner.removeEpisodeslessShows();
75
- oblecto.seriesCleaner.removePathLessShows();
76
- break;
77
-
78
- case 'episodes':
79
- oblecto.seriesCleaner.removeFileLessEpisodes();
80
- break;
81
- }
82
-
83
- res.send([true]);
84
- });
85
- };
86
-
87
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any, oblecto: any): void;
2
- export default _default;
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _auth = _interopRequireDefault(require("../../middleware/auth"));
9
-
10
- var _restifyErrors = _interopRequireDefault(require("restify-errors"));
11
-
12
- var _config = require("../../../../config");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- /**
17
- *
18
- * @param server
19
- * @param {Oblecto} oblecto
20
- */
21
- var _default = (server, oblecto) => {
22
- // API Endpoint to request a re-index of certain library types
23
- server.get('/settings/:setting', _auth.default.requiresAuth, function (req, res, next) {
24
- if (!oblecto.config[req.params.setting]) return next(new _restifyErrors.default.NotFoundError('Setting does not exist'));
25
- res.send(oblecto.config[req.params.setting]);
26
- });
27
- server.put('/settings/:setting', _auth.default.requiresAuth, function (req, res, next) {
28
- if (!oblecto.config[req.params.setting]) return next(new _restifyErrors.default.NotFoundError('Setting does not exist'));
29
- oblecto.config[req.params.setting] = req.body;
30
-
31
- _config.ConfigManager.saveConfig();
32
-
33
- res.send(oblecto.config[req.params.setting]);
34
- return next();
35
- });
36
- };
37
-
38
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any, oblecto: any): void;
2
- export default _default;
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _auth = _interopRequireDefault(require("../../middleware/auth"));
9
-
10
- var _restifyErrors = _interopRequireDefault(require("restify-errors"));
11
-
12
- var _config = require("../../../../config");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- var _default = (server, oblecto) => {
17
- // API Endpoint to request a re-index of certain library types
18
- server.get('/sources/:type', _auth.default.requiresAuth, function (req, res, next) {
19
- if (['movies', 'tvshows'].indexOf(req.params.type) === -1) {
20
- return next(new _restifyErrors.default.BadRequestError('Source type does not exist'));
21
- }
22
-
23
- res.send(oblecto.config[req.params.type].directories || {});
24
- });
25
- server.put('/sources/:type', _auth.default.requiresAuth, function (req, res, next) {
26
- if (['movies', 'tvshows'].indexOf(req.params.type) === -1) {
27
- return next(new _restifyErrors.default.BadRequestError('Source type does not exist'));
28
- }
29
-
30
- if (!req.params.path) {
31
- return next(new _restifyErrors.default.BadRequestError('No path specified'));
32
- }
33
-
34
- oblecto.config[req.params.type].directories.push({
35
- path: req.params.path
36
- });
37
- res.send('success');
38
-
39
- _config.ConfigManager.saveConfig();
40
- });
41
- server.del('/sources/:type', _auth.default.requiresAuth, function (req, res, next) {
42
- if (['movies', 'tvshows'].indexOf(req.params.type) === -1) {
43
- return next(new _restifyErrors.default.BadRequestError('Source type does not exist'));
44
- }
45
-
46
- if (!req.params.path) {
47
- return next(new _restifyErrors.default.BadRequestError('No path specified'));
48
- }
49
-
50
- oblecto.config[req.params.type].directories.forEach((v, i) => {
51
- if (v.path === req.params.path) {
52
- delete oblecto.config[req.params.type].directories.splice(i, 1);
53
- }
54
- });
55
- res.send('success');
56
-
57
- _config.ConfigManager.saveConfig();
58
- });
59
- };
60
-
61
- exports.default = _default;
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _restifyErrors = _interopRequireDefault(require("restify-errors"));
9
-
10
- var _auth = _interopRequireDefault(require("../middleware/auth"));
11
-
12
- var _file = require("../../../models/file");
13
-
14
- var _DirectHttpStreamSession = _interopRequireDefault(require("../../../lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession"));
15
-
16
- var _HLSStreamer = _interopRequireDefault(require("../../../lib/streamSessions/StreamSessionTypes/HLSStreamer"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- /**
21
- *
22
- * @param {Server} server
23
- * @param {Oblecto} oblecto
24
- */
25
- var _default = (server, oblecto) => {
26
- server.get('/HLS/:sessionId/segment/:id', async function (req, res, next) {
27
- if (!oblecto.streamSessionController.sessionExists(req.params.sessionId)) {
28
- return next(new _restifyErrors.default.InvalidCredentialsError('Stream session token does not exist'));
29
- }
30
-
31
- let streamSession = oblecto.streamSessionController.sessions[req.params.sessionId]; // TODO: Send approriate error if session is not a HLS stream session
32
-
33
- if (!(streamSession instanceof _HLSStreamer.default)) return next();
34
- let segmentId = parseInt(req.params.id);
35
- await streamSession.streamSegment(req, res, segmentId);
36
- });
37
- server.get('/session/create/:id', _auth.default.requiresAuth, async function (req, res, next) {
38
- let file;
39
-
40
- try {
41
- file = await _file.File.findByPk(req.params.id);
42
- } catch (ex) {
43
- return next(new _restifyErrors.default.NotFoundError('File does not exist'));
44
- }
45
-
46
- if (!file) return next(new _restifyErrors.default.NotFoundError('File does not exist'));
47
- let streamType = 'recode';
48
-
49
- if (['recode', 'directhttp', 'hls'].indexOf(req.params.type) > -1) {
50
- streamType = req.params.type;
51
- }
52
-
53
- if (req.params.noremux) streamType = 'directhttp';
54
- let streamSession = oblecto.streamSessionController.newSession(file, {
55
- streamType,
56
- target: {
57
- formats: (req.params.format || 'mp4').split(','),
58
- videoCodecs: (req.params.videoCodec || 'h264').split(','),
59
- audioCodecs: (req.params.audioCodec || 'aac').split(',')
60
- },
61
- offset: req.params.offset || 0
62
- });
63
- res.send({
64
- sessionId: streamSession.sessionId,
65
- seeking: streamSession instanceof _DirectHttpStreamSession.default ? 'client' : 'server'
66
- });
67
- });
68
- server.get('/session/stream/:sessionId', async function (req, res, next) {
69
- if (!oblecto.streamSessionController.sessionExists(req.params.sessionId)) {
70
- return next(new _restifyErrors.default.InvalidCredentialsError('Stream session token does not exist'));
71
- }
72
-
73
- return next();
74
- }, async function (req, res) {
75
- let streamSession = oblecto.streamSessionController.sessions[req.params.sessionId];
76
-
77
- if (req.params.offset) {
78
- streamSession.offset = req.params.offset;
79
- }
80
-
81
- await streamSession.addDestination({
82
- request: req,
83
- stream: res,
84
- type: 'http'
85
- });
86
- if (req.params.nostart) return;
87
- await streamSession.startStream();
88
- });
89
- };
90
-
91
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any, oblecto: any): void;
2
- export default _default;