#development
1 messages · Page 224 of 1
I remmeber before your only way was to rely on audit logs
and that was unreliable
Do you know how to set it up?
Ima be real Blissy
It's probably best you read the docs more often
We can't hand hold you every step of the way
That's not in the docs
it wont be easy but itll be a fun project for you
The docs give you the building blocks for what you need to do
Its your job to piece them together
i mean the person who joined with said invite
You should be able to get that
I remember being able to
Oh well I guess not

Maybe im remembering wrong
yeah it doesnt look like that exists
they have the data too bc its visible on the members tab
when someone joins, you need to refetch all invites and check which one had its use count increased by 1
its dumb
yea
uhm
time to submit a request!
I mean
It can't be that hard for them to add it right?
Its literally just passing the invite used to the gateway event
theyre too busy charging 30%
its not 30% anymore
oh it got changed
still insane
After 1m they start taking 30% again
EHHHH
Not necessarily
Could they survive taking a lower rate? Sure
But for what they offer its still hell of a deal
They basically do all the integration for you
Saving you hours of labour
All they do is take a cut off the transaction for that labour
All you need to do is a simple
if user doesn't have this pack deny them this access
and boom
it still seems extortionate

You wouldn't pay someone building your house only 30% of what you owe them
Don't get me wrong, I still think 15% and even 30% is a high rate to take
But for what they give you in return its not the worst thing in the world.
Not to mention there is nothing in their monetization TOS that says you can't use outside sources to gather income
yeah i agree that they can take a fee but 30% even after 1m is a lot
lets hope they dont change that
Its what most companies do
Pretty sure (dont quote me on this) they can't legally do so
The best they can do is say (what they are doing now) use our platform as a source of income
const guildInviteData = invites.get(guild.id);
Thats how it searches for it
its a bit more complex than that
Well yeah but thats the basic
Once october 7th rolls around you are required to use their monetization platform for any monetization of the bot
but thats only as a single source of income
you can still use other sources
like paypal, stripe, ko-fi
wdym
I just dont know how to make it not say 0
like you have to have it available on discord?
yes
ohhhh
Discord is going to require you have your premium plans on their platform as well
but you could still like nudge people into paying elsewhere
thats not too bad then
The prices on discord have to match everywhere else
but the other key thing is,those other places aren't charging 30%
So even if on discord you sell it for 10$, and on paypal you sell it for 10$ you are making more on paypal anyway
is there not the loophole of you cant sell anything on discord if your bot has fake gambling
That's where it becomes a legal issue
In the US online gambling is prohibited
and since discord is a US company they are restricted by those laws.
So even though the currency on your bot isn't real. If you sell that in-game currency for a monetary price it's still considered taking money for gambling
Not to mention the users won't get anything in return
💀
basically discord became corporate garbage
they get the adrenaline of fake gambling ofc
like everything that gets big
still
discord cant control everyone
nothing stops you from getting your bot verified and later on accept donations
you won't survive in corporate america if you don't conform to its twisted desires
Right and they aren't stopping that
They can't from my understanding
Just if you sell any premium plans, they want it to be done through discord as well
So that way in the off chance people do purchase through discord they get a cut
did they not just add one time purchases too
Their new announcement that contained all this information had a lot of future updates in the work
"premium" via donation has always been a legal loophole
churches and non profits use it
They plan on having One Time Purchases (already released ), Multi-Subscriptions, Expiring Skus etc etc
and politicians
lmao yeah
Yea well, discord likely wont allow premium features
but maybe giving them a reward
like extra in game currency
or a free trial
idk what discord has planned so that was just speculation
but according to the terms any premium features must be sold through discord as well
a donation can be any amount of money
which is why I think discord wont see kindly to that
Bruh i wrote a Ticket to move my bot to an team
No respond
Bullshit
Idfk why i can't move it on my own
Do you know how to do it?
???
or do you mean Discord
not topgg
I’ll give you the general plan but I’m not gonna teach you how to do it
You need a database to make a record of all the invites (I’d recommend sqlite and prisma assuming you’re very new to this)
Every time a member joins you need to fetch all the invites in the server and compare them to the ones you have stored, one invite will have a higher number of joins.
And tada you’ve just found which invite the user used to join
But if you’re new to coding and this is your first sort of thing you want to work on I’d recommend something smaller first
@quartz kindle https://twitter.com/thdxr/status/1802788065079185734/photo/1
Discord
Somehow i can't move my verified bot to an team
What error does it show
discord start crying
about anything to do
with verified bots
the fact you cant change the name
is diabolical
This action cannot be performed because the application has been verified. Please contact support.
Idfk what that is
didnt you say you never planned on it
I did tell you to move it to a team before verification
Yes
"Nah man, I dont plan on monetizing it"
I know
I know
How am I supposed to know that you can't do all this if the bot is verified
Bullshit
well because you aren't supposed to be changing anything about the verified bot tbh
At that point they'd have to reverify you and what not
That makes no Sense
Probably internal records bullshit or smth
Hm
Once a bot is verified its supposed to remain in its current state.
Name and whatnot

