From 9257059fa7a8997fd70f97c348dd195db01eb355 Mon Sep 17 00:00:00 2001 From: Elijah Cohen Date: Thu, 28 Jan 2021 20:22:47 -0600 Subject: [PATCH 1/1] backend for comics project done --- comics.js | 38 ++++++++++++++++++++++++++++++++++++++ index.html | 12 ++++++++++++ negative.png | Bin 0 -> 21233 bytes node/index.js | 25 +++++++++++++++++++++++++ node/runner.sh | 9 +++++++++ 5 files changed, 84 insertions(+) create mode 100644 comics.js create mode 100644 index.html create mode 100644 negative.png create mode 100644 node/index.js create mode 100755 node/runner.sh diff --git a/comics.js b/comics.js new file mode 100644 index 0000000..ef7db7e --- /dev/null +++ b/comics.js @@ -0,0 +1,38 @@ + + +function onload() { + //imgtag = document.getElementById("image") + //imgtag.src = "negative.png" + //imgtag.src = "https://qwantz.com/comics/comic2-3900.png" + + + drawcomic("https://qwantz.com/comics/comic2-675.png") + + + num = window.location.search.substring(window.location.search.indexOf('=')+1) + getimageurl(num) +} + +function getimageurl(number) { + // takes the comic no (from the ?comic=<>) and gets the url we want + // returns a promise? + console.log(number) + fetch("https://qwantz.com/index.php?comic=" + number, {mode: "cors"}) +} + + +function drawcomic(imgurl) { + canvas = document.getElementById("canvas") + ctx = canvas.getContext('2d') + img = new Image() + mask = new Image() + mask.onload = function() { + ctx.drawImage(img,0,0) + ctx.drawImage(mask,0,0) + } + img.onload = function() { + mask.src = "negative.png" + } + img.src = imgurl + //img.src = "https://qwantz.com/comics/comic2-675.png" +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..03f0791 --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + Comics + + + + + + + diff --git a/negative.png b/negative.png new file mode 100644 index 0000000000000000000000000000000000000000..80cbc516e6642453633c6242f7cab69c03c13b87 GIT binary patch literal 21233 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
tKBgXN=F?1=0>kB;?SqSyZGF^^;5EC|Z4# zq(f(?YbA)<#wwlGxgp^_il;jtnjUCdLJwrIV2;aYHoFFDB>B~*ppkJ;#p8GV8}11T z2~eeqA%16C;M$gf$~$ltxVnq7!z)5_O@{CfkY_xFi&-8;$ix~qz2@nei`WVPUREFc z1%}ol>zUK%-JAIR6p5*-g?0elyt?v0%KO8))*o&8Wz@g6F9}i)r@JM^J()Mu!vvSO zS+N8B!lc%rUai}Aa^{goue0KGW_I7%vs#u?uOV(t;tJf4-zvO!gvA7#$4b_!t;;R@}3;jvpIGM(l5%)=Hgtlcv!=^b;s_+ImOgW?7sAPbNhROf4QyENnEQzxtCQ}?6ZyLz||`u z3M~h1lElc%D|oN9U{&0az+}ykvw!o2wG_tWhGlXUW4DfLEp(@aj;3Wiq?lXu`1mma|LW*jKEvN{h#1}+#u4j>wNy~^n13SYbRuo6$f%Wub0*z z_mh}GG+oJn&ah>nxf@w?`8&8lv)wk|l}~ns)b_U%$jJp+DAToJdit#*v5C(Kdb3VS z!d>w0q91WL)kI2S-DoiYTUWZ|RkCfs{(<^JoC-fo_osDSLJQ0f+&^fH?t)hLZ@U<6 z+Kt1(t3ei4sP-M`Ww(@94lK&YB}^3FZh#*p4XmxWsqukAZ7Wlt9RinJ^f<^Rt5ufw ze+d--QkA8oXHBleMD;&1zr3{Lg~sG%Oq(;8jnduZHtheMFVk)<{(k{Ts|p9g{F{dH ff7lF1CG!Lj=s{_R+qR-PGJxN&+g_`;^i29Mumd8W literal 0 HcmV?d00001 diff --git a/node/index.js b/node/index.js new file mode 100644 index 0000000..2b0d1a4 --- /dev/null +++ b/node/index.js @@ -0,0 +1,25 @@ + +const express = require('express') +const fetch = require('node-fetch') +const jsdom = require('jsdom') +const { JSDOM } = jsdom +const app = express() +const port = 4453 + + +app.get('/id/:num', (req, res) => { + fetch("https://qwantz.com/index.php?comic=" + req.params["num"]) + .then(response => { + return response.text() + }).then(s => { + var { document } = (new JSDOM(s)).window + res.send(document.getElementsByClassName('comic')[0].src) + }) + .catch(() => { + res.send("error!") + }) +}) + +app.listen(port, () => { + console.log("listening") +}) diff --git a/node/runner.sh b/node/runner.sh new file mode 100755 index 0000000..1e956be --- /dev/null +++ b/node/runner.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# runner for comics api thingy + + +while : +do + node index.js +done -- 2.39.2