#development

1 messages ยท Page 806 of 1

vernal yoke
#

Happened to me as well when my bot was offline for a while

sudden geyser
#

Probably the monthly reset

#

Though it happens to stay at the number until someone votes, which can push it down from something like 30 -> 2.

earnest phoenix
#

Yeah this is the montly reset

stoic gate
#

In Discord.JS is there a way to see if youโ€™re being global rate limited?

summer torrent
#

there is a rateLimit event

earnest phoenix
#

Where?

summer torrent
stoic gate
#

Oh cool

#

Which part of this shows if itโ€™s global?

glad sonnet
#

bruh

summer torrent
tight plinth
summer torrent
#

@stoic gate wdym global

glad sonnet
#

my bad

stoic gate
#

Some rate limits are global, some are per channel/guild right?

slate oyster
#

So JS has an eval function that bot's like to wrap with eval commands
How do they usually ensure Discord users don't eat their resources, curious?

summer torrent
#

eval must be a bot owner only command

slate oyster
#

Ah ok

#

One of my commands is going to have a custom-written scripting language, and running the scripts requires manual approval of said script, is that fine?

stoic gate
#

Thanks NMW

#

In Discord.js can you tell which is which though?

#

Like can I tell if the rate limit is one of all sent messages

#

Not just for a channel

quartz kindle
#

i dont think thats possible

#

actually it is

#

idk if discord.js handles it though

