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
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "oblecto",
3
- "version": "v0.2.8",
3
+ "version": "v0.3.1",
4
4
  "description": "Oblecto is a frontend agnostic media butler bringing high performance high quality media streaming to the home ",
5
5
  "author": "Robin <robin@mysunland.org>",
6
6
  "repository": "robinp7720/Oblecto",
7
+ "license": "AGPL-3.0-or-later",
7
8
  "private": false,
8
9
  "bin": {
9
10
  "oblecto": "./dist/bin/oblecto.js"
@@ -14,49 +15,80 @@
14
15
  "Oblecto-Web/dist/",
15
16
  "images/"
16
17
  ],
18
+ "type": "module",
17
19
  "scripts": {
18
- "build:web": "cd Oblecto-Web; npm install --unsafe-perms; npm run build; cd ..;",
19
- "build": "./node_modules/@babel/cli/bin/babel.js src -d dist",
20
- "prepare": "npm run build && npm run build:web",
21
- "start": "./node_modules/@babel/node/bin/babel-node.js src",
22
- "debug": "./node_modules/@babel/node/bin/babel-node.js src --inspect=0.0.0.0",
23
- "nodemon": "nodemon src --exec './node_modules/@babel/node/bin/babel-node.js src --inspect=0.0.0.0'",
24
- "test": "scripts/test.sh"
20
+ "build:web": "cd Oblecto-Web; npm install --unsafe-perms --legacy-peer-deps; npm run build; cd ..;",
21
+ "build": "npm run clean && npm run build:web && npx esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --packages=external && npx esbuild src/bin/oblecto.ts --bundle --platform=node --format=esm --outfile=dist/bin/oblecto.js --packages=external && chmod +x ./dist/bin/oblecto.js",
22
+ "clean": "rm -rf dist/",
23
+ "prepare": "npm run build",
24
+ "start": "node dist/index.js",
25
+ "dev": "tsx src/index.ts",
26
+ "oblecto": "node dist/bin/oblecto.js",
27
+ "oblecto:dev": "tsx src/bin/oblecto.ts",
28
+ "debug": "node --inspect=0.0.0.0 --loader tsx src/index.ts",
29
+ "test:mocha": "mocha --extension ts --require tsx tests/mocha",
30
+ "test:startup": "scripts/test.sh",
31
+ "test": "npm run test:mocha",
32
+ "lint": "eslint .",
33
+ "lint:fix": "eslint . --fix"
25
34
  },
26
35
  "dependencies": {
27
- "async": "^3.2.0",
28
- "axios": "^0.20.0",
29
- "bcrypt": "^5.0.0",
30
- "fastest-levenshtein": "^1.0.12",
31
- "fluent-ffmpeg": "^2.1.2",
32
- "guessit-exec": "0.0.1",
36
+ "async": "^3.2.6",
37
+ "axios": "^1.13.2",
38
+ "basic-ftp": "^5.0.5",
39
+ "bcrypt": "^6.0.0",
40
+ "cors": "^2.8.5",
41
+ "express": "^5.2.1",
42
+ "express-fileupload": "^1.5.2",
43
+ "fastest-levenshtein": "^1.0.16",
44
+ "fluent-ffmpeg": "^2.1.3",
45
+ "guessit-exec": "^0.0.1",
33
46
  "guessit-wrapper": "^1.0.1",
34
- "jsonwebtoken": "^8.5.1",
35
- "mime-types": "^2.1.27",
36
- "mkdirp": "^1.0.4",
37
- "moviedb-promise": "^3.1.2",
38
- "mysql2": "^2.2.5",
47
+ "jsonwebtoken": "^9.0.3",
48
+ "mime-types": "^3.0.2",
49
+ "mkdirp": "^3.0.1",
50
+ "moviedb-promise": "^4.0.7",
51
+ "mysql2": "^3.16.0",
39
52
  "neo-blessed": "^0.2.0",
40
53
  "node-rsa": "^1.1.1",
41
54
  "node-tvdb": "^4.1.0",
42
- "uuid": "^8.3.1",
43
- "recursive-readdir": "^2.2.2",
44
- "restify": "^8.5.1",
45
- "restify-cors-middleware": "^1.1.1",
46
- "restify-errors": "^8.0.2",
47
- "sequelize": "^6.3.5",
48
- "sharp": "^0.25.0",
49
- "socket.io": "^2.3.0",
50
- "sqlite3": "5.0.0",
51
- "which": "^1.3.1"
55
+ "primus": "^8.0.9",
56
+ "recursive-readdir": "^2.2.3",
57
+ "sequelize": "^6.37.7",
58
+ "sharp": "^0.34.5",
59
+ "socket.io": "^4.8.1",
60
+ "sqlite3": "^5.1.7",
61
+ "ssh2-sftp-client": "^12.0.1",
62
+ "uuid": "^13.0.0",
63
+ "which": "^6.0.0",
64
+ "winston": "^3.19.0"
52
65
  },
