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,140 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _sequelize = require("sequelize");
9
-
10
- var _AggregateIdentifier = _interopRequireDefault(require("../../common/AggregateIdentifier"));
11
-
12
- var _TmdbSeriesIdentifier = _interopRequireDefault(require("./identifiers/TmdbSeriesIdentifier"));
13
-
14
- var _TmdbEpisodeIdentifier = _interopRequireDefault(require("./identifiers/TmdbEpisodeIdentifier"));
15
-
16
- var _TvdbSeriesIdentifier = _interopRequireDefault(require("./identifiers/TvdbSeriesIdentifier"));
17
-
18
- var _TvdbEpisodeIdentifier = _interopRequireDefault(require("./identifiers/TvdbEpisodeIdentifier"));
19
-
20
- var _series = require("../../../models/series");
21
-
22
- var _episode = require("../../../models/episode");
23
-
24
- var _IdentificationError = _interopRequireDefault(require("../../errors/IdentificationError"));
25
-
26
- var _logger = _interopRequireDefault(require("../../../submodules/logger"));
27
-
28
- var _guessit = _interopRequireDefault(require("../../../submodules/guessit"));
29
-
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
- class SeriesIndexer {
33
- /**
34
- *
35
- * @param {Oblecto} oblecto
36
- */
37
- constructor(oblecto) {
38
- this.oblecto = oblecto;
39
- this.seriesIdentifier = new _AggregateIdentifier.default();
40
- this.episodeIdentifer = new _AggregateIdentifier.default();
41
- const seriesIdentifiers = {
42
- 'tmdb': _TmdbSeriesIdentifier.default,
43
- 'tvdb': _TvdbSeriesIdentifier.default
44
- };
45
- const episodeIdentifiers = {
46
- 'tmdb': _TmdbEpisodeIdentifier.default,
47
- 'tvdb': _TvdbEpisodeIdentifier.default
48
- };
49
-
50
- for (let identifier of this.oblecto.config.tvshows.seriesIdentifiers) {
51
- _logger.default.log('DEBUG', `Loading ${identifier} series identifier`);
52
-
53
- this.seriesIdentifier.loadIdentifier(new seriesIdentifiers[identifier](this.oblecto));
54
- }
55
-
56
- for (let identifier of this.oblecto.config.tvshows.episodeIdentifiers) {
57
- _logger.default.log('DEBUG', `Loading ${identifier} episode identifier`);
58
-
59
- this.episodeIdentifer.loadIdentifier(new episodeIdentifiers[identifier](this.oblecto));
60
- } // Register task availability to Oblecto queue
61
-
62
-
63
- this.oblecto.queue.registerJob('indexEpisode', async job => await this.indexFile(job.path));
64
- }
65
-
66
- async indexSeries(file, guessitIdentification) {
67
- let seriesIdentification;
68
-
69
- try {
70
- seriesIdentification = await this.seriesIdentifier.identify(file.path, guessitIdentification);
71
- } catch (e) {
72
- throw new _IdentificationError.default(`Could not identify series of ${file.path}`);
73
- }
74
-
75
- _logger.default.log('DEBUG', `${file.path} series identified: ${seriesIdentification.seriesName}`);
76
-
77
- const identifiers = ['tvdbid', 'tmdbid'];
78
- let seriesQuery = [];
79
-
80
- for (let identifier of identifiers) {
81
- if (!seriesIdentification[identifier]) continue;
82
- seriesQuery.push({
83
- [identifier]: seriesIdentification[identifier]
84
- });
85
- }
86
-
87
- let [series, seriesCreated] = await _series.Series.findOrCreate({
88
- where: {
89
- [_sequelize.Op.or]: seriesQuery
90
- },
91
- defaults: seriesIdentification
92
- });
93
-
94
- if (seriesCreated) {
95
- this.oblecto.queue.pushJob('updateSeries', series);
96
- this.oblecto.queue.queueJob('downloadSeriesPoster', series);
97
- }
98
-
99
- return series;
100
- }
101
-
102
- async indexFile(episodePath) {
103
- let file = await this.oblecto.fileIndexer.indexVideoFile(episodePath);
104
- const guessitIdentification = await _guessit.default.identify(episodePath); // Some single season shows usually don't have a season in the title,
105
- // therefore whe should set it to 1 by default.
106
-
107
- if (!guessitIdentification.season) {
108
- guessitIdentification.season = 1;
109
- }
110
-
111
- let series = await this.indexSeries(file, guessitIdentification);
112
- let episodeIdentification;
113
-
114
- try {
115
- episodeIdentification = await this.episodeIdentifer.identify(episodePath, guessitIdentification, series);
116
- } catch (e) {
117
- throw new _IdentificationError.default(`Could not identify episode ${episodePath}`);
118
- }
119
-
120
- _logger.default.log('DEBUG', `${file.path} episode identified ${episodeIdentification.episodeName}`);
121
-
122
- let [episode, episodeCreated] = await _episode.Episode.findOrCreate({
123
- where: {
124
- airedSeason: episodeIdentification.airedSeason || 1,
125
- airedEpisodeNumber: episodeIdentification.airedEpisodeNumber,
126
- SeriesId: series.id
127
- },
128
- defaults: episodeIdentification
129
- });
130
- await episode.addFile(file);
131
-
132
- if (episodeCreated) {
133
- this.oblecto.queue.pushJob('updateEpisode', episode);
134
- this.oblecto.queue.queueJob('downloadEpisodeBanner', episode);
135
- }
136
- }
137
-
138
- }
139
-
140
- exports.default = SeriesIndexer;
@@ -1,4 +0,0 @@
1
- export default class TmdbEpisodeIdentifier extends EpisodeIdentifier {
2
- constructor(oblecto: import("../../../oblecto").default);
3
- }
4
- import EpisodeIdentifier from "../EpisodeIdentifier";
@@ -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 _guessit = _interopRequireDefault(require("../../../../submodules/guessit"));
9
-
10
- var _IdentificationError = _interopRequireDefault(require("../../../errors/IdentificationError"));
11
-
12
- var _EpisodeIdentifier = _interopRequireDefault(require("../EpisodeIdentifier"));
13
-
14
- var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- class TmdbEpisodeIdentifier extends _EpisodeIdentifier.default {
19
- /**
20
- * Identify an episode using TMDB
21
- *
22
- * @param { String } path - Path to the episode to be identified
23
- * @param guessitIdentification
24
- * @param { Series } series - Series to which the episode should belong
25
- * @returns {Promise<{overview: *, tmdbid: *, episodeName: *, firstAired: *, airedSeason: *, airedEpisodeNumber: *}>}
26
- */
27
- async identify(path, guessitIdentification, series) {
28
- if (!series.tmdbid) throw new _IdentificationError.default();
29
- let episode = await (0, _promiseTimeout.default)(this.oblecto.tmdb.episodeInfo({
30
- id: series.tmdbid,
31
- season_number: guessitIdentification.season || 1,
32
- episode_number: guessitIdentification.episode
33
- }, {
34
- timeout: 5000
35
- }));
36
- return {
37
- tmdbid: episode.id,
38
- episodeName: episode.name,
39
- airedEpisodeNumber: episode.episode_number,
40
- airedSeason: episode.season_number,
41
- overview: episode.overview,
42
- firstAired: episode.air_date
43
- };
44
- }
45
-
46
- }
47
-
48
- exports.default = TmdbEpisodeIdentifier;
@@ -1,6 +0,0 @@
1
- export default class TmdbSeriesIdentifier extends SeriesIdentifer {
2
- constructor(oblecto: any);
3
- tvShowCache: {};
4
- retrieveSeries(tmdbSearch: any, guessitIdentification: any): any;
5
- }
6
- import SeriesIdentifer from "../SeriesIdentifer";
@@ -1,90 +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 _SeriesIdentifer = _interopRequireDefault(require("../SeriesIdentifer"));
11
-
12
- var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- class TmdbSeriesIdentifier extends _SeriesIdentifer.default {
17
- constructor(oblecto) {
18
- super(oblecto);
19
- this.tvShowCache = {};
20
- }
21
- /**
22
- * Find the most relevant series match from a TMDB Search output
23
- *
24
- * @param tmdbSearch
25
- * @param guessitIdentification
26
- * @returns {{first_air_date}|*}
27
- */
28
-
29
-
30
- retrieveSeries(tmdbSearch, guessitIdentification) {
31
- // If TMDB only found one series that matches, we'll just ignore the date
32
- // This fixes some releases where the episode release year is included in
33
- // the file name instead of the first series release year
34
- if (tmdbSearch.length === 1) return tmdbSearch[0]; // If more then one possible match was found, use the one where the date is an exact match
35
- // TODO: We might want to also match to the most similar name
36
-
37
- for (let series of tmdbSearch) {
38
- if (!series.first_air_date) continue;
39
- if (guessitIdentification.year.toString() !== series.first_air_date.substr(0, 4).toString()) continue;
40
- return series;
41
- }
42
-
43
- throw new _IdentificationError.default();
44
- }
45
- /**
46
- * Identify the series of a given file
47
- *
48
- * @param { String } path
49
- * @param guessitIdentification
50
- * @returns {Promise<{overview, tmdbid, seriesName}|*>}
51
- */
52
-
53
-
54
- async identify(path, guessitIdentification) {
55
- let cacheId = guessitIdentification.title;
56
-
57
- if (guessitIdentification.year) {
58
- cacheId += guessitIdentification.year;
59
- }
60
-
61
- if (this.tvShowCache[cacheId]) {
62
- return this.tvShowCache[cacheId];
63
- }
64
-
65
- let tmdbSearch = (await (0, _promiseTimeout.default)(this.oblecto.tmdb.searchTv({
66
- query: guessitIdentification.title
67
- }, {
68
- timeout: 5000
69
- }))).results;
70
-
71
- if (tmdbSearch.length < 1) {
72
- throw new _IdentificationError.default('Search result from TMDB returned empty');
73
- }
74
-
75
- let series = tmdbSearch[0];
76
-
77
- if (guessitIdentification.year) {
78
- series = this.retrieveSeries(tmdbSearch, guessitIdentification);
79
- }
80
-
81
- return this.tvShowCache[cacheId] = {
82
- tmdbid: series.id,
83
- seriesName: series.name,
84
- overview: series.overview
85
- };
86
- }
87
-
88
- }
89
-
90
- exports.default = TmdbSeriesIdentifier;
@@ -1,7 +0,0 @@
1
- export default class TvdbEpisodeIdentifier extends EpisodeIdentifier {
2
- constructor(oblecto: any);
3
- episodeCache: {};
4
- getEpisodes(tvdbId: any): Promise<any>;
5
- retrieveEpisode(series: any, guessitIdentification: any): Promise<any>;
6
- }
7
- import EpisodeIdentifier from "../EpisodeIdentifier";
@@ -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 _IdentificationError = _interopRequireDefault(require("../../../errors/IdentificationError"));
9
-
10
- var _EpisodeIdentifier = _interopRequireDefault(require("../EpisodeIdentifier"));
11
-
12
- var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- class TvdbEpisodeIdentifier extends _EpisodeIdentifier.default {
17
- constructor(oblecto) {
18
- super(oblecto);
19
- this.episodeCache = {};
20
- }
21
- /**
22
- * Get all episodes from TVDB from a given TVDB series id
23
- *
24
- * @param { Number } tvdbId
25
- * @returns {Promise<*>}
26
- */
27
-
28
-
29
- async getEpisodes(tvdbId) {
30
- // TODO: Caching should be moved somewhere else or at least improved. This implementation is terrible
31
- if (this.episodeCache[tvdbId]) {
32
- return this.episodeCache[tvdbId];
33
- }
34
-
35
- if (this.episodeCache.length > 100) this.episodeCache = {};
36
- this.episodeCache[tvdbId] = await (0, _promiseTimeout.default)(this.oblecto.tvdb.getEpisodesBySeriesId(tvdbId));
37
- return this.episodeCache[tvdbId];
38
- }
39
- /**
40
- * Match an episode to given guessit identification
41
- *
42
- * @param { Series } series
43
- */
44
-
45
-
46
- async retrieveEpisode(series, guessitIdentification) {
47
- let tvdbEpisodes = await this.getEpisodes(series.tvdbid);
48
-
49
- for (let episode of tvdbEpisodes) {
50
- if (episode.episodeName === guessitIdentification.episode_name) return episode;
51
- if (episode.airedSeason !== guessitIdentification.season) continue;
52
- if (episode.airedEpisodeNumber !== guessitIdentification.episode) continue;
53
- return episode;
54
- }
55
-
56
- throw new _IdentificationError.default();
57
- }
58
- /**
59
- * Identify an episode using TVDB
60
- *
61
- * @param { String } path - Path to the episode to be identified
62
- * @param guessitIdentification
63
- * @param { Series } series - Series to which the episode should belong
64
- * @returns {Promise<{overview: *, tmdbid: *, episodeName: *, firstAired: *, airedSeason: *, airedEpisodeNumber: *}>}
65
- */
66
-
67
-
68
- async identify(path, guessitIdentification, series) {
69
- if (!series.tvdbid) throw new _IdentificationError.default('tvdbid was not supplied');
70
- let episode = await this.retrieveEpisode(series, guessitIdentification);
71
- return {
72
- tvdbid: episode.id,
73
- imdbid: episode.imdbId,
74
- episodeName: episode.episodeName,
75
- airedEpisodeNumber: episode.airedEpisodeNumber,
76
- airedSeason: episode.airedSeason,
77
- dvdEpisodeNumber: episode.dvdEpisodeNumber,
78
- dvdSeason: episode.dvdSeason,
79
- absoluteNumber: episode.absoluteNumber,
80
- overview: episode.overview,
81
- firstAired: episode.firstAired
82
- };
83
- }
84
-
85
- }
86
-
87
- exports.default = TvdbEpisodeIdentifier;
@@ -1,10 +0,0 @@
1
- export default class TvdbSeriesIdentifier extends SeriesIdentifier {
2
- /**
3
- * @param {Oblecto} oblecto
4
- */
5
- constructor(oblecto: any);
6
- tvShowCache: {};
7
- findMatch(found: any, guessitId: any): any;
8
- searchSeries(guessitIdentification: any): Promise<any>;
9
- }
10
- import SeriesIdentifier from "../SeriesIdentifer";
@@ -1,82 +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 _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout.js"));
11
-
12
- var _SeriesIdentifer = _interopRequireDefault(require("../SeriesIdentifer"));
13
-
14
- var _fastestLevenshtein = require("fastest-levenshtein");
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- class TvdbSeriesIdentifier extends _SeriesIdentifer.default {
19
- /**
20
- * @param {Oblecto} oblecto
21
- */
22
- constructor(oblecto) {
23
- super(oblecto);
24
- this.tvShowCache = {};
25
- }
26
-
27
- findMatch(found, guessitId) {
28
- // We need to do this as TVDB search ordering is pretty terrible
29
- // When the tvdb identifier attempts to index "Doctor Who", it will identify it as "Doctor Who Confidential"
30
- // if we use the first search result. Finding for the closest named match seems like the best solution
31
- let shortestDistance = -1;
32
- let shortestItem;
33
-
34
- for (let item of found) {
35
- let currentDistance = (0, _fastestLevenshtein.distance)(guessitId.title, item.seriesName);
36
-
37
- if (shortestDistance == -1 || currentDistance < shortestDistance) {
38
- shortestDistance = currentDistance;
39
- shortestItem = item;
40
- }
41
- }
42
-
43
- return shortestItem;
44
- }
45
-
46
- async searchSeries(guessitIdentification) {
47
- let tvdbSearch = await (0, _promiseTimeout.default)(this.oblecto.tvdb.getSeriesByName(guessitIdentification.title));
48
- if (!guessitIdentification.year) return this.findMatch(tvdbSearch, guessitIdentification);
49
- let candidates = [];
50
-
51
- for (let series of tvdbSearch) {
52
- if (!series.firstAired) continue;
53
- if (guessitIdentification.year.toString() !== series.firstAired.substr(0, 4)) continue;
54
- candidates.push(series);
55
- }
56
-
57
- if (candidates.length === 0) throw new _IdentificationError.default();
58
- return this.findMatch(candidates, guessitIdentification);
59
- }
60
-
61
- async identify(path, guessitIdentification) {
62
- let cacheId = guessitIdentification.title;
63
-
64
- if (guessitIdentification.year) {
65
- cacheId += guessitIdentification.year;
66
- }
67
-
68
- if (this.tvShowCache[cacheId]) {
69
- return this.tvShowCache[cacheId];
70
- }
71
-
72
- let series = await this.searchSeries(guessitIdentification);
73
- return this.tvShowCache[cacheId] = {
74
- tvdbid: series.id,
75
- seriesName: series.seriesName,
76
- overview: series.overview
77
- };
78
- }
79
-
80
- }
81
-
82
- exports.default = TvdbSeriesIdentifier;
@@ -1,68 +0,0 @@
1
- import TVDB from 'node-tvdb';
2
- import { MovieDb } from 'moviedb-promise';
3
- import Queue from '../queue';
4
- import ImageScaler from '../artwork/ArtworkScaler';
5
- import Downloader from '../downloader';
6
- import SeriesIndexer from '../indexers/series/SeriesIndexer';
7
- import MovieIndexer from '../indexers/movies/MovieIndexer';
8
- import SeriesCollector from '../indexers/series/SeriesCollector';
9
- import MovieCollector from '../indexers/movies/MovieCollector';
10
- import OblectoAPI from '../../submodules/REST';
11
- import RealtimeController from '../realtime/RealtimeController';
12
- import ArtworkUtils from '../artwork/ArtworkUtils';
13
- import MovieArtworkCollector from '../artwork/movies/MovieArtworkCollector';
14
- import SeriesArtworkCollector from '../artwork/series/SeriesArtworkCollector';
15
- import SeriesArtworkDownloader from '../artwork/series/SeriesArtworkDownloader';
16
- import MovieArtworkDownloader from '../artwork/movies/MovieArtworkDownloader';
17
- import FileUpdater from '../updaters/files/FileUpdater';
18
- import SeriesUpdater from '../updaters/series/SeriesUpdater';
19
- import MovieUpdater from '../updaters/movies/MovieUpdater';
20
- import FileUpdateCollector from '../updaters/files/FileUpdateCollector';
21
- import SeriesUpdateCollector from '../updaters/series/SeriesUpdateCollector';
22
- import MovieUpdateCollector from '../updaters/movies/MovieUpdateCollector';
23
- import FederationController from '../federation/server/FederationController';
24
- import FederationClientController from '../federation/client/FederationClientController';
25
- import FederationEpisodeIndexer from '../federationindexer/FederationEpisodeIndexer';
26
- import FederationMovieIndexer from '../federationindexer/FederationMovieIndexer';
27
- import MovieCleaner from '../cleaners/MovieCleaner';
28
- import SeriesCleaner from '../cleaners/SeriesCleaner';
29
- import FileCleaner from '../cleaners/FileCleaner';
30
- import FileIndexer from '../indexers/files/FileIndexer';
31
- import StreamSessionController from '../streamSessions/StreamSessionController';
32
- export default class Oblecto {
33
- config: any;
34
- database: any;
35
- tvdb: TVDB;
36
- tmdb: MovieDb;
37
- queue: Queue;
38
- oblectoAPI: OblectoAPI;
39
- realTimeController: RealtimeController;
40
- downloader: Downloader;
41
- fileIndexer: FileIndexer;
42
- seriesIndexer: SeriesIndexer;
43
- movieIndexer: MovieIndexer;
44
- seriesCollector: SeriesCollector;
45
- movieCollector: MovieCollector;
46
- seriesArtworkDownloader: SeriesArtworkDownloader;
47
- movieArtworkDownloader: MovieArtworkDownloader;
48
- seriesArtworkCollector: SeriesArtworkCollector;
49
- movieArtworkCollector: MovieArtworkCollector;
50
- artworkUtils: ArtworkUtils;
51
- imageScaler: ImageScaler;
52
- fileUpdater: FileUpdater;
53
- seriesUpdater: SeriesUpdater;
54
- movieUpdater: MovieUpdater;
55
- fileUpdateCollector: FileUpdateCollector;
56
- seriesUpdateCollector: SeriesUpdateCollector;
57
- movieUpdateCollector: MovieUpdateCollector;
58
- fileCleaner: FileCleaner;
59
- movieCleaner: MovieCleaner;
60
- seriesCleaner: SeriesCleaner;
61
- streamSessionController: StreamSessionController;
62
- federationController: FederationController;
63
- federationClientController: FederationClientController;
64
- federationEpisodeIndexer: FederationEpisodeIndexer;
65
- federationMovieIndexer: FederationMovieIndexer;
66
- constructor(config: any);
67
- close(): void;
68
- }
@@ -1,125 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _nodeTvdb = _interopRequireDefault(require("node-tvdb"));
9
-
10
- var _moviedbPromise = require("moviedb-promise");
11
-
12
- var _queue = _interopRequireDefault(require("../queue"));
13
-
14
- var _ArtworkScaler = _interopRequireDefault(require("../artwork/ArtworkScaler"));
15
-
16
- var _downloader = _interopRequireDefault(require("../downloader"));
17
-
18
- var _SeriesIndexer = _interopRequireDefault(require("../indexers/series/SeriesIndexer"));
19
-
20
- var _MovieIndexer = _interopRequireDefault(require("../indexers/movies/MovieIndexer"));
21
-
22
- var _SeriesCollector = _interopRequireDefault(require("../indexers/series/SeriesCollector"));
23
-
24
- var _MovieCollector = _interopRequireDefault(require("../indexers/movies/MovieCollector"));
25
-
26
- var _REST = _interopRequireDefault(require("../../submodules/REST"));
27
-
28
- var _RealtimeController = _interopRequireDefault(require("../realtime/RealtimeController"));
29
-
30
- var _ArtworkUtils = _interopRequireDefault(require("../artwork/ArtworkUtils"));
31
-
32
- var _MovieArtworkCollector = _interopRequireDefault(require("../artwork/movies/MovieArtworkCollector"));
33
-
34
- var _SeriesArtworkCollector = _interopRequireDefault(require("../artwork/series/SeriesArtworkCollector"));
35
-
36
- var _SeriesArtworkDownloader = _interopRequireDefault(require("../artwork/series/SeriesArtworkDownloader"));
37
-
38
- var _MovieArtworkDownloader = _interopRequireDefault(require("../artwork/movies/MovieArtworkDownloader"));
39
-
40
- var _FileUpdater = _interopRequireDefault(require("../updaters/files/FileUpdater"));
41
-
42
- var _SeriesUpdater = _interopRequireDefault(require("../updaters/series/SeriesUpdater"));
43
-
44
- var _MovieUpdater = _interopRequireDefault(require("../updaters/movies/MovieUpdater"));
45
-
46
- var _FileUpdateCollector = _interopRequireDefault(require("../updaters/files/FileUpdateCollector"));
47
-
48
- var _SeriesUpdateCollector = _interopRequireDefault(require("../updaters/series/SeriesUpdateCollector"));
49
-
50
- var _MovieUpdateCollector = _interopRequireDefault(require("../updaters/movies/MovieUpdateCollector"));
51
-
52
- var _FederationController = _interopRequireDefault(require("../federation/server/FederationController"));
53
-
54
- var _FederationClientController = _interopRequireDefault(require("../federation/client/FederationClientController"));
55
-
56
- var _FederationEpisodeIndexer = _interopRequireDefault(require("../federationindexer/FederationEpisodeIndexer"));
57
-
58
- var _FederationMovieIndexer = _interopRequireDefault(require("../federationindexer/FederationMovieIndexer"));
59
-
60
- var _MovieCleaner = _interopRequireDefault(require("../cleaners/MovieCleaner"));
61
-
62
- var _SeriesCleaner = _interopRequireDefault(require("../cleaners/SeriesCleaner"));
63
-
64
- var _FileCleaner = _interopRequireDefault(require("../cleaners/FileCleaner"));
65
-
66
- var _FileIndexer = _interopRequireDefault(require("../indexers/files/FileIndexer"));
67
-
68
- var _database = require("../../submodules/database");
69
-
70
- var _StreamSessionController = _interopRequireDefault(require("../streamSessions/StreamSessionController"));
71
-
72
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
73
-
74
- class Oblecto {
75
- constructor(config) {
76
- this.config = config;
77
- this.database = (0, _database.initDatabase)();
78
- this.tvdb = new _nodeTvdb.default(this.config.tvdb.key);
79
- this.tmdb = new _moviedbPromise.MovieDb(this.config.themoviedb.key);
80
- this.queue = new _queue.default(this.config.queue.concurrency);
81
- this.oblectoAPI = new _REST.default(this);
82
- this.realTimeController = new _RealtimeController.default(this);
83
- this.downloader = new _downloader.default(this);
84
- this.fileIndexer = new _FileIndexer.default(this);
85
- this.seriesIndexer = new _SeriesIndexer.default(this);
86
- this.movieIndexer = new _MovieIndexer.default(this);
87
- this.seriesCollector = new _SeriesCollector.default(this);
88
- this.movieCollector = new _MovieCollector.default(this);
89
- this.seriesArtworkDownloader = new _SeriesArtworkDownloader.default(this);
90
- this.movieArtworkDownloader = new _MovieArtworkDownloader.default(this);
91
- this.movieArtworkCollector = new _MovieArtworkCollector.default(this);
92
- this.seriesArtworkCollector = new _SeriesArtworkCollector.default(this);
93
- this.artworkUtils = new _ArtworkUtils.default(this);
94
- this.imageScaler = new _ArtworkScaler.default(this);
95
- this.fileUpdater = new _FileUpdater.default(this);
96
- this.seriesUpdater = new _SeriesUpdater.default(this);
97
- this.movieUpdater = new _MovieUpdater.default(this);
98
- this.fileUpdateCollector = new _FileUpdateCollector.default(this);
99
- this.seriesUpdateCollector = new _SeriesUpdateCollector.default(this);
100
- this.movieUpdateCollector = new _MovieUpdateCollector.default(this);
101
- this.fileCleaner = new _FileCleaner.default(this);
102
- this.movieCleaner = new _MovieCleaner.default(this);
103
- this.seriesCleaner = new _SeriesCleaner.default(this);
104
- this.streamSessionController = new _StreamSessionController.default(this);
105
-
106
- if (config.federation.enable) {
107
- this.fedartionController = new _FederationController.default(this);
108
- this.federationClientController = new _FederationClientController.default(this);
109
- this.federationEpisodeIndexer = new _FederationEpisodeIndexer.default(this);
110
- this.federationMovieIndexer = new _FederationMovieIndexer.default(this);
111
- this.federationClientController.addAllSyncMasters();
112
- }
113
- }
114
-
115
- close() {
116
- for (let item of Object.keys(this)) {
117
- if (this[item].close) {
118
- this[item].close();
119
- }
120
- }
121
- }
122
-
123
- }
124
-
125
- exports.default = Oblecto;