🔎 Support for downloads endpoint
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -124,6 +124,9 @@ export default class QueueService extends Service {
|
||||
source: {
|
||||
wanted: false,
|
||||
},
|
||||
directconnect: {
|
||||
downloads: [],
|
||||
}
|
||||
},
|
||||
});
|
||||
return {
|
||||
|
||||
@@ -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: {},
|
||||
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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"],
|
||||
|
||||
Reference in New Issue
Block a user