53
66
  "devDependencies": {
54
- "@babel/cli": "^7.11.6",
55
- "@babel/core": "^7.11.6",
56
- "@babel/node": "^7.10.5",
57
- "@babel/preset-env": "^7.11.5",
58
- "eslint": "^7.11.0",
59
- "jshint": "^2.12.0",
60
- "nodemon": "^2.0.5"
67
+ "@types/async": "^3.2.25",
68
+ "@types/bcrypt": "^5.0.1",
69
+ "@types/cors": "^2.8.19",
70
+ "@types/express": "^5.0.6",
71
+ "@types/express-fileupload": "^1.5.1",
72
+ "@types/fluent-ffmpeg": "^2.1.28",
73
+ "@types/jsonwebtoken": "^9.0.10",
74
+ "@types/mime-types": "^3.0.1",
75
+ "@types/mocha": "^10.0.10",
76
+ "@types/primus": "^7.3.9",
77
+ "@types/socket.io": "^3.0.2",
78
+ "@types/which": "^3.0.4",
79
+ "@typescript-eslint/eslint-plugin": "^8.50.0",
80
+ "@typescript-eslint/parser": "^8.50.0",
81
+ "chai": "^6.2.1",
82
+ "esbuild": "^0.27.2",
83
+ "eslint": "^9.39.2",
84
+ "eslint-plugin-jsdoc": "^61.5.0",
85
+ "expect.js": "^0.3.1",
86
+ "globals": "^16.5.0",
87
+ "mocha": "^11.7.5",
88
+ "nodemon": "^3.1.11",
89
+ "ts-node": "^10.9.2",
90
+ "tsx": "^4.21.0",
91
+ "typescript": "^5.9.3",
92
+ "typescript-eslint": "^8.50.0"
61
93
  }
62
94
  }
package/res/AGENTS.md ADDED
@@ -0,0 +1,8 @@
1
+ # Resources (res/)
2
+
3
+ What lives here
4
+ - `config.json` is the default configuration template used by `oblecto init`.
5
+
6
+ Notes
7
+ - Update this file only when changing default config values or schema.
8
+ - Keep keys aligned with `src/interfaces/config.ts`.
package/res/config.json CHANGED
@@ -52,6 +52,8 @@
52
52
  ]
53
53
  },
54
54
  "movies": {
55
+ "movieIdentifiers": ["tmdb"],
56
+ "movieUpdaters": ["tmdb"],
55
57
  "doReIndex": false,
56
58
  "indexBroken": false,
57
59
  "directories": [
@@ -79,12 +81,12 @@
79
81
  },
80
82
  "fileExtensions": {
81
83
  "video": [
82
- ".mp4",
83
- ".avi",
84
- ".iso",
85
- ".m4v",
86
- ".mkv",
87
- ".mk3d"
84
+ "mp4",
85
+ "avi",
86
+ "iso",
87
+ "m4v",
88
+ "mkv",
89
+ "mk3d"
88
90
  ]
89
91
  },
90
92
  "authentication": {
@@ -103,6 +105,9 @@
103
105
  "web": {
104
106
  "enabled": true
105
107
  },
108
+ "streaming": {
109
+ "defaultTargetLanguageCode": "eng"
110
+ },
106
111
  "federation": {
107
112
  "key": "/etc/oblecto/id_rsa",
108
113
  "dataPort": 9131,
@@ -121,5 +126,27 @@
121
126
  "key": "/etc/oblecto/keys/tria.pub"
122
127
  }
123
128
  }
124
- }
129
+ },
130
+ "seedboxImport": {
131
+ "concurrency": 1
132
+ },
133
+ "seedboxes": [
134
+ {
135
+ "name": "Main seedbox",
136
+ "storageDriver": "ftp",
137
+ "storageDriverOptions": {
138
+ "host": "",
139
+ "port": 21,
140
+ "username": "username",
141
+ "password": "password"
142
+ },
143
+ "mediaImport": {
144
+ "movieDirectory": "/downloads/finished/movie/",
145
+ "seriesDirectory": "/downloads/finished/series/"
146
+ },
147
+ "automaticImport": true,
148
+ "deleteOnImport": false,
149
+ "enabled": false
150
+ }
151
+ ]
125
152
  }