#development

1 messages Ā· Page 252 of 1

quartz kindle
#

lmfao

#

playing aroudn with this

lyric mountain
#

the total class complexity is 190

quartz kindle
#

lmfao

lyric mountain
#

not much I can do about it lul, I've dried as much as I could already but lots of ifs are unavoidable

quartz kindle
#

thats how you get better scores

neon leaf
#

šŸ”„

#

780 lines of function def

lyric mountain
#

it's...not a pleasant sight

#

I'd rather have my monolithic functions than jump around in the source to find what's doing what

late crest
#

anyone tried hosting lavalink server on datalix?

frosty gale
#

i would assume the experience is the same as hosting it anywhere else

late crest
#

probably, I just wanted to know how many resources it usually consume

late crest
#

I think about hosting bot + lavalink on a same vps

lyric mountain
#

I did it before (hosting both on same vps), it consumes a lot

#

unless your bot is music-focused, it's seldom advised not to add it

#

most of your resources will go to streaming the music

frosty gale
lyric mountain
#

not really, it's fairly well optimized but music in general takes a lot of resources

#

at least when you start scalling

frosty gale
#

of course it was abandoned

lyric mountain
#

it rusted away*

frosty gale
#

thats one problem i found with rust

#

people write wrappers or some additional features around another crate/package and dont update them

#

which makes the other package not work because of version conflicts

#

theyre so eager to write the next blazingly fast solution that they forgot they probably have to maintain it too

radiant kraken
quartz kindle
#

project that is a fork of abandoned project-maintained-for-life-i-swear that is a fork of project-but-maintained that is a fork of project-next that is an updated fork of project4 that is an improved version of project3 that is a remake of project2 with new rust features

late crest
#

is anyone hosting a good lavalink server 24/7? with uptime mostly 90%+
or maybe know a good one

sharp geyser
#

no

frosty gale
#

yes ill run a server specifically for you for free pookie

#

on my aws account with a linked credit card and no limit

deft wolf
#

Really? 😳

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

quartz violet
#

Does anyone know how to use Application Emojis?
If so can you explain to me how to use them?

proven lantern
#

what's a good domain registrar that has wildcard email forwarding?

pearl trail
#

any domain registrar with cloudflareā„¢ļø

proven lantern
#

i didn't think cloudflare© ℗ ⓒ™ had wildcard email forwarding

pearl trail
#

idk if that's what you meant

proven lantern
#

niiiiiice

#

yeah

pearl trail
#

they just added that recently yeah, quite new

proven lantern
#

that explains why this website doesn't tell you about it

#

inflation is no fun

#

does cloudflare really force you to use their nameservers? i dont think that will be an issue for me. i'm just pointing to vercel hosting using A records. i dont use google workspace or anything like that

sharp geyser
#

well

#

how do you expect to use cloudflare if you aren't using their nameservers?

#

in terms of using it as a DNS you 100% need to

#

anything else not sure about

proven lantern
#

AI says this. cloudflare is doing more stuff than other providers

Most domain registrars and web hosting providers allow you to use any nameservers you choose, giving you the flexibility to use third-party DNS services or manage your own DNS if you prefer.```
#

yeah

#

i just need a registrar and not a full DNS right? but it doesn't really hurt either

pearl trail
#

I love cloudflare

proven lantern
#
Adding Cloudflare introduces another layer of complexity
It may slightly increase response times due to the extra hop```
#

i should just get a registrar

#

idk

#

i cant decide

proven lantern
#

when in doubt, choose freedom

#

has anyone used spaceship?

proven lantern
#

wow, i like their CEO

"We believe deeply in a free and open Internet. Spaceship is the first step toward a giant leap forward in Internet freedom", said Richard Kirkendall, Spaceship CEO. "In a world of closed ecosystems and platforms with limited flexibility, our goal with Spaceship is to bring together many products and services and empower them to work seamlessly together. The focus of our entire business is user choice and ease of use, placing full ownership and power in the hands of our customers."

lament rock
#

The problem with a lot of software systems is that people have different ideas on how something should be

proven lantern
#

i could still choose to use cloudflare dns nameservers and all the services too

#

while having the domains registered at spaceship

proven lantern
sharp geyser
#

Why did you start speaking that way

proven lantern
#

sorry

#

flashback

sharp geyser
proven lantern
#

so spaceship should work for me

hidden gorge
#

Is there a better way I could do this?

            const query = `
                INSERT INTO guilds (guild_id, owner_id, name, settings) 
                VALUES (?, ?, ?, ?)
            `;
            const values = [
                guild.id,                      // guild_id
                guild.ownerId || 'Unknown',    // owner_id
                guild.name,                    // name
                JSON.stringify({               // settings
                    ChatBot: {
                        Enabled :false,
                        Channel :null
                    },
                    AutoRole: {
                        Enabled :false,
                        Roles :{}
                    },
                    Welcoming: {
                        Enabled :false,
                        Channel :null
                    }
                })
            ];

            await client.db.query(query, values);
sharp geyser
#

you are inserting into the db

#

I am confused on what your issue is

hidden gorge
#

Just wondering if i could format settings better

sharp geyser
#

There's no other way you would do that, unless you set the default values somewhere as a constant so you aren't creating the object each time you insert

#

but other than that its fine

hidden gorge
#

ok

eternal osprey
#

i've been using datalix for a few days now and i regret my choice