earnest phoenix
#
client.on('rateLimit', rateLimitObj => {
        console.error(`Rate limit reached! Method: ${rateLimitObj.method}, Path: ${rateLimitObj.path}`);
});```

Edit: For u
quartz kindle
#

he wants to differentiate between per-route limits and global limits

#

from what i can understand in the d.js code, it doesnt handle actual rate limit errors, it preemptively prevents them to happen

#

the rateLimit event is not a discord rate limit, its discord.js's own rate limit pevention

#

discord.js handles global rate limits, but doesnt expose them to the user afaik

earnest phoenix
#

Oh okay

static trench
#

I

charred jetty
#

I am getting ping problem

#

It's responding after some minutes

zenith orchid
#

I think problem is your server.

charred jetty
#

I am using glitch

zenith orchid
#

Yes, its normal.

#

Because Glitch is free service.

charred jetty
#

Normal?

zenith orchid
#

Doesn't give everyone fastest server.

charred jetty
#

Ik

zenith orchid
#

So you sharing server to other people's.

charred jetty
#

No

#

I removed everyone

modest maple
#

That's not how it works

charred jetty
#

also changed the project name

modest maple
#

Lmao

zenith orchid
#

No

modest maple
#

You don't get a choice about others using the same server as u

zenith orchid
#

Glitch is sharing server to other people's. Not you

modest maple
#

You get a fraction of the system resources of the actual server

zenith orchid
#

This true

charred jetty
#

Then what should i do?

zenith orchid
#

Because Glitch is free service.

charred jetty
#

Just waiting ?

modest maple
#

Get a vps

#

Or self host

charred jetty
#

Or leave bot developing

modest maple
#

Or suck up the shit hosting and live with the issues of glitch

charred jetty
zenith orchid
#

Or leave bot developing
@charred jetty 4head

charred jetty
#

I will make the bot again after getting a laptop

#

๐Ÿฅบ

modest maple
charred jetty
#

Until then i am leaving the bot

zenith orchid
#

๐Ÿคทโ€โ™€๏ธ

charred jetty
#

In glitch

zenith orchid
#

I'm using google cloud.

modest maple
#

Ee

charred jetty
#

How?

modest maple
#

Ew

zenith orchid
#

First year trail balance 300$

slate oyster
#

But it requires a credit card sign up
doesn't it?

#

Even if not paying
and using free $300

zenith orchid
#

Yes

earnest phoenix
#

get a gift card visa

#

use that

slate oyster
earnest phoenix
#

i may have one, one sec

slate oyster
earnest phoenix
#

yes i do ill post the numbers here if you wanna try it. but it may block prepaid ones

slate oyster
zenith orchid
earnest phoenix
slate oyster
earnest phoenix
#

Ps it has no money so donโ€™t bother trying to buy anything lol

slate oyster
#

in this channel

zenith orchid
#

@slate oyster I know, but i wasn't see development channel.

slate oyster
#

Welp I should work on my bot some
Haven't done so since Saturday
Need to fix an issue were I was storing chatlink data in a channel doc instead of a chatlink doc

#

For whatever reason, I forget and I'm not looking at the code rn, I couldn't just switch out the two docs

#

Oh I see why I didn't have time
There's some data that is legitimately stored to a channel document
So I have to seperate that data from the stuff stored to the chatlink doc

#

Should be easy enough

#

Oof fixed it I think
now just gotta test

#

My ide doesn't see that I'm in a Gradle project
also Eclipse is alot better than VS-Code based products

#

GitPod and Openshift Che, both VS based
never work properly
While eclipse does

#

Well I'm out of time rn

tight plinth
#

Someone gives me credit card without money in dms to have 1000 hours of heroku dynos

#

And it works

slate oyster
#

Cool

neat ingot
#

damn man, i need get better internetzzz ๐Ÿ˜ข

earnest phoenix
#

hey

slate oyster
#

That's quite good
Compared to me on a vpn at public wifi

#

I can do better at home though, at >100MBS

tight plinth
#

That's pretty good internet

neat ingot
#

compared to googles cloud tho... ๐Ÿ’”

slate oyster
#

But here on public wifi and vpn
My upload speed <5 mbs

neat ingot
#

there is a company here in the uk called that is working on giving 1gbps speeds to households! ๐Ÿ˜ฎ

#

oh, idk what its called*

#

hyperoptic i think

slate oyster
#

Me in the US...

tight plinth
#

I hope they gonna export to france

modest maple
#

@neat ingot virgin support 1gbps

#

Virgin have set bath up with 8gbps to households

neat ingot
#

i cant get virgin in my area ๐Ÿ’”

#

ooft, lucky bath

#

tbh i used to work for virgin, their service in london is years ahead of everywhere else

#

i worked for them like 5 years ago, and even then london was capable of 100gbps apparently

#

no one had it

#

but the foundations are laid out

#

idk if that was like, buisiness only or what tho

#

and tbh, whos even got the cabliing in their offices to run that ๐Ÿ˜„

modest maple
#

England's overall internet and fibre system is still fucked

unique nimbus
#

It really is fucked

neat ingot
#

i scotland, but yea, samesies.

#

literally every area surrounding mine has virgin capabilities ๐Ÿ˜ข

#

i feel like my street alone has been left for dead lol

tight plinth
#

AWS or DigitalOcean?

#

Or heroku

quartz kindle
#

infrastructure is laid out slowly to accommodate enough bandwidth for years ahead

empty owl
#

How would I get the cornovirus current stats

#

JavaScript

quartz kindle
#

and after that, companies and vips are serviced first

empty owl
#

there arenโ€™t many packages

quartz kindle
#

thats why they lay out 100gb connections and only sell a fraction of it

#

@empty owl google if there is an api for that, if not you need to scrap a website

empty owl
#

Ah

vernal yoke
#

@neat ingot yea but not everywhere, currently they working in my area, im so done with virgin after they go

neat ingot
#

@tight plinth not heroku, when you need to add additional services they want bank

#

id go aws or do, and dockerize your app

tight plinth
#

Ok

empty owl
#

There isnโ€™t many apis

#

I canโ€™t seem to find one

neat ingot
#

make your own>?

#

i had to make an analytics module last night, called it anal-cavity cause why not

slate oyster
#

GitPod
I'm dead now
It has such bad initial load times
abd their Gradle integration is terrible

mossy vine
#

how would i "dockerize" a discord bot in a way that every container is a single shard?

neat ingot
#

i've been wondering this also

#

not had to shard my nubbot yet tho ๐Ÿ™‚

#

i mean, its possible to use things like kubernetes and such with docker

#

to have multiple instances of your containers running

slate oyster
#

GitPod: Switch statement missing case abc, please insert this case
Also GitPod: No quick fixes available

When literally it just said the fix

neat ingot
#

but then, if your sharding via js, for example, that'd be done within the dockerized app

mossy vine
#

of course

#

right now i can only think of a "master-container" idea, where the container asks the master container what shard number it should run, and then runs it

neat ingot
#

yea i was thinking similar, you basically have one container that handles the spawning of additional shard containers, passing some env args to them at creation for shard id etc

mossy vine
#

can containers even spawn other containers

#

dont think you can

neat ingot
#

no clue tbh

mossy vine
#

but im pretty sure you can pass envvars to containers

#

so theres that

neat ingot
#

but could easily run a script 'from the outside'

mossy vine
#

but its not CLEAN

neat ingot
#

yea its clean af tbh

#

at least ~ within docker-compose files etc

#

just need to load the .env file

mossy vine
#

no i dont mean that

neat ingot
mossy vine
#

dont mean that either

#

i mean something like

neat ingot
#

you mean when running a container? passing the args via cmd line?

mossy vine
#

docker run [...] -e SHARD_NUMBER_TO_RUN_PLS=69 spawns the 69th shard haha funny secks number

neat ingot
#

o0 what means secks?

#

how i unlock achievement?

vernal yoke
#

secks = sex

neat ingot
#

i was also wondering if it'd be possible to have different shards running on entirely different machines in different locations

mossy vine
#

yes

neat ingot
#

it sounds like it'd be fine?

mossy vine
#

you can do that

#

for example in d.js it would be ShardingManager given [69] as options.shardList if i get this right

neat ingot
#

see i've got the additional issue of: my website is its own individual container that speaks to my bot container to get stats and commands info etc for displaying on website

#

so then, i need to completely change how thats handled for shards

#

cause atm the bot itself has a simple api exposed internally that the website container contaccts

mossy vine
#

make the bot speak to the website instead :cosmicbrain:

neat ingot
#

but if it was sharded, i'd have to be contacting multiple instances of the api

quartz kindle
#

can containers communicate with each other?

neat ingot
#

yea im gona

mossy vine
#

im pretty sure yeah

quartz kindle
#

via ipc or tcp

neat ingot
#

yea tim

mossy vine
#

uhh

#

yes

#

wait no

#

ok idk

neat ingot
#

internet ports can be exposed

quartz kindle
#

then you can orchestrate self-organizing instances

neat ingot
#

and you can use nginx as reverse proxy

#

so that those ports can not be contacted 'from the outside'

mossy vine
#

oh yeah docker-compose is a thing

neat ingot
#

they all share an internal network

quartz kindle
#

the shitty thing about discord sharding, is that you cant simply add/remove shards

neat ingot
#

and you can choose to expose specific ports manually, or via a sepeerate nginx container

quartz kindle
#

you need to restart the whole system and all instances

neat ingot
#

no

#

oh

#

discrd sharding you need to ?

#

that sucks!

#

i thought you meant docker-composed containers ๐Ÿ˜„

quartz kindle
#

because guilds are assigned to shards based on how many shards you have

#

if you change the total amount of shards you're running, all guilds will be reorganized

#

into different shards

mossy vine
#

but if a container restarts with the same shard number it will just reconnect fine right

quartz kindle
#

it needs shard number and total shard count

slate oyster
#

Google translate is smart enough not to translate commands

quartz kindle
#

if the total shard count changes, the guilds it holds will change as well

charred jetty
#

I get it now why my bot is responding lately

#

This is because fking memory usage

tight plinth
charred jetty
#

Lol

quartz kindle
#

its disableMentions now

#

and it has 3 options

tight plinth
#

Oh

quartz kindle
#

"none","all","everyone"

#

or something

charred jetty
#

Role

#

69ping

slate oyster
#

My rewrite has the same ping permissions
except I named "all" as "strict"

charred jetty
#

How to clear cache?

quartz kindle
#

which cache

neat ingot
#

๐Ÿ˜„

charred jetty
#

Memory usage 43%
221MB / 512MB

#

On Glitch

quartz kindle
#

discord.js?

charred jetty
#

Yes

neat ingot
#

why is there no good cache memes ๐Ÿ˜„

quartz kindle
#

there is guild cache, channel cache, user cache, guild channel cache, guild member cache, guild roles cache, guild emojis cache, guild presences cache, guild voicestates cache

#

etc...

neat ingot
#

221/500 isnt alot

charred jetty
#

@quartz kindle every cache

quartz kindle
#

you need to clear them all one by one

charred jetty
#

Oh

neat ingot
#

data gets cached for a reason

#

also

charred jetty
#

But how to do?

neat ingot
#

you have like 50% ram free

charred jetty
#

@neat ingot ik

neat ingot
#

thats not slowing down your bots speed

quartz kindle
#

client.channels.cache.clear() will delete all channels from the cache

charred jetty
#

Ok

quartz kindle
#

client.channels.cache.sweep(function) will delete all channels that pass the function

#

in v12

#

if you're using v11, then its client.channels.clear/sweep

charred jetty
#

It's a fir Discord v11 ?

quartz kindle
#

not .cache.

charred jetty
#

Ok

#

69ping

#

F

quartz kindle
#

but be aware

#

discord.js does not support cache cleaning, and it might break stuff

charred jetty
#

Oh

quartz kindle
#

although sweeping channels and users should be safe

#

sweeping guilds is not

charred jetty
#

Ok

quartz kindle
#

or you can use a library that does that for you

charred jetty
#

It will regain the caches na?

tight plinth
quartz kindle
#

yes, channels and users are recached automatically

#

disabledEvents was also removed btw

tight plinth
#
disableMentions: all

?

quartz kindle
#

"all"

neat ingot
#

you extend your discord.js client? for what purposes?

tight plinth
#

Ok

neat ingot
#

i guess if your sharding you technically have more than 1 client ?

quartz kindle
#

depends how you shard

#

if you use the sharding manager, you have one process per shard

#

if you use internal/auto sharding, then you have multiple websocket instances in the same process and client instance

neat ingot
#

one process per shard in the context of a node js environment tho? is that actuall running its own process, or still using the shared node process?

#

ie, would it be able to utilize a 2nd core?

tight plinth
quartz kindle
#

discord.js's shardingManager uses node's child_process

neat ingot
#

oohhh nice

quartz kindle
#

so yes, it spawns a separate process that can use a separate cpu

neat ingot
#

thats good ๐Ÿ™‚

#

i've been debating if its worth sharding my bot prematurely

#

just in case

#

atm its like, 60 guilds only ๐Ÿ˜„

quartz kindle
#

no need to shard prematurely, but good to code with sharding in mind

#

if you're going the shardingManager route, you need to make sure all your code supports it

#

for example, cross-guild posting or member getting will not work

slate oyster
#

How is the second ping in that image not pinging? Unless there's an invisible space their

quartz kindle
#

because not all guilds/members will be available in each shard

neat ingot
#

ahh good to know! i do have cross guild posting for my bots 'report bug' command

quartz kindle
#

@slate oyster the library has a disableMentions option that does that for you. it essentially inserts a zero-width space after the @

neat ingot
#

it sends a post from them to my support server

slate oyster
#

Thanks

neat ingot
#

but i can easily offload that to some web api endpoint

quartz kindle
#

the shardingManager itself has IPC that you can use

solemn harness
#

guys after the discord.js update it broke my bot

quartz kindle
#

for cross posting and cross instance communication

#

@solemn harness did you update to v12?

neat ingot
#

ahh nice, if each shard was a container on a different machine though i'd need a different approach right?

solemn harness
#

yes

quartz kindle
#

did you see the v11->v12 update guide?

solemn harness
#

i can't figure out

#

what to change

neat ingot
#

i can easily setup basic sharding with manager for now and once its hurting my single container work on splitting it more ๐Ÿ™‚

#

but again, no rush ๐Ÿ˜›

quartz kindle
neat ingot
#

when did v12 get released?

solemn harness
#

ok ty

quartz kindle
#

yesterday

solemn harness
#

it is

neat ingot
#

ahh, fudge ok

#

i best update then

#

should maybe check all package updates as a point

quartz kindle
#

make sure you check your code because v12 has a gazillion breaking changes

neat ingot
#

ok yea no not even updating

#

cause it wants git to be in the path

#

and my path is technically in a container

#

that im not adding git to

#

๐Ÿ˜„

quartz kindle
#

v12 should no longer require git tho

#

idk if they updated that part already

neat ingot
#

idk it says for now gits needed

#

oooh wait

#

its just to install?

#

nvm then thats fine

#

lol

#

wait npm uses git anyway?

ocean frigate
#

will posting feedbacks submitted to my bot to the support server not work when using sharding?

neat ingot
#

like, npm installs git automatic?

slate oyster
#

Why is Discord.js so popular?
There are discord libs for languages that, in the long run, are easier to organize and maintain.

neat ingot
#

because javascript is so popular probly

slate oyster
#

Ah ok

ocean frigate
#

Will cross guild messaging not work when bot sharding?

slate oyster
#

And I'd assume JS is popular because it is used by browsers
even wasm requires js to work

tough kraken
#

MY real acc got disabled how to fix it?

neat ingot
#

no rahul, you need to accomodate for such things

ocean frigate
#

๐Ÿ˜ฑ

slate oyster
#

alts??!!

tough kraken
#

they say to check enail nothing in there

neat ingot
#

cause not all shards wil have all guilds in their client

tough kraken
#

email^

ocean frigate
#

Can we make all shards have one guild at least?

quartz kindle
#

you can however use internal sharding instead of the shardingManager

finite bough
#

@tough kraken not exactly

#

js is popular for it's high speed, efficiency, age, capability

tough kraken
#

wdym?

finite bough
#

js is losing its popularity slowly

quartz kindle
#

js will not be forgotten while the web exists in its current state

vernal yoke
#

^

tough kraken
#

help me

finite bough
#

imagine Tim being like what's js in 2070

quartz kindle
#

help with what

neat ingot
#

js will lib forever ๐Ÿ˜„

vernal yoke
#

ping me when js is no longer needed @finite bough

slate oyster
#

But wait
what about when wasm can be run standalone

#

Then will they forget js

finite bough
#

pretty sure discord is gonna die soon

vernal yoke
quartz kindle
#

doubt it, js is still much more flexible and easier learning curve than wasm

neat ingot
#

^

slate oyster
#

Ah ok

finite bough
#

atleast sooner than js's extinction

neat ingot
#

so many changes in v12 ๐Ÿ˜

tough kraken
#

@quartz kindle My real acc got disabled idk why
it says to check email but no email ffrom discord

quartz kindle
#

then you should ask discord

finite bough
#

dont use v12 for the time being

quartz kindle
#

why not

finite bough
#

bugs

tough kraken
#

i asked them
no response

quartz kindle
#

what bugs

#

@tough kraken nobody here works for discord, there is nothing we can do

finite bough
#

big bugs

#

colourfull bugs

#

lmao

quartz kindle
#

lul

finite bough
#

@tough kraken when did u send it

#

if u sent it like 2 seconds ago

tough kraken
#

let me look

#

about 6h

finite bough
#

no one in this world can help u

#

broo

#

wait atleast for 3 weeks

neat ingot
#

yea tbh, im not gonna update to v12 quite yet

quartz kindle
#

contacting big companies usually takes about a week for them to respond

tough kraken
#

3weeks?

finite bough
#

yes

tough kraken
#

hmm

#

ok thx

finite bough
#

there are about 3M people on disc

mossy vine
#

tim, are you experienced with docker?

finite bough
#

take 20k emails every day for diac

quartz kindle
#

nope

tough kraken
#

anyone here works for ds?

mossy vine
#

so you just know scraps of how it works?

finite bough
#

no one can help u batman

#

as

#

the email goes to a specific person

#

not the whole ds worker team

tough kraken
#

uff
just have to wait

#

thx for the guide

finite bough
#

but

quartz kindle
#

@mossy vine btw i didnt find the problem you reported yesterday, but i found other similar problems while i was at it lmao

finite bough
#

if its disabled

mossy vine
#

glad to sort of help?

finite bough
#

u should be able to login

#

try befriending ur main account and see if it still exists

#

as it may get terminated

tough kraken
#

when i trys to login it says your acc is disabled check email

finite bough
#

screen shot?

tough kraken
#

k

vernal yoke
#

@quartz kindle holy christ that's a fuckton of things to change in v12

quartz kindle
#

good luck

vernal yoke
#

ha, cba ๐Ÿ˜‚

finite bough
#

exactly

tough kraken
finite bough
#

quick question

tough kraken
#

this is what it shows

finite bough
#

ur password is already dotted

#

why did u hide it

#

LOL

tough kraken
#

safety measures

quartz kindle
#

hiding from the russian hackers

finite bough
#

woah

tough kraken
#

the ss looks like a part of the chat

#

does not look like a pic

#

like i can click that login button

quartz kindle
#

same color scheme

#

so it blends in easily

finite bough
#

@tough kraken I think ur account has been banned

earnest phoenix
#

Yeah

tough kraken
#

wtf

earnest phoenix
#

This is a ban

finite bough
#

my friend's account was banned too

earnest phoenix
#

What are you doing on the account sourire

finite bough
#

apprantely he raided a fortnite server

#

LMAO

earnest phoenix
#

Selfbot? Raid? Giveaways serveurs(nitro)?

tough kraken
#

i make bot

earnest phoenix
#

No

#

Impossible

finite bough
#

self bots?

earnest phoenix
#

A simple bot can't be banned

tough kraken
#

self bot?

earnest phoenix
#

selfbot can be banned

tough kraken
#

what is that?

finite bough
#

using bots on ur own account

earnest phoenix
#

Self-bot

#

Yeah

#

Exactly

tough kraken
#

how does that work?

#

the bot sends message for u?

finite bough
#

yes

#

just like a discord bot

#

but

#

on a person's account

tough kraken
#

hmm is it possible?

finite bough
#

rlly...

tough kraken
#

well i got no idea on that

earnest phoenix
#

With a selfbot you can ddos, hash, "generate nitro codes" etc...

tough kraken
#

i make server

#

bot

#

chat

earnest phoenix
#

You can change your password, your email, send a number of message for spam

#

Mmmh

tough kraken
#

try to find a player for pubg

earnest phoenix
#

I can't trust you

finite bough
#

did u use better discord?

tough kraken
#

better discord?

earnest phoenix
#

Am i allowed to offer a incentive for people to vote?

#

Yeah better discord = client modified = banned

#

uh

#

chances are your account wasn't disabled for thaz

#

that*

#

And

#

contact discord for the reason

#

Better discord is only because discord use electron...

#

ive never heard of any punishments for better discord, if so then its probably rare.

#

Not saying that its allowed though

finite bough
#

@earnest phoenix I have heard tons

tough kraken
#

idk that things

earnest phoenix
#

because even though they say it's not allowed to mod your client, they in fact give 0 fucks about it

#

like i said

#

Better discord = forbidden

#

and there is no way to enforce it

vernal yoke
#

and what it has to do with development... conversation going places

earnest phoenix
#

people here don't know the reason, contact discord themselves

#

Or

#

@tough kraken you can view the reason in your mail box generaly

finite bough
#

@vernal yoke nothing, that's the point

vernal yoke
#

@finite bough fair GWrjkKappaPeek

tough kraken
#

no

#

there is nothing

finite bough
#

@tough kraken check spam folder

#

and search all the messages sent by discord

slate oyster
tough kraken
#

i dont have anything

#

except few emails i sent them

finite bough
#

u sent something else?

#

if you sent something like

#

not related to ur ban

#

u r banned for that

#

as the messages say

tough kraken
#

oh yea i sent

finite bough
#

"no reply"

tough kraken
#

i sent a report against a server

earnest phoenix
#

whaz

#

what

finite bough
earnest phoenix
#

stop spewing bullshit shiemi

#

they don't ban for sending them an email

finite bough
#

possibility

tough kraken
#

the server owner told i will get nitro for 50 invites

#

whoch i never got

finite bough
#

and it depends upon the message content

tough kraken
#

so i sent a report for scam

finite bough
#

ok nvm u didnt get banned for that

#

that's acceptable

tough kraken
#

i dont think it is a ban

finite bough
#

or disabled

tough kraken
#

because my server is still there

finite bough
#

is ur acc still there

earnest phoenix
#

it's not a possibility it's a certainty; their entire email system is automated so stop making things up lol

tough kraken
#

but the loss is i have to add the bot again if i cant retireve my acc and losses a 300+ server

#

@earnest phoenix

#

this is the real one

earnest phoenix
#

why are you ignoring the fact that contacting discord for the reason is the only thing that can actually tell you the fucking reason??

finite bough
#

wait

#

I think I remember u chatting here

tough kraken
#

why are you ignoring the fact that contacting discord for the reason is the only thing that can actually tell you the fucking reason??
@earnest phoenix waiting

#

till they respond going through things to find a way to get acc back

earnest phoenix
#

be sure you also sent it to the right email

#

and from your disabled accounts email

tough kraken
#

the first email i send did ot reach

#

@noreply@gamil

finite bough
#

it bounced back?

tough kraken
#

somethimng like that

quartz kindle
#

its a noreply email duh

#

you cant send to noreply

finite bough
#

lmaoo

tough kraken
#

it sent the message back to me in another format

#

then i found another email and sent

finite bough
#

that's called bouncing back

tough kraken
#

instead of a person the clyde bot send a msg back

finite bough
#

try contacting them on Twitter

earnest phoenix
finite bough
#

they r pretty active on answering questions there

tough kraken
#

i dont have twitter

#

uff

#

i am trying to get the tag of one of my friend

#

which i am friend in the real acc

#

his friend works for discord

austere sun
#

pls how to put a bot in my discord surver

finite bough
#

@tough kraken try using ur bot and get all the people's tags in a json file

quartz kindle
#

click the invite button

finite bough
#

LOL

tough kraken
#

all the person?

#

why?

finite bough
#

one of them would be ur friend?

austere sun
#

when i click it it send me in discord and that its

tough kraken
#

maybe the reason i got disabled is

#

he is in a server

finite bough
#

@austere sun what bot

quartz kindle
#

when you click an invite button, a page should open where you can chose a server to put the bot in

tough kraken
#

and it was the time i studied to make bot

austere sun
#

no

tough kraken
#

and i made them a gen bot

finite bough
#

gen?

tough kraken
#

which sends a random acc from a list

finite bough
#

that's

#

nothing

tough kraken
#

they gave me acc and all

finite bough
#

what

tough kraken
#

i put then in a json

#

and send tto the users who use the command

finite bough
#

tts?

tough kraken
#

eample: ,spotify
output(dm):your spotify acc ||spome acc info||

quartz kindle
#

i dont understand anything you're saying

finite bough
#

.

#

isnt that against discord TOS

quartz kindle
#

also, this is not exactly about development anymore

tough kraken
#

idk

finite bough
#

it never was

#

Lmao

tough kraken
#

they asked to make a bot which dm advertisement

austere sun
#

from what site

tough kraken
#

which i rejected

#

ik that is against ots

quartz kindle
#

move to another channel batman

#

@austere sun what bot do you want to invite? what is this bot's website or link?

finite bough
#

invalid user

quartz kindle
#

did he just leave? lmao

pale vessel
#

ots lmao

finite bough
#

looks like it

pale vessel
#

of terms service

finite bough
#

ots

#

anyways ima go check how do u use 12.0

tough kraken
#

what did i do wrong?

true ravine
#

Ask discord not us

earnest phoenix
#

explicitly ask for the reason

true ravine
#

I've recorded all the times of the process that run before my bot fires the ready event, and for some reason it takes ages for the bot to log in

#

Any ideas why?

quartz kindle
#

is that 4918 ms?

true ravine
#

All times are ms yeah

quartz kindle
#

looks normal

#

how many guilds?

true ravine
#

14

quartz kindle
#

hmm ok maybe too much for only 14

true ravine
#

Sometimes it can be up to 30 seconds

quartz kindle
#

where is it hosted?

true ravine
#

An AWS instance in ohio

quartz kindle
#

does it have load all members enabled?

true ravine
#

Not sure I'll check

quartz kindle
#

or whatever the option name is

true ravine
#

Yeah I know what you mean

quartz kindle
#

are you using discord.js?

true ravine
#

Yeah I am

quartz kindle
#

you can do this to measure more accurately

#
client.on("raw", r => {
  console.log(Date.now(),r.t)
})```
true ravine
#

