But they do scan for known issues right? https://docs.npmjs.com/threats-and-mitigations
#development
1 messages · Page 304 of 1
Npm seems to leverage microoft for malware scans. But they don’t say if its routinely done or if its done on publish/install.
Their docs mention that npm install uses audit reports though
But audit reports are those proactively or post-active scans and reporting
Cuz to me it seems like no scanning is done prior to install.
I can't say for certain if it's like microslop defender where it scans for known patterns because JS can obfuscate in so many different ways. I'd be confident in saying that it's only post active
some vulns do go on for a while
Thats the thing can i still do researxh while knowing this
we can’t tell for sure whether its pro-active or not
Known vulnerabilities may be periodic scans
Idk why they'd do periodic scans though because you can't override versions. If it were me building a system like that, I’d make it to where on first install, it checks and if that were the case, then it'd be known instantly. No need to re scan
Exactly but we can’t know for sure
Whether its just known vulnerabilities. Because i want to have my bachelor about instant scans right befoe publish and install.
In that case if you want to have the exact answer, it'd be better to reach out to npm for a comment
I did open a ticket hahah
Welp then no sense in asking here. We know as much as you 😛
I hope they answer wuick thi
they will
I still think my researchnis valid though
I propose a transparent machine learning approach for explicit publish and install operations based on nom metadata and code patterns
@lament rock i think i got valid proof that indeed they dont scan upon install.
https://docs.npmjs.com/cli/v11/commands/npm-audit
they merely do a database lookup for known vulmerabilities no active scanning
aka, it's a mere database lookup
thank god my thesis ain't cooked yet, i can actually play on their wording now
"The audit command submits a description of the dependencies configured in your project to your default registry and asks for a report of known vulnerabilities."
"npm will generate a JSON payload with the name and list of versions of each package in the tree, and POST it to the registry."
no
you can get your bot's review stats from the get project endpoint
not individual reviews
Ah, okay, a pity, many functions could be done if you enable reading reviews in the API, do you plan to apply it in the future? I think it would help many users
Like what?
For example, having a record of what people think, with AI you can classify the bad and the good, be able to see the highest rated opinions, have everything much more focused and organized, give rewards for posting a review, etc.
There are many things you can do when obtaining ratings.
Giving rewards for reviews seems like a bad way to inflate your bot's reviews
At that point people will just post anything just to get the reward
Just like voting, people vote to receive rewards(in most cases)
Yeah but votes don't necessarily correlate to the bot itself. Reviews are a better look into what people think the bot does and how it works for them
Review rewards will just junk that up
So making it an incentive seems counterproductive to what reviews are supposed to be for
I don't know, I really want it to classify it with good and bad reviews, it would be a good idea to apply it (in my opinion)
Yeah, we've talked about review webhooks, but there would be a strict "no-reward" policy.
If we start incentivizing reviews, they become meaningless
maybe thats the plan
new workflow who this
awesome stuff!
i would say the embed color border is way too thick though
The use case is pretty awesome, e.g you don't want your support agent to deal with finance, just assign someone from finance and dm them and open a conversation
Yeaahh it is
I'm swapping it to hex color
but i do agree 😂 it does look lame
ty null 🫶
How
eh?
How long does it take to do it?
You tell me that the bot and dashboard are same.
Right?
Not really
kind of
the bot is used to send messages, and close threads, rest is all with the dashboard, so yes the bot just servers the purpose of pushing to our database and so on.
long process
but bot -> db - > api -> frontend
it's a bit complicated
so e.g. you would have a workflow set as Delete Message
Delete Message → Send Dm → Create Ticket -> Assign Staff → -> Notify Staff
bot would be doing the dming, creating the ticket notifying the staff
Well
I do have my own server.
and a backup so hopefully.
@icy copper what are you working on?
I am working on all in one discord that I want to customize something like 50%
And working on website
I am full stack
nice, good luck.
Thanks you too
🫶
Btw what language do u use
for the bot or?
python.
rly?
idk i don't know people can do this things on python
because the dashboard is react 😄
the both just does the simple functions the main power is within the sauce.
that cool
i guess, going bit slow finding testers but sure let's say it's cool
You can write pretty much any software with any tech stack
Languages are just tools for the job
basically xd
we do the rest
Some languages are better choices than others for certain tasks, but ultimately the developer is responsible for using it properly
wise words
Like anything written in Java is the wrong language
damn man, shooting straight
oh java
yea
i hate it
Despise it
is just me but i hate java
I think people who even use Java hate it lol - we had a few clients that built apps with it and it was diabolical
lol
fair
though as SDET, gotta get used to all.
TBH in my old role I was on the receiving end of other peoples projects so I just see the worst in everything, ignore me
hah fair.
though dude, I'm so hyped and wish i can show off the power of the dashboard
holy
Btw what is speed
Ms'
?
pretty fuckin fast if you don't mind me saying
the dashboard is not self hosted, it's on cloudflare
That's right
Clouflare have so fast response
Honestly Java isn’t a terrible language at its core, people just use it terribly
I mean I don't think anyone uses it by choice currently but yeah it's just a bit crap to work with and fairly resource hungry at scale
Java is okay
java/javascript has gotten better over the years in regards to verbosity but i think that hate sorta never went away
i also just find it as a kinda boring language i just dont know why
you cannot say java/javascript
javascript is anything but verbose they're on two opposite ends of the spectrum
id say its sufficiently verbose
I feel like we all just want to say the word verbose