#
22|DDC  | 200
22|DDC  | Error sending email: Error: Connection timeout
22|DDC  |     at SMTPConnection._formatError (/root/DDC/node_modules/nodemailer/lib/smtp-connection/index.js:798:19)
22|DDC  |     at SMTPConnection._onError (/root/DDC/node_modules/nodemailer/lib/smtp-connection/index.js:784:20)
22|DDC  |     at Timeout.<anonymous> (/root/DDC/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
22|DDC  |     at listOnTimeout (node:internal/timers:581:17)
22|DDC  |     at process.processTimers (node:internal/timers:519:7) {
22|DDC  |   code: 'ETIMEDOUT',
22|DDC  |   command: 'CONN'```
i deadass can't connect with nodemailer.

Stay with me now, one folder WORKS. The nodemailer in that folder sends the data perfectly fine.
However, my other folder now just does not work at all...
On my other vps it DOES.
#

i curse the ppl in this chat that were saying that datalix is good 😭

deft wolf
#

That's why I always write that I only host a bot and database weirdsip

eternal osprey
#

nah but deadass what can be the problem

pearl trail
#

I was giving my opinion, and it works for me weirdsip

deft wolf
#

Isn't there any information that email ports are disabled by default?

pearl trail
#

yes there is

#

literally on the first page on the server panel

eternal osprey
#

i got 2 email bots running

deft wolf
#

I have no idea, but I guess that's what support is for

eternal osprey
pearl trail
#

contact support

#

it's literally on the message

eternal osprey
#

you talk about on the message

#

i don't see anything bro

pearl trail
#

!!??!!!??!!!!

eternal osprey
#

oops

pearl trail
#

thanks for cursing us

eternal osprey
#

😭

eternal osprey
pearl trail
#

well you can't jump into conclusion if you haven't enabled the "mail ports"

#

if it's disabled by default from them, then they're expecting mail servers won't work, and you can't expect it to work properly

#

they are preventing mail abuse that's hosted under their company

jovial palm
deft wolf
#

It looks like the asset folder is inside the src folder and the error shows that the src folder is missing in the path

#

So I think changing the path to ./src/asset/fonts/NerkoOne-Regular.ttf should work

surreal sage
#

???

#

😭

#

boolean āŒ
false | true āœ…

#

so dumb

pearl trail
#

šŸ’€

#

at least we know it is either false or true

civic scroll
# surreal sage

you can also do

fn updateCullingState(hideVehicle = false, hideChassis = false)
#

is this for beamng

surreal sage
#

no!!!!

civic scroll
# surreal sage no!!!!

the types would automatically be inferred as boolean? as derived from default parameter values

surreal sage
#

this is for custom culling system written in ts transpiled to lua šŸ˜‹

surreal sage
#

game culling

#

render culling

civic scroll
#

beamng culling

civic scroll
#

yes

naive scroll
deft wolf
sage bobcat
restive trail
#

anyone know how to handle nodejs code discord when I attempt to timout the bot it seem the bot didn't response but Yes so how to handle ?

lyric mountain
#

uh...what?

sage bobcat
#

One message removed from a suspended account.

lyric mountain
#

I imagine you actually tried to say "how to prevent the interaction from saying the app didnt respond when it actually did"

#

if so, deferReply()

quartz kindle
#

best english

restive trail
quartz kindle
#

show code, show error

past field
#

how can i get some roles here? šŸ‘€

deft wolf
#

Hell nah

warm surge
#

Ghost ping alert

deft wolf
#

More like support scam alert

late crest
#

or become a discord bot developer and get it verified on top.gg

#

other ways idk

deft wolf
#

These are the easiest

past field
late crest
late crest
warm surge
late crest
#

it is not that hard

late crest
warm surge
#

create your own stuff

sage bobcat
#

One message removed from a suspended account.

past field
#

i have a bot

#

3 actually

sage bobcat
#

One message removed from a suspended account.

past field
#

but only have 1 public bot. it’s in 95 servers rn

sage bobcat
#

One message removed from a suspended account.

warm surge
sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

late crest
past field
#

i can’t tell if you’re being sarcastic or not lol

#

@sage bobcat

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

past field
#

my bots not verified yet tho. so it’ll be locked soon until i decide to verify it

past field
late crest
past field
frosty gale
#

that way i can also configure my own self hosted pipelines and stuff

#

also get the added benefit of microsoft not using my code to train their models

#

i used gitlab at my old company and its very very very similar to github

dusky idol
#

Apologies I fell asleep yesterday xD.
I use the Motor library for mongo, and it's hosted on Atlas services indeed

quartz kindle
surreal sage
#

aint no way

#

the installer for my latest version of an app i made

#

the checksums match

#

with malware from 3 years ago

quartz kindle
dusky idol
# quartz kindle could you show some of your code? like a command that uses mongodb
    @commands.command()
    async def pay(self, ctx, member:disnake.Member, amount):
        economyDB = await self.bot.db.economy.find_one({"_id": ctx.author.id})
        if not economyDB:await self.create_account(ctx.author)
        economyDB = await self.bot.db.economy.find_one({"_id": ctx.author.id})
  
        MemberEconomyDB = await self.bot.db.economy.find_one({"_id": member.id})
        if not MemberEconomyDB:await self.create_account(member)
        MemberEconomyDB = await self.bot.db.economy.find_one({"_id": member.id})
  
        economyDB["coins"] -= amount
        MemberEconomyDB["coins"] += amount
  
        await self.bot.db.economy.replace_one({"_id": ctx.author.id}, economyDB)
        await self.bot.db.economy.replace_one({"_id": member.id}, MemberEconomyDB)

Just wrote this simple command for better understanding, there are some differences in main code but it's mostly done this way

quartz kindle
#

like if you use a certain installer software/system that is often used for malware, the installer itself will be flagged, including all the legit software that uses the same installer

surreal sage
#

tauri is just false positives all over

#

i think the actual exe is like 16/72 detections

quartz kindle
#

ripperino

quartz kindle
dusky idol
#

jishaku shows 121 threads and it becomes a lot laggier, usually it's on under 50 threads normally

quartz kindle
#

where is your bot hosted?

dusky idol
#

Do you think it could be because of Atlas and not really due to mongo

quartz kindle
#

cores/threads

dusky idol
#

Ah it's Ryzen 6800hx and 3060 gpu, I don't know exactly how many threads it comes with

#

16 threads

#

well there

quartz kindle
#

so heres a thing you could try

#

Motor uses the Python standard library’s ThreadPoolExecutor to defer network operations to threads. By default, the executor uses at most five threads per CPU core on your system; to override the default set the environment variable MOTOR_MAX_WORKERS.

#

5*24 = 120 threads max

dusky idol
#

well mine usually goes till 120~ and that's when it becomes laggy, but the problem is that it never comes down from 120 once it hits it as far as I know
I showed the problem to a different person earlier and they said a bot shouldn't ideally go above 50 threads

#

I think the reason why it goes 120 threads is due to the math you just did

quartz kindle
#

so try setting MOTOR_MAX_WORKERS=1

#

and see how it goes

#

not sure if thats global max or max per cpu, or max per process

#

is your bot sharded?

dusky idol
#

it gets to 120

dusky idol
#
class MyBot(commands.AutoShardedBot):

that way

quartz kindle
#

how many shards rn?

lyric mountain
#

27 shards for 27k guilds?

quartz kindle
#

ah 27

dusky idol
#

that

#

28* actually

quartz kindle
#

im not sure how sharding works on python, if each shard has a separate db connection or not

#

but try setting the MOTOR_MAX_WORKERS variable

lyric mountain
#

considering python isn't multithreaded, I'd imagine each shard is a subprocess

dusky idol
quartz kindle
#

its an env variable, you set it when starting the process

#

MOTOR_MAX_WORKERS=1 python myfile.py

#

you can also set it using os i think

#

os.environ['MOTOR_MAX_WORKERS'] = '1'

#

has to be right at the start of the file, before motor is imported

dusky idol
#

lemme try it out

quartz kindle
dusky idol
quartz kindle
#

so yeah you can put it in utility db

quartz kindle
#

or something like that

#

here's what it says

#

property max_pool_size: float
The maximum allowable number of concurrent connections to each connected server. Requests to a server will block if there are maxPoolSize outstanding connections to the requested server. Defaults to 100. Cannot be 0.

When a server’s pool has reached max_pool_size, operations for that server block waiting for a socket to be returned to the pool. If waitQueueTimeoutMS is set, a blocked operation will raise ConnectionFailure after a timeout. By default waitQueueTimeoutMS is not set.

quartz kindle
#

docs are so confusing

#

but still pool size and thread size are two different things, so tyr setting both and see what happens

dusky idol
#

Alright I'm trying with the env method first

quartz kindle
#

alright let me know how it goes

green kestrel
#

anyone else here using the new application emojis yet

past field
deft wolf
#

And bans/mutes

#

#logs show accepted and edited apps

past field
#

ahh ok i see

dusky idol
# quartz kindle alright let me know how it goes

I set it to 1 first and the database commands became really really slow, I believe it's because ofc it's gonna take a lot longer to update data on db now
But the threads did get limit to 40.
I've now changed it from poolsize of 1 to poolsize of 50, I'm just gonna play with numbers and see where I get a set amount of threads which can run the bot smoothly without taking away from performance maybe
or other approach I've planned is to catche up data more properly

past field
#

i have to apply for intents and if discord accepts i can verify my bot šŸŽ‰ idk why im so scared to verify it though.

#

kinda scared to apply to be top.gg. verified too.

#

idk y.

quartz kindle
#

as for code improvements, you can cache more and reduce the number of queries

#

see if you can find queries that can be merged together

#

for example the pay command could both take money from the user and give money to the other user in a single query

green kestrel
#

I just started moving mine over to it for one bot today

dusky idol
green kestrel
#

got 480 emojis in there

dusky idol
quartz kindle
#

if your bot gets really really big, you can also switch to an eventual consistency model between db and local caches

warm surge
#

question

#

does client.channels.fetch can send a message to different channel from another shard?

digital swan
#

Just do the broadcasteval thing you don’t wanna fetch a channel on the wrong shard

#

I did it once and it started replying to commands twice cause it received events on both clusters

warm surge
#

ahh

lament rock
#

If you're using a rest client without caching the result then yes. Theoretically, you don't even need to fetch a channel to send a message to it if using a proper rest client

#

any channel ID is valid to send messages to except for category and stage channels

#

Also, events are never sent to shards for guilds they weren't meant to cover

#

Thats literally a Discord gateway thing

prime cliff
#

vibecat Almost got a stable version of my project ready just need to test the setup page and automatic database setup

slender wagon
#

Hey guys, so i want a very light AI to implement in my bot. What it will essentially do is process certain messages and flag them if they match certain criteria. Are you guys aware of any cheap one i could implement. Again not heavy at all

fossil trench
#

I believe that now we can implement chat gpt with our bot but I don't know how to do it

surreal sage
#

any tips on improving large classes in js?

#

and it's not a class that gets used once just saying xd

neon leaf
#

What is it for

surreal sage
#

12 methods, 200 lines

#

bit meh

surreal sage
#

should i just create files under "utils" and make methods that just invoke those?

neon leaf
#

200 lines is not a lot

#

Just keep it as is

surreal sage
#

okayyy

proven lantern
#

how's this look for a vote tracking leaderboard page to get people to go to top.gg and vote for my bot?

slender wagon
lyric mountain
#

line count rarely matters, your class might be 5000 lines but lighter and faster than a class with 20

lyric mountain
proven lantern
#

or i could update my top.gg bot description page saying that upvotes will be public

#

i'm also going to show last months leaderboard once i have that data. it'll be Last Month's Champions

past field
#

do png's have to be a specific size to be in an embed?

digital swan
digital swan
lyric mountain
past field
#

thank you! i got it

#

i have 3 different versions of my game and i wanted them to be easily distinguished so i just added thumbnails

past field
deft wolf
#

I think that emojis in buttons would be better than just text

past field
lyric mountain
#

Text is a bit cramped too

#

Also the developed by is a bit unnecessary, aren't u the dev of the bot?

past field
#

yes

#

just a server promo tactic

#

@pine willow i accepted your app to own my server by the way

lyric mountain
#

Wouldn't work anyway, they'd see "Developed by @unknown-user"

pine willow
#

ah yea

#

this one

past field
#

It's not verified and I join every server it's in

civic scroll
#

just open source the bot 🧌

#

put a kofi link there instead

past field
#

i've never looked into open sourcing the bot.. isn't that basically publishing the code for everyone to see?

civic scroll
#

mmm yes

#

there are a few upsides as well

lyric mountain
#

I don't fear people stealing my bot, not because of license but because I'd be impressed if someone got it working without instructions

civic scroll
#

with that it's undeniable that you made it

civic scroll
#

watch as i install gradle and rage quit

past field
#

but what are the perks of open sourcing it though?

lyric mountain
#

Deep forgetting framework when

past field
#

someone actually did steal my game lol

#

they asked for my bot, played it so many times that they re-coded it, kicked my bot out then banned me from their server and renamed it "tap war"

lyric mountain
civic scroll
lyric mountain
#

And that too

civic scroll
lyric mountain
#

Also yes, when u open source the project you'll have a proof of ownership if you ever need to prove

#

As you'll have the date of when you published

#

Anyone who contests will have to prove their project existed before yours

past field
#

so i should probably do that asap for top.gg verification sake

#

and what's the best way to do this?

#

github?

lyric mountain
#

Github yes

pine willow
#

yes

civic scroll
#

also, license is important too

pine willow
#

gimme your code nom nom nom

civic scroll
#

it has svg

#

would you take it?

lyric mountain
#

Lest you upload your whole node_modules

past field
#

this is all new to me

#

so i'll need to look into it and learn the steps

lyric mountain
#

Do you use anything for versioning?

#

As in, where is your project saved?

past field
#

ermm, just on my desktop rn

#

in it's project folder

wheat mesa
#

I highly recommend a visual git software of some kind, whether it be GitHub desktop, SourceTree, GitKraken, etc

past field
#

I've seen github before so I think i'm gonna go with github

lyric mountain
#

Coding without a remote repository is begging for windows to do funny things with your files

past field
#

okay so i just logged into githun

#

so i should make a public repository?

wheat mesa
#

The things I was talking about is just a way to visualize your repository

lyric mountain
#

Just use git, github has webpage anyway

wheat mesa
#

It’s much easier to get started with than the command line git stuff

#

SourceTree is free and so is GitHub desktop

#

I believe there’s also a built in feature for GitHub on visual studio code if you use that

#

That’ll work just fine

past field
#

yes i use vsc

wheat mesa
#

The wonders of Microsoft’s monopoly over the programming world šŸ’•

past field
#

lol ok so the recommendations are to open source my bot and save my project in another place like git

#

and license the bot?

wheat mesa
#

That’s what git is meant for, version control

#

Basically what GitHub does is provides a cloud server for your code pretty much

past field
#

ohhhh

wheat mesa
#

And makes it available to the internet

civic scroll
#

github did my indentation dirty

wheat mesa
#

Git is a software that tracks files on your local system

past field
#

so on git i'd be open sourcing and version controlling

wheat mesa
#

Git tracks your files locally, then you can ā€œcommitā€ those files to a remote location, such as GitHub

lyric mountain
#

Github is a hub for gits, like uhhh...phub is a hub for p

wheat mesa
#

Git does not open source by default. You can have open source and closed source projects being tracked with git

quartz kindle
#

:^)

wheat mesa
#

Git is yeah

#

Like that

quartz kindle
#

also, licensing is basically just chosing a license type, and adding it to your package.json, optionally also creating a LICENSE.md file with the license terms

#

if a project does not have any license defined, its assumed to be unlicensed, which means nobody is allowed to do anything with it until you give permission

wheat mesa
quartz kindle
#

once you add a license, then you state which things users can and cannot do with your project

wheat mesa
quartz kindle
#

ofc whether people follow the license correctly or not is up to them, but it does give you legal precedent if you ever need/want to pursue legal action

wheat mesa
#

Most people are really not going to copy your code

#

It’s rare that you’ll have an issue with that

quartz kindle
wheat mesa
#

Eh, I meant having a problem with someone that can genuinely compete with your bot

solemn latch
#

most of those people waant their bot to be cloned imo

quartz kindle
#

tbf people stealing ideas is worse than stealing code most times

#

especially if they can develop your idea faster than you

wheat mesa
#

Yeah, I’ll admit that I steal code all the time

solemn latch
#

I want someone to steal my ideas, that way I can move onto something else ;p

quartz kindle
#

xD

#

nobody wants to steal my ideas, they are too complicated

#

:^)

solemn latch
#

please someone steal my bot description builder idea. that way I can never finish it

quartz kindle
#

xD

eternal osprey
#

Hey guys, i created a turing machine simulator in js but theres one problem, i rather have it compiled to an exe file instead of a website. How would i do so? I waa thinking about electronjs

quartz kindle
#

does it have an UI?

lyric mountain
#

electron alone will triple the resource usage

quartz kindle
#

if not, node has an experimental executable compiler/packager i believe

#

otherwise pick your poison: electron, nwjs, tauri, ultralight, and dozens of other alternatives

#

some use webview, some use chromium/other browsers, some use GTK, some use custom engines, some use QT, etc...

pine willow
#

I just created a Bot that removes hoisted names

#

So when i have the name ! Sky to be at the top. It would change it to Sky

quartz kindle
#

xD

eternal osprey
eternal osprey
#

this automaton shit is fun that i created. only problem is that when we have a loop in the tape it fills your whole ram. So i need to use some detector to detect when there's an infinite loop on the tape

quartz kindle
#

set some sort of loop counter and throw if it exceeds a certain number

eternal osprey
#

it's a bit harder than that.

#

I don't even think it's a solved problem yet

#

called the halting problem.

#

Instead i want to use another turing machine that keeps track of the output of the fiest turing machine and based on that detects whether we have loops.

quartz kindle
#

well cant help with that xD

eternal osprey
#

@solemn latch might be able to help? Right?? Rightt???

wheat mesa
#

The solution is that Alan Turing formally proved it was impossible

quartz kindle
#

isnt one of the solutions to reduce/limit the problem?

wheat mesa
#

Maybe, idk that much about it

#

I just remember having to go over the formal proof that it was fundamentally impossible to solve

sharp geyser
#

ur aspnetboilerplate sucks when trying to swap to a diff ef core provider

#

migrations don't get recognized when they are made

quartz kindle
#

for a second i thought you were speaking german

wheat mesa
quartz kindle
#

aspnetboilerplate

wheat mesa
#

:c

sharp geyser
#

yea

wheat mesa
#

It’s still useful but it’s apparently very deprecated

sharp geyser
#

and it is a price gouge

#

šŸ’€

#

I'd rather just learn how to use aspnet from scratch than that shite

sage bobcat
#

One message removed from a suspended account.

prime cliff
#

@wheat mesa @sharp geyser You don't really need a boilerplate at all, asp.net identity is a free framework made by microsoft for authentication with accounts and database, you can search for any component library using either js/jquery/etc or you can use mvc page or blazor with blazor components

#

There's a lot of guides and info online for free if you're willing to read and learn šŸ™‚

#

Then you can make something nice like this (blazor) with built-in accounts and oauth support using asp.net identity

sharp geyser
#

Indeed I know of it

#

aspnetboilerplate basically just did all you said, but meshed it together for you so you didn't have to bother setting it all up yourself

#

I definitely think if the boilerplate worked, it'd be good for quick prototyping

#

Any actual implementation i'd likely do it all myself anyway just because I don't like working with an unfamiliar codebase

eternal osprey
#

Reducing infinity still remains infinity

jovial palm
#

is there any recommand module for chatbot ?

quartz kindle
#

you dont reduce infinity to infinity

#

you reduce it into a fixed set / upper bound

#

like a while(true) that increments and breaks if i > 1000

#

regardless of program state

#

its not a real solution to the problem

#

its a bandaid solution for specific configurations

prime cliff
#

vibecat My setup page works fully now with automatic db setup, email system and admin account creation

civic scroll
#

btw you can put those inline

eternal osprey
#

it's a very bold assumption to limit loops

proven lantern
#

just limit it to 150001 loops. that way it's fixed forever and there could never be a problem

quartz kindle
#

:^)

prime cliff
#

It's an option menu that's in disable state

civic scroll
#

it didn't hit me right when the options gets plenty of spacing but none better said options vs. the label

prime cliff
#

Eh no really that would also be bad for mobile it really only needs some bottom padding

civic scroll
#

you can make it flex-wrap, if you wish for mobile compat

#

or grid with 2 columns

frosty gale
#

flex-wap

quartz kindle
#

flex your waps

frosty gale
#

wireless access points?

quartz kindle
#

wealth aquisition potions

neon leaf
#

should I cool my server with a 600m³/h turbine

rare merlin
#

anybody know a good email server i can easily self-host which is lightweight and i can use my own custom domains on?
I have a domain (support@domain.com) which myself and one other should be able to view all emails being sent to this mailbox. i also have another email (noreply@domain.com) which will only be used to programmatically dispatch emails

frosty gale
#

great.

#

i hate this server more every day

frosty gale
deft wolf
#

All hyperlinks are blocked

frosty gale
#

maintainer is also very active

rare merlin
# frosty gale ive tried <https://github.com/docker-mailserver/docker-mailserver> and its very ...

i dont know much about email servers, however, we will eventually want to expand into something like support.discord.com, how easy would it be to integrated this email server with something like zendesk or alternatives?
also, does it allow me to have specific emails accessible by multiple users?
and lastly, is it possible to restrict registration so only certain people can make an account?

frosty gale
# rare merlin i dont know much about email servers, however, we will eventually want to expand...

other people wouldnt be able to make a new account anyways unless you install some kind of dashboard, you create the users and mailboxes manually on the server so thats not a problem
as for support, i believe stuff like zendesk allow you to use a custom domain, but the emails are actually routed to their own servers so your server wouldnt receive the tickets, unless you choose to use an open source zendesk alternative that lets you have a ticket system on your own server

#

since docker mailserver uses postfix which is very common for sending/receiving emails, youd have no problem integrating some kind of open source ticket system with it

lyric mountain
frosty gale
#

indeed there is a bit of setup involved to make it work properly

#

and not get sent to spam immediately

lyric mountain
#

hotmail/gmail will send you to spam on sight without questions asked

frosty gale
#

but if you configure everything correctly you shouldnt have any issues, i have my own custom mailserver and domain and my emails dont get sent to spam, even by gmail

#

at the beginning they did though until gmail and other providers starts trusting your emails

rare merlin
#

do you have any good setup articles you would recommend (other than docs)

#

im using ubuntu too for context

frosty gale
#

otherwise you risk not understanding everything

rare merlin
frosty gale
#

did you get a key file? you probably havent copied it in the right place

deft wolf
#

My bot is officially doomed. Two weeks ago someone made a post on Reddit that they were looking for a bot similar to mine because they won't add mine due to the offensive name

#

-1 server I guess KEKW

lyric mountain
green kestrel
#

anyone here use mongodb in their bot?

#

if so, have you read their "open source" (lol) license recently

pine willow
#

i use it all the time

green kestrel
#

apparently if you use it, and you use it in a service (this includes BOTS) you have to make ALL the following open source

pine willow
#

nuh uh

green kestrel
#
 Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.
#

so

pine willow
#

switching to MySQL lul

green kestrel
#

you have to make open your backups, databases, user interfaces, automations, monitoring softeware, backups, backup software, hosting software

pine willow
#

The fuck

green kestrel
#

i dont use mongo, but just learned about this from a yt video

#

section 13

#

their "foss" license is bullshit

pine willow
#

I wont make my shit open source

#

should they go cry or smth

green kestrel
#

and youre responsible for making it ALL downloadable on YOUR servers lol

#

right down to linux source

frosty gale
green kestrel
#

the kernel and everything

frosty gale
green kestrel
#

but still

#

do you want to deal with their bullshit?

#

and its not just mongo doing this, check the vid

#

OSI has basically spoken out about some of these and said theyre nothing but a booby trap to hit projects with once they become a success

frosty gale
#

but yeah it isnt charming whatsoever

green kestrel
#

redis is another obvious one

frosty gale
#

redis honestly isnt anything too impressive when it comes to its software

#

in a nut shell a cache server, definitely many alternatives or forks of it

#

memcached is good i heard

green kestrel
#

i use a memory table in mysql

frosty gale
#

yeah anything will work really

#

technically they dont say theyre open source

#

only that the source is available

#

who would wanna use mongo for anything serious anyways

frosty gale
#

way too clunky

#

this is for people that mostly dont know how to design traditional relational databases

neon flicker
green kestrel
quartz kindle
#

mongo itself probably does have ssl config somewhere, but it would be safer to proxy it i guess

proven lantern
pearl trail
#

what serious companies do

prime cliff
proven lantern
prime cliff
#

No what i was getting at xD

#

More of you can use a few SSH clients to setup a tunnel from your computer to the server to access localhost resources instead of configuring and exposing stuff (if you don't have a firewall setup)

#

That's if you don't need cross-vps access

proven lantern
#

run the webserver on the arbiter node and bot as a cluster on the replica nodes

#

couple everything together

warm surge
#

somthing like that

prime cliff
#

But do you need it for development on your computer or cross-vps access?

lament rock
warm surge
rose warren
#

Or just build some good regex filters

lament rock
#

regex likely isnt the way to go

#

You need to have some pre processing to convert unicode characters to the A-Z range which is an exhaustive list then you can walk the words list. Even then, bad words are contextual like a common one being the name of a country is very close to a slur

neon flicker
#

Do you think AI will somehow someday replace programmers? As a young programmer, this question has always been in my mind, and I always overthink about it and it sometimes makes me feel really uncomfortable

deft wolf
#

AI will never replace me, there is no way AI will become so fucked up weirdsip

neon flicker
lament rock
# neon flicker Do you think AI will somehow someday replace programmers? As a young programmer,...

Possibly eventually, but a future to that may be a distance away. A lot of stuff that Ai just cannot handle right now is how interactions between unknown/new libs are in their code bases and topics that just haven't really been talked about. A lot of stuff can be "hallucinated" leading to errors. A lot of code is also made for addressing human issues and these issues may be horribly nuanced which would require human intervention through multiple steps or a prompt be incredibly specific.

earnest phoenix
#

ai is literally just LLM, it doesnt really "think"

#

its all numbers

neon flicker
#

For now, though

earnest phoenix
#

and its based on your code

earnest phoenix
neon flicker
earnest phoenix
#

also the ai trend is slowly but surely dying

lament rock
#

The thing that people need to start worrying about is AGi (Artificial General Intelligence). We currently have ANi (Artificial Narrow Intelligence) where, as reis said, most Ais today are really just LLMs at their core.

neon flicker
#

People either use it a lot while doing their daily work or they just haven't ever heard of AI

lament rock
#

But one that's really able to experience the world and be devout towards self improvement in all or specific fields will be troublesome. So long as they have the tools to actually do that. The logic behind such a thing is also very hard to picture

#

The limiting factor right now is data. They don't experience the world like we do

proven lantern
slender wagon
neon leaf
#

šŸ”„

sharp geyser
#

wtf is happening

#

its causing this

frosty gale
#

nginx misconfiguration type shi

real rose
#

not that hard fr

strong kindle
#

@earnest phoenix @earnest phoenix @earnest phoenix ong

surreal sage
#

is this a trap

sharp geyser
#

I provided keys

#

but didn't tell nginx to actually use ssl

frosty gale
surreal sage
#

3 hours

#

34 minutes

prime cliff
#

Web assembly is more used for actual client side apps and experience in your own languages without being restricted by javascript even if it has inital downloading and loading times

#

Also the only reason why web assembly has these issues is because browsers and big companies like Google don't want to invest into it

civic scroll
#

another problem is security

#

what happens when you allow wasm to do the same capabilities of javascript?

prime cliff
#

Javascript is already sandboxed

civic scroll
#

but that would be a separate team, i think

#

and isn't v8 very beeg

quartz kindle
#

i believe wasm already has its own sandbox no?

late crest
#

Hey, are there any expert in wavelink?

frosty gale
#

expert has a very broad meaning

late crest
#

Okay, someone who is familiar with wavelink/lavalink and knows/understands what he/she/* is doing.

earnest phoenix
#

why not just ask your question

digital swan
#

Is the reward an ice cream

proven lantern
warm surge
#

no

#

@clear plinth this one 2 and there one in general somewhere

bitter granite
#

No

void storm
#

Is this the place for bot stuff?

pine willow
#

yes

void storm
#

Ok so i'm trying to make a bot.

pine willow
#

yea?

void storm
#

IDK how to.

proven lantern
#

@pine willow knows how to. They will help you

pine willow
#

who said that

void storm
#

But the concept around the bot is simple.

#

Well the character of the bot.

pine willow
#

js or py?

void storm
#

I know nothing.

pine willow
#

or any other

proven lantern
#

Just use AI to code it for you

pine willow
#

DO NOT do that.

proven lantern
#

Sky will help then

foggy jewel
void storm
#

Well um the character of the bot is a female Tiger Shark from the game "Changed".

void storm
pine willow
pine willow
void storm
#

THat will work.

#

Thx.

pine willow
#

The bad thing is. When the bot joins a server it will write some text

void storm
#

Yeah, ik, have many bots.

#

Just not chatty ones.

foggy jewel
pliant beacon
#

hello, yesterday i added the server count to my bot top.gg page and im checking it rn but it's not being updated
(in the logs it's saying Successfully updated server count on Top.gg but it still say 160)

spark flint
#

its cached quite heavily on top.gg's side

#

that will refresh cache

pliant beacon
#

now it worked

pliant beacon
spark flint
#

nope

#

you dont need to worry about having an accurate up to date count

#

it will refresh cache every few hours

pliant beacon
spark flint
#

thats up to you

#

the server count is just a metric shown on the site and doesn't really mean anything else

pliant beacon
#

ok got it, thank you

pine willow
foggy jewel
#

lol

pine willow
#

I created a Anti hoisting bot.

#

! Sky would be changed to Sky

#

automatic

foggy jewel
pine willow
#

Nicknames??

foggy jewel
neon leaf
#

just switch to # trol

pine willow
pine willow
#

....

#

Makes sense?

neon leaf
#

what about 0

foggy jewel
neon leaf
#

problem is that you can always hoist

#

no matter what chars you block

pine willow
pine willow
neon leaf
#

000000000000000000 Myname and you are at the top

#

like im also third in the list right now with just my normal name

#

since it has a 0 at the start

foggy jewel
neon leaf
#

yeah but people will just go one char down

#

one 0 is enough

#

if you block that they use 1

#

and so on

#

forever

pine willow
pine willow
#

at some point

neon leaf
#

its not really possible

pine willow
#

Never seen someone trying it

foggy jewel
neon leaf
pine willow
sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

neon leaf
#

yeah

sage bobcat
#

One message removed from a suspended account.

neon leaf
#

its a cat and mouse game

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

neon leaf
#

just make every username trol

earnest phoenix
#

just enforce starting the username with an ascii character fr

neon leaf
#

0000 Im_Cool frfr

earnest phoenix
#

oh wait 0 is also ascii

#

so are other numbers

#

and i can still advertise when my name starts with A too

neon leaf
#

yep

#

thats my point

#

its impossible

earnest phoenix
#

fr

#

also its not that really useful

pearl trail
#

it's not like 100% of the people that see it are interested anyways

#

not even half, idk that's my own stats

eternal osprey
#

in discord how do i change the channel name to something like:

šŸ‘¤ | Test

#

this person did it

deft wolf
#

You need special symbol

eternal osprey
#

empty ascii symbol i assume?

deft wolf
#

Try this one ļø±

eternal osprey
#

seems to be escaping the spaces

deft wolf
#

That's mobile no?

eternal osprey
#

nope

surreal sage
#

real ones see the problem

earnest phoenix
#

correct, using ts

surreal sage
#

require() in esm

earnest phoenix
neon leaf
#

I guess i need to retry fleet

#

maybe its gotten better

harsh nova
earnest phoenix
#

you cant use require in esm tho iirc

raven nexus
#

Hi, i have this bug i do have change it beteween the defereply and editreply it show show error

const { ApplicationCommandType, EmbedBuilder, ApplicationCommandOptionType } = require('discord.js');
const axios = require('axios');

module.exports = {
    name: 'lookup',
    description: "Look up a Minecraft player's online status and last login time",
    type: ApplicationCommandType.ChatInput,
    cooldown: 10000, // Cooldown of 10 seconds
    options: [
        {
            name: 'player',
            description: 'Minecraft player username',
            type: ApplicationCommandOptionType.String,
            required: true // The player option is required
        }
    ],
    run: async (client, interaction) => {
        const playerName = interaction.options.getString('player');

        try {
            // Send an initial response to acknowledge the interaction
            await interaction.reply({ content: 'šŸ”„ Fetching player data, please wait...', ephemeral: true });

            // Define the API URL and your Hypixel API key (replace with your actual key)
            const apiKey = process.env.APIKEY;
            const url = `https://api.hypixel.net/player?key=${apiKey}&name=${playerName}`;

            // Fetch the player's data from the Hypixel API
            const response = await axios.get(url);
            const playerData = response.data;

            if (!playerData.success) {
                // If fetching player data fails
                return await interaction.editReply({ content: 'āŒ Failed to fetch player data. Please check the username and try again.', ephemeral: true });
            }

            // Extract the necessary information
            const { lastLogin, online } = playerData.player;
            const lastLoginDate = new Date(lastLogin).toLocaleString();
            const onlineStatus = online ? 'Online' : 'Offline';

            // Create an embed to display the player's status
            const embed = new EmbedBuilder()
                .setTitle(`Minecraft Player Lookup: ${playerName}`)
                .setColor(online ? '#00FF00' : '#FF0000') // Green for online, Red for offline
                .addFields(
                    { name: 'Status', value: onlineStatus, inline: true },
                    { name: 'Last Login', value: lastLoginDate, inline: true }
                )
                .setFooter({ text: `Requested by ${interaction.user.tag}`, iconURL: interaction.user.displayAvatarURL({ dynamic: true }) })
                .setTimestamp();

            // Edit the initial response with the final result
            await interaction.editReply({ content: ' ', embeds: [embed] });

        } catch (error) {
            console.error('Error fetching player data:', error.message);
            // Handle errors and send a final message
            await interaction.editReply({ content: 'āŒ An error occurred while fetching player data. Please try again later.', ephemeral: true });
        }
    }
};