Ah
Okay
lmao
I just have to keep using Patreon 
Hm
BRO
Yes, thank you
Make as much money as you can outside of discord before it becomes another payment method
People will likely prefer the simplicity since their card details are already entered on discord
and its no sweat off their back
I got a few Donations Already
tax official here, you owe us money
pay me now with gift card or go to jail
DO NOT REDEEEm
Found this gem

Next gen Toilet
yknow sometimes I forget this isn't general chat
with how much tim and I talk here about nonsense
💀
You are just here too often
that's fair
I probably have a combined like 40-50k messages amongst my 3 accounts that have been in top.gg
Damn
rookie numbers
Which in hindsight isn't a lot but I didn't actually start talking in this server until like a few months after joining this server back in 2018
Also, I think its sad that 77% of tims messages are from this channel
💀
cries
111,589 messages
#development is general v3
I have 27k messages on this account
I had roughly the same if not more on my last one
Idk how much i have
and the one before that only had like 2k messages
1 account got banned from top.gg then I deleted it because I was being harassed by women 😏
the last one I got termed for joking I was 12
Had no id at the time couldnt prove I was actually 18

Oh yeah
I had that a few times
this is my last account
if this one goes bye bye i am making a chat app of my own
fuck it
Say you are 12
no ty
I dare you
@quartz kindle btw tim
how hard would it be to make a reverse image search service
do you know what would be required?
maybe

but I gotta find the sauce of some stuff
and i'd like to make it a user install app for myself
Maybe you need ai for it?
so I dont have to visit tin eye, yandex or google
Idk
Damn
Why do you Ping?

Report the Reviews
ok
honestly i have no idea what they use for that
Your bot got 350+ commands?....
yes
its a multi purpose bot

true
it wouldn't be a multi purpose bot if it didn't have at least that many
Because as you know
people need 350 commands they hardly will ever use
:)

Right I should be more specific in my searches
guess I thought the python library would show up
💀
using which browser
brave
Uhm
Possibly this https://practicaldatascience.co.uk/data-science/how-to-use-image-hashing-to-identify-visually-similar-or-duplicate-images
@quartz kindle
curl: (26) Failed to open/read local data from file/application Dont you love getting this error when using curl
Funny thing is
if I call the sh script that uses curl directly no problems
but im calling the script inside of a python file
so for some reason it's having issues
why would you use curl from inside python?
just use some python http lib or whatever
huehuehue
well idk why it wouldnt work
Do you know if when you answer a review, the answer is not displayed?
from what i understand that error is related to incorrect paths due to quotes and stuff
ima just have to convert it to using a python http lib
but the answer can be seen by the other user
maybe needs some escaping in your python command
curl -H "authorization: adasd" https://files.aarondye.dev/api/upload -F file=@"$1" -H "Content-Type: multipart/form-data" -H "Format: random" | jq -r '.files[0]' | tr -d '\n' | pbcopy;
this is the script
it works fine when I call it normally ./script filepath
but for some reason when python calls on it then it breaks
how do you call it in python?
from watchdog.events import FileSystemEvent, FileSystemEventHandler
import subprocess
class EventHandler(FileSystemEventHandler):
def on_created(self, event: FileSystemEvent) -> None:
if not event.is_directory and event.src_path.endswith('.png'):
# print(event.src_path)
subprocess.run(['./zipline.sh', event.src_path], capture_output=False, check=True)
using subprocess
there is also like a 5-10s delay before on_created is called
no idea why
try setting cwd=path to zipline.sh
subprocess.run(['./zipline.sh', event.src_path], capture_output=False, check=True, cwd='/root/somefolder')
also try adding sh or bash to the beginning of the array
some people say it only works with bash, others say it only works with sh, others say it only works without them lol
funny value
wonder what it means
that happens when the curl file parameter cant find the file
log event.src_path
to see what kind of path it is, if its absolute, relative or some other
its absolute
maybe its the spaces?
But that doesn't make sense because its enclosed in ""
what if you run it with sudo?
same thing
from what im looking on stackoverflow and shit
the entire file=sutff should be enclosed no?
I dont think so
-F "file=@..."
does it show anything else if you add -v to the curl command?
nothing useful lel
yea
I really dont know what else to do

