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,5 +0,0 @@
1
- import Oblecto from "../oblecto";
2
- export default class MediaIdentifier {
3
- private oblecto;
4
- constructor(oblecto: Oblecto);
5
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- class MediaIdentifier {
9
- constructor(oblecto) {
10
- this.oblecto = oblecto;
11
- }
12
-
13
- }
14
-
15
- exports.default = MediaIdentifier;
@@ -1,10 +0,0 @@
1
- export default class FileIndexer {
2
- /**
3
- * @param {Oblecto} oblecto
4
- */
5
- constructor(oblecto: any);
6
- oblecto: any;
7
- indexVideoFile(videoPath: any): Promise<File>;
8
- indexVideoFileStreams(file: any): Promise<void>;
9
- }
10
- import { File } from "../../../models/file";
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _file = require("../../../models/file");
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _FileExistsError = _interopRequireDefault(require("../../errors/FileExistsError"));
13
-
14
- var _ffprobe = _interopRequireDefault(require("../../../submodules/ffprobe"));
15
-
16
- var _stream = require("../../../models/stream");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- class FileIndexer {
21
- /**
22
- * @param {Oblecto} oblecto
23
- */
24
- constructor(oblecto) {
25
- this.oblecto = oblecto;
26
- this.oblecto.queue.registerJob('indexFileStreams', this.indexVideoFileStreams);
27
- }
28
-
29
- async indexVideoFile(videoPath) {
30
- let parsedPath = _path.default.parse(videoPath);
31
-
32
- let [file, fileInserted] = await _file.File.findOrCreate({
33
- where: {
34
- path: videoPath
35
- },
36
- defaults: {
37
- host: 'local',
38
- name: parsedPath.name,
39
- directory: parsedPath.dir,
40
- extension: parsedPath.ext.replace('.', '')
41
- }
42
- });
43
-
44
- if (!fileInserted) {
45
- throw new _FileExistsError.default(`${videoPath} is already in the file database`);
46
- }
47
-
48
- await this.oblecto.fileUpdateCollector.collectFile(file);
49
- return file;
50
- }
51
-
52
- async indexVideoFileStreams(file) {
53
- let metadata = await (0, _ffprobe.default)(file.path);
54
-
55
- for (let stream_base of metadata.streams) {
56
- for (let i in stream_base) {
57
- if (stream_base[i] === 'N/A' || stream_base[i] === 'unknown') {
58
- stream_base[i] = null;
59
- }
60
- }
61
-
62
- let stream = {
63
- FileId: file.id,
64
- stream_id: stream_base.id,
65
- disposition_default: stream_base.disposition.default,
66
- disposition_dub: stream_base.disposition.dub,
67
- disposition_original: stream_base.disposition.original,
68
- disposition_comment: stream_base.disposition.comment,
69
- disposition_lyrics: stream_base.disposition.lyrics,
70
- disposition_karaoke: stream_base.disposition.karaoke,
71
- disposition_forced: stream_base.disposition.forced,
72
- disposition_hearing_impaired: stream_base.disposition.hearing_impaired,
73
- disposition_clean_effects: stream_base.disposition.clean_effects,
74
- disposition_attached_pic: stream_base.disposition.attached_pic,
75
- disposition_timed_thumbnails: stream_base.disposition.timed_thumbnails,
76
- ...stream_base
77
- };
78
-
79
- if (stream_base.tags) {
80
- stream['tags_language'] = stream_base.tags.language;
81
- stream['tags_title'] = stream_base.tags.title;
82
- delete stream.tags;
83
- }
84
-
85
- delete stream.id;
86
- delete stream.disposition;
87
- delete stream.codec_long_name;
88
- delete stream.codec_tag;
89
- await _stream.Stream.findOrCreate({
90
- where: {
91
- FileId: stream.FileId,
92
- stream_id: stream.stream_id,
93
- index: stream.index,
94
- codec_name: stream.codec_name
95
- },
96
- defaults: stream
97
- });
98
- }
99
- }
100
-
101
- }
102
-
103
- exports.default = FileIndexer;
@@ -1,25 +0,0 @@
1
- export default class MovieCollector {
2
- /**
3
- *
4
- * @param {Oblecto} oblecto
5
- */
6
- constructor(oblecto: any);
7
- oblecto: any;
8
- /**
9
- *
10
- * @param {String} directory - Which directory to add to the index queue
11
- * @returns {Promise<void>}
12
- */
13
- collectDirectory(directory: string): Promise<void>;
14
- /**
15
- *
16
- * @param {String} file - File path to add to the index queue
17
- * @returns {Promise<void>}
18
- */
19
- collectFile(file: string): Promise<void>;
20
- /**
21
- *
22
- * @returns {Promise<void>}
23
- */
24
- collectAll(): Promise<void>;
25
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _recursiveReaddir = _interopRequireDefault(require("recursive-readdir"));
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class MovieCollector {
15
- /**
16
- *
17
- * @param {Oblecto} oblecto
18
- */
19
- constructor(oblecto) {
20
- this.oblecto = oblecto;
21
- }
22
- /**
23
- *
24
- * @param {String} directory - Which directory to add to the index queue
25
- * @returns {Promise<void>}
26
- */
27
-
28
-
29
- async collectDirectory(directory) {
30
- let files = await (0, _recursiveReaddir.default)(directory);
31
- files.forEach(file => {
32
- this.collectFile(file);
33
- });
34
- }
35
- /**
36
- *
37
- * @param {String} file - File path to add to the index queue
38
- * @returns {Promise<void>}
39
- */
40
-
41
-
42
- async collectFile(file) {
43
- let extension = _path.default.parse(file).ext.toLowerCase();
44
-
45
- if (this.oblecto.config.fileExtensions.video.indexOf(extension) !== -1) {
46
- this.oblecto.queue.queueJob('indexMovie', {
47
- path: file
48
- });
49
- }
50
- }
51
- /**
52
- *
53
- * @returns {Promise<void>}
54
- */
55
-
56
-
57
- async collectAll() {
58
- this.oblecto.config.movies.directories.forEach(directory => {
59
- this.collectDirectory(directory.path);
60
- });
61
- }
62
-
63
- }
64
-
65
- exports.default = MovieCollector;
@@ -1,10 +0,0 @@
1
- export default class MovieIdentifier extends MediaIdentifier {
2
- constructor(oblecto: import("../../oblecto").default);
3
- /**
4
- * Identify a Movie based a file path
5
- * @param {String} path File path to the Movie
6
- * @returns {Promise<JSON>}
7
- */
8
- identify(path: string): Promise<JSON>;
9
- }
10
- import MediaIdentifier from "../MediaIdentifier";
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _MediaIdentifier = _interopRequireDefault(require("../MediaIdentifier"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class MovieIdentifier extends _MediaIdentifier.default {
13
- /**
14
- * Identify a Movie based a file path
15
- * @param {String} path File path to the Movie
16
- * @returns {Promise<JSON>}
17
- */
18
- async identify(path) {}
19
-
20
- }
21
-
22
- exports.default = MovieIdentifier;
@@ -1,11 +0,0 @@
1
- export default class MovieIndexer {
2
- /**
3
- *
4
- * @param {Oblecto} oblecto
5
- */
6
- constructor(oblecto: any);
7
- oblecto: any;
8
- movieIdentifer: AggregateIdentifier;
9
- indexFile(moviePath: any): Promise<void>;
10
- }
11
- import AggregateIdentifier from "../../common/AggregateIdentifier";
@@ -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 _AggregateIdentifier = _interopRequireDefault(require("../../common/AggregateIdentifier"));
9
-
10
- var _TmdbMovieidentifier = _interopRequireDefault(require("./identifiers/TmdbMovieidentifier"));
11
-
12
- var _movie = require("../../../models/movie");
13
-
14
- var _logger = _interopRequireDefault(require("../../../submodules/logger"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- class MovieIndexer {
19
- /**
20
- *
21
- * @param {Oblecto} oblecto
22
- */
23
- constructor(oblecto) {
24
- this.oblecto = oblecto;
25
- this.movieIdentifier = new _AggregateIdentifier.default();
26
- const movieIdentifiers = {
27
- 'tmdb': _TmdbMovieidentifier.default
28
- };
29
-
30
- for (let identifier of this.oblecto.config.movies.movieIdentifiers) {
31
- _logger.default.log('DEBUG', `Loading ${identifier} movie identifier`);
32
-
33
- this.movieIdentifier.loadIdentifier(new movieIdentifiers[identifier](this.oblecto));
34
- } // Register task availability to Oblecto queue
35
-
36
-
37
- this.oblecto.queue.registerJob('indexMovie', async job => await this.indexFile(job.path, job.doReIndex));
38
- }
39
- /**
40
- * Index file based on file path
41
- * @param moviePath
42
- * @returns {Promise<void>}
43
- */
44
-
45
-
46
- async indexFile(moviePath) {
47
- let file = await this.oblecto.fileIndexer.indexVideoFile(moviePath);
48
- let movieIdentification = await this.movieIdentifier.identify(moviePath);
49
- let [movie, movieCreated] = await _movie.Movie.findOrCreate({
50
- where: {
51
- tmdbid: movieIdentification.tmdbid
52
- },
53
- defaults: movieIdentification
54
- });
55
- movie.addFile(file);
56
- if (!movieCreated) return;
57
- this.oblecto.queue.queueJob('updateMovie', movie);
58
- this.oblecto.queue.queueJob('downloadMovieFanart', movie);
59
- this.oblecto.queue.pushJob('downloadMoviePoster', movie);
60
- }
61
-
62
- }
63
-
64
- exports.default = MovieIndexer;
@@ -1,4 +0,0 @@
1
- export default class TmdbMovieIdentifier extends MovieIdentifier {
2
- constructor(oblecto: import("../../../oblecto").default);
3
- }
4
- import MovieIdentifier from "../MovieIdentifier";
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _MovieIdentifier = _interopRequireDefault(require("../MovieIdentifier"));
9
-
10
- var _guessit = _interopRequireDefault(require("../../../../submodules/guessit"));
11
-
12
- var _IdentificationError = _interopRequireDefault(require("../../../errors/IdentificationError"));
13
-
14
- var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- class TmdbMovieIdentifier extends _MovieIdentifier.default {
19
- async identify(path) {
20
- let identification = await _guessit.default.identify(path);
21
-
22
- if (!identification.title) {
23
- throw new _IdentificationError.default('Title extraction was unsuccessful');
24
- }
25
-
26
- let query = {
27
- query: identification.title
28
- };
29
-
30
- if (identification.year) {
31
- query.primary_release_year = identification.year;
32
- }
33
-
34
- let res = await (0, _promiseTimeout.default)(this.oblecto.tmdb.searchMovie(query, {
35
- timeout: 5000
36
- }));
37
- let identifiedMovie = res.results[0];
38
-
39
- if (!identifiedMovie) {
40
- throw new _IdentificationError.default();
41
- }
42
-
43
- return {
44
- tmdbid: identifiedMovie.id,
45
- movieName: identifiedMovie.title,
46
- overview: identifiedMovie.overview
47
- };
48
- }
49
-
50
- }
51
-
52
- exports.default = TmdbMovieIdentifier;
@@ -1,12 +0,0 @@
1
- export default class EpisodeIdentifier extends MediaIdentifier {
2
- constructor(oblecto: import("../../oblecto").default);
3
- /**
4
- * Identify an Episode based a file path and series information
5
- * @param {String} path File path to the Episode
6
- * @params {JSON} Guessit identification object
7
- * @param {Series} series Series object from Sequalize
8
- * @returns {Promise<JSON>}
9
- */
10
- identify(path: string, guessitIdentification: any, series: any): Promise<JSON>;
11
- }
12
- import MediaIdentifier from "../MediaIdentifier";
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _MediaIdentifier = _interopRequireDefault(require("../MediaIdentifier"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class EpisodeIdentifier extends _MediaIdentifier.default {
13
- /**
14
- * Identify an Episode based a file path and series information
15
- *
16
- * @param {String} path - File path to the Episode
17
- * @params {JSON} Guessit - identification object
18
- * @param {Series} series - Series object from Sequalize
19
- * @returns {Promise<JSON>}
20
- */
21
- async identify(path, guessitIdentification, series) {}
22
-
23
- }
24
-
25
- exports.default = EpisodeIdentifier;
@@ -1,25 +0,0 @@
1
- export default class SeriesCollector {
2
- /**
3
- *
4
- * @param {Oblecto} oblecto
5
- */
6
- constructor(oblecto: any);
7
- oblecto: any;
8
- /**
9
- *
10
- * @param {String} directory - Which directory to add to the index queue
11
- * @returns {Promise<void>}
12
- */
13
- collectDirectory(directory: string): Promise<void>;
14
- /**
15
- *
16
- * @param {String} file - File path to add to the index queue
17
- * @returns {Promise<void>}
18
- */
19
- collectFile(file: string): Promise<void>;
20
- /**
21
- *
22
- * @returns {Promise<void>}
23
- */
24
- collectAll(): Promise<void>;
25
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _recursiveReaddir = _interopRequireDefault(require("recursive-readdir"));
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class SeriesCollector {
15
- /**
16
- * Module for oblecto to scan for media files which are to be indexed by the episode indexer
17
- *
18
- * @param {Oblecto} oblecto
19
- */
20
- constructor(oblecto) {
21
- this.oblecto = oblecto;
22
- }
23
- /**
24
- * Add all files within a directory to the queue to be indexed
25
- *
26
- * @param {String} directory - Which directory to add to the index queue
27
- * @returns {Promise<void>}
28
- */
29
-
30
-
31
- async collectDirectory(directory) {
32
- let files = await (0, _recursiveReaddir.default)(directory);
33
- files.forEach(file => {
34
- this.collectFile(file);
35
- });
36
- }
37
- /**
38
- * Queue a file to be indexed
39
- *
40
- * @param {String} file - File path to add to the index queue
41
- * @returns {Promise<void>}
42
- */
43
-
44
-
45
- async collectFile(file) {
46
- let extension = _path.default.parse(file).ext.toLowerCase();
47
-
48
- if (this.oblecto.config.fileExtensions.video.indexOf(extension) !== -1) {
49
- this.oblecto.queue.queueJob('indexEpisode', {
50
- path: file
51
- });
52
- }
53
- }
54
- /**
55
- * Index all TV Show libraries
56
- *
57
- * @returns {Promise<void>}
58
- */
59
-
60
-
61
- async collectAll() {
62
- this.oblecto.config.tvshows.directories.forEach(directory => {
63
- this.collectDirectory(directory.path);
64
- });
65
- }
66
-
67
- }
68
-
69
- exports.default = SeriesCollector;
@@ -1,11 +0,0 @@
1
- export default class SeriesIdentifier extends MediaIdentifier {
2
- constructor(oblecto: import("../../oblecto").default);
3
- /**
4
- * Identify a Series of an Episode based a file path
5
- * @param {String} path File path to the Episode
6
- * @param {JSON} Guessit identification object
7
- * @returns {Promise<JSON>}
8
- */
9
- identify(path: string, guessitIdentification: any): Promise<JSON>;
10
- }
11
- import MediaIdentifier from "../MediaIdentifier";
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _MediaIdentifier = _interopRequireDefault(require("../MediaIdentifier"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class SeriesIdentifier extends _MediaIdentifier.default {
13
- /**
14
- * Identify a Series of an Episode based a file path
15
- *
16
- * @param {String} path File path to the Episode
17
- * @param {JSON} Guessit identification object
18
- * @returns {Promise<JSON>}
19
- */
20
- async identify(path, guessitIdentification) {}
21
-
22
- }
23
-
24
- exports.default = SeriesIdentifier;
@@ -1,11 +0,0 @@
1
- import { Series } from '../../../models/series';
2
- import Oblecto from '../../oblecto';
3
- import { File } from '../../../models/file';
4
- export default class SeriesIndexer {
5
- private oblecto;
6
- private seriesIdentifier;
7
- private episodeIdentifer;
8
- constructor(oblecto: Oblecto);
9
- indexSeries(file: File, guessitIdentification: any): Promise<Series>;
10
- indexFile(episodePath: string): Promise<void>;
11
- }