What should i do?
Error [InteractionNotReplied]: The reply to this interaction has not been sent or deferred.

raven nexus
quartz kindle
quartz kindle
raven nexus
#
// Handle slash commands
client.on('interactionCreate', async interaction => {
    if (!interaction.isCommand()) return;

    const { commandName } = interaction;
    const command = client.commands.get(commandName);

    if (!command) return;

    try {
        if (command.userPerms || command.botPerms) {
            if (!interaction.memberPermissions.has(PermissionsBitField.resolve(command.userPerms || []))) 
                return interaction.reply({ content: `You don't have \`${command.userPerms}\` permissions.`, ephemeral: true });
            if (!interaction.guild.members.cache.get(client.user.id).permissions.has(PermissionsBitField.resolve(command.botPerms || []))) 
                return interaction.reply({ content: `I don't have \`${command.botPerms}\` permissions.`, ephemeral: true });
        }
        await command.run(client, interaction);
    } catch (error) {
        console.error('Error handling command:', error);
        await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
    }
});```
quartz kindle
#

which line exactly is 214?

raven nexus
#
        await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true })```
quartz kindle
#

alright i see whats going on

#

await command.run(client, interaction); may cause an error before or after a defer/reply. if the error happens after a defer/reply, the error block cannot use reply on the same interaction

