🔎 Support for downloads endpoint

This commit is contained in:
2022-07-24 22:20:03 -07:00
parent 13e420e39c
commit 3f37c43584
7 changed files with 49 additions and 35 deletions

3
.jshintrc Normal file
View File

@@ -0,0 +1,3 @@
{
"esversion": 10
}

View File

@@ -47,6 +47,12 @@ const LOCGSchema = mongoose.Schema({
pulls: Number,
potw: Number,
});
const DirectConnectBundleSchema = mongoose.Schema({
resultId: String,
bundleId: Number,
directoryIds: [String],
searchInstanceId: Number,
});
const ComicSchema = mongoose.Schema(
{
@@ -58,7 +64,7 @@ const ComicSchema = mongoose.Schema(
},
},
userAddedMetadata: {
tags: [],
tags: [String],
},
sourcedMetadata: {
comicInfo: { type: mongoose.Schema.Types.Mixed, default: {} },
@@ -99,7 +105,13 @@ const ComicSchema = mongoose.Schema(
name: String,
},
release: {},
directconnect: Array,
directconnect: {
downloads: {
type: [DirectConnectBundleSchema],
es_indexed: true,
default: [],
},
},
torrent: {
sourceApplication: String,
magnet: String,
@@ -120,6 +132,19 @@ ComicSchema.plugin(mongoosastic, {
ComicSchema.plugin(paginate);
const Comic = mongoose.model("Comic", ComicSchema);
// Comic.createMapping({
// analysis: {
// analyzer: {
// content: {
// type: "custom",
// tokenizer: "whitespace",
// },
// },
// },
// }).then((data) => {
// console.log("Mapping the index...")
// console.log(data)
// })
// const stream = Comic.synchronize();
// let count = 0;

View File

@@ -16,7 +16,7 @@ const Issue = mongoose.Schema({
});
const VolumeInformation = mongoose.Schema({
_id: false,
aliases: [],
aliases: [String],
api_detail_url: String,
characters: [Things],
concepts: [Things],
@@ -68,7 +68,7 @@ const ComicVineMetadataSchema = mongoose.Schema({
api_detail_url: String,
has_staff_review: { type: mongoose.Schema.Types.Mixed },
cover_date: String,
cover_date: Date,
date_added: String,
date_last_updated: String,
deck: String,

View File

@@ -124,6 +124,9 @@ export default class QueueService extends Service {
source: {
wanted: false,
},
directconnect: {
downloads: [],
}
},
});
return {

View File

@@ -186,6 +186,9 @@ export default class ImportService extends Service {
wanted: boolean;
name?: string;
};
directconnect: {
downloads: [];
};
};
}>
) {
@@ -313,7 +316,7 @@ export default class ImportService extends Service {
comicObjectId,
{
$push: {
"acquisition.directconnect": {
"acquisition.directconnect.downloads": {
resultId: ctx.params.resultId,
bundleId: ctx.params.bundleId,
directoryIds:
@@ -513,7 +516,7 @@ export default class ImportService extends Service {
});
},
},
libraryStatistics: {
rest: "GET /libraryStatistics",
params: {},

View File

@@ -9,7 +9,7 @@ import {
import { DbMixin } from "../mixins/db.mixin";
import Comic from "../models/comic.model";
import { flatten, isEmpty, isNil, isUndefined, map } from "lodash";
import { flatten, isEmpty, isNil, isUndefined, map, result } from "lodash";
import { eSClient } from "../models/comic.model";
const s = eSClient.helpers.msearch();
@@ -154,35 +154,15 @@ export default class SettingsService extends Service {
) => {
// params: array of bundle IDs
// construct the elasticsearch msearch query
let elasticsearchQuery = {};
if (!isNil(ctx.params.bundleIds)) {
ctx.params.bundleIds.map(async (id) => {
let foo = await eSClient.search({
index: "comics",
body: {
query: {
nested: {
path: "acquisition",
query: {
bool: {
must: [
{
match: {
"acquisition.directconnect":
id,
},
},
],
},
},
inner_hits: {},
// ignore_unmapped: true,
},
return await Comic.find({
"acquisition.directconnect.downloads": {
$elemMatch: {
bundleId: {
$in: ctx.params.bundleIds,
},
},
});
console.log(foo.body);
return foo.body;
},
});
}
},

View File

@@ -1,13 +1,13 @@
{
"compilerOptions": {
"module": "commonjs",
"module": "CommonJS",
"esModuleInterop": true,
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"pretty": true,
"target": "es6",
"target": "ES2022",
"outDir": "dist",
"skipLibCheck": true,
"lib": ["es5", "es6", "dom", "dom.iterable"],