mirror of
https://github.com/captbaritone/webamp.git
synced 2026-01-23 18:25:30 +00:00
Support file uploads
This commit is contained in:
parent
0ff0c702a9
commit
9ebfa7b795
3 changed files with 47 additions and 15 deletions
|
|
@ -6,11 +6,18 @@ const iaItems = db.get("internetArchiveItems");
|
|||
const Skins = require("./data/skins");
|
||||
const port = 3001;
|
||||
const graphql = require("./graphql").default;
|
||||
const fileUpload = require("express-fileupload");
|
||||
const { addSkinFromBuffer } = require("./addSkin");
|
||||
|
||||
// TODO: Look into 766c4fad9088037ab4839b18292be8b1
|
||||
// Has huge number of filenames in info.json
|
||||
|
||||
app.set("json spaces", 2);
|
||||
app.use(
|
||||
fileUpload({
|
||||
limits: { fileSize: 50 * 1024 * 1024 },
|
||||
})
|
||||
);
|
||||
|
||||
app.get("/", async (req, res) => {
|
||||
res.send("Hello World!");
|
||||
|
|
@ -26,6 +33,21 @@ app.get("/items/:identifier", async (req, res) => {
|
|||
res.json(item);
|
||||
});
|
||||
|
||||
app.post("/skins/", async (req, res) => {
|
||||
const files = req.files;
|
||||
if (files == null) {
|
||||
res.status(500).send({ error: "No file supplied" });
|
||||
return;
|
||||
}
|
||||
const upload = req.files.skin;
|
||||
if (upload == null) {
|
||||
res.status(500).send({ error: "No file supplied" });
|
||||
return;
|
||||
}
|
||||
result = await addSkinFromBuffer(upload.data, upload.name, "Web API");
|
||||
res.json({ ...result, filename: upload.name });
|
||||
});
|
||||
|
||||
app.get("/skins/:md5", async (req, res) => {
|
||||
const { md5 } = req.params;
|
||||
const skin = await Skins.getSkinByMd5(md5);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
"aws-sdk": "^2.663.0",
|
||||
"discord.js": "^11.4.2",
|
||||
"express": "^4.17.1",
|
||||
"express-fileupload": "^1.1.7-alpha.3",
|
||||
"express-graphql": "^0.9.0",
|
||||
"graphql": "^14.5.8",
|
||||
"image-hash": "^3.5.1",
|
||||
|
|
@ -30,7 +31,7 @@
|
|||
},
|
||||
"prettier": {},
|
||||
"devDependencies": {
|
||||
"typescript": "^3.8.3",
|
||||
"prettier": "^2.0.5"
|
||||
"prettier": "^2.0.5",
|
||||
"typescript": "^3.8.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -137,7 +137,6 @@ asynckit@^0.4.0:
|
|||
aws-sdk@^2.663.0:
|
||||
version "2.663.0"
|
||||
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.663.0.tgz#003d8cc318635d1bf67deda586f5e5d583b7e384"
|
||||
integrity sha512-xPOszNOaSXTRs8VGXaMbhTKXdlq2TlDRfFRVEGxkZrtow87hEIVZGAUSUme2e3GHqHUDnySwcufrUpUPUizOKQ==
|
||||
dependencies:
|
||||
buffer "4.9.1"
|
||||
events "1.1.1"
|
||||
|
|
@ -291,6 +290,12 @@ buffer@^5.2.1:
|
|||
base64-js "^1.0.2"
|
||||
ieee754 "^1.1.4"
|
||||
|
||||
busboy@^0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b"
|
||||
dependencies:
|
||||
dicer "0.3.0"
|
||||
|
||||
bytes@3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
|
||||
|
|
@ -598,6 +603,12 @@ diagnostics@^1.1.1:
|
|||
enabled "1.0.x"
|
||||
kuler "1.0.x"
|
||||
|
||||
dicer@0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872"
|
||||
dependencies:
|
||||
streamsearch "0.1.2"
|
||||
|
||||
dir-glob@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
||||
|
|
@ -607,7 +618,6 @@ dir-glob@^3.0.1:
|
|||
discord.js@^11.4.2:
|
||||
version "11.6.4"
|
||||
resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-11.6.4.tgz#76bab98de08d7586ecde44c063ef310e6b9a2700"
|
||||
integrity sha512-cK6rH1PuGjSjpmEQbnpuTxq1Yv8B89SotyKUFcr4RhnsiZnfBfDOev7DD7v5vhtEyyj51NuMWFoRJzgy/m08Uw==
|
||||
dependencies:
|
||||
long "^4.0.0"
|
||||
prism-media "^0.0.4"
|
||||
|
|
@ -759,6 +769,12 @@ executable@^4.1.0:
|
|||
dependencies:
|
||||
pify "^2.2.0"
|
||||
|
||||
express-fileupload@^1.1.7-alpha.3:
|
||||
version "1.1.7-alpha.3"
|
||||
resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.1.7-alpha.3.tgz#7c09f42aeacb835a50979f241d7b2850d54ed92d"
|
||||
dependencies:
|
||||
busboy "^0.3.1"
|
||||
|
||||
express-graphql@^0.9.0:
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.9.0.tgz#00fd8552f866bac5c9a4612b2c4c82076107b3c2"
|
||||
|
|
@ -1470,7 +1486,6 @@ logform@^2.1.1:
|
|||
long@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
|
||||
integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
|
||||
|
||||
longest@^1.0.0:
|
||||
version "1.0.1"
|
||||
|
|
@ -1532,7 +1547,6 @@ map-obj@^1.0.0, map-obj@^1.0.1:
|
|||
md5@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
|
||||
integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
|
||||
dependencies:
|
||||
charenc "~0.0.1"
|
||||
crypt "~0.0.1"
|
||||
|
|
@ -1722,7 +1736,6 @@ nice-try@^1.0.4:
|
|||
node-fetch@^2.6.0:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
|
||||
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
|
||||
|
||||
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
|
||||
version "2.5.0"
|
||||
|
|
@ -1979,12 +1992,10 @@ prepend-http@^2.0.0:
|
|||
prettier@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4"
|
||||
integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
|
||||
|
||||
prism-media@^0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/prism-media/-/prism-media-0.0.4.tgz#df5ddc6463670c97ff0e9cbac3c3e0db18df326f"
|
||||
integrity sha512-dG2w7WtovUa4SiYTdWn9H8Bd4JNdei2djtkP/Bk9fXq81j5Q15ZPHYSwhUVvBRbp5zMkGtu0Yk62HuMcly0pRw==
|
||||
|
||||
process-nextick-args@~2.0.0:
|
||||
version "2.0.0"
|
||||
|
|
@ -2206,7 +2217,6 @@ reusify@^1.0.0:
|
|||
rgb-hex@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/rgb-hex/-/rgb-hex-3.0.0.tgz#eab0168cc1279563b18a14605315389142e2e487"
|
||||
integrity sha512-8h7ZcwxCBDKvchSWbWngJuSCqJGQ6nDuLLg+QcRyQDbX9jMWt+PpPeXAhSla0GOooEomk3lCprUpGkMdsLjKyg==
|
||||
|
||||
rimraf@^2.5.4, rimraf@^2.6.1, rimraf@~2.6.2:
|
||||
version "2.6.3"
|
||||
|
|
@ -2312,7 +2322,6 @@ shebang-regex@^1.0.0:
|
|||
shell-escape@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shell-escape/-/shell-escape-0.2.0.tgz#68fd025eb0490b4f567a027f0bf22480b5f84133"
|
||||
integrity sha1-aP0CXrBJC09WegJ/C/IkgLX4QTM=
|
||||
|
||||
signal-exit@^3.0.0:
|
||||
version "3.0.2"
|
||||
|
|
@ -2331,7 +2340,6 @@ slash@^3.0.0:
|
|||
snekfetch@^3.6.4:
|
||||
version "3.6.4"
|
||||
resolved "https://registry.yarnpkg.com/snekfetch/-/snekfetch-3.6.4.tgz#d13e80a616d892f3d38daae4289f4d258a645120"
|
||||
integrity sha512-NjxjITIj04Ffqid5lqr7XdgwM7X61c/Dns073Ly170bPQHLm6jkmelye/eglS++1nfTWktpP6Y2bFXjdPlQqdw==
|
||||
|
||||
sort-keys-length@^1.0.0:
|
||||
version "1.0.1"
|
||||
|
|
@ -2409,6 +2417,10 @@ stack-trace@0.0.x:
|
|||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
|
||||
|
||||
streamsearch@0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a"
|
||||
|
||||
strict-uri-encode@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
||||
|
|
@ -2566,7 +2578,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
|||
tweetnacl@^1.0.0:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
|
||||
integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
|
||||
|
||||
type-is@~1.6.17, type-is@~1.6.18:
|
||||
version "1.6.18"
|
||||
|
|
@ -2582,7 +2593,6 @@ typedarray@^0.0.6:
|
|||
typescript@^3.8.3:
|
||||
version "3.8.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
|
||||
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
|
||||
|
||||
unbzip2-stream@^1.0.9:
|
||||
version "1.3.3"
|
||||
|
|
@ -2705,7 +2715,6 @@ wrappy@1:
|
|||
ws@^6.0.0, ws@^6.1.0:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
|
||||
integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
|
||||
dependencies:
|
||||
async-limiter "~1.0.0"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue