- Joined
- Dec 31, 2018
Shouldn't it be called Racist Radar? It's not trying to detect anti-racists is it?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
It's not making a single request when submitting the form. Tried checking to see if it's doing anything with a socket, but that just led me onto the discovery that this guy has no clue what he's doing as he's left the sourcemaps on in production, meaning you can use the React DevTools to have a look at how he's naming some of his variables:Are you guys sure it's actually processing the reports?
You can request it in your next prompt!
HE BUILT THIS WEBSITE WITH AI
Go and click on 'Contact' in the footer and it pops up with a toast alert:
View attachment 7869532
Has this guy built a scam site?

I'm not even going to warn any of the followers about this, let's let them lose more of their benefits money donating to this literal scammer.Damn, so another Indian scammer has "built" a shitty means to extract money from unwitting supporters with a product that isn't even functional yet?![]()
Well, thanks for actually digging deeper than the surface on this.I'm not even going to warn any of the followers about this, let's let them lose more of their benefits money donating to this literal scammer.
View attachment 7869898
Posted today. "I need a developer to actually build this website that doesn't function". How does this guy have 61k followers?
Have found concrete proof this is grade-A, prime bullshit. Have just found the source JS file (archive) and it has this entire gobbledegook that I've made sense of:Well, thanks for actually digging deeper than the surface on this.
v.useEffect(()=>{if(l.message){const b=setTimeout(()=>{u({message:"",type:""})},5e3);return()=>clearTimeout(b)}},[l]);const d=b=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(b),f=(b,y="success")=>{u({message:b,type:y})},p=b=>{const{name:y,value:m}=b.target;t(w=>({...w,[y]:m})),y==="email"&&(m&&!d(m)?a("Please enter a valid email address with @"):a(""))},x=b=>{s(y=>({...y,userAnswer:b.target.value}))},g=async b=>{if(b.preventDefault(),!e.name||!e.email||!e.phone||!e.incident){f("Please fill in all required fields to submit your report.","error");return}if(!d(e.email)){f("Please enter a valid email address.","error");return}if(i.userAnswer!==i.answer){f("Please solve the math problem correctly to verify you're human.","error"),c();return}r(!0);try{await new Promise(y=>setTimeout(y,2e3)),f("Report submitted successfully! Thank you for your report. We will review it and take appropriate action.","success"),t({name:"",email:"",phone:"",incident:""})
// All of the following code is tidied up, minified code. Original variable
// names unsalvageable but you can kind of figure out what's going on.
// useEffect is a React lifecycle hook which is run when a variable changes.
// It'll be run here on submitting the form.
v.useEffect(() => {
// If no message, reset form. You can verify this behaviour by trying it yourself
if (l.message) {
const b = setTimeout(() => {
u({ message: "", type: "" });
}, 5e3);
return () => clearTimeout(b);
}
}, [l]);
// Regex check for email, I think
const d = (b) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(b);
// This maps to firing a message, default to 'success'
const f = (b, y = "success") => {
u({ message: b, type: y });
};
// This method is a dynamic method so it'll update the value of whatever 'y' (field)
// is passed in. Pure AI slop here as you can just use the React hook state. Awful code.
const p = (b) => {
const { name: y, value: m } = b.target;
t((w) => ({ ...w, [y]: m }));
// Not even using a validation library like Zod. Retarded.
if (y === "email") {
m && !d(m) ? a("Please enter a valid email address with @") : a("");
}
};
// Think this is a method which just updates the full field of funny shit.
// For anyone submitting huge chunks of text, this is why your computer took 7
// minutes to load it.
const x = (b) => {
s((y) => ({ ...y, userAnswer: b.target.value }));
};
// 'b' being passed here is an event, so this will be the form submission method.
const g = async (b) => {
// b.preventDefault() = do not submit the form. Usually used when calling an external
// API but looks to be here just to stop the form from posting.
// Shitty error checking, almost no typing checks here. Completely wide open form.
if ((b.preventDefault(), !e.name || !e.email || !e.phone || !e.incident)) {
f("Please fill in all required fields to submit your report.", "error");
return;
}
if (!d(e.email)) {
f("Please enter a valid email address.", "error");
return;
}
// Lol. Baby's first validation check.
if (i.userAnswer !== i.answer) {
f(
"Please solve the math problem correctly to verify you're human.",
"error"
);
c();
return;
}
r(true);
try {
// Now it just runs a promise on a timeout which resolves after a set amount of
// time each time. Then it just fires the success message and resets the form.
await new Promise((y) => setTimeout(y, 2e3));
f(
"Report submitted successfully! Thank you for your report. We will review it and take appropriate action.",
"success"
);
t({ name: "", email: "", phone: "", incident: "" });
}
curl 'wss://iycyxfztbvapzwmomqlf.supabase.co/realtime/v1/websocket?apikey=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Iml5Y3l4Znp0YnZhcHp3bW9tcWxmIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTY2NjcwNjYsImV4cCI6MjA3MjI0MzA2Nn0.KudL3mA4942rRGtzN-S-CRhzOEAI3JCgugNFcVwDGOU&vsn=1.0.0' \
-H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0' \
-H 'Accept: */*' \
-H 'Accept-Language: en-US,en;q=0.5' \
-H 'Accept-Encoding: gzip, deflate, br, zstd' \
-H 'Sec-WebSocket-Version: 13' \
-H 'Origin: https://www.antiracistradar.co.uk' \
-H 'Sec-WebSocket-Extensions: permessage-deflate' \
-H 'Sec-WebSocket-Key: bluoku38ftzynkuGlnaVkQ==' \
-H 'Connection: keep-alive, Upgrade' \
-H 'Sec-Fetch-Dest: empty' \
-H 'Sec-Fetch-Mode: websocket' \
-H 'Sec-Fetch-Site: cross-site' \
-H 'Pragma: no-cache' \
-H 'Cache-Control: no-cache' \
-H 'Upgrade: websocket'
Or, take an address or coordinate point so that incidents can be mapped?Shouldn't it be called Racist Radar? It's not trying to detect anti-racists is it?
The only way to validate an email address is by sending a validation email. Is that what Zod does? If not, then the email address isn't being validated.Not even using a validation library like Zod. Retarded.
People forget validation happens in two places: the backend and frontend. There's basically no way of sending an email from the frontend as you can't securely store email login credentials in JS unless you have a backend API or a third party emailer service. Because I could just go into the asset file like I did above, strip out the credentials and hijack that email.The only way to validate an email address is by sending a validation email. Is that what Zod does? If not, then the email address isn't being validated.
Or, is Zod a POS library that doesn't accept half the valid email addresses that I use because overly-dumb constraints?
If the latter, please stop using it.
Shitting in the street and scamming are the two things hard baked into the DNA of a Jeet. It’s just their programming.>Be jeet
>Really want to scam bleeding-heart boomers to do donuts with a leased BMW today
>Lazily prompt an AI to produce a generic-looking React front-end for a form
>Don't bother with a basic DB system because you unironically find it too complicated to set up and manage
Really defeating stereotypes there.