oblecto 0.2.8 → 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 (167) 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 +68 -36
  8. package/res/AGENTS.md +8 -0
  9. package/res/config.json +34 -7
  10. package/Oblecto-Web/LICENSE +0 -674
  11. package/Oblecto-Web/README.md +0 -20
  12. package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css +0 -1
  13. package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css.map +0 -1
  14. package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js +0 -6896
  15. package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js.map +0 -1
  16. package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js +0 -154
  17. package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js.map +0 -1
  18. package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js +0 -32455
  19. package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js.map +0 -1
  20. package/Oblecto-Web/package.json +0 -118
  21. package/dist/bin/cliManager.js +0 -102
  22. package/dist/bin/scripts/adduser.js +0 -50
  23. package/dist/bin/scripts/changepassword.js +0 -48
  24. package/dist/bin/scripts/deluser.js +0 -34
  25. package/dist/bin/scripts/helpers/argumentError.js +0 -12
  26. package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
  27. package/dist/bin/scripts/init/assets.js +0 -24
  28. package/dist/bin/scripts/init/database.js +0 -21
  29. package/dist/bin/scripts/init/general.js +0 -54
  30. package/dist/bin/scripts/init/index.js +0 -26
  31. package/dist/bin/scripts/removepassword.js +0 -42
  32. package/dist/config.js +0 -45
  33. package/dist/core/graphical.js +0 -179
  34. package/dist/core/index.js +0 -24
  35. package/dist/lib/artwork/ArtworkScaler.js +0 -31
  36. package/dist/lib/artwork/ArtworkUtils.js +0 -35
  37. package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
  38. package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
  39. package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
  40. package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
  41. package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
  42. package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
  43. package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
  44. package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
  45. package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
  46. package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
  47. package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
  48. package/dist/lib/cleaners/FileCleaner.js +0 -56
  49. package/dist/lib/cleaners/MovieCleaner.js +0 -42
  50. package/dist/lib/cleaners/SeriesCleaner.js +0 -70
  51. package/dist/lib/common/AggregateIdentifier.js +0 -53
  52. package/dist/lib/common/AggregateUpdateRetriever.js +0 -43
  53. package/dist/lib/downloader/index.js +0 -59
  54. package/dist/lib/errors/DebugExtendableError.js +0 -20
  55. package/dist/lib/errors/ExtendableError.js +0 -22
  56. package/dist/lib/errors/FileExistsError.js +0 -14
  57. package/dist/lib/errors/IdentificationError.js +0 -14
  58. package/dist/lib/errors/InfoExtendableError.js +0 -20
  59. package/dist/lib/errors/VideoAnalysisError.js +0 -14
  60. package/dist/lib/errors/VideoIdentificationError.js +0 -14
  61. package/dist/lib/errors/WarnExtendableError.js +0 -20
  62. package/dist/lib/federation/client/FederationClient.js +0 -127
  63. package/dist/lib/federation/client/FederationClientController.js +0 -45
  64. package/dist/lib/federation/client/FederationDataClient.js +0 -56
  65. package/dist/lib/federation/client/FederationMediaClient.js +0 -70
  66. package/dist/lib/federation/server/FederationController.js +0 -32
  67. package/dist/lib/federation/server/FederationDataServer.js +0 -22
  68. package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
  69. package/dist/lib/federation/server/FederationMediaServer.js +0 -22
  70. package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
  71. package/dist/lib/federation/server/FederationServer.js +0 -40
  72. package/dist/lib/federation/server/FederationServerConnection.js +0 -97
  73. package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
  74. package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
  75. package/dist/lib/indexers/MediaIdentifier.js +0 -15
  76. package/dist/lib/indexers/files/FileIndexer.js +0 -103
  77. package/dist/lib/indexers/files/cleaner.js +0 -43
  78. package/dist/lib/indexers/movies/AggregateMovieIdentifier.js +0 -45
  79. package/dist/lib/indexers/movies/MovieCollector.js +0 -65
  80. package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
  81. package/dist/lib/indexers/movies/MovieIndexer.js +0 -47
  82. package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -50
  83. package/dist/lib/indexers/series/AggregateEpisodeIdentifier.js +0 -46
  84. package/dist/lib/indexers/series/AggregateSeriesIdentifier.js +0 -46
  85. package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -24
  86. package/dist/lib/indexers/series/SeriesCollector.js +0 -65
  87. package/dist/lib/indexers/series/SeriesIdentifer.js +0 -23
  88. package/dist/lib/indexers/series/SeriesIndexer.js +0 -134
  89. package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -38
  90. package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -66
  91. package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -71
  92. package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
  93. package/dist/lib/oblecto/index.js +0 -125
  94. package/dist/lib/queue/index.js +0 -82
  95. package/dist/lib/realtime/RealtimeClient.js +0 -137
  96. package/dist/lib/realtime/RealtimeController.js +0 -50
  97. package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
  98. package/dist/lib/streamSessions/StreamSession.js +0 -148
  99. package/dist/lib/streamSessions/StreamSessionController.js +0 -78
  100. package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -105
  101. package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -47
  102. package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -126
  103. package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
  104. package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -65
  105. package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
  106. package/dist/lib/updaters/files/FileUpdater.js +0 -194
  107. package/dist/lib/updaters/movies/AggregateMovieUpdateRetriever.js +0 -44
  108. package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
  109. package/dist/lib/updaters/movies/MovieUpdater.js +0 -38
  110. package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -42
  111. package/dist/lib/updaters/series/AggregateEpisodeUpdateRetriever.js +0 -41
  112. package/dist/lib/updaters/series/AggregateSeriesUpdateRetriever.js +0 -44
  113. package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
  114. package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
  115. package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -66
  116. package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -63
  117. package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
  118. package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
  119. package/dist/models/episode.js +0 -62
  120. package/dist/models/episodeFiles.js +0 -14
  121. package/dist/models/file.js +0 -32
  122. package/dist/models/movie.js +0 -35
  123. package/dist/models/movieFiles.js +0 -14
  124. package/dist/models/movieSet.js +0 -26
  125. package/dist/models/series.js +0 -55
  126. package/dist/models/seriesSet.js +0 -17
  127. package/dist/models/stream.js +0 -81
  128. package/dist/models/trackEpisode.js +0 -17
  129. package/dist/models/trackEpisodes.js +0 -8
  130. package/dist/models/trackMovie.js +0 -17
  131. package/dist/models/trackMovies.js +0 -8
  132. package/dist/models/tvshow.js +0 -46
  133. package/dist/models/tvshowSet.js +0 -8
  134. package/dist/models/user.js +0 -26
  135. package/dist/submodules/REST/index.js +0 -59
  136. package/dist/submodules/REST/middleware/auth.js +0 -28
  137. package/dist/submodules/REST/routes/auth.js +0 -48
  138. package/dist/submodules/REST/routes/clients.js +0 -54
  139. package/dist/submodules/REST/routes/episodes.js +0 -275
  140. package/dist/submodules/REST/routes/files.js +0 -92
  141. package/dist/submodules/REST/routes/index.js +0 -48
  142. package/dist/submodules/REST/routes/movies.js +0 -305
  143. package/dist/submodules/REST/routes/sets.js +0 -35
  144. package/dist/submodules/REST/routes/settings/index.js +0 -22
  145. package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
  146. package/dist/submodules/REST/routes/settings/misc.js +0 -38
  147. package/dist/submodules/REST/routes/settings/sources.js +0 -61
  148. package/dist/submodules/REST/routes/tvshows.js +0 -140
  149. package/dist/submodules/REST/routes/users.js +0 -107
  150. package/dist/submodules/REST/routes/web.js +0 -43
  151. package/dist/submodules/axiosTimeout.js +0 -30
  152. package/dist/submodules/database.js +0 -180
  153. package/dist/submodules/ffmpeg.js +0 -23
  154. package/dist/submodules/ffprobe.js +0 -22
  155. package/dist/submodules/guessit.js +0 -48
  156. package/dist/submodules/handlers/DirectStreamer.js +0 -68
  157. package/dist/submodules/handlers/FFMPEGHandlers/DvdStreamer.js +0 -52
  158. package/dist/submodules/handlers/FFMPEGHandlers/RemuxStreamer.js +0 -33
  159. package/dist/submodules/handlers/FFMPEGHandlers/TranscodeStreamer.js +0 -33
  160. package/dist/submodules/handlers/FFMPEGStreamer.js +0 -56
  161. package/dist/submodules/handlers/FederationStreamer.js +0 -23
  162. package/dist/submodules/handlers/HLSSessionHandler.js +0 -141
  163. package/dist/submodules/logger/index.js +0 -43
  164. package/dist/submodules/promiseTimeout.js +0 -28
  165. package/dist/submodules/zeroconf.js +0 -19
  166. package/dist/transcoders/dvd.js +0 -26
  167. package/dist/transcoders/index.js +0 -42
