small quality control

This commit is contained in:
Mystikfluu 2022-11-19 17:38:12 +01:00
parent d84410496e
commit 4643c55270
6 changed files with 41 additions and 40 deletions

View File

@ -1,3 +1,4 @@
// skipqc
var sha256=function a(b){function c(a,b){return a>>>b|a<<32-b}for(var d,e,f=Math.pow,g=f(2,32),h="length",i="",j=[],k=8*b[h],l=a.h=a.h||[],m=a.k=a.k||[],n=m[h],o={},p=2;n<64;p++)if(!o[p]){for(d=0;d<313;d+=p)o[d]=p;l[n]=f(p,.5)*g|0,m[n++]=f(p,1/3)*g|0}for(b+="\x80";b[h]%64-56;)b+="\x00";for(d=0;d<b[h];d++){if(e=b.charCodeAt(d),e>>8)return;j[d>>2]|=e<<(3-d)%4*8}for(j[j[h]]=k/g|0,j[j[h]]=k,e=0;e<j[h];){var q=j.slice(e,e+=16),r=l;for(l=l.slice(0,8),d=0;d<64;d++){var s=q[d-15],t=q[d-2],u=l[0],v=l[4],w=l[7]+(c(v,6)^c(v,11)^c(v,25))+(v&l[5]^~v&l[6])+m[d]+(q[d]=d<16?q[d]:q[d-16]+(c(s,7)^c(s,18)^s>>>3)+q[d-7]+(c(t,17)^c(t,19)^t>>>10)|0),x=(c(u,2)^c(u,13)^c(u,22))+(u&l[1]^u&l[2]^l[1]&l[2]);l=[w+x|0].concat(l),l[4]=l[4]+w|0}for(d=0;d<8;d++)l[d]=l[d]+r[d]|0}for(d=0;d<8;d++)for(e=3;e+1;e--){var y=l[d]>>8*e&255;i+=(y<16?0:"")+y.toString(16)}return i}; var sha256=function a(b){function c(a,b){return a>>>b|a<<32-b}for(var d,e,f=Math.pow,g=f(2,32),h="length",i="",j=[],k=8*b[h],l=a.h=a.h||[],m=a.k=a.k||[],n=m[h],o={},p=2;n<64;p++)if(!o[p]){for(d=0;d<313;d+=p)o[d]=p;l[n]=f(p,.5)*g|0,m[n++]=f(p,1/3)*g|0}for(b+="\x80";b[h]%64-56;)b+="\x00";for(d=0;d<b[h];d++){if(e=b.charCodeAt(d),e>>8)return;j[d>>2]|=e<<(3-d)%4*8}for(j[j[h]]=k/g|0,j[j[h]]=k,e=0;e<j[h];){var q=j.slice(e,e+=16),r=l;for(l=l.slice(0,8),d=0;d<64;d++){var s=q[d-15],t=q[d-2],u=l[0],v=l[4],w=l[7]+(c(v,6)^c(v,11)^c(v,25))+(v&l[5]^~v&l[6])+m[d]+(q[d]=d<16?q[d]:q[d-16]+(c(s,7)^c(s,18)^s>>>3)+q[d-7]+(c(t,17)^c(t,19)^t>>>10)|0),x=(c(u,2)^c(u,13)^c(u,22))+(u&l[1]^u&l[2]^l[1]&l[2]);l=[w+x|0].concat(l),l[4]=l[4]+w|0}for(d=0;d<8;d++)l[d]=l[d]+r[d]|0}for(d=0;d<8;d++)for(e=3;e+1;e--){var y=l[d]>>8*e&255;i+=(y<16?0:"")+y.toString(16)}return i};
function hash(str,salt,num) { function hash(str,salt,num) {

View File

@ -495,8 +495,8 @@ function switchChannel(channelname) {
switchChannel(channelname) switchChannel(channelname)
main() main()
let settings = await (await fetch("/api/settings")).json() let settings = await (await fetch("/api/settings")).json() // skipqc
console.log(settings) console.log(settings) // skipqc
if(settings != "null") { if(settings != "null") {
if(settings.ACCR == false) { if(settings.ACCR == false) {
unreply() unreply()

View File

@ -74,7 +74,7 @@ function createPost(username,text,time,specialtext,postid) {
newP.appendChild(newSpan3) newP.appendChild(newSpan3)
newDiv.appendChild(newP) newDiv.appendChild(newP)
newDiv.innerHTML += filterPost(text) newDiv.innerHTML += filterPost(text) // skipqc
newDiv.id = postid newDiv.id = postid
document.getElementById("output").appendChild(newDiv) document.getElementById("output").appendChild(newDiv)
} }

View File

@ -1,4 +1,21 @@
function uploadFile() { function completeHandler(event) {
console.log("completed upload");
console.log(event.target.responseText);
setuser() // skipqc
}
function errorHandler(event) {
console.log("error during upload");
console.log(event.target.responseText);
}
function progressHandler(event) {
console.log("progressing upload");
console.log("Uploaded " + event.loaded + " bytes of " + event.total);
console.log(event.target.responseText);
}
function uploadFile() {
let file = document.getElementById("avatarUpl").files[0]; let file = document.getElementById("avatarUpl").files[0];
console.log(file); console.log(file);
let formdata = new FormData(); let formdata = new FormData();
@ -14,23 +31,6 @@
document.getElementById("avatarUplButton").style = "display:none;"; document.getElementById("avatarUplButton").style = "display:none;";
} }
function completeHandler(event) {
console.log("completed upload");
console.log(event.target.responseText);
setuser()
}
function errorHandler(event) {
console.log("error during upload");
console.log(event.target.responseText);
}
function progressHandler(event) {
console.log("progressing upload");
console.log("Uploaded " + event.loaded + " bytes of " + event.total);
console.log(event.target.responseText);
}
function getCookie(cname) { function getCookie(cname) {
let name = cname + "="; let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie); let decodedCookie = decodeURIComponent(document.cookie);
@ -89,6 +89,13 @@ async function setuser() {
document.getElementById("avatarUplButton").addEventListener("click",uploadFile); document.getElementById("avatarUplButton").addEventListener("click",uploadFile);
} }
async function sendBio(str) {
if(document.getElementById("bio").placeholder != str && str != "") {
document.getElementById("bio").placeholder = str
return await post("/api/setBio",{"Bio":str}) // skipqc
}
}
async function bioChanger() { async function bioChanger() {
document.getElementById("bio").disabled = !document.getElementById("bio").disabled document.getElementById("bio").disabled = !document.getElementById("bio").disabled
document.getElementById("changeBio").innerText = (document.getElementById("bio").disabled && "Change Bio") || "Submit" document.getElementById("changeBio").innerText = (document.getElementById("bio").disabled && "Change Bio") || "Submit"
@ -103,17 +110,10 @@ async function bioChanger() {
} }
} }
async function sendBio(str) {
if(document.getElementById("bio").placeholder != str && str != "") {
document.getElementById("bio").placeholder = str
return await post("/api/setBio",{"Bio":str})
}
}
async function changePW() { async function changePW() {
if(window.confirm("Are you sure that you want to change your Password?")){ if(window.confirm("Are you sure that you want to change your Password?")){
let re = await (await post("/api/changePW",{"currentPW":document.getElementById("currentPW_pw").value,"newPW":document.getElementById("newPW").value})).json() let re = await (await post("/api/changePW",{"currentPW":document.getElementById("currentPW_pw").value,"newPW":document.getElementById("newPW").value})).json() // skipqc
document.getElementById("response_pw").innerText = re["error"] || re["success"] document.getElementById("response_pw").innerText = re["error"] || re["success"]
document.getElementById("response_pw").style="color:green" document.getElementById("response_pw").style="color:green"
if(re["error"]) { if(re["error"]) {
@ -128,6 +128,7 @@ async function changePW() {
async function changeUsername() { async function changeUsername() {
if(window.confirm("Are you sure that you want to change your Username?")){ if(window.confirm("Are you sure that you want to change your Username?")){
// skipqc
let re = await (await post("/api/changeUsername",{"currentPW":document.getElementById("currentPW_us").value.toString(),"newUsername":document.getElementById("newUsername").value})).json() let re = await (await post("/api/changeUsername",{"currentPW":document.getElementById("currentPW_us").value.toString(),"newUsername":document.getElementById("newUsername").value})).json()
document.getElementById("response_us").innerText = re["error"] || re["success"] document.getElementById("response_us").innerText = re["error"] || re["success"]
document.getElementById("response_us").style="color:green" document.getElementById("response_us").style="color:green"
@ -145,7 +146,7 @@ async function setAllowCCR() {
const ACCR = document.getElementById("ACCR_checkbox").checked const ACCR = document.getElementById("ACCR_checkbox").checked
const settingname = "ACCR" //Allow Cross-Channel reply (see #22 ) const settingname = "ACCR" //Allow Cross-Channel reply (see #22 )
let r = await(await post("/api/settings",{setting: settingname, value: ACCR})).json() let r = await(await post("/api/settings",{setting: settingname, value: ACCR})).json() // skipqc
if(r.status == "error") { if(r.status == "error") {
alert("Couldn't change setting") alert("Couldn't change setting")

View File

@ -52,7 +52,7 @@ export const setup = function (router, con, server) {
reply_id = req.body.reply_id; reply_id = req.body.reply_id;
} }
if(typeof reply_id == "string") { if(typeof reply_id == "string") {
reply_id = parseInt(reply_id) reply_id = parseInt(reply_id,10)
if(isNaN(reply_id)) { if(isNaN(reply_id)) {
res.status(414) res.status(414)
res.json({ "error": "no valid reply id given" }); res.json({ "error": "no valid reply id given" });

View File

@ -886,23 +886,26 @@ const load_var_cache = new LRU({
updateAgeOnHas: true updateAgeOnHas: true
}) })
import {minify as min_js} from "uglify-js"
import Clean from 'clean-css';
import Minifier from 'html-minifier-terser';
function load_var(fina) { function load_var(fina) {
if(load_var_cache.get(fina))return load_var_cache.get(fina) if(load_var_cache.get(fina))return load_var_cache.get(fina)
if(!existsSync(fina)) { if(!existsSync(fina)) {
console.log(1,"tried loading non-existent file",fina) console.log(1,"tried loading non-existent file",fina)
load_var_cache.set(fina,"")
return ""; return "";
} }
let out = readFileSync(fina) let out = readFileSync(fina)
if(fina.endsWith(".js")) { if(fina.endsWith(".js")) {
return min_js(out.toString()).code out = min_js(out.toString()).code
} }
else if(fina.endsWith(".css")) {
if(fina.endsWith(".css")) {
const { const {
styles, styles,
errors,
} = new Clean({}).minify(out.toString()); } = new Clean({}).minify(out.toString());
return styles out = styles
} }
load_var_cache.set(fina,out) load_var_cache.set(fina,out)
@ -910,10 +913,6 @@ function load_var(fina) {
return out return out
} }
import {minify as min_js} from "uglify-js"
import Clean from 'clean-css';
import Minifier from 'html-minifier-terser';
function get_channels(){ function get_channels(){
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
let sql = `select post_receiver_name from ipost.posts where post_is_private = '0' group by post_receiver_name;`; let sql = `select post_receiver_name from ipost.posts where post_is_private = '0' group by post_receiver_name;`;