this is to upload screenshots to my file host
subprocess.run(["curl", "...", "...", "...", "...", "...", "...",])
remake the entire curl command in subprocess
ima just make it using aiohttp

my problem rn is
for some reason there is like a 10s delay
or use os.system instead of subprocess
It takes like 10s for the on_created function to be called
which is kind of weird since the event system is supposed to be fast asf
what calls it?
watchdog
import time
from event_handler import EventHandler
from watchdog.observers import Observer
if __name__ == "__main__":
event_handler = EventHandler()
observer = Observer()
observer.schedule(event_handler, path='/Users/aarondyejr/Pictures/', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
this is how I was told to do it
kind of weird if you ask me
i have no idea
I mean its not a big deal tbh
but I feel like it could be faster
unless macos is explicitly slowing it down
what is that while true doing?
the observer doesnt do that by itself?
thats even more weird
ima just rewrite it using aiohttp
bro I swear at this point python is just fucking with me

anyone know how to run a rust lambda locally on windows?
use lambda_http::{run, service_fn, Body, Error, Request, Response};
wdym
its not like rust changes depending on the env you are on
it tells you the error
whatever you are trying to connect to refused the connection
the code isn't connecting to anything. looks like i need to run it via docker, but i'd like to avoid that if possible
well it obviously is if its using hyper
hyper is an http library
something you are using is using it
or you forgot you are using it
this is the only reference in my codebase and it's in the target folder
well
i need to learn rust
any of those http libs possibly use hyper
probably the first step

Depends on how well you know statically typed languages
I mean, I started using rust in a large project and just learned it along the way
too much typing

just read the rust book
its one of the resources I used to learn what I know
i wish rust had a way to make properties in a json! optional
let res = if ephemeral_commands.contains_key(command_name) {
json!({
"type": InteractionCallbackType::DeferredChannelMessageWithSource as i64,
"data": {
"flags": 64,
},
})
} else {
json!({
"type": InteractionCallbackType::DeferredChannelMessageWithSource as i64,
})
};
Also can you not use Option<T>?
perhaps, first i need to get the function running locally
why do i need to use #[tokio::main] to make my function async?
because rust doesn't have native async support
you need an async runtime
the keywords exist
but without something like tokio, good luck
nice!
good morning chat
Is there any way to stop a js script and run node . again somehow?
While the script is running
so:
Script catches a certain command, script restarts itself
That's easy with pm2
I guess you could also run a parent script that runs whatever script you want as a child process which will allow you to kill and start it like you want
pm2 or nodemon
Yeah just process.exit whenever that command is ran and it'll work how you want it to work if you use those tools
just strict type things
you can do that with child_process
launch a detached shell script that restarts the node script
with a composite primary key on postgres does it create an index for both columns or a single index for each column
it'll create an index for the primary key
so 1 index with both columns
you can check this on your dbm
awesome ty
is there someone who can explain me the discord time formatting
to get like a cooldown ya know
well i got it:
const time = Date.now()
= 1718724829722
when i now use
<t:1718724829722:f>
it displays me, 24 march 55545??
is the date.now wrong or sum
Shouldn't you divide it by 1000 or something like that?
Because Date.now() returns the number of milliseconds and Discord probably takes seconds when it comes to timestamp 
timestamp is unix, date.now is millis
so yes, divide by 1000
and dont forget to math.floor
(Date.now() / 100) >> 0 is faster 
owh damn
can't we also just parseInt()
parseint is string -> int
it also takes numbers tho
dont think so
if u pass a number to it, it'll first call toString() before passing as param
it returns me the output though?
^^
Huh but why
because js doesn't error
how can it error and return the right answer?
it's extremely lenient and will try to convert here and there to make it fit
it doesn't error
ffs
parseInt takes a string
it'll convert the double to string
then parse it
i did
nahh
on the first message
^
owh damn you did
js will always try to fiddle with things as much as possible before resorting to erroring
cuz "we cant break web"
it's also part of why I dislike js
i see, sounds cool
That's why i love java though. Java goes straight to the point and tells you to fuck yourself
(number >> 0) is faster btw because it'll truncate the value, no conversions happening nor any calculations
just raw trunc
How does the speed of it compare to ~~(number) ?
that's 2 ops
Is the bitwise shift to the right, right?
Ahh omg i see
I swear i had such a problem when creating my own cpu on logicgate
Or it had to do with some of my registers not responding.. ion know
but thanks
Don't ping Staff without a reason
yo guys can i send my code to someone (like 100 lines). I am using puppeteer but paranoid that the browser is not being closed, leading to my ram getting fucked.
idk i went through the whole flow and each time i conclude that it's closing properly but i might be dumb though
sure
send it to @quartz kindle

i think he gotta give me permissions first lol 😭
lol
ew
when you forget to close the tabs yes
nah i closed all of mine
tried multiple methods, including new browsers, new tabs, closing them always and it uses all ram
yo yall are scaring me
can i send someone my code to inspect whether i am closing everything properly?
I once had a huge fucking memory leak as i didn't close all pages.
i can take a look
thank you mate!
Can you diagnose some code for me?
Dr. Tim 
this code has cancer
its incurable
diagnosis completed

what is there to fix
its working as intended
:^)
complain to js author
I am suing for mental damages I got from looking at this
I didn't file my taxes
No problem
Just a bit of CPU usage
the IRS has their own guns now, they dont need the fbi
Possess an be ready to deploy a firearm
so...any average american?
yeah, basically any normal american
nm, this was debunked
lol
look at my beautiful rust code update
this syntax is so crazy
let is_premium = entitlements.iter().any(|entitlement| {
entitlement["sku_id"].as_str().unwrap() == "1019475255913222144"
});```
you should try and use unwrap as little as possible btw
unless you know it exists and wont error out
i have no idea what discord will send me
then don't unwrap it
what does unwrap even do?
It will throw the error and exit the process
united nation world rap
It's used for getting the value from a Result/Option
so i should double wrap it?
Result has two return types
Ok and Err
double the saftey
like an async thing?
no
Its not specific to async at all
It's just rust's way of handling errors
You can return a value, or you can return an error
so they use error objects in a similar way that js uses promises?
the point of unwrap is if you know 100% certainty that the Result won't return an Err or that the Option wont return None then you can use it
Otherwise handle it accordingly
Think of it like a glorified tuple ig
so wrap/unwrap is like, wrapped inside an error handler, or removed from the error handler?
well, ok so wrap isn't a function
but you can wrap a value in an Err/Ok
sorry
I thought you meant wrap as in a fn called wrap
ah, no i meant the concept
let me write up an example
or I can get cahtgpt to do it cuz im too lazy
one sec

lel
but i think i get it now, its similar to how promises work in js
you have a sort of container object that has a state
and depending on the state, you can get the value from it or not
enum Result<T, E> {
Ok(T),
Err(E),
}
This is what result is at its core
ok, i've double wrapped everything
fn divide(a: f64, b: f64) -> Result<f64, String> {
if b == 0.0 {
Err(String::from("Division by zero"))
} else {
Ok(a / b)
}
}
Now surprisingly chatgpt gave a good example.
Suppose you have a divide function that takes in 2 floats. The return type will be a Result that has an ok value of type f64 and a error value of type String Well you can't divide by 0 so if it encounters that then it will throw an error (note it doesn't check a ik but idrc it still demonstrates it to some degree). Else it will return Ok with the value being the division of a /b
fn main() {
let res = divide(5,10).unwrap(); // This is safe to do as we know we aren't dividing by 0. Unwrap will return the `Ok` value.
println!("Result is: {res}");
}
fn main() {
let res = divide(5,0).unwrap(); // this will cause a panic because now we are dividing by 0.
println!("Result is: {res}");
}
so now i need to cast my string as an optional string? good ol strict typing
One of the safest ways to handle a Result or Option if you are uncertain of the return type is to use match
No need to cast
Just do Some("string")
that's not casting?
It converts it into an Option with the str being the value
so there is no divide().Ok()
it's still typing
i mean of course not
funnily enough there is but it doesn't do what you think

.ok() is on Option and it converts Option<U> -> Result<T, E>
then you acccess with unwrap and then/await
what I meant was no need to do as Option<&str>
as some people try to do

it will error out
of couse it will
not many know that
just spreading the word

Idk how experienced you are with rust as you said you are learning it
thanks
no need to be snappy
rust is being mean, not you
Well it makes sense tbh
casting a primitive to a non-primitive is unsafe at least with rust's type & memory management philosophy
is this the right way to parse json?
let body_parsed: HashMap<String, serde_json::Value> = serde_json::from_str(&body_string)?;
pretty much yea
cool thing is tho Result and Option aren't limited to async rust
so its very beneficial to those not using it as well
:)
damn
i needed to do this
// check if any of the entitlements have sku_id 1019475255913222144
let is_premium = entitlements.iter().any(|entitlement| {
entitlement["sku_id"].as_str() == Option::from("1019475255913222144")
});

Some() should of worked
if .as_str() is a option
wait a second
why the fuck is it an Option 
lib must of overrided as_str to return an Option<&str>
bc as_str normally returns an string slice on its own
or wait no, it might be ebcause of .any
either way whatever works
interesting
I wonder why
oh wait
what thats dumb 😭
I guess the type of it is unknown when using ["key"] but still 
sad thats how it is
Anyway
you shouldn't need to do Option::from() you should freely be able to do Some("id") at least if it truly is an Option<&str> and serde isn't fucking with shit again
Some("asdas") converts it to an option with the value being "asdas"
oh yeah, that works too
let is_premium = entitlements.iter().any(|entitlement| {
entitlement["sku_id"].as_str() == Some("1019475255913222144")
});
👍
yes
but other lines must have a semicolon
but other returns can have a semicolon
yes if you use return you have to use a semi
gotcha
but you don't always have to
it's syntax sugar
9 times out of 10 you can just put it without the return and semi
it treats the last line of any scope as a return
if it does't have a semi
ALSO
note if you don't return anything either via return or something (no semi) it's return type is ()
which depending on what you are doing will throw errors
for example
let a: Result<i64, String> = match something {
Ok(val) => val,
Err(err) => {
Err("Soemthing: {}", err.to_string());
}
};
iirc this will error
oh wait ofc it will
I mixed up Result & Option
😭
() is the default return type if no return type is specified
fn main() { // return type is ()
}
which means you can simply return println!() or anything else that returns () or nothing
its kind of like a void
is None not a part of the language?
Official designs of the Kittens of Four cast (Yes I made Lizzy wear goggles)
[-THE CAST-]
Kitty
Shelly
Lizzy
Buddy
Duge
Me. Fuzzles
Chezzy
Grudge
Ratter
you have to make it Option<T>
Okay, so cool art. But not the right channel for this
nope
Only on Text, Announcement, Forums and Media channels
no
function setVoiceStatus(channelId, status) {
return new Promise(async (resolve, reject) => {
await fetch(`https://discord.com/api/v9/channels/${channelId}/voice-status`, {
"headers": {
"accept": "*/*",
"authorization": `Bot token`,
"content-type": "application/json"
},
"body": JSON.stringify({ "status": status }),
"method": "PUT"
})
.then(e => e.text())
.then(e => resolve(e))
.catch(e => reject(e))
})
}
put this one
if bots can’t do it it will return “Bots cannot use this endpoint”
yes
thats dumb
lmao
i should try break it
lol
lol
i'm coding on my phone
skull
Come make cards with me
That wont make me money

