diff --git a/services/library.service.ts b/services/library.service.ts index 919e314..3312587 100644 --- a/services/library.service.ts +++ b/services/library.service.ts @@ -239,8 +239,9 @@ export default class ImportService extends Service { Comic.findByIdAndUpdate( comicObjectId, { - sourcedMetadata: { - comicvine: matchedResult, + $set: { + "sourcedMetadata.comicvine": + matchedResult, }, }, { new: true }, @@ -347,7 +348,9 @@ export default class ImportService extends Service { $last: "$_id", }, count: { $sum: 1 }, - data: { $push: "$$ROOT.sourcedMetadata.comicvine.volumeInformation" }, + data: { + $push: "$$ROOT.sourcedMetadata.comicvine.volumeInformation", + }, }, }, { @@ -490,6 +493,16 @@ export default class ImportService extends Service { }, }, ], + issuesWithComicInfoXML: [ + { + $match: { + "sourcedMetadata.comicInfo" : { + $exists: true, + $gt: {$size: 0} + } + } + } + ], publisherWithMostComicsInLibrary: [ { $unwind: @@ -504,9 +517,7 @@ export default class ImportService extends Service { { $sort: { count: -1 } }, { $limit: 1 }, ], - mostPopulatCharacter: [ - - ] + mostPopulatCharacter: [], }, }, ]); @@ -517,7 +528,7 @@ export default class ImportService extends Service { }; }, }, - + flushDB: { rest: "POST /flushDB", params: {}, diff --git a/services/search.service.ts b/services/search.service.ts index 8ee333c..761989a 100644 --- a/services/search.service.ts +++ b/services/search.service.ts @@ -33,7 +33,7 @@ export default class SettingsService extends Service { timeout: 400000, async handler( ctx: Context<{ - queryObjects: [], + queryObjects: []; elasticSearchQueries: [ { elasticSearchQuery: object; @@ -54,11 +54,39 @@ export default class SettingsService extends Service { body.responses.forEach((match) => { console.log(match.hits.hits); - }) + }); return body.responses; }, }, + issue: { + rest: "POST /searchIssue", + params: {}, + handler: async ( + ctx: Context<{ + queryObject: { + volumeName: string; + issueNumber: string; + }; + }> + ) => { + console.log(ctx.params); + const result = await eSClient.search({ + index: "comics", + body: { + query: { + match: { + "rawFileDetails.name": + ctx.params.queryObject + .volumeName, + }, + }, + }, + }); + const { hits } = result.body; + return hits; + }, + }, }, methods: {}, }, diff --git a/utils/uncompression.utils.ts b/utils/uncompression.utils.ts index 038833a..57afd73 100644 --- a/utils/uncompression.utils.ts +++ b/utils/uncompression.utils.ts @@ -190,7 +190,9 @@ export const extractComicInfoXMLFromRar = async ( data: fileBuffer, }); - const extracted = extractor.extract({ files: ["ComicInfo.xml"] }); + const extracted = extractor.extract({ + files: ({ name }) => name.toLowerCase() === 'comicinfo.xml', + }); const files = [...extracted.files]; //load the files if (!isUndefined(files[0])) { console.log(