@@ -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,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.addJob('downloadEpisodeBanner', episode => this.downloadEpisodeBanner(episode));
29
- this.oblecto.queue.addJob('downloadSeriesPoster', series => this.downloadSeriesPoster(series));
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,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,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,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,56 +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
- async removedDeletedFiled() {
26
- _logger.default.log('INFO', 'Removing all non existent files from the database');
27
-
28
- let files = await _file.File.findAll();
29
-
30
- for (let file of files) {
31
- try {
32
- await _fs.promises.stat(file.path);
33
- } catch (e) {
34
- _logger.default.log('INFO', file.path, 'not found. Removing from database');
35
-
36
- await file.destroy();
37
- }
38
- }
39
- }
40
-
41
- async removeAssoclessFiles() {
42
- _logger.default.log('INFO', 'Removing files from the database without any attached media items');
43
-
44
- let results = await _file.File.findAll({
45
- include: [_movie.Movie, _episode.Episode]
46
- });
47
- results.forEach(item => {
48
- if (item.Movies.length === 0 && item.Episodes.length === 0) {
49
- item.destroy();
50
- }
51
- });
52
- }
53
-
54
- }
55
-
56
- exports.default = FileCleaner;
@@ -1,42 +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
- async removeFileLessMovies() {
25
- _logger.default.log('INFO', 'Removing movies without linked files');
26
-
27
- let results = await _movie.Movie.findAll({
28
- include: [_file.File]
29
- });
30
-
31
- for (let item of results) {
32
- if (item.Files && item.Files.length > 0) continue;
33
-
34
- _logger.default.log('INFO', 'Removing', item.movieName, 'as it has no linked files');
35
-
36
- await item.destroy();
37
- }
38
- }
39
-
40
- }
41
-
42
- exports.default = MovieCleaner;
@@ -1,70 +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
- async removeFileLessEpisodes() {
27
- _logger.default.log('INFO', 'Removing all episodes without linked files');
28
-
29
- let results = await _episode.Episode.findAll({
30
- include: [_file.File]
31
- });
32
-
33
- for (let item of results) {
34
- if (item.Files && item.Files.length > 0) continue;
35
-
36
- _logger.default.log('INFO', 'Removing', item.episodeName, 'as it has no linked files');
37
-
38
- await item.destroy();
39
- }
40
- }
41
-
42
- async removePathLessShows() {
43
- _logger.default.log('INFO', 'Removing series without at attached path');
44
-
45
- await _series.Series.destroy({
46
- where: {
47
- directory: ''
48
- }
49
- });
50
- }
51
-
52
- async removeEpisodeslessShows() {
53
- _logger.default.log('INFO', 'Removing series without attached episodes');
54
-
55
- let results = await _series.Series.findAll({
56
- include: [_episode.Episode]
57
- });
58
-
59
- for (let item of results) {
60
- if (item.Episodes && item.Episodes.length > 0) continue;
61
-
62
- _logger.default.log('INFO', 'Removing', item.seriesName, 'as it has no linked episodes');
63
-
64
- await item.destroy();
65
- }
66
- }
67
-
68
- }
69
-
70
- exports.default = SeriesCleaner;
@@ -1,53 +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
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class AggregateIdentifier {
13
- /**
14
- * Wrapper class to combine multiple identifiers and return information as a combined json output
15
- */
16
- constructor() {
17
- this.identifiers = [];
18
- }
19
- /**
20
- *
21
- * @param {MediaIdentifier} identifier
22
- */
23
-
24
-
25
- loadIdentifier(identifier) {
26
- this.identifiers.push(identifier);
27
- }
28
-
29
- async identify(...args) {
30
- let identification = {};
31
-
32
- for (let identifier of this.identifiers) {
33
- let currentIdentification;
34
-
35
- try {
36
- currentIdentification = await identifier.identify(...args);
37
- } catch (e) {
38
- continue;
39
- }
40
-
41
- identification = { ...identification,
42
- ...currentIdentification
43
- };
44
- }
45
-
46
- if (Object.keys(identification).length === 0) throw new _IdentificationError.default(`Could not identify: ${args[0]}`);
47
- return identification;
48
- }
49
-
50
- }
51
-
52
- exports.default = AggregateIdentifier;
53
- ;
@@ -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 _logger = _interopRequireDefault(require("../../submodules/logger"));
9
-
10
- var _IdentificationError = _interopRequireDefault(require("../errors/IdentificationError"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class AggregateUpdateRetriever {
15
- constructor() {
16
- this.retrievers = [];
17
- }
18
-
19
- loadRetriever(retriever) {
20
- this.retrievers.push(retriever);
21
- }
22
-
23
- async retrieveInformation(...args) {
24
- let information = {};
25
-
26
- for (let retriever of this.retrievers) {
27
- try {
28
- let currentInformation = await retriever.retrieveInformation(...args);
29
- information = { ...information,
30
- ...currentInformation
31
- };
32
- } catch (e) {
33
- _logger.default.log(e);
34
- }
35
- }
36
-
37
- if (Object.keys(information).length === 0) throw new _IdentificationError.default('No identification match could be found');
38
- return information;
39
- }
40
-
41
- }
42
-
43
- exports.default = AggregateUpdateRetriever;
@@ -1,59 +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 _axiosTimeout = _interopRequireDefault(require("../../submodules/axiosTimeout"));
11
-
12
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
13
-
14
- var _DebugExtendableError = _interopRequireDefault(require("../errors/DebugExtendableError"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- class Downloader {
19
- constructor(oblecto) {
20
- this.oblecto = oblecto;
21
- this.oblecto.queue.addJob('downloadFile', async job => {
22
- await Downloader.download(job.url, job.dest, job.overwrite);
23
- });
24
- }
25
-
26
- static async download(url, dest, overwrite) {
27
- let writeMode = 'wx';
28
-
29
- if (overwrite) {
30
- writeMode = 'w';
31
- }
32
-
33
- let response = await (0, _axiosTimeout.default)({
34
- method: 'get',
35
- url: url,
36
- responseType: 'arraybuffer',
37
- responseEncoding: 'binary'
38
- });
39
- await _fs.promises.writeFile(dest, response.data, {
40
- flags: writeMode
41
- });
42
- }
43
-
44
- static async attemptDownload(urls, path) {
45
- for (let url of urls) {
46
- try {
47
- await Downloader.download(url, path);
48
- return;
49
- } catch (err) {
50
- _logger.default.log('DEBUG', `Error while downloading ${url}. Continuing to next url`);
51
- }
52
- }
53
-
54
- throw new _DebugExtendableError.default('Failed to download any url from array');
55
- }
56
-
57
- }
58
-
59
- exports.default = Downloader;
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _ExtendableError = _interopRequireDefault(require("./ExtendableError"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class DebugExtendableError extends _ExtendableError.default {
13
- constructor(message) {
14
- super(message);
15
- this.level = 'DEBUG';
16
- }
17
-
18
- }
19
-
20
- exports.default = DebugExtendableError;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- class ExtendableError extends Error {
9
- constructor(message) {
10
- super(message);
11
- this.name = this.constructor.name;
12
-
13
- if (typeof Error.captureStackTrace === 'function') {
14
- Error.captureStackTrace(this, this.constructor);
15
- } else {
16
- this.stack = new Error(message).stack;
17
- }
18
- }
19
-
20
- }
21
-
22
- exports.default = ExtendableError;