theyre interchangable
just yesteday I was talking about how lox in crafting interpters uses a java script to generate the ast for the interpter
hence interchangable
you have masterfully fell into my ragebait trap
oldest trick in the book
JavaScriptScript
JavaScript²
that's just typescript
modern java is pretty cool
much less syntactic boilerplate
Bonus points for pattern matching improvements
it's still half baked in java 21 though
do we still need to make 20 different builders
i hate builders so much lol
How do I make a votetracker with the topggpy api wrapper for my discord server?
like probably send messages through my bot when someone votes the server
something like the VoteTracker bot
I read the documentation and also checked the examples for topggpy but even the examples had some issues going on like the code was just not working it was trying to use a decorator which didnt even exist, and the top.gg docs just don't say enough
Server webhooks have been removed and have not yet been reimplemented. Work on this is reportedly ongoing
So there's currently no way for tracking server votes?
You can theoretically use the API
are there like undocumented endpoints for this? and how?
so basically i call this endpoint for every user in the server and check whether they voted? ig i'll get ratelimited tho
That's why I wrote “theoretically.” In practice, it's impossible to track this in real time using API ig but you can check from time to time for example
Alright, thanks for the help If possible I'd also be down to contribute to making this possible
but ig thats not possible?
also some new metrics
there are some problemes
I did test the auth but it don't make a callback
hm itneresting giv me a sec
there is a problem with the api
alr lemme know it when fixed it
will do sorry
np I just wanted du test it, and might find some bugs
If i find more bufs i will let yoi know
Yeyes
Appreciate it.
found it
This is a critical one 😂 but yea couldn't have found it personally lol
@jaunty cypress can you check now?
It don't let me see the dashboard
Did you add the bot?
yes
i wonder if i make it work with other bots if it would be more good
import AppText from "@/components/AppText";
import { colors, spacing } from "@/helpers/consts";
import { Image } from "expo-image";
import {
ActivityIndicator,
ScrollView,
View
} from "react-native";
import { SafeAreaView } from "react-native-safe-area-context";
export default function Product() {
// TODO
const foundProduct = true
const loading = false
return (
<SafeAreaView style={{ flex: 1, backgroundColor: colors.background }}>
<ScrollView showsVerticalScrollIndicator={false} contentContainerStyle={{ padding: spacing.xxxl }}>
{loading ? (
<View style={{ padding: spacing.huge, alignItems: 'center' }}>
<ActivityIndicator size="large" color={colors.primary} />
</View>
) : foundProduct ? (
<Image
source={{ uri: "https://picsum.photos/seed/696/200/200" }}
style={{ width: 200, height: 200 }}
/>
) : (
<View style={{ padding: spacing.huge, alignItems: 'center' }}>
<AppText style={{ color: colors.textMuted }}>No such product exists</AppText>
</View>
)}
</ScrollView>
</SafeAreaView>
);
}
Hold up- it’s so similar to the web one, here I expected something completely different
i checked https://picsum.photos/seed/696/200/200 a million times and it returns a valid image
try using the default img html tag
do ```export default function Product() {
console.log('Rendering Product, foundProduct:', foundProduct);
// ...
}
And see whjat happens?
OR
i am using expo-image
oh
try adding flex grow of 1 in the scroll view where you have spacing.xxxl
cors?
i know
It’s a package in react
I use it myself solely for the node side of things tho
😅
In all fairness you questioned it 😂
the expo image tag uses js to fetch the image, which has different cors implications than an img tag
fair, mostly the question was cors? as in was cors the issue
my project has been using expo image for everything
how does it work for everything else
😭
probably hosted on your domain
or the sources have explicit cors headers that allow js fetching
What are you working on though null if you don’t mind me asking?
Ooo
are u on an emulator?
hmm idk i was messing around with react native a bit over the summer and was using an emulator thru xcode
i thought it could maybe be a network issue or strange configuration of the emulator
but i'm not very familiar sorry 
maybe try using Image from react native instead of expo?
STILL NOTHING
we love react native 

yes, i see a red square
i'll tell the man 
the url redirects so maybe that's an issue?
claude's response tho
@steel oxide OH MY GOD OH MY GOD I FIXED IT
I ADDED Ababel.config.js TO ROOT WITH ```js
module.exports = function (api) {
api.cache(true);
return {
presets: [
['babel-preset-expo', { unstable_transformImportMeta: true }]
],
};
};
AISDJAFHDSUFHDSF
so sorry to bother you guys 😭
all good
yayyyy go null 💪 🔥 
❤️
great job!
Sounds like an AI chat bot response xD
for now
That's what an ai would say 👀
null, do you have a phd in async lifetimes by any chance
can you elaborate?
I cant manage to get this unsafe block removed https://github.com/calagopus/panel/blob/main/shared/src/models/mod.rs#L266
im assuming its safe and the issue just comes from the fact that rust assumes concurrent access I guess? but its still not amazing
oh god
oh yes
i don't get it
you're transmuting &mut sqlx::Transaction<'_, sqlx::Postgres> to &mut sqlx::Transaction<'_, sqlx::Postgres>?
yep, the lifetime somehow gets fixed, if I dont cast it tells me im already using this variable mutably in a previous iteration of the loop
why not move transaction_ref outside of the loop?
- would still require the unsafe block
- let me check
doesn't matter
In terms of backend api, I am actually what I think nearly completed.
with a v1
Still some stuff to do to polish it up but, once i finish with the last few graphql resolvers I think all that's left is a working frontend
though something very weird, in my nightly branch I added a similar thing for updating, but here, even though I am passing a mutable ref to another object, still only need to sqlx transmute
I think its an issue with the sqlx Transaction struct having an additional lifetime
wait
I am not versed enough in cursed rust for this
the '_ in &mut sqlx::Transaction<'_, sqlx::Postgres> implies an inferred lifetime
because in the create code, i also have to transmute my own struct, with a lifetime https://github.com/calagopus/panel/blob/b68fc63539fc017c097b0e6001a025398f52b1b7/shared/src/models/mod.rs#L270
This is the type of rust that C++ devs just say "fuck it, let the memory leak"
therefore the '_ in &mut sqlx::Transaction<'_, sqlx::Postgres> and&mut sqlx::Transaction<'_, sqlx::Postgres> are different?
yes
you know this is why i would never transmute lifetimes 
I mean sure but why would i need this at all
im clearly uising non-lifetimed structs without transmute in other code
unm
i think i just got it working
in the most rust way possible
.clone()
type UpdateListenerResult<'a> =
Pin<Box<dyn Future<Output = Result<(), crate::database::DatabaseError>> + Send + 'a>>;
type UpdateListener<M> = dyn for<'a> Fn(
&'a mut M,
&'a mut <M as UpdatableModel>::UpdateOptions,
&'a mut UpdateQueryBuilder,
&'a crate::State,
&'a mut sqlx::Transaction<'_, sqlx::Postgres>,
) -> UpdateListenerResult<'a>
+ Send
+ Sync;
pub type UpdateListenerList<M> = Arc<ModelHandlerList<Box<UpdateListener<M>>>>;
changed sqlx::Transaction<'a, sqlx::Postgres>, to sqlx::Transaction<'_, sqlx::Postgres>,
🧠
let the compiler deal with it
wait lemme see if I can actually still create a listener properly though
bruh it works
the only time i've used dyn was probably when i wanted to use DebugStruct 
i use dyn for many unholy things
one of the better ones being for an event system https://github.com/calagopus/panel/blob/b68fc63539fc017c097b0e6001a025398f52b1b7/shared/src/events.rs#L111
but yeah i'm afraid i couldn't help you with that use case

