📕 🎉 P99 with calibre's ebook-meta.
This commit is contained in:
202
package-lock.json
generated
202
package-lock.json
generated
@@ -33,7 +33,6 @@
|
||||
"socket.io-stream": "^0.5.3",
|
||||
"typescript": "^3.8.3",
|
||||
"unrar": "github:cnboker/node-unrar",
|
||||
"unzipper": "^0.10.11",
|
||||
"xml2js": "^0.4.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -2152,26 +2151,6 @@
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"node_modules/big-integer": {
|
||||
"version": "1.6.48",
|
||||
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
|
||||
"integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==",
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/binary": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
|
||||
"integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
|
||||
"dependencies": {
|
||||
"buffers": "~0.1.1",
|
||||
"chainsaw": "~0.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/binary-search-tree": {
|
||||
"version": "0.2.5",
|
||||
"resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz",
|
||||
@@ -2358,22 +2337,6 @@
|
||||
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/buffer-indexof-polyfill": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
|
||||
"integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/buffers": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
|
||||
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
|
||||
"engines": {
|
||||
"node": ">=0.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/busboy": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
|
||||
@@ -2467,17 +2430,6 @@
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/chainsaw": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
|
||||
"integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
|
||||
"dependencies": {
|
||||
"traverse": ">=0.3.0 <0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
@@ -3165,14 +3117,6 @@
|
||||
"webidl-conversions": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/duplexer2": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
|
||||
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
|
||||
"dependencies": {
|
||||
"readable-stream": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
@@ -4435,20 +4379,6 @@
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fstream": {
|
||||
"version": "1.0.12",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
|
||||
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"inherits": "~2.0.0",
|
||||
"mkdirp": ">=0.5 0",
|
||||
"rimraf": "2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/function-bind": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||
@@ -7323,11 +7253,6 @@
|
||||
"integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/listenercount": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
||||
"integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
|
||||
},
|
||||
"node_modules/load-json-file": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
|
||||
@@ -9778,6 +9703,7 @@
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
||||
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
@@ -10208,11 +10134,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
|
||||
},
|
||||
"node_modules/setprototypeof": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
|
||||
@@ -11407,14 +11328,6 @@
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/traverse": {
|
||||
"version": "0.3.9",
|
||||
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
|
||||
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-jest": {
|
||||
"version": "25.5.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz",
|
||||
@@ -11751,28 +11664,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unzipper": {
|
||||
"version": "0.10.11",
|
||||
"resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz",
|
||||
"integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==",
|
||||
"dependencies": {
|
||||
"big-integer": "^1.6.17",
|
||||
"binary": "~0.3.0",
|
||||
"bluebird": "~3.4.1",
|
||||
"buffer-indexof-polyfill": "~1.0.0",
|
||||
"duplexer2": "~0.1.4",
|
||||
"fstream": "^1.0.12",
|
||||
"graceful-fs": "^4.2.2",
|
||||
"listenercount": "~1.0.1",
|
||||
"readable-stream": "~2.3.6",
|
||||
"setimmediate": "~1.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/unzipper/node_modules/bluebird": {
|
||||
"version": "3.4.7",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
|
||||
"integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
|
||||
},
|
||||
"node_modules/uri-js": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
||||
@@ -13926,20 +13817,6 @@
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"big-integer": {
|
||||
"version": "1.6.48",
|
||||
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
|
||||
"integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
|
||||
},
|
||||
"binary": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
|
||||
"integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
|
||||
"requires": {
|
||||
"buffers": "~0.1.1",
|
||||
"chainsaw": "~0.1.0"
|
||||
}
|
||||
},
|
||||
"binary-search-tree": {
|
||||
"version": "0.2.5",
|
||||
"resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz",
|
||||
@@ -14091,16 +13968,6 @@
|
||||
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-indexof-polyfill": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
|
||||
"integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="
|
||||
},
|
||||
"buffers": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
|
||||
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s="
|
||||
},
|
||||
"busboy": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
|
||||
@@ -14173,14 +14040,6 @@
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"dev": true
|
||||
},
|
||||
"chainsaw": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
|
||||
"integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
|
||||
"requires": {
|
||||
"traverse": ">=0.3.0 <0.4"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
@@ -14728,14 +14587,6 @@
|
||||
"webidl-conversions": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"duplexer2": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
|
||||
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
|
||||
"requires": {
|
||||
"readable-stream": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
@@ -15777,17 +15628,6 @@
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"fstream": {
|
||||
"version": "1.0.12",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
|
||||
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"inherits": "~2.0.0",
|
||||
"mkdirp": ">=0.5 0",
|
||||
"rimraf": "2"
|
||||
}
|
||||
},
|
||||
"function-bind": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||
@@ -17971,11 +17811,6 @@
|
||||
"integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
|
||||
"dev": true
|
||||
},
|
||||
"listenercount": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
||||
"integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
|
||||
@@ -19789,6 +19624,7 @@
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
||||
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "^7.1.3"
|
||||
}
|
||||
@@ -20143,11 +19979,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
|
||||
},
|
||||
"setprototypeof": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
|
||||
@@ -21125,11 +20956,6 @@
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"traverse": {
|
||||
"version": "0.3.9",
|
||||
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
|
||||
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk="
|
||||
},
|
||||
"ts-jest": {
|
||||
"version": "25.5.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz",
|
||||
@@ -21388,30 +21214,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"unzipper": {
|
||||
"version": "0.10.11",
|
||||
"resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz",
|
||||
"integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==",
|
||||
"requires": {
|
||||
"big-integer": "^1.6.17",
|
||||
"binary": "~0.3.0",
|
||||
"bluebird": "~3.4.1",
|
||||
"buffer-indexof-polyfill": "~1.0.0",
|
||||
"duplexer2": "~0.1.4",
|
||||
"fstream": "^1.0.12",
|
||||
"graceful-fs": "^4.2.2",
|
||||
"listenercount": "~1.0.1",
|
||||
"readable-stream": "~2.3.6",
|
||||
"setimmediate": "~1.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"bluebird": {
|
||||
"version": "3.4.7",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
|
||||
"integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
|
||||
}
|
||||
}
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
||||
|
||||
@@ -58,7 +58,6 @@
|
||||
"socket.io-stream": "^0.5.3",
|
||||
"typescript": "^3.8.3",
|
||||
"unrar": "github:cnboker/node-unrar",
|
||||
"unzipper": "^0.10.11",
|
||||
"xml2js": "^0.4.23"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
import { Service, ServiceBroker, Context } from "moleculer";
|
||||
import ApiGateway from "moleculer-web";
|
||||
import {
|
||||
extractArchive,
|
||||
getCoversFromFile,
|
||||
} from "../utils/uncompression.utils";
|
||||
import { extractCoverFromFile } from "../utils/uncompression.utils";
|
||||
import { map } from "lodash";
|
||||
const IO = require("socket.io")();
|
||||
|
||||
@@ -115,57 +112,34 @@ export default class ApiService extends Service {
|
||||
", Params:",
|
||||
params
|
||||
);
|
||||
getCoversFromFile();
|
||||
|
||||
const { extractionOptions, walkedFolders } = params;
|
||||
// switch (extractionOptions.extractionMode) {
|
||||
// case "bulk":
|
||||
// map(walkedFolders, async (folder, idx) => {
|
||||
// // let comicBookCoverMetadata =
|
||||
// // await extractArchive(
|
||||
// // extractionOptions,
|
||||
// // folder
|
||||
// // );
|
||||
// // const dbImportResult =
|
||||
// // await this.broker.call(
|
||||
// // "import.rawImportToDB",
|
||||
// // {
|
||||
// // importStatus: {
|
||||
// // isImported: true,
|
||||
// // tagged: false,
|
||||
// // matchedResult: {
|
||||
// // score: "0",
|
||||
// // },
|
||||
// // },
|
||||
// // rawFileDetails:
|
||||
// // comicBookCoverMetadata,
|
||||
// // },
|
||||
// // {}
|
||||
// // );
|
||||
// //
|
||||
// // client.emit("comicBookCoverMetadata", {
|
||||
// // comicBookCoverMetadata,
|
||||
// // dbImportResult,
|
||||
// // });
|
||||
// });
|
||||
//
|
||||
// case "single":
|
||||
//
|
||||
// // return await extractArchive(
|
||||
// // extractionOptions,
|
||||
// // walkedFolders[0]
|
||||
// // );
|
||||
// default:
|
||||
// console.log(
|
||||
// "Unknown extraction mode selected."
|
||||
// );
|
||||
//
|
||||
// return {
|
||||
// message:
|
||||
// "Unknown extraction mode selected.",
|
||||
// errorCode: "90",
|
||||
// data: `${extractionOptions}`,
|
||||
// };
|
||||
// }
|
||||
map(walkedFolders, async (folder, idx) => {
|
||||
let comicBookCoverMetadata =
|
||||
await extractCoverFromFile(
|
||||
extractionOptions,
|
||||
folder
|
||||
);
|
||||
const dbImportResult = await this.broker.call(
|
||||
"import.rawImportToDB",
|
||||
{
|
||||
importStatus: {
|
||||
isImported: true,
|
||||
tagged: false,
|
||||
matchedResult: {
|
||||
score: "0",
|
||||
},
|
||||
},
|
||||
rawFileDetails: comicBookCoverMetadata,
|
||||
},
|
||||
{}
|
||||
);
|
||||
|
||||
client.emit("comicBookCoverMetadata", {
|
||||
comicBookCoverMetadata,
|
||||
dbImportResult,
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ export const isValidImageFileExtension = (fileName: string): boolean => {
|
||||
export const constructPaths = (
|
||||
extractionOptions: IExtractionOptions,
|
||||
walkedFolder: IFolderData
|
||||
) => ({
|
||||
) => ({
|
||||
targetPath:
|
||||
extractionOptions.targetExtractionFolder + "/" + walkedFolder.name,
|
||||
inputFilePath:
|
||||
|
||||
@@ -33,11 +33,8 @@ SOFTWARE.
|
||||
|
||||
import { createReadStream, createWriteStream, readFileSync } from "fs";
|
||||
const fse = require("fs-extra");
|
||||
|
||||
import { default as unzipper } from "unzipper";
|
||||
import _ from "lodash";
|
||||
import { each, isEmpty, map, flatten } from "lodash";
|
||||
import path from "path";
|
||||
import { each, isEmpty, map, flatten } from "lodash";
|
||||
|
||||
import {
|
||||
IExplodedPathResponse,
|
||||
@@ -62,29 +59,53 @@ const pathTo7zip = sevenBin.path7za;
|
||||
const unrarer = require("node-unrar-js");
|
||||
const { Calibre } = require("node-calibre");
|
||||
|
||||
export const getCoversFromFile = async () => {
|
||||
try {
|
||||
const calibre = new Calibre({
|
||||
library: path.resolve("userdata/calibre-lib"),
|
||||
});
|
||||
|
||||
let result: string;
|
||||
result = await calibre.run(
|
||||
"ebook-meta",
|
||||
[
|
||||
path.resolve(
|
||||
"comics/A Hypothetical Lizard (2004)/Hypothetical_Lizard_T01.cbr"
|
||||
),
|
||||
],
|
||||
{
|
||||
getCover: path.resolve("userdata/covers/shoo/o.jpg"),
|
||||
export const extractCoverFromFile = async (
|
||||
extractionOptions: IExtractionOptions,
|
||||
walkedFolder: IFolderData
|
||||
): Promise<
|
||||
| IExtractedComicBookCoverFile
|
||||
| IExtractedComicBookCoverFile[]
|
||||
| IExtractComicBookCoverErrorResponse
|
||||
> => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
const constructedPaths = constructPaths(extractionOptions, walkedFolder);
|
||||
console.log(constructedPaths);
|
||||
const calibre = new Calibre({
|
||||
library: path.resolve("./userdata/calibre-lib"),
|
||||
});
|
||||
// create directory
|
||||
const directoryOptions = {
|
||||
mode: 0o2775,
|
||||
};
|
||||
|
||||
try {
|
||||
await fse.ensureDir(constructedPaths.targetPath, directoryOptions);
|
||||
logger.info(`${constructedPaths.targetPath} was created.`);
|
||||
} catch (error) {
|
||||
logger.error(`${error}: Couldn't create directory.`);
|
||||
}
|
||||
);
|
||||
console.log("AJSDASDLASDASDASLK!@#!@#!@#!#@#!@#!@", result);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
let result: string;
|
||||
result = await calibre.run(
|
||||
"ebook-meta",
|
||||
[path.resolve(constructedPaths.inputFilePath)],
|
||||
{
|
||||
getCover: path.resolve(constructedPaths.targetPath + "/cover.jpg"),
|
||||
}
|
||||
);
|
||||
console.log("AJSDASDLASDASDASLK!@#!@#!@#!#@#!@#!@", result);
|
||||
resolve({
|
||||
name: "cover.jpg",
|
||||
path: constructedPaths.targetPath,
|
||||
fileSize: 0,
|
||||
containedIn: walkedFolder.containedIn,
|
||||
});
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const unzip = async (
|
||||
extractionOptions: IExtractionOptions,
|
||||
walkedFolder: IFolderData
|
||||
@@ -118,7 +139,6 @@ export const unzip = async (
|
||||
});
|
||||
|
||||
listStream.on("data", (data) => {
|
||||
// set firstImg to the first result
|
||||
if (!firstImg) firstImg = data;
|
||||
});
|
||||
listStream.on("end", () => {
|
||||
@@ -227,61 +247,3 @@ export const unrar = async (
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
export const extractArchive = async (
|
||||
extractionOptions: IExtractionOptions,
|
||||
walkedFolder: IFolderData
|
||||
): Promise<
|
||||
| IExtractedComicBookCoverFile
|
||||
| IExtractedComicBookCoverFile[]
|
||||
| IExtractComicBookCoverErrorResponse
|
||||
> => {
|
||||
switch (walkedFolder.extension) {
|
||||
case ".cbz":
|
||||
return await unzip(extractionOptions, walkedFolder);
|
||||
case ".cbr":
|
||||
return await unrar(extractionOptions, walkedFolder);
|
||||
default:
|
||||
return {
|
||||
message: "File format not supported, yet.",
|
||||
errorCode: "90",
|
||||
data: `${extractionOptions}`,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
export const getCovers = async (
|
||||
options: IExtractionOptions,
|
||||
walkedFolders: IFolderData[]
|
||||
): Promise<
|
||||
| IExtractedComicBookCoverFile
|
||||
| IExtractComicBookCoverErrorResponse
|
||||
| IExtractedComicBookCoverFile[]
|
||||
| (
|
||||
| IExtractedComicBookCoverFile
|
||||
| IExtractComicBookCoverErrorResponse
|
||||
| IExtractedComicBookCoverFile[]
|
||||
)[]
|
||||
| IExtractComicBookCoverErrorResponse
|
||||
> => {
|
||||
switch (options.extractionMode) {
|
||||
case "bulk":
|
||||
console.log("asdas BULK");
|
||||
const extractedDataPromises = map(
|
||||
walkedFolders,
|
||||
async (folder) => await extractArchive(options, folder)
|
||||
);
|
||||
return Promise.all(extractedDataPromises).then((data) =>
|
||||
_.flatten(data)
|
||||
);
|
||||
case "single":
|
||||
return await extractArchive(options, walkedFolders[0]);
|
||||
default:
|
||||
logger.error("Unknown extraction mode selected.");
|
||||
return {
|
||||
message: "Unknown extraction mode selected.",
|
||||
errorCode: "90",
|
||||
data: `${options}`,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
93
yarn.lock
93
yarn.lock
@@ -1117,11 +1117,6 @@
|
||||
dependencies:
|
||||
"tweetnacl" "^0.14.3"
|
||||
|
||||
"big-integer@^1.6.17":
|
||||
"integrity" "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
|
||||
"resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz"
|
||||
"version" "1.6.48"
|
||||
|
||||
"binary-search-tree@0.2.5":
|
||||
"integrity" "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q="
|
||||
"resolved" "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz"
|
||||
@@ -1129,14 +1124,6 @@
|
||||
dependencies:
|
||||
"underscore" "~1.4.4"
|
||||
|
||||
"binary@~0.3.0":
|
||||
"integrity" "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk="
|
||||
"resolved" "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz"
|
||||
"version" "0.3.0"
|
||||
dependencies:
|
||||
"buffers" "~0.1.1"
|
||||
"chainsaw" "~0.1.0"
|
||||
|
||||
"bl@^2.2.1":
|
||||
"integrity" "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g=="
|
||||
"resolved" "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz"
|
||||
@@ -1159,11 +1146,6 @@
|
||||
"resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
|
||||
"version" "3.7.2"
|
||||
|
||||
"bluebird@~3.4.1":
|
||||
"integrity" "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
|
||||
"resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz"
|
||||
"version" "3.4.7"
|
||||
|
||||
"bluebird@3.5.1":
|
||||
"integrity" "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
|
||||
"resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz"
|
||||
@@ -1263,11 +1245,6 @@
|
||||
"resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
|
||||
"version" "1.1.1"
|
||||
|
||||
"buffer-indexof-polyfill@~1.0.0":
|
||||
"integrity" "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="
|
||||
"resolved" "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz"
|
||||
"version" "1.0.2"
|
||||
|
||||
"buffer@^5.5.0":
|
||||
"integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="
|
||||
"resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
|
||||
@@ -1276,11 +1253,6 @@
|
||||
"base64-js" "^1.3.1"
|
||||
"ieee754" "^1.1.13"
|
||||
|
||||
"buffers@~0.1.1":
|
||||
"integrity" "sha1-skV5w77U1tOWru5tmorn9Ugqt7s="
|
||||
"resolved" "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz"
|
||||
"version" "0.1.1"
|
||||
|
||||
"busboy@^0.3.1":
|
||||
"integrity" "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw=="
|
||||
"resolved" "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz"
|
||||
@@ -1348,13 +1320,6 @@
|
||||
"resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
|
||||
"version" "0.12.0"
|
||||
|
||||
"chainsaw@~0.1.0":
|
||||
"integrity" "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg="
|
||||
"resolved" "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz"
|
||||
"version" "0.1.0"
|
||||
dependencies:
|
||||
"traverse" ">=0.3.0 <0.4"
|
||||
|
||||
"chalk@^2.0.0", "chalk@^2.0.1", "chalk@^2.1.0", "chalk@^2.4.2", "chalk@2.4.2":
|
||||
"integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
|
||||
"resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
|
||||
@@ -1878,13 +1843,6 @@
|
||||
dependencies:
|
||||
"webidl-conversions" "^4.0.2"
|
||||
|
||||
"duplexer2@~0.1.4":
|
||||
"integrity" "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME="
|
||||
"resolved" "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz"
|
||||
"version" "0.1.4"
|
||||
dependencies:
|
||||
"readable-stream" "^2.0.2"
|
||||
|
||||
"ecc-jsbn@~0.1.1":
|
||||
"integrity" "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk="
|
||||
"resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
|
||||
@@ -2552,16 +2510,6 @@
|
||||
"resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
|
||||
"version" "2.3.2"
|
||||
|
||||
"fstream@^1.0.12":
|
||||
"integrity" "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg=="
|
||||
"resolved" "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz"
|
||||
"version" "1.0.12"
|
||||
dependencies:
|
||||
"graceful-fs" "^4.1.2"
|
||||
"inherits" "~2.0.0"
|
||||
"mkdirp" ">=0.5 0"
|
||||
"rimraf" "2"
|
||||
|
||||
"function-bind@^1.1.1":
|
||||
"integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
||||
"resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
|
||||
@@ -2672,7 +2620,7 @@
|
||||
dependencies:
|
||||
"type-fest" "^0.8.1"
|
||||
|
||||
"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.2", "graceful-fs@^4.2.4":
|
||||
"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.4":
|
||||
"integrity" "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
|
||||
"resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz"
|
||||
"version" "4.2.6"
|
||||
@@ -2856,7 +2804,7 @@
|
||||
"once" "^1.3.0"
|
||||
"wrappy" "1"
|
||||
|
||||
"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.0", "inherits@~2.0.3", "inherits@2":
|
||||
"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@2":
|
||||
"integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
"resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
||||
"version" "2.0.4"
|
||||
@@ -3779,11 +3727,6 @@
|
||||
"resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz"
|
||||
"version" "1.1.6"
|
||||
|
||||
"listenercount@~1.0.1":
|
||||
"integrity" "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
|
||||
"resolved" "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"load-json-file@^2.0.0":
|
||||
"integrity" "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg="
|
||||
"resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz"
|
||||
@@ -4036,7 +3979,7 @@
|
||||
"resolved" "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz"
|
||||
"version" "0.5.3"
|
||||
|
||||
"mkdirp@^0.5.1", "mkdirp@>=0.5 0", "mkdirp@~0.5.1", "mkdirp@0.x":
|
||||
"mkdirp@^0.5.1", "mkdirp@~0.5.1", "mkdirp@0.x":
|
||||
"integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="
|
||||
"resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"
|
||||
"version" "0.5.5"
|
||||
@@ -4916,7 +4859,7 @@
|
||||
"parse-json" "^5.0.0"
|
||||
"type-fest" "^0.6.0"
|
||||
|
||||
"readable-stream@^2.0.2", "readable-stream@^2.0.6", "readable-stream@^2.3.5", "readable-stream@~2.3.6":
|
||||
"readable-stream@^2.0.6", "readable-stream@^2.3.5":
|
||||
"integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="
|
||||
"resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
|
||||
"version" "2.3.7"
|
||||
@@ -5140,7 +5083,7 @@
|
||||
dependencies:
|
||||
"glob" "^7.1.3"
|
||||
|
||||
"rimraf@2", "rimraf@2.6.3":
|
||||
"rimraf@2.6.3":
|
||||
"integrity" "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="
|
||||
"resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
|
||||
"version" "2.6.3"
|
||||
@@ -5306,11 +5249,6 @@
|
||||
"is-plain-object" "^2.0.3"
|
||||
"split-string" "^3.0.1"
|
||||
|
||||
"setimmediate@~1.0.4":
|
||||
"integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
|
||||
"resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
|
||||
"version" "1.0.5"
|
||||
|
||||
"setprototypeof@1.1.1":
|
||||
"integrity" "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
|
||||
"resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
|
||||
@@ -5971,11 +5909,6 @@
|
||||
dependencies:
|
||||
"punycode" "^2.1.0"
|
||||
|
||||
"traverse@>=0.3.0 <0.4":
|
||||
"integrity" "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk="
|
||||
"resolved" "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz"
|
||||
"version" "0.3.9"
|
||||
|
||||
"ts-jest@^25.3.0":
|
||||
"integrity" "sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw=="
|
||||
"resolved" "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz"
|
||||
@@ -6163,22 +6096,6 @@
|
||||
"has-value" "^0.3.1"
|
||||
"isobject" "^3.0.0"
|
||||
|
||||
"unzipper@^0.10.11":
|
||||
"integrity" "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw=="
|
||||
"resolved" "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz"
|
||||
"version" "0.10.11"
|
||||
dependencies:
|
||||
"big-integer" "^1.6.17"
|
||||
"binary" "~0.3.0"
|
||||
"bluebird" "~3.4.1"
|
||||
"buffer-indexof-polyfill" "~1.0.0"
|
||||
"duplexer2" "~0.1.4"
|
||||
"fstream" "^1.0.12"
|
||||
"graceful-fs" "^4.2.2"
|
||||
"listenercount" "~1.0.1"
|
||||
"readable-stream" "~2.3.6"
|
||||
"setimmediate" "~1.0.4"
|
||||
|
||||
"uri-js@^4.2.2":
|
||||
"integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
|
||||
"resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
|
||||
|
||||
Reference in New Issue
Block a user