mirror of
https://codeberg.org/ashley/poke.git
synced 2024-11-28 16:29:02 +01:00
lightOrDark :3
This commit is contained in:
parent
46d8827a09
commit
f19b21e263
1 changed files with 47 additions and 0 deletions
|
@ -20,6 +20,51 @@ const {
|
|||
|
||||
const sha384 = modules.hash;
|
||||
|
||||
function lightOrDark(color) {
|
||||
|
||||
// Variables for red, green, blue values
|
||||
var r, g, b, hsp;
|
||||
|
||||
// Check the format of the color, HEX or RGB?
|
||||
if (color.match(/^rgb/)) {
|
||||
|
||||
// If RGB --> store the red, green, blue values in separate variables
|
||||
color = color.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)$/);
|
||||
|
||||
r = color[1];
|
||||
g = color[2];
|
||||
b = color[3];
|
||||
}
|
||||
else {
|
||||
|
||||
// If hex --> Convert it to RGB: http://gist.github.com/983661
|
||||
color = +("0x" + color.slice(1).replace(
|
||||
color.length < 5 && /./g, '$&$&'));
|
||||
|
||||
r = color >> 16;
|
||||
g = color >> 8 & 255;
|
||||
b = color & 255;
|
||||
}
|
||||
|
||||
// HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html
|
||||
hsp = Math.sqrt(
|
||||
0.299 * (r * r) +
|
||||
0.587 * (g * g) +
|
||||
0.114 * (b * b)
|
||||
);
|
||||
|
||||
// Using the HSP value, determine whether the color is light or dark
|
||||
if (hsp>127.5) {
|
||||
|
||||
return 'light';
|
||||
}
|
||||
else {
|
||||
|
||||
return 'dark';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module.exports = function (app, config, renderTemplate) {
|
||||
app.get("/encryption", async function (req, res) {
|
||||
var v = req.query.v;
|
||||
|
@ -115,6 +160,7 @@ module.exports = function (app, config, renderTemplate) {
|
|||
|
||||
renderTemplate(res, req, "poketube.ejs", {
|
||||
color: data.color,
|
||||
color2:data.color2,
|
||||
engagement: engagement,
|
||||
video: json,
|
||||
date: k.Video.uploadDate,
|
||||
|
@ -122,6 +168,7 @@ module.exports = function (app, config, renderTemplate) {
|
|||
k: k,
|
||||
process: process,
|
||||
sha384: sha384,
|
||||
lightOrDark,
|
||||
isMobile: req.useragent.isMobile,
|
||||
tj: data.channel,
|
||||
r: r,
|
||||
|
|
Loading…
Reference in a new issue