Oh right thank you

quartz kindle
#

or new Date().toISOString()

true ravine
quartz kindle
#

to make it more readable

true ravine
#

Yeah thanks

quartz kindle
#

i meant this

true ravine
#

Hmm I don't know

quartz kindle
#

default is false, so if you dont know its probably false

true ravine
#

Yeah I don't remember specifying it

quartz kindle
#

yeah just check the raw packets

true ravine
#

Alright I'll give it a go

quartz kindle
#

also, you'll probably be flooded with presence updates if you're not using intents

finite bough
#

ok how do u even use 12.0

mossy vine
#

by default now

#

since it released

quartz kindle
#

npm install discord.js

#

if you already have v11 installed, either uninstall it first, or do something like npm install discord.js@12.0.1 or something

#

i forgot the exact syntax

#

because npm does not allow you to update major versions by default

finite bough
#

or u just click on discord.js in the drop down menu on glitch

quartz kindle
#

welp i dont use glitch

finite bough
#

good

#

idk why I use it

tough kraken
#

i use vs code

#

and glitch

#

i test on vs code and then paste into glitch for free hosting

finite bough
#

...

#

u can connect the 2....

wet iron
#

yay im approved

pale vessel
#

nice profile picture

solemn quartz
#

Guys I Need help, When I Was whit only the index.js the bot was working, now i did multiple folders and the bot doesnt work -_-