unless you paying me
Ah, that kind of down bad
yea
Im down bad for money
I been playing games all day and they make me like 1$ every 30m 
nice
not nice
its worthless
waste of my damn time, but thats how badly I need some money
discord releases new endpoint, doesnt tell anyone
5min later, discord devs: "why is this brand new endpoint getting hit with dogs, cats, emojis and invalid characters?"
Did u try freelancing?
I mean realisitcally do you think im good enough to freelance

i mean
i've seen people literally get paid 50 USD to setup a discord server
like permissions and stuff
and thats it
I mean I used to work for 70$ a discord bot back in the day
Made some bank
but that was to idiots

I basically used the same code just modified it to their liking
lol
is it only avail on specific country? if no, then it's worth it in my country
$0.7 you can get full meal with drink
pretty sure its available anywhere there is the app store
ic
you'll have to convert the USD to your currency if need be unless you can use paypal in your area
As long as you're willing to struggle a bit, the skill you have.
Also the bar ain't very high, some are stupid simple like discord server.
I personally think I wouldn't be able to professionally sell my skills
Im not at that level yet
yeah, especially my country is currently experiencing inflation 
also trying to freelance on fiverr is going to be impossible
New sellers hardly get sales
You overestimate what "professional" means lul
I guess I just have a very low self esteem
and my standards for myself are too high that I dont meet em

