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,95 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _fs = require("fs");
9
-
10
- var _episode = require("../../../models/episode");
11
-
12
- var _series = require("../../../models/series");
13
-
14
- class SeriesArtworkCollector {
15
- /**
16
- *
17
- * @param {Oblecto} oblecto
18
- */
19
- constructor(oblecto) {
20
- this.oblecto = oblecto;
21
- }
22
- /**
23
- *
24
- * @param {Episode} episode - Episode for which to download the episode banner for
25
- * @returns {Promise<void>}
26
- */
27
-
28
-
29
- async collectArtworkEpisodeBanner(episode) {
30
- let stat;
31
-
32
- try {
33
- stat = await _fs.promises.stat(this.oblecto.artworkUtils.episodeBannerPath(episode));
34
- } catch (e) {}
35
-
36
- if (stat) return;
37
- this.oblecto.queue.queueJob('downloadEpisodeBanner', episode);
38
- }
39
- /**
40
- *
41
- * @param {Series} series - Series for which to download the series poster for
42
- * @returns {Promise<void>}
43
- */
44
-
45
-
46
- async collectArtworkSeriesPoster(series) {
47
- let stat;
48
-
49
- try {
50
- stat = await _fs.promises.stat(this.oblecto.artworkUtils.seriesPosterPath(series));
51
- } catch (e) {}
52
-
53
- if (stat) return;
54
- this.oblecto.queue.queueJob('downloadSeriesPoster', series);
55
- }
56
- /**
57
- *
58
- * @returns {Promise<void>}
59
- */
60
-
61
-
62
- async collectAllEpisodeBanners() {
63
- let episodes = await _episode.Episode.findAll();
64
-
65
- for (let episode of episodes) {
66
- await this.collectArtworkEpisodeBanner(episode);
67
- }
68
- }
69
- /**
70
- *
71
- * @returns {Promise<void>}
72
- */
73
-
74
-
75
- async collectAllSeriesPosters() {
76
- let allSeries = await _series.Series.findAll();
77
-
78
- for (let series of allSeries) {
79
- await this.collectArtworkSeriesPoster(series);
80
- }
81
- }
82
- /**
83
- *
84
- * @returns {Promise<void>}
85
- */
86
-
87
-
88
- async collectAll() {
89
- await this.collectAllSeriesPosters();
90
- await this.collectAllEpisodeBanners();
91
- }
92
-
93
- }
94
-
95
- exports.default = SeriesArtworkCollector;
@@ -1,8 +0,0 @@
1
- export default class SeriesArtworkDownloader {
2
- constructor(oblecto: any);
3
- oblecto: any;
4
- seriesArtworkRetriever: AggregateSeriesArtworkRetriever;
5
- downloadEpisodeBanner(episode: any): Promise<void>;
6
- downloadSeriesPoster(series: any): Promise<void>;
7
- }
8
- import AggregateSeriesArtworkRetriever from "./AggregateSeriesArtworkRetriever";
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _AggregateSeriesArtworkRetriever = _interopRequireDefault(require("./AggregateSeriesArtworkRetriever"));
9
-
10
- var _TmdbSeriesArtworkRetriever = _interopRequireDefault(require("./artworkRetrievers/TmdbSeriesArtworkRetriever"));
11
-
12
- var _TvdbSeriesArtworkRetriever = _interopRequireDefault(require("./artworkRetrievers/TvdbSeriesArtworkRetriever"));
13
-
14
- var _FanarttvSeriesArtworkRetriever = _interopRequireDefault(require("./artworkRetrievers/FanarttvSeriesArtworkRetriever"));
15
-
16
- var _logger = _interopRequireDefault(require("../../../submodules/logger"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- class SeriesArtworkDownloader {
21
- constructor(oblecto) {
22
- this.oblecto = oblecto;
23
- this.seriesArtworkRetriever = new _AggregateSeriesArtworkRetriever.default(this.oblecto);
24
- this.seriesArtworkRetriever.loadRetriever(new _TmdbSeriesArtworkRetriever.default(this.oblecto));
25
- this.seriesArtworkRetriever.loadRetriever(new _FanarttvSeriesArtworkRetriever.default(this.oblecto));
26
- this.seriesArtworkRetriever.loadRetriever(new _TvdbSeriesArtworkRetriever.default(this.oblecto)); // Register task availability to Oblecto queue
27
-
28
- this.oblecto.queue.registerJob('downloadEpisodeBanner', this.downloadEpisodeBanner);
29
- this.oblecto.queue.registerJob('downloadSeriesPoster', this.downloadSeriesPoster);
30
- }
31
-
32
- async downloadEpisodeBanner(episode) {
33
- await this.seriesArtworkRetriever.retrieveEpisodeBanner(episode);
34
-
35
- _logger.default.log('DEBUG', `Banner for ${episode.episodeName} downloaded`);
36
-
37
- for (let size of Object.keys(this.oblecto.config.artwork.banner)) {
38
- this.oblecto.queue.pushJob('rescaleImage', {
39
- from: this.oblecto.artworkUtils.episodeBannerPath(episode),
40
- to: this.oblecto.artworkUtils.episodeBannerPath(episode, size),
41
- width: this.oblecto.config.artwork.banner[size]
42
- });
43
- }
44
- }
45
-
46
- async downloadSeriesPoster(series) {
47
- await this.seriesArtworkRetriever.retrieveSeriesPoster(series);
48
-
49
- _logger.default.log('DEBUG', `Poster for ${series.seriesName} downloaded`);
50
-
51
- for (let size of Object.keys(this.oblecto.config.artwork.poster)) {
52
- this.oblecto.queue.pushJob('rescaleImage', {
53
- from: this.oblecto.artworkUtils.seriesPosterPath(series),
54
- to: this.oblecto.artworkUtils.seriesPosterPath(series, size),
55
- width: this.oblecto.config.artwork.poster[size]
56
- });
57
- }
58
- }
59
-
60
- }
61
-
62
- exports.default = SeriesArtworkDownloader;
@@ -1,6 +0,0 @@
1
- export default class FanarttvSeriesArtworkRetriever {
2
- constructor(oblecto: any);
3
- oblecto: any;
4
- retrieveEpisodeBanner(episode: any): Promise<never[]>;
5
- retrieveSeriesPoster(series: any): Promise<any[]>;
6
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _DebugExtendableError = _interopRequireDefault(require("../../../errors/DebugExtendableError"));
9
-
10
- var _axiosTimeout = _interopRequireDefault(require("../../../../submodules/axiosTimeout"));
11
-
12
- var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- class FanarttvSeriesArtworkRetriever {
17
- constructor(oblecto) {
18
- this.oblecto = oblecto;
19
- }
20
-
21
- async retrieveEpisodeBanner(episode) {
22
- return [];
23
- }
24
-
25
- async retrieveSeriesPoster(series) {
26
- if (!series.tvdbid) throw new _DebugExtendableError.default(`Fanart.tv Series poster retriever failed for ${series.seriesName}`);
27
- let {
28
- data
29
- } = await (0, _axiosTimeout.default)({
30
- method: 'get',
31
- url: `http://webservice.fanart.tv/v3/tv/${series.tvdbid}?api_key=${this.oblecto.config['fanart.tv'].key}`
32
- });
33
- let urls = [];
34
-
35
- for (let poster of data.tvposter) {
36
- urls.push(poster.url);
37
- }
38
-
39
- return urls;
40
- }
41
-
42
- }
43
-
44
- exports.default = FanarttvSeriesArtworkRetriever;
@@ -1,16 +0,0 @@
1
- export default class TmdbSeriesArtworkRetriever {
2
- constructor(oblecto: any);
3
- oblecto: any;
4
- /**
5
- *
6
- * @param {Episode} episode
7
- * @returns {Promise<string>}
8
- */
9
- retrieveEpisodeBanner(episode: any): Promise<string>;
10
- /**
11
- *
12
- * @param {Series} series
13
- * @returns {Promise<string>}
14
- */
15
- retrieveSeriesPoster(series: any): Promise<string>;
16
- }
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _DebugExtendableError = _interopRequireDefault(require("../../../errors/DebugExtendableError"));
9
-
10
- var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class TmdbSeriesArtworkRetriever {
15
- constructor(oblecto) {
16
- this.oblecto = oblecto;
17
- }
18
- /**
19
- *
20
- * @param {Episode} episode
21
- * @returns {Promise<string>}
22
- */
23
-
24
-
25
- async retrieveEpisodeBanner(episode) {
26
- if (!episode.tmdbid) throw new _DebugExtendableError.default(`TMDB Episode banner retriever failed for ${episode.episodeName}`);
27
- let series = await episode.getSeries();
28
- let data = await (0, _promiseTimeout.default)(this.oblecto.tmdb.episodeImages({
29
- id: series.tmdbid,
30
- episode_number: episode.airedEpisodeNumber,
31
- season_number: episode.airedSeason
32
- }));
33
- let urls = [];
34
-
35
- for (let image of data.stills) {
36
- urls.push(`https://image.tmdb.org/t/p/original${image['file_path']}`);
37
- }
38
-
39
- return urls;
40
- }
41
- /**
42
- *
43
- * @param {Series} series
44
- * @returns {Promise<string>}
45
- */
46
-
47
-
48
- async retrieveSeriesPoster(series) {
49
- if (!series.tmdbid) throw new _DebugExtendableError.default(`TMDB Series poster retriever failed for ${series.seriesName}`);
50
- let data = await (0, _promiseTimeout.default)(this.oblecto.tmdb.tvImages({
51
- id: series.tmdbid
52
- }));
53
- let urls = [];
54
-
55
- for (let image of data.posters) {
56
- urls.push(`https://image.tmdb.org/t/p/original${image['file_path']}`);
57
- }
58
-
59
- return urls;
60
- }
61
-
62
- }
63
-
64
- exports.default = TmdbSeriesArtworkRetriever;
@@ -1,16 +0,0 @@
1
- export default class TvdbSeriesArtworkRetriever {
2
- constructor(oblecto: any);
3
- oblecto: any;
4
- /**
5
- *
6
- * @param {Episode} episode
7
- * @returns {Promise<string>}
8
- */
9
- retrieveEpisodeBanner(episode: any): Promise<string>;
10
- /**
11
- *
12
- * @param {Series} series
13
- * @returns {Promise<string>}
14
- */
15
- retrieveSeriesPoster(series: any): Promise<string>;
16
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _DebugExtendableError = _interopRequireDefault(require("../../../errors/DebugExtendableError"));
9
-
10
- var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class TvdbSeriesArtworkRetriever {
15
- constructor(oblecto) {
16
- this.oblecto = oblecto;
17
- }
18
- /**
19
- *
20
- * @param {Episode} episode
21
- * @returns {Promise<string>}
22
- */
23
-
24
-
25
- async retrieveEpisodeBanner(episode) {
26
- if (!episode.tvdbid) throw new _DebugExtendableError.default(`TVDB Episode banner retriever failed for ${episode.episodeName}`);
27
- let data = await (0, _promiseTimeout.default)(this.oblecto.tvdb.getEpisodeById(episode.tvdbid));
28
- return [`https://thetvdb.com/banners/_cache/${data.filename}`];
29
- }
30
- /**
31
- *
32
- * @param {Series} series
33
- * @returns {Promise<string>}
34
- */
35
-
36
-
37
- async retrieveSeriesPoster(series) {
38
- if (!series.tvdbid) throw new _DebugExtendableError.default(`TVDB Series poster retriever failed for ${series.seriesName}`);
39
- let data = await (0, _promiseTimeout.default)(this.oblecto.tvdb.getSeriesPosters(series.tvdbid));
40
- let urls = [];
41
-
42
- for (let image of data) {
43
- urls.push(`http://thetvdb.com/banners/${image.fileName}`);
44
- }
45
-
46
- return urls;
47
- }
48
-
49
- }
50
-
51
- exports.default = TvdbSeriesArtworkRetriever;
@@ -1,6 +0,0 @@
1
- export default class FileCleaner {
2
- constructor(oblecto: any);
3
- oblecto: any;
4
- removedDeletedFiled(): Promise<void>;
5
- removeAssoclessFiles(): Promise<void>;
6
- }
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _fs = require("fs");
9
-
10
- var _file = require("../../models/file");
11
-
12
- var _movie = require("../../models/movie");
13
-
14
- var _episode = require("../../models/episode");
15
-
16
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- class FileCleaner {
21
- constructor(oblecto) {
22
- this.oblecto = oblecto;
23
- }
24
- /**
25
- * Remove all files which no longer exist on the filesystem from the database
26
- *
27
- * @returns {Promise<void>}
28
- */
29
-
30
-
31
- async removedDeletedFiled() {
32
- _logger.default.log('INFO', 'Removing all non existent files from the database');
33
-
34
- let files = await _file.File.findAll();
35
-
36
- for (let file of files) {
37
- try {
38
- await _fs.promises.stat(file.path);
39
- } catch (e) {
40
- _logger.default.log('INFO', file.path, 'not found. Removing from database');
41
-
42
- await file.destroy();
43
- }
44
- }
45
- }
46
- /**
47
- * Remove all files from the database which no longer have any attached media items
48
- *
49
- * @returns {Promise<void>}
50
- */
51
-
52
-
53
- async removeAssoclessFiles() {
54
- _logger.default.log('INFO', 'Removing files from the database without any attached media items');
55
-
56
- let results = await _file.File.findAll({
57
- include: [_movie.Movie, _episode.Episode]
58
- });
59
- results.forEach(item => {
60
- if (item.Movies.length === 0 && item.Episodes.length === 0) {
61
- item.destroy();
62
- }
63
- });
64
- }
65
-
66
- }
67
-
68
- exports.default = FileCleaner;
@@ -1,8 +0,0 @@
1
- export default class MovieCleaner {
2
- /**
3
- * @param {Oblecto} oblecto
4
- */
5
- constructor(oblecto: any);
6
- oblecto: any;
7
- removeFileLessMovies(): Promise<void>;
8
- }
@@ -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 _movie = require("../../models/movie");
9
-
10
- var _file = require("../../models/file");
11
-
12
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- class MovieCleaner {
17
- /**
18
- * @param {Oblecto} oblecto
19
- */
20
- constructor(oblecto) {
21
- this.oblecto = oblecto;
22
- }
23
- /**
24
- * Remove all movies from the database without any linked files
25
- *
26
- * @returns {Promise<void>}
27
- */
28
-
29
-
30
- async removeFileLessMovies() {
31
- _logger.default.log('INFO', 'Removing movies without linked files');
32
-
33
- let results = await _movie.Movie.findAll({
34
- include: [_file.File]
35
- });
36
-
37
- for (let item of results) {
38
- if (item.Files && item.Files.length > 0) continue;
39
-
40
- _logger.default.log('INFO', 'Removing', item.movieName, 'as it has no linked files');
41
-
42
- await item.destroy();
43
- }
44
- }
45
-
46
- }
47
-
48
- exports.default = MovieCleaner;
@@ -1,10 +0,0 @@
1
- export default class SeriesCleaner {
2
- /**
3
- * @param {Oblecto} oblecto
4
- */
5
- constructor(oblecto: any);
6
- oblecto: any;
7
- removeFileLessEpisodes(): Promise<void>;
8
- removePathLessShows(): Promise<void>;
9
- removeEpisodeslessShows(): Promise<void>;
10
- }
@@ -1,88 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _episode = require("../../models/episode");
9
-
10
- var _file = require("../../models/file");
11
-
12
- var _series = require("../../models/series");
13
-
14
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- class SeriesCleaner {
19
- /**
20
- * @param {Oblecto} oblecto
21
- */
22
- constructor(oblecto) {
23
- this.oblecto = oblecto;
24
- }
25
- /**
26
- * Remove all episodes from the database without any linked files
27
- *
28
- * @returns {Promise<void>}
29
- */
30
-
31
-
32
- async removeFileLessEpisodes() {
33
- _logger.default.log('INFO', 'Removing all episodes without linked files');
34
-
35
- let results = await _episode.Episode.findAll({
36
- include: [_file.File]
37
- });
38
-
39
- for (let item of results) {
40
- if (item.Files && item.Files.length > 0) continue;
41
-
42
- _logger.default.log('INFO', 'Removing', item.episodeName, 'as it has no linked files');
43
-
44
- await item.destroy();
45
- }
46
- }
47
- /**
48
- * Remove all shows from the database without any defined path
49
- *
50
- * @returns {Promise<void>}
51
- */
52
-
53
-
54
- async removePathLessShows() {
55
- _logger.default.log('INFO', 'Removing series without at attached path');
56
-
57
- await _series.Series.destroy({
58
- where: {
59
- directory: ''
60
- }
61
- });
62
- }
63
- /**
64
- * Remove all shows from the database without any linked episodes
65
- *
66
- * @returns {Promise<void>}
67
- */
68
-
69
-
70
- async removeEpisodeslessShows() {
71
- _logger.default.log('INFO', 'Removing series without attached episodes');
72
-
73
- let results = await _series.Series.findAll({
74
- include: [_episode.Episode]
75
- });
76
-
77
- for (let item of results) {
78
- if (item.Episodes && item.Episodes.length > 0) continue;
79
-
80
- _logger.default.log('INFO', 'Removing', item.seriesName, 'as it has no linked episodes');
81
-
82
- await item.destroy();
83
- }
84
- }
85
-
86
- }
87
-
88
- exports.default = SeriesCleaner;
@@ -1,9 +0,0 @@
1
- export default class AggregateIdentifier {
2
- identifiers: any[];
3
- /**
4
- *
5
- * @param {MediaIdentifier} identifier
6
- */
7
- loadIdentifier(identifier: any): void;
8
- identify(...args: any[]): Promise<{}>;
9
- }
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _IdentificationError = _interopRequireDefault(require("../errors/IdentificationError"));
9
-
10
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class AggregateIdentifier {
15
- /**
16
- * Wrapper class to combine multiple identifiers and return information as a combined json output
17
- */
18
- constructor() {
19
- this.identifiers = [];
20
- }
21
- /**
22
- *
23
- * @param {MediaIdentifier} identifier
24
- */
25
-
26
-
27
- loadIdentifier(identifier) {
28
- this.identifiers.push(identifier);
29
- }
30
-
31
- async identify(...args) {
32
- let identification = {};
33
-
34
- for (let identifier of this.identifiers) {
35
- let currentIdentification;
36
-
37
- try {
38
- currentIdentification = await identifier.identify(...args);
39
- } catch (e) {
40
- _logger.default.log(e);
41
-
42
- continue;
43
- }
44
-
45
- identification = { ...identification,
46
- ...currentIdentification
47
- };
48
- }
49
-
50
- if (Object.keys(identification).length === 0) throw new _IdentificationError.default(`Could not identify: ${args[0]}`);
51
- return identification;
52
- }
53
-
54
- }
55
-
56
- exports.default = AggregateIdentifier;
57
- ;
@@ -1,5 +0,0 @@
1
- export default class AggregateUpdateRetriever {
2
- retrievers: any[];
3
- loadRetriever(retriever: any): void;
4
- retrieveInformation(...args: any[]): Promise<{}>;
5
- }