not that it's out of my scope, it's just that i've never stumbled upon it in my projects enough to get familiar with it
also i have not slept and it's 6am so
no worries, in the end it took me over 3 months to finally fix this too
💀
i somehow think a newer rust version made this easier
because it would be pretty embarassing if i hadnt tried '_
inferring my beloved
i love to infer as much as possible
as _ is everywhere in my code

I miss it every time i need to work on other langs
Right...this isn't so bad right.... this is how much I still have to implement
I thought I was nearly done 
don't tell me your using graphql ll
got something against gql?
i use it at work and i hate it with a burning passion
:p
How come? It's been nothing but pleasurable for me
Well...this project is anything but small 😭
we are using it in my job, a big ass repo with real users (10k+)
and yea
i'm not a fan
Well, rn its currently not seeing a user count. but development wise it hasn't been a pain
if anything it's made it easier compared to its REST counterpart
plus frontend is nice due to tanstack-query
just not prefererd for me
i was thinking of building the dashboard / client portal
i was debating between rest and gql
but figured for my purposes rest just fit better
I definitely went overkill using gql so early on at the very least I will admit that
i mean better build the foundation now then later
The benefits gql offers will not be seen for a while, but Im the type of person who'd rather not deal with shit in the future
💀
Marketplace
oh nice 😄
yuhhh
you can see benefits in that use-case 😛
It's been a 2 year project (on and off, mostly off...)
haha same 😛
i know how it feels
but i ramped up development now and pushed all major features , just testing with real world users
and my project is massive code wise lol
why
dk how
Yeahhh
I got locked in
and got side tracked a lot
It was the stripe implementation
order tracking / payment
my coutnry doesn't support it
What country?
the gap between the price and text is too small fyi
Lookin good though
...I suck at frontend so this is all i've come up with on my own
Ahaha thanks, I definitely don't think so 😭 but design is not my forte
Im a dumb backend engineer thats my domain
though realistically only hardcore servers would use my tool so 🤷 might not even get used a lot lol
and might fail, but whatever i've gven it all
eh for me.
bot (creating/receiving dms) ready, dashboard and analytics is fully ready
rules (my proudest thing) is fully ready
especially since when I do frontend im a perfectionist so everything has to look perfect (which is ironic cause I suck at design)
client portal is close to beeing done
Like the features cards barely noticible but hopefully it looks better 😭
basically my bot is just used for creating the threads and closing them and receiving dashboard input 😂
that' crazy
at most
interesting developing trend
LLM-Friendly Documentation: Every doc page is available as markdown for easy LLM ingestion. Add .md to any URL (e.g., redacted-url-privacy.md)
Is there any job to create a discord bot? I want to register.
Not here, try on fiverr or something
it looks really good though! great job!

