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.
- 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 +68 -36
- package/res/AGENTS.md +8 -0
- package/res/config.json +34 -7
- package/Oblecto-Web/LICENSE +0 -674
- package/Oblecto-Web/README.md +0 -20
- package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css +0 -1
- package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css.map +0 -1
- package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js +0 -6896
- package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js +0 -154
- package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js +0 -32455
- package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js.map +0 -1
- package/Oblecto-Web/package.json +0 -118
- package/dist/bin/cliManager.js +0 -102
- package/dist/bin/scripts/adduser.js +0 -50
- package/dist/bin/scripts/changepassword.js +0 -48
- package/dist/bin/scripts/deluser.js +0 -34
- package/dist/bin/scripts/helpers/argumentError.js +0 -12
- package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
- package/dist/bin/scripts/init/assets.js +0 -24
- package/dist/bin/scripts/init/database.js +0 -21
- package/dist/bin/scripts/init/general.js +0 -54
- package/dist/bin/scripts/init/index.js +0 -26
- package/dist/bin/scripts/removepassword.js +0 -42
- package/dist/config.js +0 -45
- package/dist/core/graphical.js +0 -179
- package/dist/core/index.js +0 -24
- package/dist/lib/artwork/ArtworkScaler.js +0 -31
- package/dist/lib/artwork/ArtworkUtils.js +0 -35
- package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
- package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
- package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
- package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
- package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
- package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
- package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
- package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
- package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
- package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
- package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
- package/dist/lib/cleaners/FileCleaner.js +0 -56
- package/dist/lib/cleaners/MovieCleaner.js +0 -42
- package/dist/lib/cleaners/SeriesCleaner.js +0 -70
- package/dist/lib/common/AggregateIdentifier.js +0 -53
- package/dist/lib/common/AggregateUpdateRetriever.js +0 -43
- package/dist/lib/downloader/index.js +0 -59
- package/dist/lib/errors/DebugExtendableError.js +0 -20
- package/dist/lib/errors/ExtendableError.js +0 -22
- package/dist/lib/errors/FileExistsError.js +0 -14
- package/dist/lib/errors/IdentificationError.js +0 -14
- package/dist/lib/errors/InfoExtendableError.js +0 -20
- package/dist/lib/errors/VideoAnalysisError.js +0 -14
- package/dist/lib/errors/VideoIdentificationError.js +0 -14
- package/dist/lib/errors/WarnExtendableError.js +0 -20
- package/dist/lib/federation/client/FederationClient.js +0 -127
- package/dist/lib/federation/client/FederationClientController.js +0 -45
- package/dist/lib/federation/client/FederationDataClient.js +0 -56
- package/dist/lib/federation/client/FederationMediaClient.js +0 -70
- package/dist/lib/federation/server/FederationController.js +0 -32
- package/dist/lib/federation/server/FederationDataServer.js +0 -22
- package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
- package/dist/lib/federation/server/FederationMediaServer.js +0 -22
- package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
- package/dist/lib/federation/server/FederationServer.js +0 -40
- package/dist/lib/federation/server/FederationServerConnection.js +0 -97
- package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
- package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
- package/dist/lib/indexers/MediaIdentifier.js +0 -15
- package/dist/lib/indexers/files/FileIndexer.js +0 -103
- package/dist/lib/indexers/files/cleaner.js +0 -43
- package/dist/lib/indexers/movies/AggregateMovieIdentifier.js +0 -45
- package/dist/lib/indexers/movies/MovieCollector.js +0 -65
- package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
- package/dist/lib/indexers/movies/MovieIndexer.js +0 -47
- package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -50
- package/dist/lib/indexers/series/AggregateEpisodeIdentifier.js +0 -46
- package/dist/lib/indexers/series/AggregateSeriesIdentifier.js +0 -46
- package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -24
- package/dist/lib/indexers/series/SeriesCollector.js +0 -65
- package/dist/lib/indexers/series/SeriesIdentifer.js +0 -23
- package/dist/lib/indexers/series/SeriesIndexer.js +0 -134
- package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -38
- package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -66
- package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -71
- package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
- package/dist/lib/oblecto/index.js +0 -125
- package/dist/lib/queue/index.js +0 -82
- package/dist/lib/realtime/RealtimeClient.js +0 -137
- package/dist/lib/realtime/RealtimeController.js +0 -50
- package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
- package/dist/lib/streamSessions/StreamSession.js +0 -148
- package/dist/lib/streamSessions/StreamSessionController.js +0 -78
- package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -105
- package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -47
- package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -126
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -65
- package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
- package/dist/lib/updaters/files/FileUpdater.js +0 -194
- package/dist/lib/updaters/movies/AggregateMovieUpdateRetriever.js +0 -44
- package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
- package/dist/lib/updaters/movies/MovieUpdater.js +0 -38
- package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -42
- package/dist/lib/updaters/series/AggregateEpisodeUpdateRetriever.js +0 -41
- package/dist/lib/updaters/series/AggregateSeriesUpdateRetriever.js +0 -44
- package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
- package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
- package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -66
- package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -63
- package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
- package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
- package/dist/models/episode.js +0 -62
- package/dist/models/episodeFiles.js +0 -14
- package/dist/models/file.js +0 -32
- package/dist/models/movie.js +0 -35
- package/dist/models/movieFiles.js +0 -14
- package/dist/models/movieSet.js +0 -26
- package/dist/models/series.js +0 -55
- package/dist/models/seriesSet.js +0 -17
- package/dist/models/stream.js +0 -81
- package/dist/models/trackEpisode.js +0 -17
- package/dist/models/trackEpisodes.js +0 -8
- package/dist/models/trackMovie.js +0 -17
- package/dist/models/trackMovies.js +0 -8
- package/dist/models/tvshow.js +0 -46
- package/dist/models/tvshowSet.js +0 -8
- package/dist/models/user.js +0 -26
- package/dist/submodules/REST/index.js +0 -59
- package/dist/submodules/REST/middleware/auth.js +0 -28
- package/dist/submodules/REST/routes/auth.js +0 -48
- package/dist/submodules/REST/routes/clients.js +0 -54
- package/dist/submodules/REST/routes/episodes.js +0 -275
- package/dist/submodules/REST/routes/files.js +0 -92
- package/dist/submodules/REST/routes/index.js +0 -48
- package/dist/submodules/REST/routes/movies.js +0 -305
- package/dist/submodules/REST/routes/sets.js +0 -35
- package/dist/submodules/REST/routes/settings/index.js +0 -22
- package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
- package/dist/submodules/REST/routes/settings/misc.js +0 -38
- package/dist/submodules/REST/routes/settings/sources.js +0 -61
- package/dist/submodules/REST/routes/tvshows.js +0 -140
- package/dist/submodules/REST/routes/users.js +0 -107
- package/dist/submodules/REST/routes/web.js +0 -43
- package/dist/submodules/axiosTimeout.js +0 -30
- package/dist/submodules/database.js +0 -180
- package/dist/submodules/ffmpeg.js +0 -23
- package/dist/submodules/ffprobe.js +0 -22
- package/dist/submodules/guessit.js +0 -48
- package/dist/submodules/handlers/DirectStreamer.js +0 -68
- package/dist/submodules/handlers/FFMPEGHandlers/DvdStreamer.js +0 -52
- package/dist/submodules/handlers/FFMPEGHandlers/RemuxStreamer.js +0 -33
- package/dist/submodules/handlers/FFMPEGHandlers/TranscodeStreamer.js +0 -33
- package/dist/submodules/handlers/FFMPEGStreamer.js +0 -56
- package/dist/submodules/handlers/FederationStreamer.js +0 -23
- package/dist/submodules/handlers/HLSSessionHandler.js +0 -141
- package/dist/submodules/logger/index.js +0 -43
- package/dist/submodules/promiseTimeout.js +0 -28
- package/dist/submodules/zeroconf.js +0 -19
- package/dist/transcoders/dvd.js +0 -26
- package/dist/transcoders/index.js +0 -42
package/dist/models/series.js
DELETED
|
@@ -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;
|
package/dist/models/seriesSet.js
DELETED
|
@@ -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;
|
package/dist/models/stream.js
DELETED
|
@@ -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,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;
|
package/dist/models/tvshow.js
DELETED
|
@@ -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
|
-
};
|
package/dist/models/tvshowSet.js
DELETED
package/dist/models/user.js
DELETED
|
@@ -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;
|