pale vessel
#

change the file in package json

wet iron
#

@pale vessel thanks lmao

grim aspen
#

what were you trying to do

tough kraken
#

u can connect the 2....
@finite bough no . But we have copy paste and upload file

finite bough
#

no

#

use a glitch plugin

#

and when u write something on vs code

quartz kindle
#

@solemn quartz then you did something wrong. if you want help, either post your code or your error if you have one

finite bough
#

it will send it to glitch

tough kraken
#

lol

#

i didnt knew

wet iron
#

umm

true ravine
#

Does getting user presences (i.e. online/idle/dnd/offline) count as an API request?

#

Because that wouldn't be cached I assume

quartz kindle
#

there are no presences in the rest api

#

if you dont enable presence updates, there is no way of getting them

#

well, there is one way, via requesting guild members

true ravine
#

I've been checking if users are online for a while and it's worked fine

#

What I was wondering was if I could be being rate limited for continuously checking presences

quartz kindle
#

are you using intents?

true ravine
#

No not at the moment

quartz kindle
#

then you're receiving and caching presences

#

checking for a user presence checks the cache

#

it doesnt make any request

true ravine
#

Oh right thank you

neat ingot
#

theres an npm package that you can run to update all dependencies at once if you want ๐Ÿ˜›

#

can check, or update, quite handy ๐Ÿ™‚

