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,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.seriesColumns = exports.Series = void 0;
7
-
8
- var _sequelize = require("sequelize");
9
-
10
- class Series extends _sequelize.Model {}
11
-
12
- exports.Series = Series;
13
- const seriesColumns = {
14
- tvdbid: {
15
- type: _sequelize.DataTypes.INTEGER,
16
- allowNull: true,
17
- unique: true
18
- },
19
- imdbid: {
20
- type: _sequelize.DataTypes.STRING(64),
21
- allowNull: true,
22
- unique: true
23
- },
24
- seriesId: {
25
- type: _sequelize.DataTypes.INTEGER,
26
- allowNull: true,
27
- unique: true
28
- },
29
- zap2itId: {
30
- type: _sequelize.DataTypes.STRING(64),
31
- allowNull: true,
32
- unique: true
33
- },
34
- tmdbid: {
35
- type: _sequelize.DataTypes.INTEGER,
36
- allowNull: true,
37
- unique: true
38
- },
39
- seriesName: _sequelize.DataTypes.STRING,
40
- alias: _sequelize.DataTypes.STRING,
41
- genre: _sequelize.DataTypes.STRING,
42
- status: _sequelize.DataTypes.STRING,
43
- firstAired: _sequelize.DataTypes.DATEONLY,
44
- network: _sequelize.DataTypes.STRING,
45
- runtime: _sequelize.DataTypes.INTEGER,
46
- overview: _sequelize.DataTypes.TEXT,
47
- airsDayOfWeek: _sequelize.DataTypes.STRING,
48
- airsTime: _sequelize.DataTypes.STRING,
49
- rating: _sequelize.DataTypes.STRING,
50
- popularity: _sequelize.DataTypes.FLOAT,
51
- siteRating: _sequelize.DataTypes.DOUBLE,
52
- siteRatingCount: _sequelize.DataTypes.INTEGER,
53
- directory: _sequelize.DataTypes.STRING
54
- };
55
- exports.seriesColumns = seriesColumns;
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.seriesSetColumns = exports.SeriesSet = void 0;
7
-
8
- var _sequelize = require("sequelize");
9
-
10
- class SeriesSet extends _sequelize.Model {}
11
-
12
- exports.SeriesSet = SeriesSet;
13
- const seriesSetColumns = {
14
- setName: _sequelize.DataTypes.STRING,
15
- overview: _sequelize.DataTypes.TEXT
16
- };
17
- exports.seriesSetColumns = seriesSetColumns;
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.streamColumns = exports.Stream = void 0;
7
-
8
- var _sequelize = require("sequelize");
9
-
10
- class Stream extends _sequelize.Model {}
11
-
12
- exports.Stream = Stream;
13
- const streamColumns = {
14
- index: _sequelize.DataTypes.INTEGER,
15
- codec_name: _sequelize.DataTypes.STRING,
16
- profile: _sequelize.DataTypes.STRING,
17
- codec_type: _sequelize.DataTypes.STRING,
18
- codec_time_base: _sequelize.DataTypes.STRING,
19
- codec_tag_string: _sequelize.DataTypes.STRING,
20
- sample_fmt: _sequelize.DataTypes.STRING,
21
- sample_rate: _sequelize.DataTypes.INTEGER,
22
- bits_per_sample: _sequelize.DataTypes.INTEGER,
23
- channels: _sequelize.DataTypes.INTEGER,
24
- channel_layout: _sequelize.DataTypes.STRING,
25
- width: _sequelize.DataTypes.INTEGER,
26
- height: _sequelize.DataTypes.INTEGER,
27
- coded_width: _sequelize.DataTypes.INTEGER,
28
- coded_height: _sequelize.DataTypes.INTEGER,
29
- has_b_frames: _sequelize.DataTypes.INTEGER,
30
- sample_aspect_ratio: _sequelize.DataTypes.STRING,
31
- display_aspect_ratio: _sequelize.DataTypes.STRING,
32
- pix_fmt: _sequelize.DataTypes.STRING,
33
- level: _sequelize.DataTypes.INTEGER,
34
- color_range: _sequelize.DataTypes.STRING,
35
- color_space: _sequelize.DataTypes.STRING,
36
- color_transfer: _sequelize.DataTypes.STRING,
37
- color_primaries: _sequelize.DataTypes.STRING,
38
- chroma_location: _sequelize.DataTypes.STRING,
39
- field_order: _sequelize.DataTypes.STRING,
40
- timecode: _sequelize.DataTypes.INTEGER,
41
- refs: _sequelize.DataTypes.INTEGER,
42
- is_avc: _sequelize.DataTypes.BOOLEAN,
43
- nal_length_size: _sequelize.DataTypes.INTEGER,
44
- stream_id: _sequelize.DataTypes.STRING,
45
- r_frame_rate: _sequelize.DataTypes.STRING,
46
- avg_frame_rate: _sequelize.DataTypes.STRING,
47
- time_base: _sequelize.DataTypes.STRING,
48
- start_pts: _sequelize.DataTypes.BIGINT,
49
- start_time: _sequelize.DataTypes.INTEGER,
50
- duration_ts: _sequelize.DataTypes.BIGINT,
51
- duration: _sequelize.DataTypes.INTEGER,
52
- bit_rate: _sequelize.DataTypes.INTEGER,
53
- max_bit_rate: _sequelize.DataTypes.INTEGER,
54
- bits_per_raw_sample: _sequelize.DataTypes.INTEGER,
55
- nb_frames: _sequelize.DataTypes.INTEGER,
56
- nb_read_frames: _sequelize.DataTypes.INTEGER,
57
- nb_read_packets: _sequelize.DataTypes.INTEGER,
58
- disposition_default: _sequelize.DataTypes.INTEGER,
59
- disposition_dub: _sequelize.DataTypes.INTEGER,
60
- disposition_original: _sequelize.DataTypes.INTEGER,
61
- disposition_comment: _sequelize.DataTypes.INTEGER,
62
- disposition_lyrics: _sequelize.DataTypes.INTEGER,
63
- disposition_karaoke: _sequelize.DataTypes.INTEGER,
64
- disposition_forced: _sequelize.DataTypes.INTEGER,
65
- disposition_hearing_impaired: _sequelize.DataTypes.INTEGER,
66
- disposition_clean_effects: _sequelize.DataTypes.INTEGER,
67
- disposition_attached_pic: _sequelize.DataTypes.INTEGER,
68
- disposition_timed_thumbnails: _sequelize.DataTypes.INTEGER,
69
- tags_language: _sequelize.DataTypes.STRING,
70
- tags_title: _sequelize.DataTypes.STRING,
71
- dmix_mode: _sequelize.DataTypes.INTEGER,
72
- ltrt_cmixlev: _sequelize.DataTypes.INTEGER,
73
- ltrt_surmixlev: _sequelize.DataTypes.INTEGER,
74
- loro_cmixlev: _sequelize.DataTypes.INTEGER,
75
- loro_surmixlev: _sequelize.DataTypes.INTEGER,
76
- quarter_sample: _sequelize.DataTypes.BOOLEAN,
77
- divx_packed: _sequelize.DataTypes.BOOLEAN,
78
- side_data_type: _sequelize.DataTypes.STRING,
79
- closed_captions: _sequelize.DataTypes.STRING
80
- };
81
- exports.streamColumns = streamColumns;
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.trackEpisodesColumns = exports.TrackEpisode = void 0;
7
-
8
- var _sequelize = require("sequelize");
9
-
10
- class TrackEpisode extends _sequelize.Model {}
11
-
12
- exports.TrackEpisode = TrackEpisode;
13
- const trackEpisodesColumns = {
14
- time: _sequelize.DataTypes.FLOAT,
15
- progress: _sequelize.DataTypes.FLOAT
16
- };
17
- exports.trackEpisodesColumns = trackEpisodesColumns;
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = (sequelize, DataTypes) => {
4
- return sequelize.define('trackEpisodes', {
5
- time: DataTypes.FLOAT,
6
- progress: DataTypes.FLOAT
7
- });
8
- };
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.trackMovieColumns = exports.TrackMovie = void 0;
7
-
8
- var _sequelize = require("sequelize");
9
-
10
- class TrackMovie extends _sequelize.Model {}
11
-
12
- exports.TrackMovie = TrackMovie;
13
- const trackMovieColumns = {
14
- time: _sequelize.DataTypes.FLOAT,
15
- progress: _sequelize.DataTypes.FLOAT
16
- };
17
- exports.trackMovieColumns = trackMovieColumns;
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = (sequelize, DataTypes) => {
4
- return sequelize.define('trackMovies', {
5
- time: DataTypes.FLOAT,
6
- progress: DataTypes.FLOAT
7
- });
8
- };
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = (sequelize, DataTypes) => {
4
- return sequelize.define('tvshow', {
5
- tvdbid: {
6
- type: DataTypes.INTEGER,
7
- allowNull: true,
8
- unique: true
9
- },
10
- imdbid: {
11
- type: DataTypes.STRING(64),
12
- allowNull: true,
13
- unique: true
14
- },
15
- seriesId: {
16
- type: DataTypes.INTEGER,
17
- allowNull: true,
18
- unique: true
19
- },
20
- zap2itId: {
21
- type: DataTypes.STRING(64),
22
- allowNull: true,
23
- unique: true
24
- },
25
- tmdbid: {
26
- type: DataTypes.INTEGER,
27
- allowNull: true,
28
- unique: true
29
- },
30
- seriesName: DataTypes.STRING,
31
- alias: DataTypes.STRING,
32
- genre: DataTypes.STRING,
33
- status: DataTypes.STRING,
34
- firstAired: DataTypes.DATEONLY,
35
- network: DataTypes.STRING,
36
- runtime: DataTypes.INTEGER,
37
- overview: DataTypes.TEXT,
38
- airsDayOfWeek: DataTypes.STRING,
39
- airsTime: DataTypes.STRING,
40
- rating: DataTypes.STRING,
41
- popularity: DataTypes.FLOAT,
42
- siteRating: DataTypes.DOUBLE,
43
- siteRatingCount: DataTypes.INTEGER,
44
- directory: DataTypes.STRING
45
- });
46
- };
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = (sequelize, DataTypes) => {
4
- return sequelize.define('tvshowSet', {
5
- setName: DataTypes.STRING,
6
- overview: DataTypes.TEXT
7
- });
8
- };
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.userColumns = exports.User = void 0;
7
-
8
- var _sequelize = require("sequelize");
9
-
10
- class User extends _sequelize.Model {}
11
-
12
- exports.User = User;
13
- const userColumns = {
14
- username: {
15
- type: _sequelize.DataTypes.STRING(16),
16
- unique: true
17
- },
18
- name: _sequelize.DataTypes.STRING,
19
- email: _sequelize.DataTypes.STRING,
20
- password: _sequelize.DataTypes.STRING,
21
- access_token: {
22
- type: _sequelize.DataTypes.STRING,
23
- allowNull: true
24
- }
25
- };
26
- exports.userColumns = userColumns;
@@ -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 _restify = _interopRequireDefault(require("restify"));
9
-
10
- var _routes = _interopRequireDefault(require("./routes"));
11
-
12
- var _restifyCorsMiddleware = _interopRequireDefault(require("restify-cors-middleware"));
13
-
14
- var _logger = _interopRequireDefault(require("../logger"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- class OblectoAPI {
19
- /**
20
- * @param {Oblecto} oblecto
21
- */
22
- constructor(oblecto) {
23
- this.oblecto = oblecto; // Initialize REST based server
24
-
25
- this.server = _restify.default.createServer({
26
- 'name': 'Oblecto'
27
- }); // Allow remote clients to connect to the backend
28
-
29
- const cors = (0, _restifyCorsMiddleware.default)({
30
- preflightMaxAge: 5,
31
- //Optional
32
- origins: ['*'],
33
- allowHeaders: ['API-Token', 'authorization'],
34
- exposeHeaders: ['API-Token-Expiry']
35
- });
36
- this.server.pre(cors.preflight);
37
- this.server.use(cors.actual);
38
- this.server.use(_restify.default.plugins.authorizationParser());
39
- this.server.use(_restify.default.plugins.queryParser({
40
- mapParams: true
41
- }));
42
- this.server.use(_restify.default.plugins.bodyParser({
43
- mapParams: true
44
- })); // Add routes routes
45
-
46
- (0, _routes.default)(this.server, this.oblecto); // Start restify server
47
-
48
- this.server.listen(this.oblecto.config.server.port, () => {
49
- _logger.default.log('INFO', this.server.name, 'REST API Listening at', this.server.url);
50
- });
51
- }
52
-
53
- close() {
54
- this.server.close();
55
- }
56
-
57
- }
58
-
59
- exports.default = OblectoAPI;
@@ -1,28 +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 _restifyErrors = _interopRequireDefault(require("restify-errors"));
11
-
12
- var _config = _interopRequireDefault(require("../../../config"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- var _default = {
17
- requiresAuth(req, res, next) {
18
- if (req.authorization === undefined) return next(new _restifyErrors.default.UnauthorizedError('Session is not authenticated'));
19
-
20
- _jsonwebtoken.default.verify(req.authorization.credentials || req.params.auth, _config.default.authentication.secret, function (err, decoded) {
21
- if (err) return next(new _restifyErrors.default.UnauthorizedError('An error has occurred during session authentication'));
22
- req.authorization.user = decoded;
23
- next();
24
- });
25
- }
26
-
27
- };
28
- exports.default = _default;
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
9
-
10
- var _restifyErrors = _interopRequireDefault(require("restify-errors"));
11
-
12
- var _bcrypt = _interopRequireDefault(require("bcrypt"));
13
-
14
- var _user = require("../../../models/user");
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- var _default = (server, oblecto) => {
19
- server.post('/auth/login', async function (req, res, next) {
20
- if (!req.params.username) return next(new _restifyErrors.default.BadRequestError('Username is missing'));
21
- if (!req.params.password && !oblecto.config.authentication.allowPasswordlessLogin) return next(new _restifyErrors.default.BadRequestError('Password is missing'));
22
- let user = await _user.User.findOne({
23
- where: {
24
- username: req.params.username
25
- },
26
- attributes: ['username', 'name', 'email', 'password', 'id']
27
- }); // Don't send a token if the user doesn't exist
28
-
29
- if (!user) return next(new _restifyErrors.default.UnauthorizedError('Username is incorrect'));
30
- let allowLogin = oblecto.config.authentication.allowPasswordlessLogin;
31
- if (user.password) allowLogin = await _bcrypt.default.compare(req.params.password, user.password);
32
- if (!allowLogin) return next(new _restifyErrors.default.UnauthorizedError('Password is incorrect'));
33
- let tokenPayload = {
34
- id: user.id,
35
- username: user.username,
36
- name: user.name,
37
- email: user.email
38
- };
39
-
40
- let accessToken = _jsonwebtoken.default.sign(tokenPayload, oblecto.config.authentication.secret);
41
-
42
- res.send({
43
- accessToken
44
- });
45
- });
46
- };
47
-
48
- exports.default = _default;
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _auth = _interopRequireDefault(require("../middleware/auth"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- /**
13
- *
14
- * @param {Server} server
15
- * @param {Oblecto} oblecto
16
- */
17
- var _default = (server, oblecto) => {
18
- server.get('/clients', _auth.default.requiresAuth, async function (req, res, next) {
19
- let clients = [];
20
-
21
- for (let clientId in oblecto.realTimeController.clients) {
22
- let client = oblecto.realTimeController.clients[clientId];
23
-
24
- if (client.user.id === req.authorization.user.id) {
25
- clients.push({
26
- clientId,
27
- clientName: client.clientName
28
- });
29
- }
30
- }
31
-
32
- res.send(clients);
33
- return next();
34
- });
35
- server.post('/client/:clientId/playback', _auth.default.requiresAuth, async function (req, res, next) {
36
- let type = req.params.type;
37
- let client = oblecto.realTimeController.clients[req.params.clientId];
38
-
39
- switch (type) {
40
- case 'episode':
41
- client.playEpisode(req.params.id);
42
- break;
43
-
44
- case 'movie':
45
- client.playMovie(req.params.id);
46
- break;
47
- }
48
-
49
- res.send();
50
- return next();
51
- });
52
- };
53
-
54
- exports.default = _default;