#

you can check whether the interaction has already been replied to or not

#

if yes, use editReply or followup

#

if no, then you can use reply

#

you can test whether a reply was already sent or not using if(interaction.replied)

#

also, to avoid unhandled error event, you need to add a .catch() to it inside the catch block

#

as well as inside the permission checks (or add await to them there)

raven nexus
#

ok

quartz kindle
#

for example:

            if (!interaction.memberPermissions.has(PermissionsBitField.resolve(command.userPerms || []))) {
                await interaction.reply({ content: `You don't have \`${command.userPerms}\` permissions.`, ephemeral: true });
                return;
            }
            if (!interaction.guild.members.cache.get(client.user.id).permissions.has(PermissionsBitField.resolve(command.botPerms || []))) {
                await interaction.reply({ content: `I don't have \`${command.botPerms}\` permissions.`, ephemeral: true });
                return;
            }
#
    } catch (error) {
        console.error('Error handling command:', error);
        if(interaction.replied) {
            interaction.editReply({ content: 'There was an error while executing this command!', ephemeral: true })
            .catch(e => console.error("an error occured trying to send an error message"));
        } else {
            interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true })
            .catch(e => console.error("an error occured trying to send an error message"));
        }
    }
#

or you can add another try {} catch {} with await in there

raven nexus
#