prime cliff
#

d.js v12 is still a bit unstable so it should not be the default now because a lot of people are complaining with glitch ๐Ÿ˜ฉ

quartz kindle
#

a lot of noobs are complaining

#

v12 has been pretty stable for a long time now, i've been using it for like 6 months

unique nimbus
#

I think they don't like change

#

From what I seen there is a couple of changes

neat ingot
#

lmao

#

a couple ๐Ÿ˜„

quartz kindle
#

yes

#

a couple hundred

neat ingot
#

lol

finite bough
#

idk

#

not working for me

quartz kindle
#

what isnt?

finite bough
#

12

quartz kindle
#

error?

finite bough
#

I am probably doing something wrong

#

/rbd/pnpm-volume/034599ea-c1c3-422b-9783-c3b2bb2163b1/node_modules/.registry.npmjs.org/discord.js/12.0.1/node_modules/discord.js/src/client/Client.js:40
    } catch {
            ^
SyntaxError: Unexpected token {
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:617:28)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/rbd/pnpm-volume/034599ea-c1c3-422b-9783-c3b2bb2163b1/node_modules/.registry.npmjs.org/discord.js/12.0.1/node_modules/discord.js/src/index.js:8:11)
tight plinth
#
} catch () {```
#

Or update node version

finite bough
#

that's the problem

#

I dont have catch

tight plinth
#

Edit

finite bough
#

like a cmd with }catch()

tight plinth
#

It should be catch ()

#

U don't need a cmd

finite bough
#

deleted the whole index.js

tight plinth
#

That's basic js stuff

finite bough
#

same error

#

LMAO

#

well

#

@tight plinth what's the latest node version

tight plinth
#

idk

#

12.x I think

finite bough
tight plinth
#

What

prime cliff
#

.catch is invalid it's suppose to be just catch

tight plinth
#
try {
//code
} 
catch (error) {
console.log(error)
}```
or
```js
} catch (error) {
console.log(error)
}```
prime cliff
#
try {
}
catch (error) {
}```

Not .catch
marble juniper
#

big brain chat

finite bough
#

.catch(error => console.error(error));
});

slate oyster
#

People using d.js complaining
Me happily using d4j

prime cliff
#

Me: Using C# so that is does not succ ram like d4j and d.js

slate oyster
#

oof

earnest phoenix
slate oyster
#

lol

slender thistle
#

Disqord enough?

earnest phoenix
#

disqord and dsp are good

slate oyster
#

@slate oyster

modest maple
#

gj

restive furnace
dense patio
#

@green kestrel

#

my DO droplet keeps getting shut down because they were "compromised in a ddos attack" or something like that

grizzled raven
torn parrot
#

hello. I have an issua with the bot . i send comands but he don't respond because he's offline. what could i do?

torn parrot
#

ooooooooh thx

finite bough
#

@grizzled raven nope

#

I tried deleting all the catches

grizzled raven
#

no it is

#

at require (internal/module.js:11:18)
at Object.<anonymous> (/rbd/pnpm-volume/034599ea-c1c3-422b-9783-c3b2bb2163b1/node_modules/.registry.npmjs.org/discord.js/12.0.1/node_modules/discord.js/src/index.js:8:11)

quartz kindle
#

@finite bough show your package.json

#

the one that gives you the error

vernal yoke
queen folio
#

how does embed.insert_field_at work?

mossy vine
#

read the docs?

surreal sage
#
client.on("guildMemberAdd", async function (user) {
  const member = user.user
  var today = new Date();
  var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
  var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
  var dateTime = date+' '+time;
  const embed = new Discord.MessageEmbed()
  .setTitle(`*${member.username}`)
  .addField("Joined Discord At:", nice(member.createdTimestamp))
  .addField("Joined This Server At:", dateTime)
  .setThumbnail(member.avatarURL)
  const channel = user.guild.channels.find(a => a.id === "684108537206407177")
  channel.send(embed)
})```

`(node:9807) UnhandledPromiseRejectionWarning: TypeError: user.guild.channels.find is not a function` Hmmm Ok???
How to then?
earnest phoenix
#

in v12 channels is of type GuildChannelManager

sweet spade
#

how can I do daily credit comand for all users hmm ...

earnest phoenix
#

store the unix timestamp of the command execution in a database
on credit command check if it's been 24 hours since the stored unix timestamp
if it has - the user is allowed to do the command again
if it hasn't - the user isn't allowed to do the command because it hasn't been 24 hours since they last received credits

sweet spade
#

ohh thx

surreal sage
#

@earnest phoenix wdym

earnest phoenix
#

?

surreal sage
#

i dont know how to use the new fucking discord.js api

earnest phoenix
#

oh gee too bad i didn't link any docs to help yo-- wait i did :)

surreal sage
#

Help more please

smoky spire
earnest phoenix
#

you can help yourself - by quite literally reading the docs

surreal sage
smoky spire
#

All the info you need

earnest phoenix
#

it says everything you need to know lmao

#

it's a collection

surreal sage
#

so i have to do
const channel = user.guild.channelManager.cache(r => r.id === "id")

earnest phoenix
finite bough
#

question

earnest phoenix
#

answer

finite bough
#
const User = message.mentions.users.first()
    let avatar = message.author.displayAvatarURL
    
    const Embed = new Discord.RichEmbed()
        .setColor()
        .setTitle(`${message.author.username} is gay!`)
        .setImage(`https://eclyssia-api.tk/api/v1/gay?url=${avatar}`)
    
    message.channel.send(Embed)
    
  }
}
surreal sage
#