yo
if anyone know about iframe, ping me rq
my web not showing up in description when i iframe it
i don't know much about iframes but can you provide more context on what you're doing with your iframe? can you provide some code that might help some of us understand what you were doing?
<!DOCTYPE html>
<html>
<head></head>
<body>
<iframe src="https://example.com/" width="100%" height="400" />
</body>
</html>
put in description -> not showing website in bot page
did
<iframe src="https://example.com" width="100%" height="500" frameborder="0" scrolling="yes"></iframe>
ask ai 
i won't ask ai for code that i already have
worked
@neon leaf @wheat mesa today i learned!
wtf is that
turns rust variables directly to raw pointers without needing to turn them to a rust reference first
well I havent really had to work with raw pointers yet thankfully
you will soon
one way or another
i fear so
hmm interesting the moment i add webhooks for push events this happens 🤔
why do you react 💀 i want to work
please dont take down github next time ty


ay my deployments are failing too -_-
I want to work!
samee!! i was pushing 7 commits at once so i initially thought that i had unintentionally broke github

xd
Update - We have identified the cause of high error rates and taken steps to mitigate. We see early signs of recovery but are continuing to monitor impact.
awesome! great to hear that

hopefuilly it'll be sooner than later -_-
anyone using Cloudflare Pages :P?
yes
i use it for a basic landing page for a random domain i have
ah need a touch advanced, but i don't think it's possible what i want.
namely environment wise ;P
im sure it could handle it, but i would moreorless recommend vercel
yeah fair, it's a bit tricky, though I prefer cloudflare for my current workload
hey guys, so i made a qucik wordpress site cuz i was lazy to go through the hassle of doing react
Why are there bots trying to access urls like mydomain.com/wp-content/test.php
like a bunch of bots accessing different files, but the files aint even there.
its normal, they just try and find vunerabilities and all sorts
i know, i just don't get it lmao
lemme send you pics of some of my logs 
are they fetching the page to see whether the files are there?
Aka my site has been fucked before.
so they can try and access it?
They are trying to access common vulnerabilities in PHP sites
theyre fetching to see if it exists and whats there so they can report back to owners and do malicious things
i get stuff for admin and .env and all sorts
but doesn't wordpress automatically block invalid urls?
not sure, never used it before
I mean an invalid url will probably just 404
that;s what i mean.. so their attack is useless
mine just auto-redirects home
yeah
Nothing wrong with someone trying to GET an invalid URL though… it’ll just 404
may i ask for a huge favour
depends what thus would be doing
elaborate though
i was on phone wanted to try to curl one endpoint they keep spamming to see whether they're returning 404.
so was asking if someone could do that but i sound lazy now
if you send the command then sure
It will always 404 or 405
i love your cat btw, i got a cat just like yours its the best
not if the file exists though
aawh thank you
my kitty called nero
unsolicited cat tax
i have one called neo!
Well… yeah, but these are common PHP vulnerabilities. As long as your site isn’t built on a 15 year old version of the framework, you’re probably fine
3*
damnnn twins
neo = top right on wood
not fully nero but close
i had 3 now i got two. One bengal and one black cat.
yeah facts, i got wordfence i should be good.
black cats are the cutest
still i am an overthinker
sitting in darkness then you see two eyes staring into your soul
you are 99.99% (maybe 100%) fine
i hope, can i send you some links in dm?
That sounds like a scam but lmao just curl it.
even more fishy
yeahh nero's the biggest cat ever. He's 2x the size of my other cat
but bengals tend to be small
hahhaha
uhhhhhhhhhhhhhhhh ok?
folks if i dont say anything in the next 5 minute assume it was a scam
lmao