okay

#

i am confuse abit with above

const { Collection, PermissionsBitField } = require('discord.js');
const ms = require('ms');

const cooldowns = new Collection();

module.exports = (client) => {
    client.on('interactionCreate', async interaction => {
        if (interaction.type === 4 && interaction.commandName) {
            const command = client.commands.get(interaction.commandName);
            if (command && command.autocomplete) {
                const choices = [];
                await command.autocomplete(interaction, choices);
                return;
            }
        }

        if (interaction.type !== 2) return;

        const command = client.commands.get(interaction.commandName);
        if (!command) {
            client.commands.delete(interaction.commandName);
            return;
        }

        try {
            // Check for cooldown
            if (command.cooldown) {
                const key = `${command.name}-${interaction.user.id}`;
                if (cooldowns.has(key)) {
                    const remaining = ms(cooldowns.get(key) - Date.now(), { long: true });
                    return interaction.reply({ content: `Please wait ${remaining} before reusing this command.`, ephemeral: true });
                }

                cooldowns.set(key, Date.now() + command.cooldown);
                setTimeout(() => cooldowns.delete(key), command.cooldown);
            }

            // Permission checks
            if (command.userPerms || command.botPerms) {
                if (command.userPerms && !interaction.memberPermissions.has(PermissionsBitField.resolve(command.userPerms))) {
                    return interaction.reply({ content: `You don't have \`${command.userPerms.join(', ')}\` permissions.`, ephemeral: true });
                }
                if (command.botPerms && !interaction.guild.members.cache.get(client.user.id).permissions.has(PermissionsBitField.resolve(command.botPerms))) {
                    return interaction.reply({ content: `I don't have \`${command.botPerms.join(', ')}\` permissions.`, ephemeral: true });
                }
            }

            // Run the command
            await command.run(client, interaction);

        } catch (error) {
            console.error('Error handling command:', error);
            if (interaction.replied || interaction.deferred) {
                await interaction.editReply({ content: 'There was an error while executing this command!', ephemeral: true }).catch(console.error);
            } else {
                await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true }).catch(console.error);
            }
        }
    });
};
quartz kindle
raven nexus
#

