From 34a42822b2c2a2e5b9cc7e169ec28387bf4b10a7 Mon Sep 17 00:00:00 2001 From: grey Date: Sat, 9 Apr 2022 22:39:36 +0200 Subject: [PATCH] rebuilding some things --- database.sqlite | Bin 0 -> 20480 bytes index.js | 261 +--- package-lock.json | 2545 ++++++++++++++++++++++++++++++++++-- package.json | 5 + python/eanConverter.py | 66 +- schema.prisma | 24 + template/addToShelf.html | 10 +- template/movieDetails.html | 3 +- 8 files changed, 2620 insertions(+), 294 deletions(-) create mode 100644 database.sqlite create mode 100644 schema.prisma diff --git a/database.sqlite b/database.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..f474932bd56ebec57841972ceec330bd754b9791 GIT binary patch literal 20480 zcmeI3PiP}m7{HTu>!xYbt_$ue9{MauTiT|RzfG4FHf_=}m^ag=(?7{2olRcTnIx0$ z%!~Phi)0rCS=o~wJb6)BFI!fm3!)(2MHKWPD_-;_9@LW;{gSrPv~;&i6~`A~LTonM1^9QtzXSgE-SabW+$)W`N0kdU zxBRlJ?=4%W>#nWO=DOQ|zW1X?J%sns02)98XaEhM0W^RH&;S}h1A7KwJMqWGp&|Rt zajss?GlP{=h2l#Z6OHv^+eOz*JQ`M_Lkzvxkre)R|GuoQXvBo?W*GV z*T7Q_M?Gt={M2*jW6r&k!qj9iG|#xT!TF|jX=0+WMHq+ehC5v>z=fJ+)yVZk8vNY*~&(eN?A@sTRHBPAz**cASEM1%0*&njMPeGT{ALJX~BUEdj(H$rR(xBq7L=M3pXFIg}S-yguLrI?3L~B z-3cJ{1p-08e_pj91hUMu9(S^ndd{CzXqhSr4lBze%?N_5goW73>;|1nz{;A|X>C~p ziQdFYQeVwQtFYp(rROqiVRgAmLB1Txd1Ym(O>QtG2(49jxdXUg*yVok<*)DpfItp~ zLjN#3&8o%6k5xI6tx+XepmUT<3M_t25R$rBiLHp$L}7_1^)$q3v`qC}h1M1TeILF~ z%M!F9>FLAqMLXcH?BaiO-wjJKG!^trh2~1CnSr;4MT+Z$!)lyU^J=9^mWz2e@iwPo z^5}6a=~R%Ev>??)PQA1F#G)W1YSD6RB`P$=A}L{Saz(5`n1JqVW&cn||-M(}8t4j{sPCmf@mCy#ozz`1 { db.run(initalTableSQL); @@ -38,122 +28,25 @@ if (!fs.existsSync("database.sqllite")) { }); } db.close(); -var db = new sqlite3.Database("database.sqllite"); +var db = new sqlite3.Database("database.sqlite"); var config = new Config('key.cfg'); -async function doesMovieExistInDatabase(imdbID) { - console.warn(imdbID); - db.all( - "SELECT * FROM movieInfo WHERE movieID='" + imdbID + "'", - function (err, rows) { - console.log("!!!" + rows); - if (rows == undefined) { - console.log(false); - return false; - } else { - console.log(true); - return true; - } - } - ); -} - -function getBufferdResponse(type, imdbID) { - // Cover image - if (type == 1) { - db.all( - "SELECT * FROM apiChache WHERE imdbID=" + imdbID, - function (err, rows) { - // Okay, there is no result, lets ask the real api - if (rows == undefined) { - console.log("No chache"); - var res = requestSync( - "GET", - "https://imdb-api.com/en/API/Posters//" + imdbID, - {} - ); - const jsonParsed = JSON.parse(res.body); - // Well frick, api limit reached - if (jsonParsed.errorMessage.includes("Maximum usage")) { - console.warn("API limit reached!"); - - return "https://tse2.mm.bing.net/th?id=OIP.SW4X5yWbxOMofUFxMwSTbAHaJQ&pid=Api"; // Return "No cover image" - console.log("unreachable"); - } else { - // Cool, we got an response - posterUrl = - "https://tse2.mm.bing.net/th?id=OIP.SW4X5yWbxOMofUFxMwSTbAHaJQ&pid=Api"; // Just a fallback - if (jsonParsed.posters[0] != undefined) { - posterUrl = jsonParsed.posters[0].link; - // Lets save the response - db.run( - "INSERT INTO apiChache(imdbID, url) VALUES(?, ?)", - [imdbID, posterUrl], - (err) => { - if (err) { - return console.log(err.message); - } - console.log("Saved url to chache"); - } - ); - } - // Return the url - return posterUrl; - } - } else { - // There is a result, lets return the result - return rows[0].url; - } - } - ); - } -} - app.use(express.static("static")); -app.get("/", function (req, res) { +app.get("/", async function handleIndex(req, res) { // https://imdb-api.com/de/API/Posters//[ID HERE] - var buildString = ""; - db.serialize(function () { - db.all("SELECT * FROM movieInfo ORDER BY movieTitel ASC;", function (err, rows) { - /* rows.forEach((row) => { - console.log(row.id + ": " + row.movieTitel); - //var posterLink = getBufferdResponse(1, row.movieID); - posterLink = row.posterUrl; - console.log(posterLink); - - /*var res = requestSync( - "GET", - "https://imdb-api.com/en/API/Posters//" + row.movieID, - {} - ); - const jsonParsed = JSON.parse(res.body); - console.log(jsonParsed); - posterLink = ""; - if (jsonParsed.posters[0] == undefined) { - posterLink = - "https://tse2.mm.bing.net/th?id=OIP.SW4X5yWbxOMofUFxMwSTbAHaJQ&pid=Api"; - } else { - posterLink = jsonParsed.posters[0].link; - }*/ - /*buildString += - "

' + - row.movieTitel + - "
"; - - });*/ - - console.log(rows) - const data = fs.readFileSync("template/bookshelf.html", "utf8"); - res.send(Eta.render(data, {jsonRespo: JSON.stringify(rows)})); - }); - }); + const rows = await prisma.movieInfo.findMany({ + orderBy: [ + { + movieTitel: 'asc', + } + ] + }) + // console.log(rows) + const data = fs.readFileSync("template/bookshelf.html", "utf8"); + res.send(Eta.render(data, { jsonRespo: JSON.stringify(rows) })); }); app.get("/add", function (req, res) { @@ -162,13 +55,13 @@ app.get("/add", function (req, res) { }); app.get("/delete", function (req, res) { - db.run(`DELETE FROM movieInfo WHERE id=?`, req.query["id"], function (err) { - if (err) { - return console.error(err.message); + prisma.movieInfo.delete({ + where: { + movieID: req.query.id } - console.log(`Row(s) deleted ${this.changes}`); - res.send("Done."); - }); + }) + console.log("Deleted entries") + res.send("Done."); }); app.get("/returnSaveResult", function (req, res) { @@ -187,48 +80,32 @@ app.get("/returnSaveResult", function (req, res) { ); }); -app.get("/showDetails", function (req, res) { +app.get("/showDetails", async function (req, res) { const data = fs.readFileSync("template/movieDetails.html", "utf8"); - console.log( req.query["id"]) - db.serialize(function () { - db.all( - "SELECT * FROM movieInfo WHERE movieID='" + req.query["id"] + "'", - function (err, rows) { - //+ req.params["id"] - row = rows[0]; - console.log(row); - - res.send( - Eta.render(data, { - internalID: row.id, - id: row.movieID, - cover: row.posterUrl, - titleByAPI: row.movieTitel, - }) - ); - } - ); - }); - /*responseJson = responseBuffer[req.query["reponseID"]]; - console.log(responseBuffer); + console.log(req.query["id"]) + const movie = await prisma.movieInfo.findFirst({ + where: { + movieID: req.query["id"] + } + }) res.send( Eta.render(data, { - id: responseJson.id, - cover: responseJson.coverImage, - titleByAPI: responseJson.titleByAPI, - ean: responseJson.ean, - isDisplay: true, - responseID: req.query["reponseID"] + internalID: movie.id, + id: movie.movieID, + cover: movie.posterUrl, + titleByAPI: movie.movieTitel, + type: typeIndex[movie.type], }) - );*/ + ) }); app.get("/apiCallBack", function (req, res) { //console.log(req.query); if (!responseBuffer.allBufferd.includes(req.query["ean"])) { request( - "http://localhost:9999/?ean=" + req.query["ean"], + eanConvAdress + "?ean=" + req.query["ean"], function (error, response, body) { + console.log(response, error, body) if (response.statusCode != 200) { console.log("OH NO"); res.send({ state: "ERR_EAN_CONV_NO_200" }); @@ -240,7 +117,7 @@ app.get("/apiCallBack", function (req, res) { searchTerm; request(reqString, function (error, response2, body) { jsonBody = JSON.parse(response2.body); - + console.log(jsonBody.length); if (jsonBody.errorMessage.includes("Maximum usage")) { res.send({ state: "ERR_IMDB_LIMIT_REACHED" }); @@ -289,49 +166,31 @@ app.get("/apiCallBack", function (req, res) { } }); -app.get("/save", function (req, res) { +app.get("/save", async function handleSave(req, res) { responseJson = responseBuffer[req.query["reponseID"]]; + const type = parseInt(req.query["type"]) || 0; - db.all( - "SELECT * FROM movieInfo WHERE movieID='" + responseJson.id + "'", - function (err, rows) { - console.log(rows); - if (rows == undefined || rows.length == 0) { - db.run( - "INSERT INTO movieInfo(id, movieID, movieTitel, place, type, posterUrl) VALUES(?, ?, ?, ?, ?, ?)", - [ - new Date().valueOf(), - responseJson.id, - responseJson.titleByAPI, - 0, - 0, - responseJson.coverImage, - ], - (err) => { - if (err) { - return console.log(err.message); - } - } - ); - res.send({ status: "OK" }); - } else { - res.send({ status: "ERR_ALREADY_EXIST" }); - } + const moveiTest = await prisma.movieInfo.findMany({ + where: { + movieID: responseJson.id } - ); + }) + if(moveiTest.length == 0){ + prisma.movieInfo.create({ + data: { + movieID: responseJson.id, + movieTitel: responseJson.titleByAPI, + place: 0, + type: type, + posterUrl: responseJson.coverImage + } + }) + res.send({ status: "OK" }); + }else{ + res.send({ status: "ERR_ALREADY_EXIST" }); + } }); -//var res = request('POST', 'https://ssl.ofdb.de/view.php?page=suchergebnis', { -// json: {'SText': '4030521376748', 'Kat':'EAN'}, -//}); - -//var temp2 = String(res.getBody('utf8')) -//temp = //temp.replace("