you literally go to "professional" places like car repair shops only to find out you would do a better job yourself
if you dont get straight up scammed
idk id like to sell my skills but I really dont think they are that valuable
I mean there is still so much I dont know
Professional just means "as cheap as we could find"
and you think others dont do it too?
except its worse, they ask chatgpt instead of us
:^)
yea ig
but asking for help on something you're supposed to be getting paid for
😭
makes me feel dumb
you get paid for the effort, not the knowledge
Also most posts on stackoverflow are from people trying to solve stuff at work
fair enough ig
What would I even sell
I can make discord bots kind of but anything complex I feel no one would actually pay for
a dude once wanted to pay me 200 bucks to make him a bot with 600 commands
he started sending me pics of other bot's command lists and saying "i want these, and these, and these"
A dude was willing to pay anyone to find him the image dimensions not so long ago
/j
I should of tooken him up on the offer as well
😭
Need me some money
i got 35 bucks from patreon last month, i can give you half
no dont do that
if that was a serious offer ty
but I have to decline
I may need money, but im not going to take it from others like that
make me a website for my api then, it has to use svelte and be good
you lost me at website
lmao
Ima be real my webdev is worse than my math skills
frontend is so annoying
i mean, its easy, but its annoying and time consuming
how to use the two to make something good pfft beats me
Try flutter
the dart thing?
Yes
idk dart and is it even worth it?
Well, it's a bit like react, but typed
tbh I wish I had the motivation to work on my company
And yeah, I use it at my job for making app
Try improving your sql + some frontend framework, this almost guarantees a position somewhere
yea
problem is
I can use frontend frameworks no problem
I know how to use react + nextjs
its just css
I can't make things that look visually appealing
Try flutter, seriously
how would using flutter help?
I'm bad at design too, yet the app always ends up appealing
Doesn't it require some sort of styling language
Cuz flutter uses material design for its components
You can make your own components too tho, but everything is at hand already
Not really
The lang is self-contained
I'd have to learn another programming language as well 
It took me about 3 days to go from 0 to working
checkout tailwind too
Dart isn't too far from js
I already use tailwind
nice
tailwind is not a fix all solution tho
that's true
its for the stuff that I can't use tailwind for that fucks me