possible i could make if the console has error make it send to the reply of bot

quartz kindle
#

can you show lookup.js?

raven nexus
quartz kindle
#

hmmm

#

from what i can see, axios throws an error on non-2xx status codes

#

so if you get an error in const response = await axios.get(url);, it will go directly to the catch() {} block, whichi explains the Error fetching player data: in your logs

#

but i dont know where unknown message is coming from

#

its being caused by guildMessageManager.edit()

#

but i dont see any message.edit() or initialReply.edit() in that code

#

is there any more code in there?

raven nexus
#

i try change to

quartz kindle
#

what is different?

raven nexus
quartz kindle
#

looks the same to me

raven nexus
#

what should i change then or it cant do anything?

quartz kindle
#

for the unknown message error, i think you already changed it because i dont see where in the code it can be from

#

would need to test and see if a new error comes up

#

if you want the try catch from the interactionCreate.js to catch errors inside commands, then you need to either throw an error or let an error bubble up from inside the commands

raven nexus
#

now it work but it showing this

#

*Only you can see this

quartz kindle
#

i dont know if you can change ephemeral type after intial response

#

if first reply is ephemeral, then all are ephemeral
if first reply is not ephemeral, then all are not ephemeral

#

only a followup can be different, an editreply cannot

raven nexus
outer hull
#

I'm a competent and enthusiastic 3D artist who specializes in character and game model design. I am proficient in reference / idea creation, sculpting, texturing, rigging, and animation, and I can bring any character to life with my expertise. I have a strong understanding of game platforms and can develop characters that are suitable for a variety of games applications. I am a collaborative and deadline-oriented professional who is committed to delivering high-quality models that meet the needs of clients and developers and I was wondering if anyone have any commission request as my commission is currently open for different services relating to mod, 3D models both nsfw, furry, humaniod and non humaniod avatars, i also do edit to existing models…

wheat mesa
#

Not the place for that

raven nexus
#

not here

prime cliff
#

They left probably a scam too

sharp geyser
void storm
#

Hello?

#

It's me again.

#

I was here a lot earlier today.

#

I have a quesition.

#

See i have 2 bots and i want them to keep talking to each other without me sending anything in the chat for them to continue chatting.

#

I'm using Shapes, Inc if that helps.

#

So is there like a toggle or a switch or something that i need to turn or to fix this or something else?

#

Is anyone going to help me?

#

I spent all day working on these 2 bots.

#

I don't want it to go to waste. (T_T)

quartz kindle
#

with text/prefix commands is possible, but you have to ask if shapes allows it

#

because those pre-build systems like shapes often ignore messages from other bots by default

void storm
#

I changed the first letter from upper case to lower case i even went into perfered name to be called i even went to converational example

#

I even used @s

#

In text.

#

Their name in the same chat .

#

with @s

quartz kindle
#

well, your issue is specifically about the shapes' system, so you will have to ask them

void storm
#

Imma keep on trying to see if i can find somethin'.

quartz kindle
#

with regular code it would be fairly easy to do

void storm
#

Code?

quartz kindle
#

but systems like shapes are often limited in what they offer

void storm
#

What code?

quartz kindle
#

coding/programming

#

like javascript, python, etc

warm surge
void storm
quartz kindle
warm surge
quartz kindle
quartz kindle
void storm
quartz kindle
#

then you would need to learn some basics first

warm surge
void storm
#

.......

quartz kindle
#

pick a programming language, for example some good to start with languages are javascript, python, C#, java

warm surge
quartz kindle
#

and look for some guides, or courses

warm surge
#

or watch youtube

#

first time coding a discord bot i used youtube start off with discord api

quartz kindle
#

after you chose a language, you will chose a discord library/package for that specific language. most languages have multiple options to chose from

#

for example javascript has discord.js, eris, oceanic, detritus, and more

warm surge
#

im thinking trying oceanic as client

void storm
#

Thx for the help.

foggy jewel
#

hi

late crest
#

hi

harsh aspen
#

hi

lyric mountain
lament rock
#

Anyways, there's my weekly not really ad but kinda ad

#

You can immediately or almost immediately support new Discord features and have full control over caching and fetching objects which puts the memory footprint in your control. Not immediately jumping to > 100MB just by importing a module is also really cool. The CPU overhead of a lot of these modules are also insane. When I switched from Discord.js to raw api, my bot had huge problems with message create eating up the most process tick time to almost or > 1 second per command and just switching and the conversion no added optimizations brought the performance inline

harsh nova
#

You also don't have to rewrite your bot every time d.js decides to change the methods required to create an embed footer for the 4th time that week

proven lantern
#

you dont even need a server

frosty gale
#

lol repl.it is basically paid now and they banned pinging

neon leaf
#

3 public repos for free smh

#

It was nice to use for testing projects

lyric mountain
#

I suppose waving a banner saying "We haz bot host free, glitch bad" didn't work well

prime cliff
frosty gale
neon leaf
#

