diff --git a/package.json b/package.json index 4cdcd397c..ba9a36d90 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "koa-qs": "3.0.0", "koa-router": "14.0.0", "lodash": "4.17.21", - "mongoose": "^8.4.0", + "mongoose": "^9.0.2", "moviedb-promise": "4.0.7", "object-mapper": "6.2.0", "pm2": "^6.0.13", diff --git a/src/models/MediaMetadata.ts b/src/models/MediaMetadata.ts index 5763948d0..d696df4bc 100644 --- a/src/models/MediaMetadata.ts +++ b/src/models/MediaMetadata.ts @@ -117,11 +117,10 @@ MediaMetadataSchema.index({ episode: 1, season: 1, searchMatches: 1 }); MediaMetadataSchema.index({ episode: 1, season: 1, searchMatches: 1, year: 1 }); MediaMetadataSchema.index({ searchMatches: 1, year: 1 }); -MediaMetadataSchema.pre('save', function(next) { +MediaMetadataSchema.pre('save', function() { if (this.title && this.title.startsWith('Episode #')) { this.title = undefined; } - next(); }); MediaMetadataSchema.virtual('imdburl').get(function() { diff --git a/src/models/SeriesMetadata.ts b/src/models/SeriesMetadata.ts index 3266977f0..89637fab9 100644 --- a/src/models/SeriesMetadata.ts +++ b/src/models/SeriesMetadata.ts @@ -14,6 +14,7 @@ export interface SeriesMetadataInterface { externalIDs?: TvExternalIdsResponse; genres: Array; homepage?: string; + id: string; images?: TvImagesResponse; imdbID?: string; inProduction?: boolean; diff --git a/src/services/external-api-helper.ts b/src/services/external-api-helper.ts index a2b9e879e..8e77b03e4 100644 --- a/src/services/external-api-helper.ts +++ b/src/services/external-api-helper.ts @@ -1,7 +1,7 @@ import { jaroWinkler } from '@skyra/jaro-winkler'; import * as episodeParser from 'episode-parser'; import * as _ from 'lodash'; -import { FlattenMaps, Types } from 'mongoose'; +import { FlattenMaps } from 'mongoose'; import { Episode, EpisodeRequest, ExternalId, SearchMovieRequest, SearchTvRequest, SimpleEpisode, TvExternalIdsResponse, TvResult } from 'moviedb-promise/dist/request-types'; import { tmdb } from './tmdb-api'; @@ -82,7 +82,7 @@ export const getSeriesMetadata = async( language?: string, year?: string, titleToCache?: string, -): Promise & { _id: Types.ObjectId; } | null> => { +): Promise | null> => { if (!imdbID && !title) { throw new Error('Either IMDb ID or title required'); } @@ -169,7 +169,7 @@ export const getSeriesMetadata = async( // Also cache the result for the title that the client sent, if this is an automatic re-attempt with an appended year (see below) if (titleToCache) { return await SeriesMetadata.findOneAndUpdate( - { _id: seriesMetadata._id }, + { _id: seriesMetadata.id }, { $addToSet: { searchMatches: titleToCache } }, { new: true, lean: true }, ).exec(); diff --git a/yarn.lock b/yarn.lock index e18c6a77a..78ff2632e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1567,15 +1567,6 @@ __metadata: languageName: node linkType: hard -"@types/whatwg-url@npm:^11.0.2": - version: 11.0.5 - resolution: "@types/whatwg-url@npm:11.0.5" - dependencies: - "@types/webidl-conversions": "npm:*" - checksum: 10/23a0c45aff51817807b473a6adb181d6e3bb0d27dde54e84883d5d5bc93358e95204d2188e7ff7fdc2cdaf157e97e1188ef0a22ec79228da300fc30d4a05b56a - languageName: node - linkType: hard - "@types/whatwg-url@npm:^13.0.0": version: 13.0.0 resolution: "@types/whatwg-url@npm:13.0.0" @@ -2291,13 +2282,6 @@ __metadata: languageName: node linkType: hard -"bson@npm:^6.10.4": - version: 6.10.4 - resolution: "bson@npm:6.10.4" - checksum: 10/8a79a452219a13898358a5abc93e32bc3805236334f962661da121ce15bd5cade27718ba3310ee2a143ff508489b08467eed172ecb2a658cb8d2e94fdb76b215 - languageName: node - linkType: hard - "bson@npm:^7.0.0": version: 7.0.0 resolution: "bson@npm:7.0.0" @@ -2654,7 +2638,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.x, debug@npm:^4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.1": +"debug@npm:4, debug@npm:^4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.1": version: 4.4.1 resolution: "debug@npm:4.4.1" dependencies: @@ -4496,10 +4480,10 @@ __metadata: languageName: node linkType: hard -"kareem@npm:2.6.3": - version: 2.6.3 - resolution: "kareem@npm:2.6.3" - checksum: 10/8c2a2795b9b8537ad592d30e6a607e7db737c7401d4c178fa4f2984e7bb7444d0f185570ae0132633aeef8b3eb27d1b5fded07921661738a5723681eb6d246b4 +"kareem@npm:3.0.0": + version: 3.0.0 + resolution: "kareem@npm:3.0.0" + checksum: 10/14fa3cf0955ef9ad6dc8e6b6c52ea926b81dea6cc9b3021823684ec34a9419931b83a449117afb85c4787836a1d634a78e8f66510510d798eba31ac6902cf9db languageName: node linkType: hard @@ -4971,16 +4955,6 @@ __metadata: languageName: node linkType: hard -"mongodb-connection-string-url@npm:^3.0.2": - version: 3.0.2 - resolution: "mongodb-connection-string-url@npm:3.0.2" - dependencies: - "@types/whatwg-url": "npm:^11.0.2" - whatwg-url: "npm:^14.1.0 || ^13.0.0" - checksum: 10/99ac939a67cc963b90cfe70a8e45250a8386c531be7d22ffa5d1f3e5dd2406b149fb823b91ac161e4a4a29dfac754b49bca8f6dd786cfc66ae0ca80db5f5f23d - languageName: node - linkType: hard - "mongodb-connection-string-url@npm:^7.0.0": version: 7.0.0 resolution: "mongodb-connection-string-url@npm:7.0.0" @@ -5021,7 +4995,7 @@ __metadata: languageName: node linkType: hard -"mongodb@npm:^7.0.0": +"mongodb@npm:^7.0.0, mongodb@npm:~7.0": version: 7.0.0 resolution: "mongodb@npm:7.0.0" dependencies: @@ -5055,52 +5029,17 @@ __metadata: languageName: node linkType: hard -"mongodb@npm:~6.20.0": - version: 6.20.0 - resolution: "mongodb@npm:6.20.0" +"mongoose@npm:^9.0.2": + version: 9.0.2 + resolution: "mongoose@npm:9.0.2" dependencies: - "@mongodb-js/saslprep": "npm:^1.3.0" - bson: "npm:^6.10.4" - mongodb-connection-string-url: "npm:^3.0.2" - peerDependencies: - "@aws-sdk/credential-providers": ^3.188.0 - "@mongodb-js/zstd": ^1.1.0 || ^2.0.0 - gcp-metadata: ^5.2.0 - kerberos: ^2.0.1 - mongodb-client-encryption: ">=6.0.0 <7" - snappy: ^7.3.2 - socks: ^2.7.1 - peerDependenciesMeta: - "@aws-sdk/credential-providers": - optional: true - "@mongodb-js/zstd": - optional: true - gcp-metadata: - optional: true - kerberos: - optional: true - mongodb-client-encryption: - optional: true - snappy: - optional: true - socks: - optional: true - checksum: 10/2718cdd4433bc3847f01a2ffae3a7e7ea8499035be4fccaf76278cbe3f915f2dd6c53135be0e3cc2cdd8e27a0b957da49e337d9b96b53e6287ec8971cea96b4b - languageName: node - linkType: hard - -"mongoose@npm:^8.4.0": - version: 8.20.4 - resolution: "mongoose@npm:8.20.4" - dependencies: - bson: "npm:^6.10.4" - kareem: "npm:2.6.3" - mongodb: "npm:~6.20.0" + kareem: "npm:3.0.0" + mongodb: "npm:~7.0" mpath: "npm:0.9.0" - mquery: "npm:5.0.0" + mquery: "npm:6.0.0" ms: "npm:2.1.3" sift: "npm:17.1.3" - checksum: 10/4b0c2275826bd95b592b0c33f44ac3842fc83e087cae4f8cc1bbbb09c129bed384743f914f8d959a2c7fa5dc5adc4ecda5728155ec2414033690e914aed56915 + checksum: 10/41a7b4655bcdaec408775ef1b501c1a9d0f304016c0010fb05f955b8de34c3d6a9c8db484b69fbd91a0baf4dceff15e68b2ff980d231054d17c0104c8e94be04 languageName: node linkType: hard @@ -5122,12 +5061,10 @@ __metadata: languageName: node linkType: hard -"mquery@npm:5.0.0": - version: 5.0.0 - resolution: "mquery@npm:5.0.0" - dependencies: - debug: "npm:4.x" - checksum: 10/36a792b2dc3fae92be0a7460151807fbbefe1299f8f286acd74968482e0dc042321c78ad76d6f975f0638370ff88df6e81db5efe17df5d53d2fb289cedbb0c23 +"mquery@npm:6.0.0": + version: 6.0.0 + resolution: "mquery@npm:6.0.0" + checksum: 10/79f0f8361f701e422fb7f179c0bf3d1c0a22d4da9893b6aa1e09e331455c18ad4c6023909c2ad9a6a23d9be0e634fef9790eaffe0c461543a1338e1d7b9a4a83 languageName: node linkType: hard @@ -6725,7 +6662,7 @@ __metadata: koa-router: "npm:14.0.0" lodash: "npm:4.17.21" mongodb-memory-server: "npm:^11.0.1" - mongoose: "npm:^8.4.0" + mongoose: "npm:^9.0.2" moviedb-promise: "npm:4.0.7" nodemon: "npm:3.1.11" object-mapper: "npm:6.2.0" @@ -6888,7 +6825,7 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^14.1.0, whatwg-url@npm:^14.1.0 || ^13.0.0": +"whatwg-url@npm:^14.1.0": version: 14.2.0 resolution: "whatwg-url@npm:14.2.0" dependencies: