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.
- package/Oblecto-Web/dist/web/index.html +24 -3
- package/Oblecto-Web/dist/web/static/index-C-JsqHHk.css +1 -0
- package/Oblecto-Web/dist/web/static/index-DSZgpOOu.js +576 -0
- package/README.md +43 -7
- package/dist/bin/oblecto.js +12468 -61
- package/dist/index.js +10676 -6
- package/package.json +67 -39
- package/res/AGENTS.md +8 -0
- package/res/config.json +29 -7
- package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css +0 -1
- package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css.map +0 -1
- package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js +0 -7150
- package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js +0 -154
- package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js +0 -32455
- package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js.map +0 -1
- package/dist/bin/oblecto.d.ts +0 -2
- package/dist/bin/scripts/adduser.d.ts +0 -2
- package/dist/bin/scripts/adduser.js +0 -50
- package/dist/bin/scripts/changepassword.d.ts +0 -2
- package/dist/bin/scripts/changepassword.js +0 -48
- package/dist/bin/scripts/deluser.d.ts +0 -2
- package/dist/bin/scripts/deluser.js +0 -34
- package/dist/bin/scripts/helpers/argumentError.d.ts +0 -2
- package/dist/bin/scripts/helpers/argumentError.js +0 -12
- package/dist/bin/scripts/helpers/generateAssetDirectories.d.ts +0 -1
- package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
- package/dist/bin/scripts/init/assets.d.ts +0 -2
- package/dist/bin/scripts/init/assets.js +0 -24
- package/dist/bin/scripts/init/database.d.ts +0 -2
- package/dist/bin/scripts/init/database.js +0 -21
- package/dist/bin/scripts/init/general.d.ts +0 -2
- package/dist/bin/scripts/init/general.js +0 -54
- package/dist/bin/scripts/init/index.d.ts +0 -2
- package/dist/bin/scripts/init/index.js +0 -26
- package/dist/bin/scripts/removepassword.d.ts +0 -2
- package/dist/bin/scripts/removepassword.js +0 -42
- package/dist/config.d.ts +0 -7
- package/dist/config.js +0 -45
- package/dist/core/graphical.d.ts +0 -17
- package/dist/core/graphical.js +0 -179
- package/dist/core/index.d.ts +0 -9
- package/dist/core/index.js +0 -24
- package/dist/index.d.ts +0 -1
- package/dist/lib/artwork/ArtworkScaler.d.ts +0 -5
- package/dist/lib/artwork/ArtworkScaler.js +0 -31
- package/dist/lib/artwork/ArtworkUtils.d.ts +0 -8
- package/dist/lib/artwork/ArtworkUtils.js +0 -35
- package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.d.ts +0 -8
- package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
- package/dist/lib/artwork/movies/MovieArtworkCollector.d.ts +0 -35
- package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
- package/dist/lib/artwork/movies/MovieArtworkDownloader.d.ts +0 -8
- package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
- package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.d.ts +0 -6
- package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
- package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.d.ts +0 -6
- package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
- package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.d.ts +0 -8
- package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
- package/dist/lib/artwork/series/SeriesArtworkCollector.d.ts +0 -37
- package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
- package/dist/lib/artwork/series/SeriesArtworkDownloader.d.ts +0 -8
- package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
- package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.d.ts +0 -6
- package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
- package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.d.ts +0 -16
- package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
- package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.d.ts +0 -16
- package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
- package/dist/lib/cleaners/FileCleaner.d.ts +0 -6
- package/dist/lib/cleaners/FileCleaner.js +0 -68
- package/dist/lib/cleaners/MovieCleaner.d.ts +0 -8
- package/dist/lib/cleaners/MovieCleaner.js +0 -48
- package/dist/lib/cleaners/SeriesCleaner.d.ts +0 -10
- package/dist/lib/cleaners/SeriesCleaner.js +0 -88
- package/dist/lib/common/AggregateIdentifier.d.ts +0 -9
- package/dist/lib/common/AggregateIdentifier.js +0 -57
- package/dist/lib/common/AggregateUpdateRetriever.d.ts +0 -5
- package/dist/lib/common/AggregateUpdateRetriever.js +0 -46
- package/dist/lib/downloader/index.d.ts +0 -6
- package/dist/lib/downloader/index.js +0 -83
- package/dist/lib/errors/DebugExtendableError.d.ts +0 -5
- package/dist/lib/errors/DebugExtendableError.js +0 -20
- package/dist/lib/errors/ExtendableError.d.ts +0 -3
- package/dist/lib/errors/ExtendableError.js +0 -22
- package/dist/lib/errors/FileExistsError.d.ts +0 -4
- package/dist/lib/errors/FileExistsError.js +0 -14
- package/dist/lib/errors/IdentificationError.d.ts +0 -4
- package/dist/lib/errors/IdentificationError.js +0 -14
- package/dist/lib/errors/InfoExtendableError.d.ts +0 -5
- package/dist/lib/errors/InfoExtendableError.js +0 -20
- package/dist/lib/errors/VideoAnalysisError.d.ts +0 -4
- package/dist/lib/errors/VideoAnalysisError.js +0 -14
- package/dist/lib/errors/VideoIdentificationError.d.ts +0 -4
- package/dist/lib/errors/VideoIdentificationError.js +0 -9
- package/dist/lib/errors/WarnExtendableError.d.ts +0 -5
- package/dist/lib/errors/WarnExtendableError.js +0 -20
- package/dist/lib/federation/client/FederationClient.d.ts +0 -31
- package/dist/lib/federation/client/FederationClient.js +0 -127
- package/dist/lib/federation/client/FederationClientController.d.ts +0 -9
- package/dist/lib/federation/client/FederationClientController.js +0 -45
- package/dist/lib/federation/client/FederationDataClient.d.ts +0 -11
- package/dist/lib/federation/client/FederationDataClient.js +0 -56
- package/dist/lib/federation/client/FederationMediaClient.d.ts +0 -12
- package/dist/lib/federation/client/FederationMediaClient.js +0 -70
- package/dist/lib/federation/server/FederationController.d.ts +0 -10
- package/dist/lib/federation/server/FederationController.js +0 -32
- package/dist/lib/federation/server/FederationDataServer.d.ts +0 -4
- package/dist/lib/federation/server/FederationDataServer.js +0 -22
- package/dist/lib/federation/server/FederationDataServerConnection.d.ts +0 -8
- package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
- package/dist/lib/federation/server/FederationMediaServer.d.ts +0 -4
- package/dist/lib/federation/server/FederationMediaServer.js +0 -22
- package/dist/lib/federation/server/FederationMediaServerConnection.d.ts +0 -11
- package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
- package/dist/lib/federation/server/FederationServer.d.ts +0 -11
- package/dist/lib/federation/server/FederationServer.js +0 -40
- package/dist/lib/federation/server/FederationServerConnection.d.ts +0 -18
- package/dist/lib/federation/server/FederationServerConnection.js +0 -97
- package/dist/lib/federationindexer/FederationEpisodeIndexer.d.ts +0 -5
- package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
- package/dist/lib/federationindexer/FederationMovieIndexer.d.ts +0 -5
- package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
- package/dist/lib/federationv2/federationController/index.js +0 -13
- package/dist/lib/indexers/MediaIdentifier.d.ts +0 -5
- package/dist/lib/indexers/MediaIdentifier.js +0 -15
- package/dist/lib/indexers/files/FileIndexer.d.ts +0 -10
- package/dist/lib/indexers/files/FileIndexer.js +0 -103
- package/dist/lib/indexers/movies/MovieCollector.d.ts +0 -25
- package/dist/lib/indexers/movies/MovieCollector.js +0 -65
- package/dist/lib/indexers/movies/MovieIdentifier.d.ts +0 -10
- package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
- package/dist/lib/indexers/movies/MovieIndexer.d.ts +0 -11
- package/dist/lib/indexers/movies/MovieIndexer.js +0 -64
- package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.d.ts +0 -4
- package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -52
- package/dist/lib/indexers/series/EpisodeIdentifier.d.ts +0 -12
- package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -25
- package/dist/lib/indexers/series/SeriesCollector.d.ts +0 -25
- package/dist/lib/indexers/series/SeriesCollector.js +0 -69
- package/dist/lib/indexers/series/SeriesIdentifer.d.ts +0 -11
- package/dist/lib/indexers/series/SeriesIdentifer.js +0 -24
- package/dist/lib/indexers/series/SeriesIndexer.d.ts +0 -11
- package/dist/lib/indexers/series/SeriesIndexer.js +0 -140
- package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.d.ts +0 -4
- package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -48
- package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.d.ts +0 -6
- package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -90
- package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.d.ts +0 -7
- package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -87
- package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.d.ts +0 -10
- package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
- package/dist/lib/oblecto/index.d.ts +0 -68
- package/dist/lib/oblecto/index.js +0 -125
- package/dist/lib/queue/index.d.ts +0 -32
- package/dist/lib/queue/index.js +0 -96
- package/dist/lib/realtime/RealtimeClient.d.ts +0 -27
- package/dist/lib/realtime/RealtimeClient.js +0 -137
- package/dist/lib/realtime/RealtimeController.d.ts +0 -12
- package/dist/lib/realtime/RealtimeController.js +0 -50
- package/dist/lib/redisQueue/index.js +0 -109
- package/dist/lib/sets/tv/MovieSetCollector.d.ts +0 -6
- package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
- package/dist/lib/streamSessions/StreamSession.d.ts +0 -41
- package/dist/lib/streamSessions/StreamSession.js +0 -146
- package/dist/lib/streamSessions/StreamSessionController.d.ts +0 -19
- package/dist/lib/streamSessions/StreamSessionController.js +0 -78
- package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.d.ts +0 -5
- package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -116
- package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.d.ts +0 -5
- package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -41
- package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.d.ts +0 -15
- package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -148
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.d.ts +0 -9
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.d.ts +0 -6
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -96
- package/dist/lib/updaters/files/FileUpdateCollector.d.ts +0 -20
- package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
- package/dist/lib/updaters/files/FileUpdater.d.ts +0 -49
- package/dist/lib/updaters/files/FileUpdater.js +0 -194
- package/dist/lib/updaters/movies/MovieUpdateCollector.d.ts +0 -20
- package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
- package/dist/lib/updaters/movies/MovieUpdater.d.ts +0 -12
- package/dist/lib/updaters/movies/MovieUpdater.js +0 -49
- package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.d.ts +0 -20
- package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -45
- package/dist/lib/updaters/series/SeriesUpdateCollector.d.ts +0 -37
- package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
- package/dist/lib/updaters/series/SeriesUpdater.d.ts +0 -22
- package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
- package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.d.ts +0 -11
- package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -70
- package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.d.ts +0 -21
- package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -68
- package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.d.ts +0 -5
- package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
- package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.d.ts +0 -21
- package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
- package/dist/models/episode.d.ts +0 -76
- package/dist/models/episode.js +0 -62
- package/dist/models/episodeFiles.d.ts +0 -5
- package/dist/models/episodeFiles.js +0 -14
- package/dist/models/file.d.ts +0 -26
- package/dist/models/file.js +0 -32
- package/dist/models/movie.d.ts +0 -30
- package/dist/models/movie.js +0 -36
- package/dist/models/movieFiles.d.ts +0 -5
- package/dist/models/movieFiles.js +0 -14
- package/dist/models/movieSet.d.ts +0 -20
- package/dist/models/movieSet.js +0 -26
- package/dist/models/series.d.ts +0 -59
- package/dist/models/series.js +0 -50
- package/dist/models/seriesSet.d.ts +0 -9
- package/dist/models/seriesSet.js +0 -17
- package/dist/models/stream.d.ts +0 -73
- package/dist/models/stream.js +0 -81
- package/dist/models/trackEpisode.d.ts +0 -9
- package/dist/models/trackEpisode.js +0 -17
- package/dist/models/trackMovie.d.ts +0 -9
- package/dist/models/trackMovie.js +0 -17
- package/dist/models/user.d.ts +0 -19
- package/dist/models/user.js +0 -26
- package/dist/submodules/REST/index.d.ts +0 -9
- package/dist/submodules/REST/index.js +0 -59
- package/dist/submodules/REST/middleware/auth.d.ts +0 -5
- package/dist/submodules/REST/middleware/auth.js +0 -28
- package/dist/submodules/REST/routes/auth.d.ts +0 -2
- package/dist/submodules/REST/routes/auth.js +0 -48
- package/dist/submodules/REST/routes/clients.d.ts +0 -2
- package/dist/submodules/REST/routes/clients.js +0 -54
- package/dist/submodules/REST/routes/episodes.d.ts +0 -2
- package/dist/submodules/REST/routes/episodes.js +0 -275
- package/dist/submodules/REST/routes/files.d.ts +0 -2
- package/dist/submodules/REST/routes/files.js +0 -53
- package/dist/submodules/REST/routes/index.d.ts +0 -2
- package/dist/submodules/REST/routes/index.js +0 -49
- package/dist/submodules/REST/routes/movies.d.ts +0 -2
- package/dist/submodules/REST/routes/movies.js +0 -303
- package/dist/submodules/REST/routes/sets.d.ts +0 -2
- package/dist/submodules/REST/routes/sets.js +0 -35
- package/dist/submodules/REST/routes/settings/index.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/index.js +0 -22
- package/dist/submodules/REST/routes/settings/maintenance.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
- package/dist/submodules/REST/routes/settings/misc.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/misc.js +0 -38
- package/dist/submodules/REST/routes/settings/sources.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/sources.js +0 -61
- package/dist/submodules/REST/routes/streaming.js +0 -91
- package/dist/submodules/REST/routes/tvshows.d.ts +0 -2
- package/dist/submodules/REST/routes/tvshows.js +0 -137
- package/dist/submodules/REST/routes/users.d.ts +0 -2
- package/dist/submodules/REST/routes/users.js +0 -107
- package/dist/submodules/REST/routes/web.d.ts +0 -2
- package/dist/submodules/REST/routes/web.js +0 -43
- package/dist/submodules/axiosTimeout.d.ts +0 -1
- package/dist/submodules/axiosTimeout.js +0 -31
- package/dist/submodules/database.d.ts +0 -1
- package/dist/submodules/database.js +0 -180
- package/dist/submodules/ffmpeg.d.ts +0 -1
- package/dist/submodules/ffmpeg.js +0 -23
- package/dist/submodules/ffprobe.d.ts +0 -1
- package/dist/submodules/ffprobe.js +0 -22
- package/dist/submodules/guessit.d.ts +0 -5
- package/dist/submodules/guessit.js +0 -48
- package/dist/submodules/logger/index.d.ts +0 -7
- package/dist/submodules/logger/index.js +0 -43
- package/dist/submodules/promiseTimeout.d.ts +0 -1
- package/dist/submodules/promiseTimeout.js +0 -28
- package/dist/submodules/zeroconf.js +0 -19
|
@@ -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,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
|
-
}
|