🔧 Refactoring
This commit is contained in:
129
package-lock.json
generated
129
package-lock.json
generated
@@ -13,8 +13,8 @@
|
|||||||
"@types/mkdirp": "^1.0.0",
|
"@types/mkdirp": "^1.0.0",
|
||||||
"@types/node": "^13.9.8",
|
"@types/node": "^13.9.8",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"axios-extensions": "^3.1.3",
|
|
||||||
"date-fns": "^2.27.0",
|
"date-fns": "^2.27.0",
|
||||||
|
"delay": "^5.0.0",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"imghash": "^0.0.9",
|
"imghash": "^0.0.9",
|
||||||
"ioredis": "^4.28.1",
|
"ioredis": "^4.28.1",
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"jest": "^25.1.0",
|
"jest": "^25.1.0",
|
||||||
"jest-cli": "^25.1.0",
|
"jest-cli": "^25.1.0",
|
||||||
"moleculer-repl": "^0.6.2",
|
"moleculer-repl": "^0.6.2",
|
||||||
"threetwo-ui-typings": "^1.0.11",
|
"threetwo-ui-typings": "^1.0.13",
|
||||||
"ts-jest": "^25.3.0",
|
"ts-jest": "^25.3.0",
|
||||||
"ts-node": "^8.8.1"
|
"ts-node": "^8.8.1"
|
||||||
},
|
},
|
||||||
@@ -1549,11 +1549,6 @@
|
|||||||
"integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==",
|
"integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/lru-cache": {
|
|
||||||
"version": "4.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-4.1.3.tgz",
|
|
||||||
"integrity": "sha512-QjCOmf5kYwekcsfEKhcEHMK8/SvgnneuSDXFERBuC/DPca2KJIO/gpChTsVb35BoWLBpEAJWz1GFVEArSdtKtw=="
|
|
||||||
},
|
|
||||||
"node_modules/@types/mkdirp": {
|
"node_modules/@types/mkdirp": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.2.tgz",
|
||||||
@@ -2041,33 +2036,6 @@
|
|||||||
"follow-redirects": "^1.14.0"
|
"follow-redirects": "^1.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/axios-extensions": {
|
|
||||||
"version": "3.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/axios-extensions/-/axios-extensions-3.1.3.tgz",
|
|
||||||
"integrity": "sha512-/OB9OcJLNOIx9pdW4m4/hFRvNo12wlX5BaprIzqpMaLR02I88Mr98/wW4QN9rhx0/yg9rM7i6Af/RpV4MyxXjA==",
|
|
||||||
"dependencies": {
|
|
||||||
"@types/lru-cache": "^4.1.1",
|
|
||||||
"lru-cache": "^5.1.1",
|
|
||||||
"tslib": "^1.9.0",
|
|
||||||
"util": "^0.11.1"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"axios": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/axios-extensions/node_modules/lru-cache": {
|
|
||||||
"version": "5.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
|
||||||
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
|
|
||||||
"dependencies": {
|
|
||||||
"yallist": "^3.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/axios-extensions/node_modules/yallist": {
|
|
||||||
"version": "3.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
|
||||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
|
|
||||||
},
|
|
||||||
"node_modules/babel-jest": {
|
"node_modules/babel-jest": {
|
||||||
"version": "25.5.1",
|
"version": "25.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
|
||||||
@@ -3137,6 +3105,17 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/delay": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/delayed-stream": {
|
"node_modules/delayed-stream": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
@@ -10864,9 +10843,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/threetwo-ui-typings": {
|
"node_modules/threetwo-ui-typings": {
|
||||||
"version": "1.0.11",
|
"version": "1.0.13",
|
||||||
"resolved": "https://registry.npmjs.org/threetwo-ui-typings/-/threetwo-ui-typings-1.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/threetwo-ui-typings/-/threetwo-ui-typings-1.0.13.tgz",
|
||||||
"integrity": "sha512-jRI1rUttoJDqsKFUPd4MM56NErftl2NSEo8MkeqllOtVf38Wy+wVvAT+OW6AoSguA5cLxSpOiA25c31FWjOvOw==",
|
"integrity": "sha512-AQiY8/hbp+TobBoehNTEoNco97AoiKYQjAANSFDR3pSD5jFn5qjLlKntvqdNF9Fg5tcS0ReYe0AjsvKshKpixQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"typescript": "^4.3.2"
|
"typescript": "^4.3.2"
|
||||||
@@ -11136,7 +11115,8 @@
|
|||||||
"node_modules/tslib": {
|
"node_modules/tslib": {
|
||||||
"version": "1.14.1",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/tsutils": {
|
"node_modules/tsutils": {
|
||||||
"version": "3.21.0",
|
"version": "3.21.0",
|
||||||
@@ -11365,25 +11345,12 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/util": {
|
|
||||||
"version": "0.11.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
|
|
||||||
"integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"inherits": "2.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/util-deprecate": {
|
"node_modules/util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/util/node_modules/inherits": {
|
|
||||||
"version": "2.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
|
||||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
|
||||||
},
|
|
||||||
"node_modules/uuid": {
|
"node_modules/uuid": {
|
||||||
"version": "3.4.0",
|
"version": "3.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||||
@@ -13083,11 +13050,6 @@
|
|||||||
"integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==",
|
"integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/lru-cache": {
|
|
||||||
"version": "4.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-4.1.3.tgz",
|
|
||||||
"integrity": "sha512-QjCOmf5kYwekcsfEKhcEHMK8/SvgnneuSDXFERBuC/DPca2KJIO/gpChTsVb35BoWLBpEAJWz1GFVEArSdtKtw=="
|
|
||||||
},
|
|
||||||
"@types/mkdirp": {
|
"@types/mkdirp": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.2.tgz",
|
||||||
@@ -13435,32 +13397,6 @@
|
|||||||
"follow-redirects": "^1.14.0"
|
"follow-redirects": "^1.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"axios-extensions": {
|
|
||||||
"version": "3.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/axios-extensions/-/axios-extensions-3.1.3.tgz",
|
|
||||||
"integrity": "sha512-/OB9OcJLNOIx9pdW4m4/hFRvNo12wlX5BaprIzqpMaLR02I88Mr98/wW4QN9rhx0/yg9rM7i6Af/RpV4MyxXjA==",
|
|
||||||
"requires": {
|
|
||||||
"@types/lru-cache": "^4.1.1",
|
|
||||||
"lru-cache": "^5.1.1",
|
|
||||||
"tslib": "^1.9.0",
|
|
||||||
"util": "^0.11.1"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"lru-cache": {
|
|
||||||
"version": "5.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
|
||||||
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
|
|
||||||
"requires": {
|
|
||||||
"yallist": "^3.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"yallist": {
|
|
||||||
"version": "3.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
|
||||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"babel-jest": {
|
"babel-jest": {
|
||||||
"version": "25.5.1",
|
"version": "25.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
|
||||||
@@ -14314,6 +14250,11 @@
|
|||||||
"isobject": "^3.0.1"
|
"isobject": "^3.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"delay": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw=="
|
||||||
|
},
|
||||||
"delayed-stream": {
|
"delayed-stream": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
@@ -20221,9 +20162,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"threetwo-ui-typings": {
|
"threetwo-ui-typings": {
|
||||||
"version": "1.0.11",
|
"version": "1.0.13",
|
||||||
"resolved": "https://registry.npmjs.org/threetwo-ui-typings/-/threetwo-ui-typings-1.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/threetwo-ui-typings/-/threetwo-ui-typings-1.0.13.tgz",
|
||||||
"integrity": "sha512-jRI1rUttoJDqsKFUPd4MM56NErftl2NSEo8MkeqllOtVf38Wy+wVvAT+OW6AoSguA5cLxSpOiA25c31FWjOvOw==",
|
"integrity": "sha512-AQiY8/hbp+TobBoehNTEoNco97AoiKYQjAANSFDR3pSD5jFn5qjLlKntvqdNF9Fg5tcS0ReYe0AjsvKshKpixQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"typescript": "^4.3.2"
|
"typescript": "^4.3.2"
|
||||||
@@ -20438,7 +20379,8 @@
|
|||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "1.14.1",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"tsutils": {
|
"tsutils": {
|
||||||
"version": "3.21.0",
|
"version": "3.21.0",
|
||||||
@@ -20617,21 +20559,6 @@
|
|||||||
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
|
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"util": {
|
|
||||||
"version": "0.11.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
|
|
||||||
"integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
|
|
||||||
"requires": {
|
|
||||||
"inherits": "2.0.3"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"inherits": {
|
|
||||||
"version": "2.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
|
||||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"util-deprecate": {
|
"util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
"jest": "^25.1.0",
|
"jest": "^25.1.0",
|
||||||
"jest-cli": "^25.1.0",
|
"jest-cli": "^25.1.0",
|
||||||
"moleculer-repl": "^0.6.2",
|
"moleculer-repl": "^0.6.2",
|
||||||
"threetwo-ui-typings": "^1.0.11",
|
"threetwo-ui-typings": "^1.0.13",
|
||||||
"ts-jest": "^25.3.0",
|
"ts-jest": "^25.3.0",
|
||||||
"ts-node": "^8.8.1"
|
"ts-node": "^8.8.1"
|
||||||
},
|
},
|
||||||
@@ -40,8 +40,8 @@
|
|||||||
"@types/mkdirp": "^1.0.0",
|
"@types/mkdirp": "^1.0.0",
|
||||||
"@types/node": "^13.9.8",
|
"@types/node": "^13.9.8",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"axios-extensions": "^3.1.3",
|
|
||||||
"date-fns": "^2.27.0",
|
"date-fns": "^2.27.0",
|
||||||
|
"delay": "^5.0.0",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"imghash": "^0.0.9",
|
"imghash": "^0.0.9",
|
||||||
"ioredis": "^4.28.1",
|
"ioredis": "^4.28.1",
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import { Service, ServiceBroker, Context } from "moleculer";
|
import { Service, ServiceBroker, Context } from "moleculer";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
import delay from "delay";
|
||||||
import { isNil, isUndefined } from "lodash";
|
import { isNil, isUndefined } from "lodash";
|
||||||
import { matchScorer, rankVolumes } from "../utils/searchmatchscorer.utils";
|
import { matchScorer, rankVolumes } from "../utils/searchmatchscorer.utils";
|
||||||
|
|
||||||
@@ -63,6 +64,43 @@ export default class ComicVineService extends Service {
|
|||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
getIssuesForSeries: {
|
||||||
|
rest: "POST /getIssuesForSeries",
|
||||||
|
params: {},
|
||||||
|
handler: async (
|
||||||
|
ctx: Context<{ comicObjectID: string }>
|
||||||
|
) => {
|
||||||
|
// 1. Query mongo to get the comic document by its _id
|
||||||
|
const comicBookDetails: any = await this.broker.call(
|
||||||
|
"library.getComicBookById",
|
||||||
|
{ id: ctx.params.comicObjectID }
|
||||||
|
);
|
||||||
|
|
||||||
|
// 2. Query CV and get metadata for them
|
||||||
|
const issuesPromises = await comicBookDetails.sourcedMetadata.comicvine.volumeInformation.issues.map(
|
||||||
|
async (issue: any, idx: any) => {
|
||||||
|
await delay(1000);
|
||||||
|
const metadata: any = await axios.request({
|
||||||
|
url: `${issue.api_detail_url}?api_key=${process.env.COMICVINE_API_KEY}`,
|
||||||
|
params: {
|
||||||
|
resources: "issues",
|
||||||
|
limit: "100",
|
||||||
|
format: "json",
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "ThreeTwo",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const issueMetadata = metadata.data.results;
|
||||||
|
|
||||||
|
// 3. Just return the issues
|
||||||
|
return issueMetadata;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return Promise.all(issuesPromises);
|
||||||
|
},
|
||||||
|
},
|
||||||
volumeBasedSearch: {
|
volumeBasedSearch: {
|
||||||
rest: "POST /volumeBasedSearch",
|
rest: "POST /volumeBasedSearch",
|
||||||
params: {},
|
params: {},
|
||||||
@@ -84,13 +122,13 @@ export default class ComicVineService extends Service {
|
|||||||
resources: string;
|
resources: string;
|
||||||
scorerConfiguration?: {
|
scorerConfiguration?: {
|
||||||
searchParams: {
|
searchParams: {
|
||||||
searchTerms: {
|
|
||||||
name: string;
|
name: string;
|
||||||
subtitle?: string;
|
subtitle?: string;
|
||||||
number: string;
|
number: string;
|
||||||
year: string;
|
year: string;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
rawFileDetails: object;
|
rawFileDetails: object;
|
||||||
}>
|
}>
|
||||||
@@ -98,7 +136,6 @@ export default class ComicVineService extends Service {
|
|||||||
console.log(
|
console.log(
|
||||||
"Searching against: ",
|
"Searching against: ",
|
||||||
ctx.params.scorerConfiguration.searchParams
|
ctx.params.scorerConfiguration.searchParams
|
||||||
.searchTerms
|
|
||||||
);
|
);
|
||||||
const results: any = [];
|
const results: any = [];
|
||||||
const volumes = await this.fetchVolumesFromCV(
|
const volumes = await this.fetchVolumesFromCV(
|
||||||
@@ -128,20 +165,18 @@ export default class ComicVineService extends Service {
|
|||||||
let coverDateFilter = "";
|
let coverDateFilter = "";
|
||||||
if (
|
if (
|
||||||
!isNil(
|
!isNil(
|
||||||
ctx.params.scorerConfiguration.searchParams
|
ctx.params.scorerConfiguration.searchParams.year
|
||||||
.searchTerms.year
|
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
const issueYear = parseInt(
|
const issueYear = parseInt(
|
||||||
ctx.params.scorerConfiguration.searchParams
|
ctx.params.scorerConfiguration.searchParams.year,
|
||||||
.searchTerms.year,
|
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
coverDateFilter = `cover_date:${
|
coverDateFilter = `cover_date:${
|
||||||
issueYear - 1
|
issueYear - 1
|
||||||
}-01-01|${issueYear + 1}-12-31`;
|
}-01-01|${issueYear + 1}-12-31`;
|
||||||
}
|
}
|
||||||
const filterString = `issue_number:${ctx.params.scorerConfiguration.searchParams.searchTerms.number},${volumeIdString},${coverDateFilter}`;
|
const filterString = `issue_number:${ctx.params.scorerConfiguration.searchParams.number},${volumeIdString},${coverDateFilter}`;
|
||||||
console.log(filterString);
|
console.log(filterString);
|
||||||
|
|
||||||
const issueMatches = await axios({
|
const issueMatches = await axios({
|
||||||
|
|||||||
@@ -90,11 +90,11 @@ export const rankVolumes = (volumes: any, scorerConfiguration: any) => {
|
|||||||
// 1. If the detected year of the issue falls in the range (end_year >= {detected year for issue} >= start_year )
|
// 1. If the detected year of the issue falls in the range (end_year >= {detected year for issue} >= start_year )
|
||||||
// 2. If there is a strong string comparison between the volume name and the issue name ??
|
// 2. If there is a strong string comparison between the volume name and the issue name ??
|
||||||
const issueNumber = parseInt(
|
const issueNumber = parseInt(
|
||||||
scorerConfiguration.searchParams.searchTerms.number,
|
scorerConfiguration.searchParams.number,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
const issueYear = parseISO(
|
const issueYear = parseISO(
|
||||||
scorerConfiguration.searchParams.searchTerms.year
|
scorerConfiguration.searchParams.year
|
||||||
);
|
);
|
||||||
const foo = volumes.map((volume: any, idx: number) => {
|
const foo = volumes.map((volume: any, idx: number) => {
|
||||||
let volumeMatchScore = 0;
|
let volumeMatchScore = 0;
|
||||||
@@ -108,14 +108,14 @@ export const rankVolumes = (volumes: any, scorerConfiguration: any) => {
|
|||||||
? parseInt(volume.last_issue.issue_number, 10)
|
? parseInt(volume.last_issue.issue_number, 10)
|
||||||
: null;
|
: null;
|
||||||
let issueNameMatchScore = stringSimilarity.compareTwoStrings(
|
let issueNameMatchScore = stringSimilarity.compareTwoStrings(
|
||||||
scorerConfiguration.searchParams.searchTerms.name,
|
scorerConfiguration.searchParams.name,
|
||||||
volume.name
|
volume.name
|
||||||
);
|
);
|
||||||
// 1. If there is a subtitle in the candidate volume's name, add it to the issueNameMatchScore
|
// 1. If there is a subtitle in the candidate volume's name, add it to the issueNameMatchScore
|
||||||
// If not, move on.
|
// If not, move on.
|
||||||
let subtitleMatchScore = 0;
|
let subtitleMatchScore = 0;
|
||||||
if(!isNil(scorerConfiguration.searchParams.searchTerms.subtitle)) {
|
if(!isNil(scorerConfiguration.searchParams.subtitle)) {
|
||||||
subtitleMatchScore = stringSimilarity.compareTwoStrings(scorerConfiguration.searchParams.searchTerms.subtitle, volume.name);
|
subtitleMatchScore = stringSimilarity.compareTwoStrings(scorerConfiguration.searchParams.subtitle, volume.name);
|
||||||
if(subtitleMatchScore > 0.1) {
|
if(subtitleMatchScore > 0.1) {
|
||||||
issueNameMatchScore += subtitleMatchScore;
|
issueNameMatchScore += subtitleMatchScore;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user