and try it

#

@finite bough use Discord.MessageEmbed()

#

new FUCKING DISCORD API

finite bough
#

...

#

CMON

#

it took ages to memorize this shit

#

now new api

surreal sage
#

yes its fucking a piece of ...

earnest phoenix
#

you don't have to memorise...? docs exist for the very exact reason

#

what do you mean lol

#

v12 is really good

surreal sage
#

Well its just a piece of cr*p

earnest phoenix
#

You can just npm i discord.js@11.5.1

#

breh

pliant adder
#

hey woah why be mad

surreal sage
#

AH YES THANKS

#

THXXXXX

pliant adder
#

managers instead of stores aren't that bad

surreal sage
#

this piece of cr*p of v12

earnest phoenix
#

you're complaining because you don't know javascript properly and can't logically resolve problems yourself ๐Ÿ’…

pliant adder
#

there is a reason behind it after all

surreal sage
#

I make bots for others and i do know javascript but i hate alot of changes in updates

earnest phoenix
#

@earnest phoenix new api = bulk changes = people raging about syntax

pliant adder
#

master was gonna come either way

#

plus nobody stops you from downgrading

earnest phoenix
#

Master isnt that bad actually

#

^

pliant adder
#

THEN

#

why complain about it

surreal sage
#

thx (node:11804) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'cache' of undefined