I love cybersecurity but i can’t handle the stress
So that’s why i do data now
eh im happy @radiant kraken
I have the best commit webhook 😎 https://flare.rjns.dev/68yE7/flameshot-yalnsg.png
the hell you have so much dist files for
the hell are you building? VLC compatible for all?
lol
Thats nice and all but
I am trying so hard to describe the effect im seeing from this. Like it's snappy no? It doesn't close smoothly right?
or is it just because im clicking from one to another
to me it looks weird idk
it's snappy yeah, height not transitioning
Im not sure why tbh
<Grid.Col span={{ base: 12, md: 8 }}>
<Stack gap={'md'}>
{faqs.map((faq, i) => {
const isOpen = openIndex === i;
return (
<Box
key={i}
className={`${classes.faqItem} ${isOpen ? classes.active : ''}`}
onClick={() => toggleFaq(i)}
>
<Group justify={'space-between'} wrap={'nowrap'}>
<Text fw={600}>{faq.question}</Text>
{isOpen ? (
<AiOutlineMinusCircle className={'w-8 h-8'} color='var(--mantine-primary-color-filled)' />
) : (
<AiOutlinePlusCircle className={'w-8 h-8'} />
)}
</Group>
<div
style={{
maxHeight: isOpen ? '500px' : '0px',
opacity: isOpen ? 1 : 0,
overflow: 'hidden',
transition: isOpen
? 'max-height 0.35s ease-in-out, opacity 0.2s ease'
: 'max-height 0.3s ease-in-out, opacity 0.15s ease',
}}
>
<Text c={'dimmed'} size={'sm'} mt={'md'} lh={1.7}>
{faq.answer}
</Text>
</div>
</Box>
);
})}
</Stack>
</Grid.Col>

Discord lowk needs to fix this spacing issue with codeblocks
fixed it
no fuckin clue how this actually works tho ngl
found it on stackoverflow
lmaooo
uses some contentRef array
<Stack gap={'md'}>
{faqs.map((faq, i) => {
const isOpen = openIndex === i;
const contentHeight = contentRefs.current[i]?.scrollHeight ?? 0;
return (
<Box
key={i}
className={`${classes.faqItem} ${isOpen ? classes.active : ''}`}
onClick={() => toggleFaq(i)}
>
<Group justify={'space-between'} wrap={'nowrap'}>
<Text fw={600}>{faq.question}</Text>
{isOpen ? (
<AiOutlineMinusCircle className={'w-8 h-8'} color='var(--mantine-primary-color-filled)' />
) : (
<AiOutlinePlusCircle className={'w-8 h-8'} />
)}
</Group>
<div
ref={(el) => {
contentRefs.current[i] = el;
}}
style={{
maxHeight: isOpen ? `${contentHeight}px` : '0px',
opacity: isOpen ? 1 : 0,
overflow: 'hidden',
transition: 'max-height 0.35s ease-in-out, opacity 0.2s ease',
}}
>
<Text c={'dimmed'} size={'sm'} mt={'md'} lh={1.7}>
{faq.answer}
</Text>
</div>
</Box>
);
})}
</Stack>
like tf is this scrollheight shit
is this just basically getting the height of the all faq divs?
so it can transition properly?
okay I was right
its to get the entire component’s height
oh yeah you answered, didnt see
ehh i dont intend to continue it. i cant do further than sketch yet.
-# also this is #development
it's alright! i just wanted to talk to you for a quick bit 😄
and it's alright if you can only sketch right now, your sketches already look really good! 
progress is progress! i wish the best in you!
thanks ❤️
no worries! 🫶
dude i'm so giddy after cryptic's review that he left on the bot site holyy
just constantly giggiling haha
as deserved!

