From 824eb99851ebdd5583fd953430e8c0333a69dc9b Mon Sep 17 00:00:00 2001 From: Mystikfluu Date: Thu, 16 Jun 2022 13:51:03 +0200 Subject: [PATCH] add bot identifier to posts --- createSchema.sql | 3 ++- css/posts.css | 4 ++++ images/bot.png | Bin 0 -> 2148 bytes {views => images}/default_avatar.png | Bin js/posts.js | 19 ++++++++++++++----- js/user.js | 2 +- server.js | 19 +++++++++++++++---- views/otheruser.html | 2 +- views/settings.html | 11 +++++++++++ 9 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 images/bot.png rename {views => images}/default_avatar.png (100%) create mode 100644 views/settings.html diff --git a/createSchema.sql b/createSchema.sql index 4466d32..30f123d 100644 --- a/createSchema.sql +++ b/createSchema.sql @@ -24,6 +24,7 @@ CREATE TABLE `posts` ( `post_text` varchar(4000) NOT NULL, `post_time` bigint NOT NULL, `post_special_text` varchar(100) DEFAULT NULL, - `post_ip` varchar(12) DEFAULT NULL, + `post_receiver_name` varchar(100) DEFAULT NULL, + `post_from_bot` tinyint DEFAULT '0', PRIMARY KEY (`post_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; diff --git a/css/posts.css b/css/posts.css index 460ed02..521be95 100644 --- a/css/posts.css +++ b/css/posts.css @@ -38,6 +38,10 @@ margin-left: 5px; } +.boticon { + +} + .mention { color: blue; } diff --git a/images/bot.png b/images/bot.png new file mode 100644 index 0000000000000000000000000000000000000000..58255673996ef158cd444b885646458062d0c994 GIT binary patch literal 2148 zcmV-q2%GnbP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2l+`vK~#8N?VVk0 z6jd08zuo>&px8nJRDsfH3E=`#;y*T0q9hu;XuN=EG+8cv) z4a8uZ{YPu7ENFr4wpN295J4aYyBofRMWHq2g#^<6o>~utKyFzGY8MtA)>c`v2Dh%W zYTXyU1%Vi?Se&r7%9b7ovR1A8!q+VeV$@=>&)O<$T96mp)w(bI)*&CjO1VoUNVY)~ z-<^?p-?HGG75M1`0n%aBgh^s64sVJhK7cuzrSC)ySt^YuTKUB24r+}RC;>& z7?4RzON-Rk*Gp4VldN31Qd(PErMbCT8X7`-jlLYBTvF@dz|sNJ!ua@j^1y)u$wVTN zM5ZR`E(qhfcut<1J~YA$HC*77uQ~&T8P(q2Zkw4pjK1ho6XCwtg2M}zUw`mQ-MMpT zpe4bp(KllVxYX>xxx)d@_!`zX%mm!)Z8ND5##k6rKwQ8%!vW5G4Ny37;zU79gp)Bg z#uxy6VAc;Dvn}^Y7)&++k_XhF=ob|C;D$&aKiDn zp6KoEEvmZ0t1)(_Ay4!^{J?>yk%px%M%sLcqIU?9a^eaW^(csuHl`(y+n2t21SfB{ zd^l68b%vAWQKxj_I6dIx>|%CBDYd4&n#b1H2#(PMPQKmpksG$*xqFn&%X13$*8|S& zs{bmAx2l=OG^f?D&M<+1Y8EfG8T%>JpAl2_Br-vB}%k)@B=g6pd+hNnr#T z92~R_Jj%v2yTFqmfen;9di1DTb4yI(@k&RF#VgeQ{^7aoe9SbrFH*gy*%{ZbaG^BY z)NR&QCR?{|mA!lSs;x{aDywDLQ_sr0x8*!ARxsNTBWlugWk2kH6s;V04Ir)`*|MjPG_jc|v&NXxDbNAuT<=WMAYL7=jzNodV ztU%uMt93`b2*QD2JFTruoCJwiRLO#c%Vpy3O_`p$pSt>(sT3#|6_vA6$F;n)Mb@s{ zlFHo9{oCaH*&oy%_N-X_ioEg8XDJcSoIEH!KOK}C!xwSunNWM!LjfozOK-fQQfAfE zrjDDQnpAr{ijyG77uR`Ayj1Fk)iN)bpzA~Zsrum7_;tB+Ys66u!VDZ9{8N5D@`e0y zx-)gVx<8paQwjIszC4D<@*GZL5XQvV7$ak4%-O_n!KhjW53Yoqor~N>r{T&?);_i< z+1UJC5~ap=pNEb6a9lw3ktW=hRW=Yv*6x&lA|oHu~KT1kZ^fUxv9J+ghaTMp`!L79%uR0m6#;pSWa$Ek^!B zfoQ_SsYI3n(fx-m4}(M&dud^3X>?0PHjrpOM0%R4Lo+P7e4W6lZ_5{C0EH=JiD8K_ zLd*mi(x5Vi859QmpIAkAYts50k}t?8er(TyvzuXAziade=NRU*#1YsbG+}S@$6})> z1(^v1;-|$g!WP5U^EbfX>>fCo@icxc^E-?q&`(2vAuJ6BgTY`h7z_r3!C){L3mj0000.Reply to this Post` @@ -119,9 +128,9 @@ async function main(){ document.getElementById("posts").innerHTML = "" for(i in all_posts) { let item = all_posts[i] - await createPost(decodeURIComponent(item.post_user_name),decodeURIComponent(item.post_text),item.post_time,item.post_special_text,item.post_id) + await createPost(decodeURIComponent(item.post_user_name),decodeURIComponent(item.post_text),item.post_time,item.post_special_text,item.post_id,item.post_from_bot) } - + let links = document.getElementsByClassName("insertedlink") for (let i = 0; i < links.length; i++) { links[i].innerText = links[i].innerText.split("\/\/")[1].split("\/")[0] diff --git a/js/user.js b/js/user.js index 3c6183f..a6a4c21 100644 --- a/js/user.js +++ b/js/user.js @@ -72,7 +72,7 @@ async function setuser() { if(avatar) { avatar = "/avatars/"+avatar } else { - avatar = "default_avatar.png" + avatar = "/images/default_avatar.png" } document.getElementById("user").innerText = `User: ${username}`; document.getElementById("bio").placeholder = decodeURIComponent(bio); diff --git a/server.js b/server.js index 938184f..19e8afc 100644 --- a/server.js +++ b/server.js @@ -339,6 +339,7 @@ router.use("/api/*",async function(req,res,next) { } else { unsigned = `${req.body.user} ${SHA256(req.body.pass,req.body.user,HASHES_COOKIE)}` //basically we generate the unsigned cookie + res.locals.isbot = true //only bots use user+pass } let sql = `select User_Name,User_Bio,User_Avatar from zerotwohub.users where User_Name=? and User_PW=?;` let values = unsigned.split(" ") @@ -490,8 +491,8 @@ router.post("/api/post", async function(req,res) { return } - let sql = `insert into zerotwohub.posts (post_user_name,post_text,post_time,post_receiver_name) values (?,?,?,?);` - let values = [encodeURIComponent(res.locals.username),req.body.message,Date.now(),req.body.receiver] + let sql = `insert into zerotwohub.posts (post_user_name,post_text,post_time,post_receiver_name,post_from_bot) values (?,?,?,?,?);` + let values = [encodeURIComponent(res.locals.username),req.body.message,Date.now(),req.body.receiver,res.locals.isbot] con.query(sql, values, function (err, result) { if (err) throw err; @@ -510,7 +511,7 @@ router.get("/api/getPosts/*", async function(req,res) { router.get("/api/getPosts", async function(req,res) { res.set("Access-Control-Allow-Origin","") - let sql = `select post_user_name,post_text,post_time,post_special_text,post_id from zerotwohub.posts where (post_receiver_name is null or post_receiver_name = 'everyone') order by post_id desc;` + let sql = `select post_user_name,post_text,post_time,post_special_text,post_id,post_from_bot from zerotwohub.posts where (post_receiver_name is null or post_receiver_name = 'everyone') order by post_id desc;` con.query(sql, [], function (err, result) { if (err) throw err; res.json(result) @@ -519,7 +520,7 @@ router.get("/api/getPosts", async function(req,res) { router.get("/api/getPersonalPosts", async function(req,res) { res.set("Access-Control-Allow-Origin","") - let sql = `select post_user_name,post_text,post_time,post_special_text,post_id from zerotwohub.posts where (post_receiver_name = ?) order by post_id desc;` + let sql = `select post_user_name,post_text,post_time,post_special_text,post_id,post_from_bot from zerotwohub.posts where (post_receiver_name = ?) order by post_id desc;` con.query(sql, [encodeURIComponent(res.locals.username)], function (err, result) { if (err) throw err; res.json(result) @@ -678,6 +679,16 @@ router.get("/js/*", (request, response) => { return; }); +router.get("/images/*", (request, response) => { + if(!increaseUSERCall(request,response))return + if(fs.existsSync(__dirname + request.originalUrl)){ + response.sendFile(__dirname + request.originalUrl); + } else { + response.status(404).send("no file with that name found") + } + return; +}); + router.get("/avatars/*", (request, response, next) => { if(!increaseUSERCall(request,response))return let originalUrl = request.originalUrl.split("?").shift() diff --git a/views/otheruser.html b/views/otheruser.html index 793567c..0ccc352 100644 --- a/views/otheruser.html +++ b/views/otheruser.html @@ -36,7 +36,7 @@ if(avatar) { avatar = "/avatars/"+avatar } else { - avatar = "/default_avatar.png" + avatar = "/images/default_avatar.png" } document.getElementById("avatar").src = avatar if(user["error"]) { diff --git a/views/settings.html b/views/settings.html new file mode 100644 index 0000000..48fe786 --- /dev/null +++ b/views/settings.html @@ -0,0 +1,11 @@ + + + + + IPost | User settings + + + + + +