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,107 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _restifyErrors = _interopRequireDefault(require("restify-errors"));
9
-
10
- var _bcrypt = _interopRequireDefault(require("bcrypt"));
11
-
12
- var _config = _interopRequireDefault(require("../../../config"));
13
-
14
- var _auth = _interopRequireDefault(require("../middleware/auth"));
15
-
16
- var _user = require("../../../models/user");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- var _default = (server, oblecto) => {
21
- server.get('/users', async function (req, res, next) {
22
- let users = await _user.User.findAll({
23
- attributes: ['username', 'name', 'email', 'id']
24
- });
25
- res.send(users);
26
- next();
27
- });
28
- server.get('/user/:id', _auth.default.requiresAuth, async function (req, res, next) {
29
- let user = await _user.User.findOne({
30
- where: {
31
- id: req.params.id
32
- },
33
- attributes: ['username', 'name', 'email', 'id']
34
- });
35
- res.send(user);
36
- next();
37
- });
38
- server.del('/user/:id', _auth.default.requiresAuth, async function (req, res, next) {
39
- let user = await _user.User.findOne({
40
- where: {
41
- id: req.params.id
42
- },
43
- attributes: ['username', 'name', 'email', 'id']
44
- }); // Send the user information of the user to the client first
45
-
46
- res.send(user); // Now delete the user
47
-
48
- user.destroy();
49
- next();
50
- }); // Endpoint to update the entries of a certain user
51
-
52
- server.put('/user/:id', _auth.default.requiresAuth, async function (req, res, next) {
53
- let user = await _user.User.findByPk(req.params.id);
54
-
55
- if (!user) {
56
- return next(new _restifyErrors.default.BadRequestError('User with id does not exist'));
57
- }
58
-
59
- if (req.params.username) {
60
- user.update({
61
- username: req.params.username
62
- });
63
- }
64
-
65
- if (req.params.password) {
66
- user.update({
67
- password: await _bcrypt.default.hash(req.params.password, _config.default.authentication.saltRounds)
68
- });
69
- }
70
-
71
- if (req.params.email) {
72
- user.update({
73
- email: req.params.email
74
- });
75
- }
76
-
77
- if (req.params.name) {
78
- user.update({
79
- name: req.params.name
80
- });
81
- }
82
-
83
- next();
84
- });
85
- server.post('/user', _auth.default.requiresAuth, async function (req, res, next) {
86
- // Make sure the required input fields are present, and if not send a bad request error with the associated information to the error
87
- if (!req.params.username) return next(new _restifyErrors.default.BadRequestError('Username is missing'));
88
- if (!req.params.email) return next(new _restifyErrors.default.BadRequestError('E-Mail is missing'));
89
- if (!req.params.name) return next(new _restifyErrors.default.BadRequestError('Name is missing'));
90
- let passwordHash;
91
- if (req.params.password) passwordHash = await _bcrypt.default.hash(req.params.password, oblecto.config.authentication.saltRounds);
92
- let [user] = await _user.User.findOrCreate({
93
- where: {
94
- username: req.params.username
95
- },
96
- defaults: {
97
- name: req.params.name,
98
- email: req.params.email,
99
- password: passwordHash
100
- }
101
- });
102
- res.send(user);
103
- next();
104
- });
105
- };
106
-
107
- exports.default = _default;
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _restify = _interopRequireDefault(require("restify"));
9
-
10
- var _fs = _interopRequireDefault(require("fs"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- var _default = (server, oblecto) => {
15
- server.get('/web/static/*', _restify.default.plugins.serveStatic({
16
- directory: __dirname + '/../../../../Oblecto-Web/dist/'
17
- }));
18
- server.get('/web/logo.png', async (req, res, next) => {
19
- _fs.default.readFile(__dirname + '/../../../../images/logomark.png', function (err, body) {
20
- res.writeHead(200, {
21
- 'Content-Length': Buffer.byteLength(body),
22
- 'Content-Type': 'image/png'
23
- });
24
- res.write(body);
25
- res.end();
26
- });
27
- });
28
- server.get('/web*', async (req, res, next) => {
29
- _fs.default.readFile(__dirname + '/../../../../Oblecto-Web/dist/web/index.html', 'utf8', function (err, body) {
30
- res.writeHead(200, {
31
- 'Content-Length': Buffer.byteLength(body),
32
- 'Content-Type': 'text/html'
33
- });
34
- res.write(body);
35
- res.end();
36
- });
37
- });
38
- server.get('/', async (req, res, next) => {
39
- res.redirect('/web', next);
40
- });
41
- };
42
-
43
- exports.default = _default;
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _WarnExtendableError = _interopRequireDefault(require("../lib/errors/WarnExtendableError"));
9
-
10
- var _axios = _interopRequireDefault(require("axios"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- function _default(...args) {
15
- return new Promise(function (resolve, reject) {
16
- let timedout = false;
17
- let timeout = setTimeout(() => {
18
- timedout = true;
19
- reject(new _WarnExtendableError.default(`Timeout expired for ${args[0].url}`));
20
- }, 10000);
21
- (0, _axios.default)(...args).then(response => {
22
- if (timedout) return;
23
- clearTimeout(timeout);
24
- resolve(response);
25
- }).catch(err => {
26
- clearTimeout(timeout);
27
- reject(err);
28
- });
29
- });
30
- }
@@ -1,180 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.initDatabase = initDatabase;
7
-
8
- var _sequelize = _interopRequireDefault(require("sequelize"));
9
-
10
- var _config = _interopRequireDefault(require("../config.js"));
11
-
12
- var _logger = _interopRequireDefault(require("./logger"));
13
-
14
- var _episode = require("../models/episode");
15
-
16
- var _episodeFiles = require("../models/episodeFiles");
17
-
18
- var _file = require("../models/file");
19
-
20
- var _movie = require("../models/movie");
21
-
22
- var _series = require("../models/series");
23
-
24
- var _movieFiles = require("../models/movieFiles");
25
-
26
- var _movieSet = require("../models/movieSet");
27
-
28
- var _seriesSet = require("../models/seriesSet");
29
-
30
- var _trackMovie = require("../models/trackMovie");
31
-
32
- var _trackEpisode = require("../models/trackEpisode");
33
-
34
- var _user = require("../models/user");
35
-
36
- var _stream = require("../models/stream");
37
-
38
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
-
40
- function initDatabase() {
41
- let dialect = _config.default.database.dialect || 'sqlite';
42
- let poolmax = _config.default.queue.concurrency;
43
-
44
- if (dialect === 'sqlite') {
45
- _logger.default.log('INFO', 'Using SQLITE, setting poolmax to 1');
46
-
47
- poolmax = 1;
48
- }
49
-
50
- let options = {
51
- dialect,
52
- logging: false,
53
- //operatorsAliases: false,
54
- pool: {
55
- max: poolmax,
56
- min: 0,
57
- acquire: 30000,
58
- idle: 10000
59
- },
60
- retry: {
61
- max: 5
62
- }
63
- };
64
-
65
- if (options.dialect !== 'sqlite') {
66
- options.host = _config.default.database.host || 'localhost';
67
- }
68
-
69
- if (options.dialect === 'sqlite') {
70
- options.storage = _config.default.database.storage || '/etc/oblecto/database.sqlite';
71
- }
72
-
73
- const sequelize = new _sequelize.default(_config.default.database.database, _config.default.database.username, _config.default.database.password, options);
74
-
75
- _episode.Episode.init(_episode.episodeColumns, {
76
- sequelize
77
- });
78
-
79
- _movie.Movie.init(_movie.movieColumns, {
80
- sequelize
81
- });
82
-
83
- _series.Series.init(_series.seriesColumns, {
84
- sequelize
85
- });
86
-
87
- _file.File.init(_file.fileColumns, {
88
- sequelize
89
- });
90
-
91
- _stream.Stream.init(_stream.streamColumns, {
92
- sequelize
93
- });
94
-
95
- _episodeFiles.EpisodeFiles.init(_episodeFiles.episodeFilesColumns, {
96
- sequelize
97
- });
98
-
99
- _movieFiles.MovieFiles.init(_movieFiles.movieFileColumns, {
100
- sequelize
101
- });
102
-
103
- _movieSet.MovieSet.init(_movieSet.movieSetColumns, {
104
- sequelize
105
- });
106
-
107
- _seriesSet.SeriesSet.init(_seriesSet.seriesSetColumns, {
108
- sequelize
109
- });
110
-
111
- _trackMovie.TrackMovie.init(_trackMovie.trackMovieColumns, {
112
- sequelize
113
- });
114
-
115
- _trackEpisode.TrackEpisode.init(_trackEpisode.trackEpisodesColumns, {
116
- sequelize
117
- });
118
-
119
- _user.User.init(_user.userColumns, {
120
- sequelize
121
- });
122
-
123
- _episode.Episode.belongsTo(_series.Series);
124
-
125
- _series.Series.hasMany(_episode.Episode);
126
-
127
- _movieSet.MovieSet.belongsToMany(_movie.Movie, {
128
- through: 'MovieSetAllocations'
129
- });
130
-
131
- _movieSet.MovieSet.belongsToMany(_user.User, {
132
- through: 'MovieSetUsers'
133
- });
134
-
135
- _movie.Movie.belongsToMany(_movieSet.MovieSet, {
136
- through: 'MovieSetAllocations'
137
- });
138
-
139
- _seriesSet.SeriesSet.belongsToMany(_series.Series, {
140
- through: 'SeriesSetAllocations'
141
- });
142
-
143
- _series.Series.belongsToMany(_seriesSet.SeriesSet, {
144
- through: 'SeriesSetAllocations'
145
- });
146
-
147
- _episode.Episode.belongsToMany(_file.File, {
148
- through: _episodeFiles.EpisodeFiles
149
- });
150
-
151
- _movie.Movie.belongsToMany(_file.File, {
152
- through: _movieFiles.MovieFiles
153
- });
154
-
155
- _file.File.belongsToMany(_episode.Episode, {
156
- through: _episodeFiles.EpisodeFiles
157
- });
158
-
159
- _file.File.belongsToMany(_movie.Movie, {
160
- through: _movieFiles.MovieFiles
161
- });
162
-
163
- _stream.Stream.belongsTo(_file.File);
164
-
165
- _file.File.hasMany(_stream.Stream);
166
-
167
- _trackEpisode.TrackEpisode.belongsTo(_user.User);
168
-
169
- _trackEpisode.TrackEpisode.belongsTo(_episode.Episode);
170
-
171
- _trackMovie.TrackMovie.belongsTo(_user.User);
172
-
173
- _trackMovie.TrackMovie.belongsTo(_movie.Movie);
174
-
175
- _episode.Episode.hasMany(_trackEpisode.TrackEpisode);
176
-
177
- _movie.Movie.hasMany(_trackMovie.TrackMovie);
178
-
179
- return sequelize;
180
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _fluentFfmpeg = _interopRequireDefault(require("fluent-ffmpeg"));
9
-
10
- var _config = _interopRequireDefault(require("../config"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- if (_config.default.ffmpeg.pathFFprobe) {
15
- _fluentFfmpeg.default.setFfprobePath(_config.default.ffmpeg.pathFFprobe);
16
- }
17
-
18
- if (_config.default.ffmpeg.pathFFmpeg) {
19
- _fluentFfmpeg.default.setFfmpegPath(_config.default.ffmpeg.pathFFmpeg);
20
- }
21
-
22
- var _default = _fluentFfmpeg.default;
23
- exports.default = _default;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = ffprobe;
7
-
8
- var _ffmpeg = _interopRequireDefault(require("./ffmpeg"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- function ffprobe(path) {
13
- return new Promise(function (resolve, reject) {
14
- _ffmpeg.default.ffprobe(path, function (err, metadata) {
15
- if (err) {
16
- return reject(err);
17
- }
18
-
19
- return resolve(metadata);
20
- });
21
- });
22
- }
@@ -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 _guessitWrapper = _interopRequireDefault(require("guessit-wrapper"));
9
-
10
- var _guessitExec = _interopRequireDefault(require("guessit-exec"));
11
-
12
- var _which = _interopRequireDefault(require("which"));
13
-
14
- var _logger = _interopRequireDefault(require("./logger"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- let use_binary = false;
19
- (0, _which.default)('guessit', function (err, resolvedPath) {
20
- if (err) {
21
- _logger.default.log('INFO', 'Guessit binary has not been found');
22
-
23
- _logger.default.log('INFO', 'Using the web based identifier');
24
-
25
- _logger.default.log('INFO', 'This may significantly reduce indexing speeds');
26
-
27
- _logger.default.log('INFO', 'Please install guessit from you package manager');
28
-
29
- return;
30
- }
31
-
32
- _logger.default.log('INFO', 'Guessit binary has been found');
33
-
34
- _logger.default.log('INFO', 'Using local guessit binary');
35
-
36
- use_binary = true;
37
- });
38
- var _default = {
39
- async identify(search) {
40
- if (use_binary) {
41
- return (0, _guessitExec.default)(search);
42
- }
43
-
44
- return _guessitWrapper.default.parseName(search);
45
- }
46
-
47
- };
48
- exports.default = _default;
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _mimeTypes = _interopRequireDefault(require("mime-types"));
9
-
10
- var _fs = _interopRequireDefault(require("fs"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class _default {
15
- static streamFile(oblecto, videoPath, req, res, next) {
16
- let videoSize = _fs.default.statSync(videoPath).size;
17
-
18
- let videoMime = _mimeTypes.default.lookup(videoPath);
19
-
20
- if (req.headers.range) {
21
- // meaning client (browser) has moved the forward/back slider
22
- // which has sent this request back to this server logic ... cool
23
- var range = req.headers.range;
24
- var parts = range.replace(/bytes=/, '').split('-');
25
- var partialstart = parts[0];
26
- var partialend = parts[1];
27
- var start = parseInt(partialstart, 10);
28
- var end = partialend ? parseInt(partialend, 10) : videoSize - 1;
29
- var chunksize = end - start + 1;
30
- console.log('RANGE: ' + start + ' - ' + end + ' = ' + chunksize);
31
-
32
- try {
33
- var file = _fs.default.createReadStream(videoPath, {
34
- start: start,
35
- end: end
36
- });
37
- } catch (e) {
38
- console.log(e);
39
- return next();
40
- }
41
-
42
- res.writeHead(206, {
43
- 'Content-Range': 'bytes ' + start + '-' + end + '/' + videoSize,
44
- 'Accept-Ranges': 'bytes',
45
- 'Content-Length': chunksize,
46
- 'Content-Type': videoMime
47
- });
48
- return file.pipe(res);
49
- } else {
50
- console.log('ALL: ' + videoSize);
51
- res.writeHead(200, {
52
- 'Content-Length': videoSize,
53
- 'Accept-Ranges': 'bytes',
54
- 'Content-Type': videoMime
55
- });
56
-
57
- try {
58
- return _fs.default.createReadStream(videoPath).pipe(res);
59
- } catch (e) {
60
- console.log(e);
61
- return next();
62
- }
63
- }
64
- }
65
-
66
- }
67
-
68
- exports.default = _default;
@@ -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 _ffmpeg = _interopRequireDefault(require("../../ffmpeg"));
9
-
10
- var _ffprobe = _interopRequireDefault(require("../../ffprobe"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class _default {
15
- static async DvdSteamer(oblecto, video, offset, req, res) {
16
- let probe = await (0, _ffprobe.default)(video.path);
17
- let streams = probe.streams;
18
- console.log(probe);
19
- let mainFeatureId = streams[0].index;
20
- let mainAudioId = streams[0].index;
21
-
22
- for (const stream of streams) {
23
- if (stream.profile === 'Main') {
24
- mainFeatureId = stream.index;
25
- break;
26
- }
27
- }
28
-
29
- for (const stream of streams) {
30
- if (stream.codec_type === 'audio') {
31
- mainAudioId = stream.index;
32
- break;
33
- }
34
- }
35
-
36
- (0, _ffmpeg.default)(video.path) //.native()
37
- .format('mp4').videoCodec('libx264').audioCodec('aac').seekInput(offset).outputOptions(['-movflags', 'empty_moov', `-map 0:${mainFeatureId}`, `-map 0:${mainAudioId}`]).on('start', cmd => {
38
- console.log('--- ffmpeg start process ---');
39
- console.log(`cmd: ${cmd}`);
40
- }).on('end', () => {
41
- console.log('--- end processing ---');
42
- }).on('error', err => {
43
- console.log('--- ffmpeg meets error ---');
44
- console.log(err);
45
- }).pipe(res, {
46
- end: true
47
- });
48
- }
49
-
50
- }
51
-
52
- exports.default = _default;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _ffmpeg = _interopRequireDefault(require("../../ffmpeg"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class _default {
13
- static async RemuxSteamer(oblecto, video, offset, req, res) {
14
- let process = (0, _ffmpeg.default)(video.path) //.native()
15
- .format('mp4').videoCodec('copy').audioCodec('aac').seekInput(offset).inputOptions(['-noaccurate_seek']).outputOptions(['-movflags', 'empty_moov', '-copyts']).on('start', cmd => {
16
- console.log('--- ffmpeg start process ---');
17
- console.log(`cmd: ${cmd}`);
18
- }).on('end', () => {
19
- console.log('--- end processing ---');
20
- });
21
- process.on('error', err => {
22
- console.log('--- ffmpeg meets error ---');
23
- console.log(err);
24
- process.kill();
25
- });
26
- process.pipe(res, {
27
- end: true
28
- });
29
- }
30
-
31
- }
32
-
33
- exports.default = _default;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _ffmpeg = _interopRequireDefault(require("../../ffmpeg"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class _default {
13
- static async TranscodeStreamer(oblecto, video, offset, req, res) {
14
- let process = (0, _ffmpeg.default)(video.path) //.native()
15
- .format('mp4').videoCodec('libx264').audioCodec('aac').seekInput(offset).inputOptions(['-noaccurate_seek']).outputOptions(['-movflags', 'empty_moov', '-copyts']).on('start', cmd => {
16
- console.log('--- ffmpeg start process ---');
17
- console.log(`cmd: ${cmd}`);
18
- }).on('end', () => {
19
- console.log('--- end processing ---');
20
- });
21
- process.on('error', err => {
22
- console.log('--- ffmpeg meets error ---');
23
- console.log(err);
24
- process.kill();
25
- });
26
- process.pipe(res, {
27
- end: true
28
- });
29
- }
30
-
31
- }
32
-
33
- exports.default = _default;