you should be proud of yourself
boys i am in a split atm
i enjoy web development with js, ts, react and also backend stuff like java, haskell etc. But tbf, i also really like data analysis... what the fuck should i pursue lmao
i feel like wb development is getting fucked by ai...
and i can't do both, i feel like i will just get a jack of all trades without going in depth in a specific domain
Web development will always have a market. AI being decent at generating a frontend doesn't mean that it will replace developers. It will just change the expectations of the output from a single developer
So I wouldn't make your decision based on whether or not AI will replace anyone
Generally speaking though, getting good at higher level system design & backend concepts will land you higher paying jobs
i think proper good frontend engineers are more important now than ever
b/c of the variability of how things can be done on the front, ai chokes hard without good guidance, conventions, patterns, etc.
ai is basically essential for any complex react app at this point, so many stupid render rules and use hooks so you dont slow down their stupid rendering system to a halt
but even with that, someone needs to still look over what it does
i don't think it's essential at all, useful sure, but certainly not essential
Where should I put the theme switcher
This is a dropdown
Maybe its the lack of items in the dropdown but it being centered there looks weird
Maybe like this?
does anyone have a vote tracker bot for your servers? I would love to bounce ideas...I wanna update my vote tracker bot for when the server webhooks go live
Why not left align it?
I think left align looked ugly
You don’t put a ticket in
You add it to the site and it sits in queue until a reviewer gets to it.
Current wait time is about a week iirc
actually i kinda prefer make it like a toggle button menu.
(radio) Dark Mode
that kind of toggle (yours) looks better on footer imo
i agree! 
Not quite sure I understand
You mean just a button?
smth like this
yes, the point is the without icons
I see I’ll try it
a "little" congrats always nice!
who in the right mind uses anything BUT dark-mode?
Also salt, any tips for growing the bot?
well, i tried reddit but it didn't really work out for me
i ended up using advertising channels in servers i was quite active in
after that, i just passively grew
you are at the point you don't need it.
here's my current count
amazing truly
I'm not sure if you are opened to it, but would love to get feedback from you relating the bot/dashboard you've built if possible, if not I completely understand.
I agree, always something to improve upon, and I see the project with different eyes, than someone else.
Thanks hah 😄
currently I've 6 servers, but most are test or people testing stuff out.
😛
ah that's how i started out, eventually it'll branch out from testing servers trust me
listen, as long as people find a genuine use and are happy, I'm more than happy to get harsh feedback.
Even the premium, there is a placeholder lol
@crisp trout you're website is really well built
Same for you @low marten but you don't use any capital letter, is that normal ?
my capslock key is destroyed... i'm sorry haha
but thanks for the compliment
Hahaha
im getting to a point where its more efficient to resolve relations in-app rather than directly in the initial db select query
one of the main reasons being data duplication with many rows, if I resolve in-app I need 1 query for 200x the same relation, if I do it in-db i need 1 big query that then gives me 200x the bandwidth costs
if ur getting data duplication then ur constraints arent strict enough
well in my extreme example its activity logs
where if you list 1000 entries under the same server, you are likely to get the same people over and over again
then I can fetch these people individually while fetching the activity logs in parallel
so simplified
user_futures = {}
rows = []
q1 = select logs where server is x limit 1000
loop {
r = q1.next_row().await
if (!user_futures.has(r.user_uuid)) {
user_futures[r.user_uuid] = User::by_uuid(r.user_uuid);
}
rows.push(r);
}
users = join_all(user_futures).await;
me when i brute force
@low marten normal?
yeah, it's 1 number per user
it's designed in a way to get as many users active and participating as possible
Understand, I though per a user 1-100
i could make it configurable next patch if you'd like
yea It would be great, since if somebody is tired he can count
and It would be great if you could add maths like calculate
Is there any support server, where I can make new suggestion?
ofcourse, and mathmatical counting is already in beta, it'll be out next patch
lets gooo
little bit like this haha
ye, I will try it later on
any support server?
If yes it would be great if you could send me the link
🔥
And with that development of allowing dashboard access is now close to completion.
What does this mean?
Now not only server admins can view the dashboard, but your support team as well (of course with some RBAC configurations beforehand) 😄
fantastic job gothic!!

hehe
Hello Top.gg members! I was wondering if it is possible to have a actual discord bot send notifications when a bot gets a vote, I have seen it is possible just wasn't sure how it would work if I tried to do it in discord.js so some help would be greatly appreciated!
and then how would i do a webhook from my bot to top.gg
(and I would be using a private bot for this feature)
A webhook is nothing more than a web server that is used only to receive requests (in this case from top.gg)
okay... now a dumb question, do I just need to make my own random webhook for my bot and top.gg to communicate or is it way different than that?
we have an example for the new system here: https://github.com/top-gg/webhooks-v2-nodejs-example
I should of looked, I saw it in the announcements just now, thank you veld!
hey guys i just added cloudflare to my site, i am kinda new with cloudflare.
i logged into my account and it displayed an ip i am not familiar with.
is that cloudflare proxying my ip?
i think it is heheh very cool
The point of cloudflare domain/dns is to proxy traffic to your server so they can integrate and protect it in the middle basically
You can add something to resolve real IPs and what not
But yeah cloudflare is pretty awesome
We <3 cloudflare
veld is goated holy
did you set up a tunnel?
if yes then it masks your ip to visitors instead.
car go clean
car go sleep
jokes on you, i am already in brazil too
still in Bahia?
do tim ever go outside his cave
ye
wow 🙀
@pearl trail
hm, i prefer it’s on the menulist, like settings. is that possible here?
I mean yeah but I tried that as well and it didn't look as clean
If you mean like next to it?
I did proxy all traffc yeah
to mention cloudflare is free
Best ever
yes
everyone needs to read that article about cloudflare that primeagen went over from a gambling company using cloudflare
im scared for my life every day
send
think its this one https://robindev.substack.com/p/cloudflare-took-down-our-website
tho i did hear cloudflare sales are under very strict quotas
you are gone within the first month if you dont hit them they usually dont care if you're new
so its either harass possible leads into paying for cloudflare or harass existing customers to pay more for something they dont need
writing another archive format 🔥
-rw-r--r-- 1 root root 2073924K Feb 12 13:39 archive.ataf # my old new format
-rw-r--r-- 1 root root 2073747K Feb 12 13:39 archive.itaf # my new new format
-rw-r--r-- 1 root root 2076621K Feb 12 13:37 archive.tar
-rw-r--r-- 1 root root 1357282K Feb 12 13:41 archive.ataf.gz
-rw-r--r-- 1 root root 1343064K Feb 12 13:42 archive.itaf.gz
-rw-r--r-- 1 root root 1343222K Feb 12 13:43 archive.tar.gz
new approach this time tho
can you compress discord bots with it
🗜️
🗜️🗜️🗜️
Since when this is an emoji
aint no way we still have bot compression jokes in 2026
did you make your own archiving LOL?
fucking crazy, nice one
now i gotta wait for the response from discord ❤️🩹
are you using js on your bot?
or ts?
the bot is running pycord, i'm using a quart webserver for the frontend
ahh
a bit more advanced workflow builder 😛
not sure hjow d8r sounds as a name lol
wdym?
We have a reviewer in the chat
/we are not worthy!
sounds more like dater to me
yeah the name ain't the greatest right xd
hey you are equally as worthy!
all of you are awesome!
what are you trying to make?
lemme boot up local and i'll show ya.
🫡
just a bit more advanced to send to different places, e.g. jira, trello bla bla
just need to think about
um infra or whatever which api's i'd need and sh
idk im just messing round xd
might not even finish it xd
whyyy??
idk
Does the v1 API include the v0 endpoints, or do I need to keep using the v0 API to update my bot's stats?
afaik atm the v1 API has no way to post your bot's stats
things like autoposting is from v0
the API will still continue to support v0 endpoints though
but subsequent updates on the SDKs from this point on forward will only contain v1 features

