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,137 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _fs = _interopRequireDefault(require("fs"));
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 _restifyErrors = _interopRequireDefault(require("restify-errors"));
19
-
20
- var _series = require("../../../models/series");
21
-
22
- var _episode = require("../../../models/episode");
23
-
24
- var _trackEpisode = require("../../../models/trackEpisode");
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('/series/list/:sorting', _auth.default.requiresAuth, async function (req, res, next) {
32
- const limit = parseInt(req.query.count) || 20;
33
- const page = parseInt(req.query.page) || 0;
34
- if (!Number.isInteger(limit) || !Number.isInteger(page)) return next(new _restifyErrors.default.BadRequestError('Limit or Page must be a number'));
35
- let AllowedOrders = ['desc', 'asc'];
36
- if (AllowedOrders.indexOf(req.query.order.toLowerCase()) === -1) return next(new _restifyErrors.default.BadRequestError('Sorting order is invalid'));
37
- if (!(req.params.sorting in _series.Series.rawAttributes)) return next(new _restifyErrors.default.BadRequestError('Sorting method is invalid'));
38
- let results = await _series.Series.findAll({
39
- order: [[req.params.sorting, req.query.order]],
40
- limit,
41
- offset: limit * page
42
- });
43
- res.send(results);
44
- });
45
- server.get('/series/:id/info', _auth.default.requiresAuth, async function (req, res) {
46
- let show = await _series.Series.findByPk(req.params.id);
47
- if (show.genre) show.genre = JSON.parse(show.genre);
48
- res.send(show);
49
- }); // Endpoint to get all episodes within a series
50
-
51
- server.get('/series/:id/episodes', _auth.default.requiresAuth, async function (req, res) {
52
- let show = await _episode.Episode.findAll({
53
- include: [_series.Series, {
54
- model: _trackEpisode.TrackEpisode,
55
- required: false,
56
- where: {
57
- userId: req.authorization.user.id
58
- }
59
- }],
60
- where: {
61
- SeriesId: req.params.id
62
- },
63
- order: [['airedSeason', 'ASC'], ['airedEpisodeNumber', 'ASC']]
64
- });
65
- res.send(show);
66
- });
67
- server.get('/series/:id/poster', async function (req, res, next) {
68
- let show;
69
-
70
- try {
71
- show = await _series.Series.findByPk(req.params.id);
72
- } catch (e) {
73
- return next(new _restifyErrors.default.NotFoundError('Series does not exist'));
74
- }
75
-
76
- let imagePath = oblecto.artworkUtils.seriesPosterPath(show, req.params.size || 'medium');
77
-
78
- _fs.default.createReadStream(imagePath).on('error', () => {
79
- return next(new _restifyErrors.default.NotFoundError('No poster found'));
80
- }).pipe(res);
81
- });
82
- server.put('/series/:id/poster', _auth.default.requiresAuth, async function (req, res, next) {
83
- let show = await _series.Series.findByPk(req.params.id);
84
-
85
- if (!show) {
86
- return next(new _restifyErrors.default.NotFoundError('Movie does not exist'));
87
- }
88
-
89
- let posterPath = _path.default.normalize(oblecto.config.assets.showPosterLocation) + '/' + show.id + '.jpg';
90
-
91
- if (oblecto.config.assets.storeWithFile) {
92
- let showPath = show.directory;
93
- posterPath = _path.default.join(showPath, show.seriesName + '-poster.jpg');
94
- }
95
-
96
- if (req.files.length < 1) {
97
- return next(new _restifyErrors.default.MissingParameterError('Image file is missing'));
98
- }
99
-
100
- let uploadPath = req.files[Object.keys(req.files)[0]].path;
101
-
102
- try {
103
- let image = await (0, _sharp.default)(uploadPath);
104
- let metadata = await image.metadata();
105
- let ratio = metadata.height / metadata.width;
106
-
107
- if (!(1 <= ratio <= 2)) {
108
- return next(new _restifyErrors.default.InvalidContentError('Image aspect ratio is incorrect'));
109
- }
110
- } catch (e) {
111
- return next(new _restifyErrors.default.InvalidContentError('File is not an image'));
112
- }
113
-
114
- try {
115
- _fs.default.copyFile(uploadPath, posterPath, err => {
116
- if (err) throw err;
117
- res.send(['success']);
118
- });
119
- } catch (e) {
120
- return next(new _restifyErrors.default.InternalError('An error has occurred during upload of poster'));
121
- }
122
-
123
- next();
124
- });
125
- server.get('/shows/search/:name', _auth.default.requiresAuth, async function (req, res) {
126
- let series = await _series.Series.findAll({
127
- where: {
128
- seriesName: {
129
- [Op.like]: '%' + req.params.name + '%'
130
- }
131
- }
132
- });
133
- res.send(series);
134
- });
135
- };
136
-
137
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any, oblecto: any): void;
2
- export default _default;
@@ -1,107 +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 _bcrypt = _interopRequireDefault(require("bcrypt"));
11
-
12
- var _config = _interopRequireDefault(require("../../../config"));
13
-
14
- var _auth = _interopRequireDefault(require("../middleware/auth"));
15
-
16
- var _user = require("../../../models/user");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- var _default = (server, oblecto) => {
21
- server.get('/users', async function (req, res, next) {
22
- let users = await _user.User.findAll({
23
- attributes: ['username', 'name', 'email', 'id']
24
- });
25
- res.send(users);
26
- next();
27
- });
28
- server.get('/user/:id', _auth.default.requiresAuth, async function (req, res, next) {
29
- let user = await _user.User.findOne({
30
- where: {
31
- id: req.params.id
32
- },
33
- attributes: ['username', 'name', 'email', 'id']
34
- });
35
- res.send(user);
36
- next();
37
- });
38
- server.del('/user/:id', _auth.default.requiresAuth, async function (req, res, next) {
39
- let user = await _user.User.findOne({
40
- where: {
41
- id: req.params.id
42
- },
43
- attributes: ['username', 'name', 'email', 'id']
44
- }); // Send the user information of the user to the client first
45
-
46
- res.send(user); // Now delete the user
47
-
48
- user.destroy();
49
- next();
50
- }); // Endpoint to update the entries of a certain user
51
-
52
- server.put('/user/:id', _auth.default.requiresAuth, async function (req, res, next) {
53
- let user = await _user.User.findByPk(req.params.id);
54
-
55
- if (!user) {
56
- return next(new _restifyErrors.default.BadRequestError('User with id does not exist'));
57
- }
58
-
59
- if (req.params.username) {
60
- user.update({
61
- username: req.params.username
62
- });
63
- }
64
-
65
- if (req.params.password) {
66
- user.update({
67
- password: await _bcrypt.default.hash(req.params.password, _config.default.authentication.saltRounds)
68
- });
69
- }
70
-
71
- if (req.params.email) {
72
- user.update({
73
- email: req.params.email
74
- });
75
- }
76
-
77
- if (req.params.name) {
78
- user.update({
79
- name: req.params.name
80
- });
81
- }
82
-
83
- next();
84
- });
85
- server.post('/user', _auth.default.requiresAuth, async function (req, res, next) {
86
- // Make sure the required input fields are present, and if not send a bad request error with the associated information to the error
87
- if (!req.params.username) return next(new _restifyErrors.default.BadRequestError('Username is missing'));
88
- if (!req.params.email) return next(new _restifyErrors.default.BadRequestError('E-Mail is missing'));
89
- if (!req.params.name) return next(new _restifyErrors.default.BadRequestError('Name is missing'));
90
- let passwordHash;
91
- if (req.params.password) passwordHash = await _bcrypt.default.hash(req.params.password, oblecto.config.authentication.saltRounds);
92
- let [user] = await _user.User.findOrCreate({
93
- where: {
94
- username: req.params.username
95
- },
96
- defaults: {
97
- name: req.params.name,
98
- email: req.params.email,
99
- password: passwordHash
100
- }
101
- });
102
- res.send(user);
103
- next();
104
- });
105
- };
106
-
107
- exports.default = _default;
@@ -1,2 +0,0 @@
1
- declare function _default(server: any, oblecto: any): void;
2
- export default _default;
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _restify = _interopRequireDefault(require("restify"));
9
-
10
- var _fs = _interopRequireDefault(require("fs"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- var _default = (server, oblecto) => {
15
- server.get('/web/static/*', _restify.default.plugins.serveStatic({
16
- directory: __dirname + '/../../../../Oblecto-Web/dist/'
17
- }));
18
- server.get('/web/logo.png', async (req, res, next) => {
19
- _fs.default.readFile(__dirname + '/../../../../images/logomark.png', function (err, body) {
20
- res.writeHead(200, {
21
- 'Content-Length': Buffer.byteLength(body),
22
- 'Content-Type': 'image/png'
23
- });
24
- res.write(body);
25
- res.end();
26
- });
27
- });
28
- server.get('/web*', async (req, res, next) => {
29
- _fs.default.readFile(__dirname + '/../../../../Oblecto-Web/dist/web/index.html', 'utf8', function (err, body) {
30
- res.writeHead(200, {
31
- 'Content-Length': Buffer.byteLength(body),
32
- 'Content-Type': 'text/html'
33
- });
34
- res.write(body);
35
- res.end();
36
- });
37
- });
38
- server.get('/', async (req, res, next) => {
39
- res.redirect('/web', next);
40
- });
41
- };
42
-
43
- exports.default = _default;
@@ -1 +0,0 @@
1
- export default function _default(...args: any[]): Promise<any>;
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _WarnExtendableError = _interopRequireDefault(require("../lib/errors/WarnExtendableError"));
9
-
10
- var _axios = _interopRequireDefault(require("axios"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- function _default(...args) {
15
- return new Promise(function (resolve, reject) {
16
- let timedout = false;
17
- let timeout = setTimeout(() => {
18
- timedout = true;
19
- reject(new _WarnExtendableError.default(`Axios timeout failed and promise timeout expired for ${args[0].url}`));
20
- }, 20000);
21
- args[0].timeout = 10000;
22
- (0, _axios.default)(...args).then(response => {
23
- if (timedout) return;
24
- clearTimeout(timeout);
25
- resolve(response);
26
- }).catch(err => {
27
- clearTimeout(timeout);
28
- reject(err);
29
- });
30
- });
31
- }
@@ -1 +0,0 @@
1
- export function initDatabase(): any;
@@ -1,180 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.initDatabase = initDatabase;
7
-
8
- var _sequelize = _interopRequireDefault(require("sequelize"));
9
-
10
- var _config = _interopRequireDefault(require("../config.js"));
11
-
12
- var _logger = _interopRequireDefault(require("./logger"));
13
-
14
- var _episode = require("../models/episode");
15
-
16
- var _episodeFiles = require("../models/episodeFiles");
17
-
18
- var _file = require("../models/file");
19
-
20
- var _movie = require("../models/movie");
21
-
22
- var _series = require("../models/series");
23
-
24
- var _movieFiles = require("../models/movieFiles");
25
-
26
- var _movieSet = require("../models/movieSet");
27
-
28
- var _seriesSet = require("../models/seriesSet");
29
-
30
- var _trackMovie = require("../models/trackMovie");
31
-
32
- var _trackEpisode = require("../models/trackEpisode");
33
-
34
- var _user = require("../models/user");
35
-
36
- var _stream = require("../models/stream");
37
-
38
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
-
40
- function initDatabase() {
41
- let dialect = _config.default.database.dialect || 'sqlite';
42
- let poolmax = _config.default.queue.concurrency;
43
-
44
- if (dialect === 'sqlite') {
45
- _logger.default.log('INFO', 'Using SQLITE, setting poolmax to 1');
46
-
47
- poolmax = 1;
48
- }
49
-
50
- let options = {
51
- dialect,
52
- logging: false,
53
- //operatorsAliases: false,
54
- pool: {
55
- max: poolmax,
56
- min: 0,
57
- acquire: 30000,
58
- idle: 10000
59
- },
60
- retry: {
61
- max: 5
62
- }
63
- };
64
-
65
- if (options.dialect !== 'sqlite') {
66
- options.host = _config.default.database.host || 'localhost';
67
- }
68
-
69
- if (options.dialect === 'sqlite') {
70
- options.storage = _config.default.database.storage || '/etc/oblecto/database.sqlite';
71
- }
72
-
73
- const sequelize = new _sequelize.default(_config.default.database.database, _config.default.database.username, _config.default.database.password, options);
74
-
75
- _episode.Episode.init(_episode.episodeColumns, {
76
- sequelize
77
- });
78
-
79
- _movie.Movie.init(_movie.movieColumns, {
80
- sequelize
81
- });
82
-
83
- _series.Series.init(_series.seriesColumns, {
84
- sequelize
85
- });
86
-
87
- _file.File.init(_file.fileColumns, {
88
- sequelize
89
- });
90
-
91
- _stream.Stream.init(_stream.streamColumns, {
92
- sequelize
93
- });
94
-
95
- _episodeFiles.EpisodeFiles.init(_episodeFiles.episodeFilesColumns, {
96
- sequelize
97
- });
98
-
99
- _movieFiles.MovieFiles.init(_movieFiles.movieFileColumns, {
100
- sequelize
101
- });
102
-
103
- _movieSet.MovieSet.init(_movieSet.movieSetColumns, {
104
- sequelize
105
- });
106
-
107
- _seriesSet.SeriesSet.init(_seriesSet.seriesSetColumns, {
108
- sequelize
109
- });
110
-
111
- _trackMovie.TrackMovie.init(_trackMovie.trackMovieColumns, {
112
- sequelize
113
- });
114
-
115
- _trackEpisode.TrackEpisode.init(_trackEpisode.trackEpisodesColumns, {
116
- sequelize
117
- });
118
-
119
- _user.User.init(_user.userColumns, {
120
- sequelize
121
- });
122
-
123
- _episode.Episode.belongsTo(_series.Series);
124
-
125
- _series.Series.hasMany(_episode.Episode);
126
-
127
- _movieSet.MovieSet.belongsToMany(_movie.Movie, {
128
- through: 'MovieSetAllocations'
129
- });
130
-
131
- _movieSet.MovieSet.belongsToMany(_user.User, {
132
- through: 'MovieSetUsers'
133
- });
134
-
135
- _movie.Movie.belongsToMany(_movieSet.MovieSet, {
136
- through: 'MovieSetAllocations'
137
- });
138
-
139
- _seriesSet.SeriesSet.belongsToMany(_series.Series, {
140
- through: 'SeriesSetAllocations'
141
- });
142
-
143
- _series.Series.belongsToMany(_seriesSet.SeriesSet, {
144
- through: 'SeriesSetAllocations'
145
- });
146
-
147
- _episode.Episode.belongsToMany(_file.File, {
148
- through: _episodeFiles.EpisodeFiles
149
- });
150
-
151
- _movie.Movie.belongsToMany(_file.File, {
152
- through: _movieFiles.MovieFiles
153
- });
154
-
155
- _file.File.belongsToMany(_episode.Episode, {
156
- through: _episodeFiles.EpisodeFiles
157
- });
158
-
159
- _file.File.belongsToMany(_movie.Movie, {
160
- through: _movieFiles.MovieFiles
161
- });
162
-
163
- _stream.Stream.belongsTo(_file.File);
164
-
165
- _file.File.hasMany(_stream.Stream);
166
-
167
- _trackEpisode.TrackEpisode.belongsTo(_user.User);
168
-
169
- _trackEpisode.TrackEpisode.belongsTo(_episode.Episode);
170
-
171
- _trackMovie.TrackMovie.belongsTo(_user.User);
172
-
173
- _trackMovie.TrackMovie.belongsTo(_movie.Movie);
174
-
175
- _episode.Episode.hasMany(_trackEpisode.TrackEpisode);
176
-
177
- _movie.Movie.hasMany(_trackMovie.TrackMovie);
178
-
179
- return sequelize;
180
- }
@@ -1 +0,0 @@
1
- export default ffmpeg;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _fluentFfmpeg = _interopRequireDefault(require("fluent-ffmpeg"));
9
-
10
- var _config = _interopRequireDefault(require("../config"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- if (_config.default.ffmpeg.pathFFprobe) {
15
- _fluentFfmpeg.default.setFfprobePath(_config.default.ffmpeg.pathFFprobe);
16
- }
17
-
18
- if (_config.default.ffmpeg.pathFFmpeg) {
19
- _fluentFfmpeg.default.setFfmpegPath(_config.default.ffmpeg.pathFFmpeg);
20
- }
21
-
22
- var _default = _fluentFfmpeg.default;
23
- exports.default = _default;
@@ -1 +0,0 @@
1
- export default function ffprobe(path: any): Promise<any>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = ffprobe;
7
-
8
- var _ffmpeg = _interopRequireDefault(require("./ffmpeg"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- function ffprobe(path) {
13
- return new Promise(function (resolve, reject) {
14
- _ffmpeg.default.ffprobe(path, function (err, metadata) {
15
- if (err) {
16
- return reject(err);
17
- }
18
-
19
- return resolve(metadata);
20
- });
21
- });
22
- }
@@ -1,5 +0,0 @@
1
- declare namespace _default {
2
- function identify(search: any): Promise<any>;
3
- function identify(search: any): Promise<any>;
4
- }
5
- export default _default;
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _guessitWrapper = _interopRequireDefault(require("guessit-wrapper"));
9
-
10
- var _guessitExec = _interopRequireDefault(require("guessit-exec"));
11
-
12
- var _which = _interopRequireDefault(require("which"));
13
-
14
- var _logger = _interopRequireDefault(require("./logger"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- let use_binary = false;
19
- (0, _which.default)('guessit', function (err, resolvedPath) {
20
- if (err) {
21
- _logger.default.log('INFO', 'Guessit binary has not been found');
22
-
23
- _logger.default.log('INFO', 'Using the web based identifier');
24
-
25
- _logger.default.log('INFO', 'This may significantly reduce indexing speeds');
26
-
27
- _logger.default.log('INFO', 'Please install guessit from your package manager');
28
-
29
- return;
30
- }
31
-
32
- _logger.default.log('INFO', 'Guessit binary has been found');
33
-
34
- _logger.default.log('INFO', 'Using local guessit binary');
35
-
36
- use_binary = true;
37
- });
38
- var _default = {
39
- async identify(search) {
40
- if (use_binary) {
41
- return (0, _guessitExec.default)(search);
42
- }
43
-
44
- return _guessitWrapper.default.parseName(search);
45
- }
46
-
47
- };
48
- exports.default = _default;
@@ -1,7 +0,0 @@
1
- declare var _default: Logger;
2
- export default _default;
3
- declare class Logger extends EventEmitter {
4
- silent: boolean;
5
- log(level: any, ...messages: any[]): void;
6
- }
7
- import { EventEmitter } from "node/ts3.1/events";
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _events = require("events");
9
-
10
- class Logger extends _events.EventEmitter {
11
- constructor() {
12
- super();
13
- this.silent = false;
14
- this.on('log', log => {
15
- if (this.silent) return; //if (log.level === 'DEBUG') return;
16
-
17
- if (log instanceof Error) {
18
- console.log(log.level, log);
19
- return;
20
- }
21
-
22
- console.log(log.level, ...log.messages);
23
- });
24
- }
25
-
26
- log(level, ...messages) {
27
- // If an error was passed right into the log function
28
- if (level instanceof Error) {
29
- this.emit('log', level);
30
- return;
31
- }
32
-
33
- this.emit('log', {
34
- level,
35
- messages
36
- });
37
- }
38
-
39
- }
40
-
41
- var _default = new Logger();
42
-
43
- exports.default = _default;
@@ -1 +0,0 @@
1
- export default function _default(promise: any, time: any): Promise<any>;