This commit is contained in:
2023-09-29 12:42:58 -04:00
parent 11e3941fec
commit 97183497ba
155 changed files with 27169 additions and 14 deletions

View File

@@ -1,11 +1,19 @@
var express = require('express')
var bodyParser = require('body-parser')
var fs=require('fs')
var hashindex=require('hash-index')
var app = express()
var Candidates=[ "Chris Christie", "Ron DeSantis", "Nikki Haley", "Mike Pence",
"Vivek Ramaswamy", "Tim Scott", "Donald Trump" ];
var Candidates=[
"Chris Christie",
"Donald Trump",
"Mike Pence",
"Nikki Haley",
"Ron DeSantis",
"Tim Scott",
"Vivek Ramaswamy",
];
function CanId(c)
{
@@ -38,12 +46,14 @@ for (let c of Candidates)
// Construct the static page for range voting
var RangeHTML="";
for (let c of Candidates)
{
RangeHTML=RangeHTML+' <tr>'+
' <td>'+c+'</td><td><input type="range" min="-1" max="100" value="-1" id="i-'+CanId(c)+'" name="n-'+CanId(c)+'" /></td><td><span id="o-'+CanId(c)+'">No Opinion</span></td></tr>\n';
' <td>'+c+'</td><td><input style="width:95%" type="range" min="-1" max="100" value="-1" id="i-'+CanId(c)+'" name="n-'+CanId(c)+'" /></td><td><span id="o-'+CanId(c)+'">No Opinion</span></td></tr>\n';
}
var TemplateHTML=fs.readFileSync("rangevote.html").toString();
var TemplateSearch="<!-- INJECT0 -->";
@@ -70,8 +80,9 @@ var jsonParser = bodyParser.json()
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.get('/', (req, res) => {
res.send(RangeHTML);
// res.send(PlurHTML);
let kind=hashindex(req.socket.remoteAddress+"salt",2);
if (kind==0) res.send(RangeHTML);
else res.send(PlurHTML);
})
function lerp(a,b,c,d,e)
@@ -104,6 +115,7 @@ function AddToRangeResult(vote,mult=1)
function RangeVote(ip,entries)
{
console.log('IP: '+ip);
let r0=null,r1=null;
for (let [key,val] of entries) if (typeof(key)=="string" && val>=0)
{
@@ -129,11 +141,11 @@ function RangeVote(ip,entries)
// POST /login gets urlencoded bodies
app.post('/range_vote', urlencodedParser, function (req, res) {
RangeVote(req.socket.remoteAddress,Object.entries(req.body));
let str="Results:<br>";
let str="Results from "+RangeVotes.size+" Voters:<br>";
for (let c of Candidates)
{
let key=CanId(c);
if (RangePower.get(key)>0) str=str+c+': '+Math.round(RangeResult.get(key)/RangePower.get(key))+'<br>';
if (RangePower.get(key)>0) str=str+c+': '+Math.round(RangeResult.get(key)/RangePower.get(key))+'%<br>';
}
res.send(str);
})