YOU ARE AMAZING
no words could convey how much I am proud of you!
hourly cat picture module instead of working on the actual important things
this is very cool
ty
we
we' shall see if i continue development on it 😄
car
haha @radiant kraken
from now on, this is how i would go through my day

though workflows only based on discord sounds lame no @radiant kraken ?
nuh uh!
would appreciate though opinions on what other interactions they' appreciate current ones are
wdym?
what other integration/actions should I add
hmm maybe when message sent -> vote topgg
hah
ayo cracked
@steel oxide Hi, how are you?
You tell me to tag you when i change it
ayo veld lurkin here 😄
open a ticket
Okey thank you
f it i'll try and build it out @radiant kraken who knows 🤷 , but will be using my old api engine hah
good luck!! you got this!

oh i know 
kidding
though, I cba to scout for domains, I'll just yoink my existing one and host the api there hah
nice!
zug zug
@radiant kraken think i'm close to finishing lo 😄
update broke decorators what
oh no im just dumb, commented out different part of code.
Hi, I’m pretty new to this so I might be missing something simple.
I set up a webhook for Server Votes and pointed it to:
https://votes.topggvotetracker.xyz/topgg
If I manually send a test POST request (using curl), everything works:
• My server receives it
• My bot logs the vote
• It posts the announcement in Discord
But when someone actually votes on the Top.gg website, nothing happens.
No logs, no errors — it’s like the webhook never fires.
I’ve double-checked:
• The webhook URL is correct
• The secret matches
• The bot is online
• The route responds with 200
Is there something different about how Server Vote webhooks are sent compared to manual test requests? Or is there something specific I need to enable for live votes to trigger the webhook?
Just trying to figure out what I might be missing. Thanks
test works, but vote doesnt?
Correct
I’m using a VPS which doesn’t allow HTTPS, however I’m going through cloudfare to re funnel? I think. Everything checks out though, test work, but live votes do not
you do need https, but if you're going through cloudflare you should be ok
do you get any error?
just nothing?
can you share the server link?
i can probably check the webhook status for your server
Sorry, a manual curl works, the send test on the website does not. Then live votes do not. Had to correct myself
gotcha.
Here or dm?
Check out T!H$C - The Houston Clutchers Discord Server on Top.gg, the #1 Discord Server List! https://top.gg/discord/servers/784147911148965888?s=0bd8997fb2478
{"failReason":"HttpError","statusCode":"Unauthorized"}
Got it, thank you, I will do that
Could you confirm what exact header format server webhooks send? For the authorization part @humble gyro
GitHub
Top.gg Webhooks V2 example using nodejs and express - top-gg/webhooks-v2-nodejs-example
check the reference code here
it explains the entire thing, with comments
👍 🔥
Tried agentic coding for the first time and I hate it. I have my own local Ai running and the performance isn't awful. Just I'd only use it for suggestions instead of trying to let it do anything itself. It just feels way more efficient for how I'm wired
local wont ever be as good as the models cursor provides (claude, etc) unless you have a datacenter in your room
but yeah its sort of finding that balance of where to use it and where not to
i tend to favour it for work code tasks i find boring but dont in my personal projects unless its boring frontend stuff
gpt oss and deepseek r1 didn't provide terrible suggestions, but some of the tooling I was running them under sucked and even if it didn't suck, I did have to explain myself quite a bit for them to understand I'm not making stupid decisions
every time claude auto-compacted itself for me it got completely lobotomized and i had to reprompt it from a new context
same lmao
it just removes crucial information from the prompt and gives the model a shitty summary
thats why i think people are starting to use ai-agents.md files or whatever they are called that agents automatically read so they retain context about the codebase and stuff you want it to do and dont want it to do
finally a new rack 🙏
eh, i dont use it enough for it to matter, used it to do like 2-3 refactors once, spent more time reviewing in the end
i use it for repetitve task lmao
i saw a job posting last week hiring for an "AI first software engineer" and they explicitly made it clear in the job description that you must only code with LLM tools like cursor or copilot
i definitely would not want to be a user of whatever app they are building
banking app 🔥
tho if you think about it its actually good for us long term
it means there will be a massive influx of vibe coders that have no low level knowledge or knowledge of why computer do something its not supposed to which means they will hire us with a 4x salary to fix their shit
kinda like cobol developers are still in demand
how can they offer a 4x salary if the economy collapses?
perchance
tho im curious if the bubble pops, will it have a positive or negative effect on inflation
awesome!! great to hear that!