finite bough
#

no I mesn

#

mean

surreal sage
#
const channel = user.guild.channelManager.cache(r => r.id === "id")```
earnest phoenix
#

wtf is that

pliant adder
#

???

surreal sage
#

client.on("guildMemberAdd", async function (user) { const member = user.user var today = new Date(); var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate(); var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); var dateTime = date+' '+time; const embed = new Discord.MessageEmbed() .setTitle(*${member.username}) .addField("Joined Discord At:", nice(member.createdTimestamp)) .addField("Joined This Server At:", dateTime) .setThumbnail(member.avatarURL) const channel = user.guild.channelManager.cache(r => r.id === "684108537206407177") channel.send(embed) })

earnest phoenix
#

keep in mind that's not what i told you

pliant adder
#

ewww

earnest phoenix
#

i told you that the channels property changed its type

pliant adder
#

i see why u hate v12

#

cause u are still using var

earnest phoenix
#

reading comprehension ๐ŸŒˆ

surreal sage
#

oh

#

okok

pliant adder
#

susEyes i still can't get into js after switching to ts

finite bough
#

vat

earnest phoenix
#

ikr

#

typed languages >>>

pliant adder
#

strong-type languages are bae

queen folio
#

@mossy vine I've read the docs, but they're really vague

surreal sage
#

What tf

#

What do i need to use to fetch a channel

#

resolve?

queen folio
surreal sage
#

resolveId("id")?

queen folio
#

What is this index they're talking about?

earnest phoenix
#

no @surreal sage
the cache propery is what you need

#

it's a collection

#

I have a problem with my bot when i send !play music my bot crash and send this:

TypeError: Cannot convert "null" to int

C:\Users\Administrateur\Desktop\Neotux\node_modules\opusscript\build\opusscript_native_wasm.js:8
var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(M
abort(TypeError: Cannot convert "null" to int). Build with -s ASSERTIONS=1 for more info.
(Use `node --trace-uncaught ...` to show where the exception was thrown)```
surreal sage
#

cache didnt work

earnest phoenix
#

what's your code

#

w/ cache

surreal sage
#

is that the prob

#

what do i have to use

#

user.user?

earnest phoenix
#

what

pliant adder
#

wait

#

provide your code

#

in a bin or smth

surreal sage
#

client.on("guildMemberAdd", async function (user) { const member = user.user var today = new Date(); var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate(); var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); const dateTime = Date+' '+time; const embed = new Discord.MessageEmbed() .setTitle(${member.username}) .addField("Joined Discord At:", nice(member.createdTimestamp)) .addField("Joined This Server At:", dateTime) .setThumbnail(member.avatarURL) const channel = user.guild.channelManager.cache(r => r.id === "684108537206407177") channel.send(embed) })

earnest phoenix
#

cache is a property

#

not a function

surreal sage
#

so?

earnest phoenix
#

it's a collection

surreal sage
#

oh

earnest phoenix
#

learn javascript

surreal sage
#

Bro

#

I learned discord.js

#

Waitt

earnest phoenix
#

before you say it, no, you don't know js

surreal sage
#

i can just switch to older ver

#

YE

pliant adder
#

const channel = message.guiild.channels.cache.find(...)

earnest phoenix
#

and it's clearly visible here

pliant adder
#

@surreal sage what is so hard just to add .cache after collections

#

as of now i have seen enough that you can't read the docs

gloomy meadow
#