I see
I will look into it
tbh I dont remember much js stuff

Whatever c-like lang u remember
C# is closer I think
Honestly the only reason I want money
is to try and hire people to help me with CC

cuz me and null aren't going to cut it
sad truth
CC?
but I don't want to wait 7 years to release a product
E-Commerce/Marketplace platform
me and null for the last 3 months have been trucking along by ourselves
and quite honestly its gotten to the point I was seeing no progress
that I got tired and wore out
Yea I was already going to check out flutter tbh
I wanted to use it for our mobile app
since react-native is kinda meh imo
to get it working on most devices you need to do heavy configuration
I'll take a look at flutter
maybe I can do freelance work with it once I get confident enough
Fucking hell 700 moving menus to edit the msg
You can also have flutter run for web too
I've used flutter for web, maybe it's just me but I prefer raw html for it
Unless ur doing highly dynamic pages
Do you guys think an age verification bot is a good idea?
Risky niche
like stripe?
Also you're legally required to remove all data after 3 months
Due to tos
And the new tos bans trying to identify users or their relationships
I wouldn't store data
Ah damn

nvm then
A thing that people used to request a lot on my bot, is voice chat tracker
Basically give roles based on total channel usage
With ranking
I dropped off this niche after rewrite as it's not really the focus of my bot, but there was demand
hm
Some big bots already do that tho
Would it be worth making it a dedicated bot?
Also haku how should a backend api be structured?
Because I feel like as it stands rn
the structure I went with is TERRIBLE
im used to making simple rest apis
but anything complex like what a e-commerece/marketplace platform needs is beyond me
Eh, don't raise your bar too much, ecommerce ain't too complex either
It's mostly CRUD with oauth2 authentication
You can use a json body for that, simply make a structure with configurable params
Or graphql
But implementing it is hell

You don't need to be too flexible tho, just allow searching for products by name fragment or date or stuff like this
I unironically kind of want to start from scratch again on the backend
The service we use only allows searching for either all products or a specific id
And it's a big commercial service
For the collegecrafts thing?
Or you doing something else
collegecrafts
I've just not been happy about its current state
and its putting me in a sour mood
Bc tbh I feel like you might be overthinking it. There is a lot of things that go into a “good design” from a software perspective, but that is usually done by larger teams. You can have a million redesigns and never launch a product