it’s saddening for me that my software engineering lecturer told us to vibe code the final project
well that’s great since then my competitors is lesser but still
currently migrating to v1 webhooks, what does req.rawBody in express?
trynna implement in java
its the body without any additional parsing, so just a bytebuffer/string
def content = '{"type":"vote.create","data":{"id":"810124259540119552","weight":2,"created_at":"2026-02-13T12:24:34.8557721+00:00","expires_at":"2026-02-14T00:24:34.8557721+00:00","project":{"id":"4283610082692988928","type":"bot","platform":"discord","platform_id":"572413282653306901"},"user":{"id":"8638540286017601536","platform_id":"350836145921327115","name":"kuuhaku_otgmz","avatar_url":"https://cdn.discordapp.com/avatars/350836145921327115/0a21892e002631ad384ceb9c05ed64a8.png"}}}'
def head = 't=1770985474,v1=f010cc323b3d3ab4db12eba0cdc70cae98ed13d58010386f9399423a45135a1f'
def secret = '--------------------'
def values = head.split(",")
.collect {it.split("=") }
.collectEntries()
HmacUtils mac = new HmacUtils(HmacAlgorithms.HMAC_SHA_256, secret)
mac.hmacHex(values.t + "." + content)
Result: 5446a40c62615fed23465b8fe8a2c94268ded3596daf8c9bdc8f8dad900f0a99
then no idea what I'm doing wrong
like, that's the literal raw body
these are always such a pain to get right because even a single byte or setting can fuck you up
content length matches with content byte count
is values.t extracted correctly?
wondering if that t= preamble needs to be preserved as well but i would imagine not
log the result of values
will try locally
actually i cant without the secret nvm lmao
yikes, thankfully my lecturer has never mentioned anything related to vibe coding
during our lecture he was coding and debugging on his own 🥺
yep
--values
[t:1770985474, v1:f010cc323b3d3ab4db12eba0cdc70cae98ed13d58010386f9399423a45135a1f]
--hmac value
1770985474.the_big_ass_content
you got this!! you're the best!! ❤️
hm, havent personally used the new webhook api yet, and I dont know shit about java, do you maybe need to manually make the hmac thingy know it has data to digest?
maybe the secret key is also hex/base64 encoded which you need to decode first???
send secret
i mean its not in prod yet id hope so would be an issue ig
eh, actually shouldn't matter since I'm still implementing it, can just create another later yeah
whs_ea6dae5f7b6cdcbe32181e60260a90bd244413527881a89a26a2dbccb26ba1be
aint even running yet, I'm testing the code on groovy console lmao
yeah youd just use the key directly
yeah im getting the same result as you in my test code in another lang
that's weird then
u sure the secret is correct on topgg side? 🤔
imma check in case
if thats not it then the body might be sus and may be being interpreted in a different encoding
nah it's wrong lmao
lmao
mustve pressed reset sometime after voting, so the signature will obv mismatch
well that's it folks, just a pebkac issue
deficiency in nutrient skill
ah yes gotta love tokio not implementing AsyncRead for &mut [u8] and only for &[u8]
Vec<u8> doesnt have an impl either ????
look my bin is already 60mb of pure rust even with all opt set to s
i need to save space somewhere

while dyn pollutes the vtable, its still cheaper than generic function dupes
dyn users realising that you can code without ever doing any runtime dispatching
this calls for an AI meme
dyn haters realising having do_stuff<T>(a: T) dupes their function for each time its called with a different T