no

sweet spade
#

hey @earnest phoenix I fckd commands again you have a command line about that or something ?

earnest phoenix
#

uh

#

what?

pliant adder
#

yeh what

sweet spade
#

nwm I found something

gloomy meadow
#

p!hjรฆlp

pliant adder
#

if you want help post your code and error

sweet spade
#

nwm bro I found How to save data

surreal sage
#

Help

#

I fixed my self the first prob

#

but i got a question now

#

I have like

#

a timestamp

#

nvm

#

Wait

#

i got a timestamp

#

i want it to be like Year:Month:Day

#

How do i format it

pliant adder
#

susEyes get moment and format it

surreal sage
#

(never did formatting numbers like this)

#

ok thx

slate oyster
#

Modulus and math.floor and division and stuff

queen folio
#

How do I format an embed to it's only 2 columns instead of 3?

surreal sage
#

i searched for packages but cant find but thz

pliant adder
#

you can see some formating at their site moment.com i think

surreal sage
#

ik

pliant adder
surreal sage
#

ik

pliant adder
#

here you go for the formating as well

surreal sage
#

do i have to use timestamp or ms

pliant adder
#

thinkW what

#

you just do moment().format(theformat)

earnest phoenix
#

moment.utc().format

topaz fjord
#

moment ew

quartz kindle
#

moment is quite useful for dealing with timezones

topaz fjord
#

I used luxon

finite bough
#

bruh.moment

#

very useful indeed

earnest phoenix
#

Hye ! I have a problem with my bot when i send !play music my bot crash and send this:

TypeError: Cannot convert "null" to int

C:\Users\Administrateur\Desktop\Neotux\node_modules\opusscript\build\opusscript_native_wasm.js:8
var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(M
abort(TypeError: Cannot convert "null" to int). Build with -s ASSERTIONS=1 for more info.
(Use `node --trace-uncaught ...` to show where the exception was thrown)```
slate oyster
#

Probably an Emscripten error

prime cliff
#

Cannot convert "null" to int

slate oyster
#

That's a problem with Emscripten

#

in an emscripten generated code

earnest phoenix
#

Emscripten ?

slate oyster
#

Yea

#

Google it

#

your library probably used it

#

Emscripten allows users to compile C to JS and/or Wasm

#

Your library probably used it

earnest phoenix
#

I donwloand this and it's good ?

slate oyster
#

So basically emscripten is giant
so chances are you can't fix the code yourself
You can try rebuilding the library from the source maybe though

earnest phoenix
#

um

slate oyster
#

?

earnest phoenix
#

@earnest phoenix what d.js version do you have

#

if you have v12

#

use node-opus

#

not opusscript

#

i have v12

#

yeah

slate oyster
#

Ah
he only posted the emscripten-compiled file
So I assumed it was a problem due to emscripten

earnest phoenix
#

install @discordjs/opus

#

@slate oyster It's dont probleme with emscripten ?

#

Just install node opus ?

slate oyster
#

The script you posted was emscripten-compiled
but @earnest phoenix is probably right

earnest phoenix
#

It's good !

#

thank's u

#

The preferred opus engine is @discordjs/opus, as it performs significantly better than opusscript. When both are available, discord.js will automatically choose @discordjs/opus.

#

@lethal mauve is no good

#

(on the docs i linked)

slate oyster
#

It would be nice if Emscripten gave more detailed errors lol

earnest phoenix
#

also @earnest phoenix if you use the d.js library you should join their discord

#

they also offer support there

slate oyster
#

@earnest phoenix Have you ever used emscripten

earnest phoenix
#

Nah

slate oyster
#

Anyways
I assume you figured out the lib he used by the filename

#

Becuase the actual file contents were generic emscripten generated code

earnest phoenix
#

nah lol, i just looked for similar errors in the d.js disc and found the solution

slate oyster
#

oh ok

#

You should try Emscripten
You can port C libraries to JS and Wasm
I forked a library that compiled Lua to asm.js and modified it to support newer emscripten features like compiling to wasm

wide ruin
#

So I have sent a web request to a website I made, which is a JSON including information like "title" and "author" of a tweet

#

How do I detect that and show it on the website?

earnest phoenix
#

on what website

#

detect what

#

give us context

wide ruin
earnest phoenix
#

on frontend?

wide ruin
#

Yeah

earnest phoenix
#

ideally you would want to have an endpoint in your backend which receives the IFTTT request, then you'd have a websocket server in the backend your front users can connect to when they load the website, you can use that to forward the request from IFTTT to your clients on frontend

wide ruin
#

How would I do that at all?

earnest phoenix
#

uh

#

i don't know...?

#

you didn't specify your language or anything

quartz kindle
#

you want to receive those in real time without reloading the page?

wide ruin
#

JavaScript

#

Not really @quartz kindle

#

Just went they load

earnest phoenix
#

then you don't want detection

wide ruin
#

It needs the most recent which should be stored

quartz kindle
#

then you send them to page in your website

#

for example

#

http://mywebsite.com/receive

#

then in your server side code, you should handle the data you receive, and save it somewhere, like a database

#

then when a user opens mywebsite.com the page should open the data that was saved before, and send it

wide ruin
#

The bit I really need is the recieving and storing

summer torrent
#

Has anyone worked with Instagram API?

wide ruin
#

Like idk how to receive a request

quartz kindle
#

what does your server run on?

#

express?

wide ruin
#

It's hosted on glitch so I think so

quartz kindle
#

do you have require("express.js")?

#

then you have stuff like app.on("/", (req,res) => { code here })?

steel heath
#

app.get("/"...

wide ruin
#

@quartz kindle no but I can add it

quartz kindle
#

then what do you have?

earnest phoenix
#

@quartz kindle when i think this is better to use app.get

quartz kindle
#

how does your website work?

#

yeah i said "stuff like", i dont use express so idk the exact syntax

earnest phoenix
#

Oh okay

wide ruin
#

It's just on glitch, mainly just html

#

A couplen functions but not a lot