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,32 +0,0 @@
1
- import Oblecto from "../oblecto";
2
- export default class Queue {
3
- private oblecto;
4
- private readonly jobs;
5
- private queue;
6
- constructor(oblecto: Oblecto);
7
- /**
8
- * Define a new job
9
- * @param {string} id
10
- * @param {function} job
11
- */
12
- registerJob(id: any, job: any): void;
13
- /**
14
- * Add a job to the end of the queue
15
- * @param {string} id
16
- * @param {object} attr
17
- * @param {number} priority
18
- */
19
- queueJob(id: any, attr: any, priority?: number): void;
20
- /**
21
- * Adds a queue which should be completed as soon as possible
22
- * @param {string} id
23
- * @param {object} attr
24
- */
25
- lowPriorityJob(id: any, attr: any): void;
26
- /**
27
- * Add a job to the front of the queue
28
- * @param {string} id
29
- * @param {object} attr
30
- */
31
- pushJob(id: any, attr: any): void;
32
- }
@@ -1,96 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _async = _interopRequireDefault(require("async"));
9
-
10
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class Queue {
15
- /**
16
- *
17
- * @param { Number } concurrency - Amount of tasks to handle simultaneously
18
- */
19
- constructor(concurrency) {
20
- this.jobs = {};
21
- this.queue = _async.default.priorityQueue((job, callback) => {
22
- if (!this.jobs[job.id]) return callback();
23
- let jobTimeout = setTimeout(() => {
24
- _logger.default.log('WARN', `Job ${job.id} is taking a long time. Maybe something is wrong?`, JSON.stringify(job));
25
- }, 20000);
26
- this.jobs[job.id](job.attr).then(() => {
27
- clearTimeout(jobTimeout);
28
- callback();
29
- }).catch(err => {
30
- clearTimeout(jobTimeout);
31
-
32
- _logger.default.log(err);
33
-
34
- callback();
35
- });
36
- }, concurrency);
37
- }
38
- /**
39
- * Define a new job
40
- * @param {string} id
41
- * @param {function} job
42
- */
43
-
44
-
45
- registerJob(id, job) {
46
- if (this.jobs[id]) {
47
- _logger.default.log('ERROR', `A job has been registered which was already registered: ${id}`);
48
-
49
- _logger.default.log('ERROR', 'This should not happen. Shutting down server');
50
-
51
- this.oblecto.close();
52
- return;
53
- }
54
-
55
- _logger.default.log('INFO', 'New queue item has been registered:', id);
56
-
57
- this.jobs[id] = job;
58
- }
59
- /**
60
- * Add a job to the end of the queue
61
- * @param {string} id
62
- * @param {object} attr
63
- * @param {number} priority
64
- */
65
-
66
-
67
- queueJob(id, attr, priority = 5) {
68
- this.queue.push({
69
- id,
70
- attr
71
- }, priority);
72
- }
73
- /**
74
- * Adds a queue which should be completed as soon as possible
75
- * @param {string} id
76
- * @param {object} attr
77
- */
78
-
79
-
80
- lowPriorityJob(id, attr) {
81
- this.queueJob(id, attr, 20);
82
- }
83
- /**
84
- * Add a job to the front of the queue
85
- * @param {string} id
86
- * @param {object} attr
87
- */
88
-
89
-
90
- pushJob(id, attr) {
91
- this.queueJob(id, attr, 0);
92
- }
93
-
94
- }
95
-
96
- exports.default = Queue;
@@ -1,27 +0,0 @@
1
- /// <reference types="node" />
2
- export default class RealtimeClient extends events.EventEmitter {
3
- /**
4
- * @param {Oblecto} oblecto
5
- * @param {*} socket
6
- */
7
- constructor(oblecto: any, socket: any);
8
- clientName: string;
9
- oblecto: any;
10
- socket: any;
11
- user: any;
12
- storage: {
13
- series: {};
14
- movie: {};
15
- };
16
- authenticationHandler(data: any): void;
17
- playingHandler(data: any): void;
18
- playingEpisodeHandler(data: any): void;
19
- playingMovieHandler(data: any): void;
20
- disconnectHandler(): void;
21
- saveEpisodeTrack(id: any): Promise<void>;
22
- saveMovieTrack(id: any): Promise<void>;
23
- saveAllTracks(): Promise<void>;
24
- playEpisode(episodeId: any): Promise<void>;
25
- playMovie(movieId: any): Promise<void>;
26
- }
27
- import events from "events";
@@ -1,137 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
9
-
10
- var _events = require("events");
11
-
12
- var _trackEpisode = require("../../models/trackEpisode");
13
-
14
- var _trackMovie = require("../../models/trackMovie");
15
-
16
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- class RealtimeClient extends _events.EventEmitter {
21
- /**
22
- * @param {Oblecto} oblecto
23
- * @param {*} socket
24
- */
25
- constructor(oblecto, socket) {
26
- super();
27
- this.clientName = 'default';
28
- this.oblecto = oblecto;
29
- this.socket = socket;
30
- this.user = null;
31
- this.storage = {
32
- series: {},
33
- movie: {}
34
- };
35
- this.socket.on('authenticate', data => this.authenticationHandler(data));
36
- this.socket.on('playing', data => this.playingHandler(data));
37
- this.socket.on('disconnect', () => this.disconnectHandler());
38
- setInterval(() => {
39
- this.saveAllTracks();
40
- }, 10000);
41
- }
42
-
43
- authenticationHandler(data) {
44
- try {
45
- this.user = _jsonwebtoken.default.verify(data.token, this.oblecto.config.authentication.secret);
46
- } catch (e) {
47
- _logger.default.log('WARN', 'An unauthorized user attempted connection to realtime server');
48
-
49
- _logger.default.log('WARN', 'Disconnecting client...');
50
-
51
- this.socket.disconnect();
52
- }
53
- }
54
-
55
- playingHandler(data) {
56
- if (this.user == null) return;
57
- if (data.type === 'tv') return this.playingEpisodeHandler(data);
58
- if (data.type === 'movie') return this.playingMovieHandler(data);
59
- }
60
-
61
- playingEpisodeHandler(data) {
62
- this.storage.series[data.episodeId] = data;
63
- }
64
-
65
- playingMovieHandler(data) {
66
- this.storage.movie[data.movieId] = data;
67
- }
68
-
69
- disconnectHandler() {
70
- this.emit('disconnect');
71
- }
72
-
73
- async saveEpisodeTrack(id) {
74
- if (this.user === null) return;
75
- let [item, created] = await _trackEpisode.TrackEpisode.findOrCreate({
76
- where: {
77
- UserId: this.user.id,
78
- EpisodeId: id
79
- },
80
- defaults: {
81
- time: this.storage.series[id].time,
82
- progress: this.storage.series[id].progress
83
- }
84
- });
85
- if (created) return;
86
- await item.update({
87
- time: this.storage.series[id].time,
88
- progress: this.storage.series[id].progress
89
- });
90
- delete this.storage.series[id];
91
- }
92
-
93
- async saveMovieTrack(id) {
94
- if (this.user == null) return;
95
- let [item, created] = await _trackMovie.TrackMovie.findOrCreate({
96
- where: {
97
- UserId: this.user.id,
98
- MovieId: id
99
- },
100
- defaults: {
101
- time: this.storage.movie[id].time,
102
- progress: this.storage.movie[id].progress
103
- }
104
- });
105
- if (created) return;
106
- await item.update({
107
- time: this.storage.movie[id].time,
108
- progress: this.storage.movie[id].progress
109
- });
110
- delete this.storage.movie[id];
111
- }
112
-
113
- async saveAllTracks() {
114
- for (let i in this.storage.series) {
115
- await this.saveEpisodeTrack(i);
116
- }
117
-
118
- for (let i in this.storage.movie) {
119
- await this.saveMovieTrack(i);
120
- }
121
- }
122
-
123
- async playEpisode(episodeId) {
124
- this.socket.emit('play', {
125
- episodeId
126
- });
127
- }
128
-
129
- async playMovie(movieId) {
130
- this.socket.emit('play', {
131
- movieId
132
- });
133
- }
134
-
135
- }
136
-
137
- exports.default = RealtimeClient;
@@ -1,12 +0,0 @@
1
- export default class RealtimeController {
2
- /**
3
- *
4
- * @param {Oblecto} oblecto
5
- */
6
- constructor(oblecto: any);
7
- oblecto: any;
8
- clients: {};
9
- server: any;
10
- connectionHandler(socket: any): void;
11
- close(): void;
12
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _socket = _interopRequireDefault(require("socket.io"));
9
-
10
- var _RealtimeClient = _interopRequireDefault(require("./RealtimeClient"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class RealtimeController {
15
- /**
16
- *
17
- * @param {Oblecto} oblecto
18
- */
19
- constructor(oblecto) {
20
- this.oblecto = oblecto;
21
- this.clients = {};
22
- this.server = _socket.default.listen(oblecto.oblectoAPI.server.server, {
23
- log: false,
24
- agent: false,
25
- origins: '*:*',
26
- transports: ['websocket', 'polling']
27
- });
28
- this.server.on('connection', socket => {
29
- this.connectionHandler(socket);
30
- });
31
- }
32
-
33
- connectionHandler(socket) {
34
- this.clients[socket.id] = new _RealtimeClient.default(this.oblecto, socket);
35
- this.clients[socket.id].on('disconnect', () => {
36
- delete this.clients[socket.id];
37
- });
38
- }
39
-
40
- close() {
41
- for (let client of Object.keys(this.clients)) {
42
- this.clients[client].disconnect();
43
- }
44
-
45
- this.server.close();
46
- }
47
-
48
- }
49
-
50
- exports.default = RealtimeController;
@@ -1,109 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _redis = _interopRequireDefault(require("redis"));
9
-
10
- var _logger = _interopRequireDefault(require("../../submodules/logger"));
11
-
12
- var _util = require("util");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- class RedisQueue {
17
- constructor(oblecto) {
18
- this.oblecto = oblecto;
19
- this.jobs = {};
20
- this.workers = [];
21
- this.stop = false;
22
- this.redisClient = _redis.default.createClient({
23
- host: this.oblecto.config.queue.host
24
- });
25
- }
26
-
27
- startWorkers() {
28
- for (let i = 0; i < this.oblecto.config.queue.concurrency; i++) {
29
- _logger.default.log('INFO', 'Setting up redis queue worker');
30
-
31
- this.workers[i] = this.queueWorker();
32
- }
33
- }
34
-
35
- close() {
36
- this.stop = true;
37
- }
38
-
39
- async queueWorker() {
40
- const lpop = (0, _util.promisify)(this.redisClient.lpop).bind(this.redisClient);
41
-
42
- while (!this.stop) {
43
- console.log('fuck you');
44
- const queueItemSerialized = await lpop('queue:scanner');
45
- if (!queueItemSerialized) continue;
46
- const job = JSON.parse(queueItemSerialized);
47
- if (!this.jobs[job.id]) continue;
48
-
49
- try {
50
- console.log(`Running job ${job.id}`);
51
- await this.jobs[job.id](job.attr);
52
- console.log(`Finished job ${job.id}`);
53
- } catch (e) {
54
- _logger.default.log(e);
55
- }
56
- }
57
- }
58
- /**
59
- * Define a new job
60
- * @param {string} id
61
- * @param {function} job
62
- */
63
-
64
-
65
- addJob(id, job) {
66
- _logger.default.log('INFO', 'New queue item has been registered:', id);
67
-
68
- this.jobs[id] = job;
69
- }
70
- /**
71
- * Add a job to the end of the queue
72
- * @param {string} id
73
- * @param {object} job
74
- */
75
-
76
-
77
- queueJob(id, attr) {
78
- const job = {
79
- id,
80
- attr
81
- };
82
- this.redisClient.rpush('queue:oblectoMaster', JSON.stringify(job));
83
- }
84
-
85
- lowPriorityJob(id, attr) {
86
- const job = {
87
- id,
88
- attr
89
- };
90
- this.redisClient.rpush('queue:oblectoMaster', JSON.stringify(job));
91
- }
92
- /**
93
- * Add a job to the front of the queue
94
- * @param {string} id
95
- * @param {object} job
96
- */
97
-
98
-
99
- pushJob(id, attr) {
100
- const job = {
101
- id,
102
- attr
103
- };
104
- this.redisClient.rpush('queue:oblectoMaster', JSON.stringify(job));
105
- }
106
-
107
- }
108
-
109
- exports.default = RedisQueue;
@@ -1,6 +0,0 @@
1
- declare namespace _default {
2
- function GetTmdbLists(movie: any): Promise<void>;
3
- function GetTmdbCollection(movie: any): boolean;
4
- function GetSetsForMovie(movie: any): void;
5
- }
6
- export default _default;
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _tmdb = _interopRequireDefault(require("../../../submodules/tmdb"));
9
-
10
- var _database = _interopRequireDefault(require("../../../submodules/database"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- var _default = {
15
- GetTmdbLists: async function (movie) {
16
- let response = await _tmdb.default.movieLists({
17
- id: movie.tmdbid
18
- });
19
- },
20
-
21
- /**
22
- * @return {boolean}
23
- */
24
- GetTmdbCollection: async function (movie) {
25
- let response = await _tmdb.default.movieInfo({
26
- id: movie.tmdbid
27
- });
28
- if (!response.belongs_to_collection) return false;
29
- let collectionResponse = await _tmdb.default.collectionInfo({
30
- id: response.belongs_to_collection.id
31
- });
32
- let [Collection, Inserted] = await _database.default.movieSet.findOrCreate({
33
- where: {
34
- tmdbid: collectionResponse.id
35
- },
36
- defaults: {
37
- setName: collectionResponse.name,
38
- overview: collectionResponse.overview
39
- }
40
- });
41
- Collection.addMovie(movie);
42
- return true;
43
- },
44
- GetSetsForMovie: function (movie) {
45
- this.GetTmdbLists(movie);
46
- this.GetTmdbCollection(movie);
47
- }
48
- };
49
- exports.default = _default;
@@ -1,41 +0,0 @@
1
- /// <reference types="node" />
2
- export default class StreamSession extends events.EventEmitter {
3
- /**
4
- *
5
- * @param {File} file
6
- * @param options
7
- * @param {Oblecto} oblecto
8
- */
9
- constructor(file: any, options: any, oblecto: any);
10
- oblecto: any;
11
- file: any;
12
- sessionId: any;
13
- destinations: any[];
14
- targetFormats: any;
15
- targetVideoCodecs: any;
16
- targetAudioCodecs: any;
17
- format: any;
18
- videoCodec: any;
19
- audioCodec: any;
20
- offset: any;
21
- inputStream: Stream.PassThrough;
22
- outputStream: Stream.PassThrough;
23
- httpHeaders: {
24
- 'Content-Type': string;
25
- 'Accept-Ranges': string;
26
- };
27
- httpStatusCode: number;
28
- timeoutTime: number;
29
- outputPause(): void;
30
- outputResume(): void;
31
- endSession(): void;
32
- startTimeout(): void;
33
- timeout: NodeJS.Timeout | undefined;
34
- addDestination(destination: any): Promise<void>;
35
- clearTimeout(): void;
36
- startStream(): Promise<void>;
37
- getOutputMimetype(): "video/mp4" | "video/mp2t" | "video/video/x-matroska" | "video";
38
- getFfmpegVideoCodec(): any;
39
- }
40
- import events from "events";
41
- import Stream from "stream";