yeah it all went downhill after they added ai

frosty gale
#

obnoxious landing page animations āœ…
pricing page in header āœ…
learn more button in every section while scrolling āœ…
slogan on top of landing page āœ…
get a demo button āœ…

verdict = corporate page

quartz kindle
#

i need features, pricing and demo (working demo without login, not sign up to receive a demo)

radiant sinew
#

Hey it's not for support related to top.gg, but I wanted to ask, which service you use for website video ads, because google adsense it's not up for video ads on website.. but only mobile. And we want to integrate ads on our service

lyric mountain
#

video ads on websites dont really work unless you're planning to actually play it in-between video content (like youtube)

#

reason being you cannot have autoplay audio, and nobody is going to press play on an ad

naive pulsar
#
      <DropdownMenu  aria-label="Example with disabled actions" disabledKeys={["edit", "delete"]}>
      {languages.map(({ code, name, flag }) => (
        <DropdownItem onPress={() => router.push(`/${code}`)} endContent={<Image src={flag} sizes='sm'/>} key={code}>
        {name}
        </DropdownItem>
      ))}
      </DropdownMenu>

i'm using i18n next router to my multi lang website but when i use router push not change a lang for inknown reason

#

here a vid for more understand

deft wolf
prime cliff
#

r/hmmmm

pseudo grotto
#

guys whats the purpose of sending logs through webhooks instead of directly via the bot. does it help with rate limits or smth? im talking about big bots like Dyno... i think it could be causing my rate-limit problem which requires me to shard into 4 right now even though im only at 1200 servers... i can only think of logging as causing the problems that rate-limit my bot for an hour on startup unless i shard it into 4. everything else only activates and runs after an user executes a command so it doesnt make sense...

im talking about like member update, role update, etc. logs

green kelp
#

Why wouldn’t I be able to add the Minecraft server status bot to my discord

small tangle
#

Read the red text FoxyThinking

deft wolf
#

He has already received help on #support. He couldn't find the support server to contact the owner

pearl trail
pseudo grotto
#

so its seperate from my bot's rate limit?

#

and if someone has a lot of logs coming in, it could be help to counter rate limits on my bot for sending too many messsages?

frosty gale
#

but in general it depends on preference

#

personally id keep general logs off-platform while maybe having the more serious logs like errors be logged on a webhook as well

naive pulsar
#

It's a long story

quartz kindle
rare merlin
solemn latch
frosty gale
#

I have a bit of a unique request, I have an authentication server and I want to put some apps behind it so it will only proxy requests through to the app if the user is authenticated with that gateway, but I'm not sure if I could do something like this with Nginx where all requests first hit my authentication server endpoint, and if the server responds positively to Nginx it will proxy the request to the app in question with some additional headers, is this possible or would I have to do the second proxy to the app through the authentication server?

lyric mountain
#

you can pass cookies around no?

frosty gale
lyric mountain
#

have the auth endpoint set a cookie, then read from nginx

frosty gale
#

thing is I want clients to not be able to touch the app at all until the authentication server authorizes them
what i sort of envision is that the authentication server will first intercept any request directed towards a specific app, sort of like cloudflare under attack mode but without the DNS part, so it will appear on the same domain and path and not under another endpoint

lyric mountain
#

yes, you can control the redirects right from nginx

#

have it redirect to auth endpoint everytime the cookie isn't present/invalid

frosty gale
#

how would this look like with nginx config? can I just redirect to another internal url?

lyric mountain
#

I cant really explain much cuz I'm not too far into nginx-fu, I just know it's possible

naive pulsar
#

how i can change a lang for i18n next router i used

router.push("/de")

and not working its still goes to /en not /de

quartz kindle
#

or does the app validate as well?

lyric mountain
#

she wants a "gatekeeper" basically

#

dont allow any access without going through it

frosty gale
#

i think i can do this with an nginx module

#

its called auth_request and does exactly what i want to do

#

it also lets me set headers from a result of the first request

quartz kindle
#

oh i completely forgot that existed

#

actually im gonna use that myself tbh

frosty gale
#

looks like people usually use it for active directory

#

but my server isnt cursed with microsoft yet so i just have my own auth server

quartz kindle
#

xD

frosty gale
#

how do i even configure nginx to add this module though

#

ive never had to add a module to nginx before

#

i installed it through apt so its running under systemctl

neon leaf
#

its implemented in 1.5.4+

#

no need to add it

frosty gale
#

what about this

This module is not built by default, it should be enabled with the --with-http_auth_request_module configuration parameter.

neon leaf
#

nginx -V

#

its there

#

the message is just for when you are compiling from scratch

frosty gale
#

oh shit

#

so it is

#

diabolical using O2 optimization

#

real programmers live on the edge and use OFast

rare merlin
rare merlin
solemn latch
#

Yep

rare merlin
solemn latch
#

If you wanted to go that route you can.

rare merlin
#

i ideally want to fetch all posts then split them into sitemaps of 50k urls

solemn latch
#

I haven't worked with large sitemaps before, so when you want multiple that's beyond my knowledge

solemn latch
#

Yeah, so if you have 10,000 you just want one sitemap

rare merlin
#

10,000 was just an example number, it's more like a million plus and indefinitely scalable

solemn latch
#

šŸ‘€ Google won't index all of them unless you have a ton of traffic

#

You may hurt your SEO by dumping an insanely large sitemap onto Google

#

The last time I had a larger sitemap(a few thousand pages) Google took quite awhile to index it all just because it was all low traffic content

rare merlin
#

this is my first time working with SEO / sitemaps etc so I'm just trying to get used to it, I assume if theres too many google would just 'give up'? if this is the case, should i sort my data by most relevant

solemn latch
#

There's priority and stuff if you need it.

#

But my preferred way is just to index less at first and focus on SEO on priority pages.
Then add more as I go.

#

Just so you establish yourself first

rare merlin
#

@solemn latch would have 2 different sitemaps be a better approach?

/app/sitemap.ts -> base urls
/app/posts/sitemap.ts -> posts

foggy jewel
#

@bitter granite

quartz kindle
pearl trail
#

chat, is there really any difference between == and === ?

neon leaf
#

yes

#

20 == "20" // true

deft wolf
#

I think A

neon leaf
#

20 === "20" // false

pearl trail
#

oh

#

thank you guys!

winged linden
#

Question, Can i monetize my app if i am outside the supported countires but i have a global bank (wise for example)?

(Asking for the ones who tested it, and i am speaking about built in discord monetization)

sharp geyser
#

From what I recall in the new terms, that are not taking effect until October, is that yes you can.

#

If you have other means to collect payment, and cannot use the built in monetization feature, they allow you to do so elsewhere

void storm
#

Ok i got a question.

#

What model should i have my shape/BOT use? I'm using Shapes, Inc.

#

Hello?

quartz kindle
#

to do what?

void storm
#

To be good?

#

Better.

quartz kindle
#

well, in either case it wont be accepted in top.gg if you try to add it

ionic schooner
void storm
#

I'll screen shot it.

quartz kindle
#

sure, give it try, im just saying you wont be able to get it listed in the top.gg bot list if you go public

void storm
quartz kindle
#

but its fine for a personal bot