#development

1 messages · Page 711 of 1

short siren
#

Wdym

warm marsh
#

I'm trying to setup OAuth on my website but I'm not using express. So I was wondering what other ways I could use it but preferably js.

tranquil drum
#

Express is just an http router I thought

warm marsh
#

Yeah.

tranquil drum
quasi forge
#

@warm marsh you could use my library although I haven't completed the docs

tranquil drum
#

Oh wait do you need an oauth provider or client

quasi forge
tranquil drum
#

Dang why not call it discoauth

quasi forge
#

it was already taken I think

tranquil drum
#

Unlucky

quasi forge
#

I tried like 20 names before this

#

I recently remade this to optimise it and stuff so I have to write the documentation all over again

tranquil drum
#

Yeah I linked to an oauth server implementation not a client for authenticating with discord

quasi forge
#

Although I have written pretty good jsdoc IMO

#

so it should be easy to use

#

if you're using a text-editor with auto completion enabeld

tranquil drum
#

Decent comment coverage tbh

quasi forge
#

ty

#

I was planning to add more features but I gotta document these basic features first

quasi forge
#

O btw, I need slight help with vue js. I wanted to apply a specific CSS class to an element only when the user has scrolled enough. But when I used window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop to get the value for how much the user has scrolled as a computed property, it would say window not defined or document not defined. Can anyone provide me with reasons or workarounds for this?

#

Thank you

#

(Also, I only seek solutions not recommendations)

main chasm
#

verify bots how i can ?

unique nimbus
#

You wait

#

My friend

main chasm
#

ok bro

unique nimbus
#

Goodluck bro

main chasm
#

@unique nimbus bro now i need verify bot how i can?

unique nimbus
#

Bro, it takes up to one week

#

There is many many many bots

main chasm
#

ok bro thanks for help

#

after week i can?

quartz kindle
#

you dont have to do anything, just wait

#

you will receive a message

#

if its approved or not

unique nimbus
#

You get message from Luca my friend

#

Luca come to you and say if it is accept or not

#

If it not accept you need to apply again friend

main chasm
#

ok bro thank you tickYes

unique nimbus
#

No Problem Bro

main chasm
#

@unique nimbus but noow person can invite bot without verify?

unique nimbus
#

person will invite bot to testing server and test bot

quartz kindle
#

person can invite bot if you give link

main chasm
#

and search name not cn really?

#

can't

quartz kindle
#

only after approve

main chasm
#

ok bro bro

#

😋

unique nimbus
#

goodluck bro

main chasm
#

@unique nimbus if I,m not send Auctions Access Request
not problem?

unique nimbus
#

When bot gets accepted you can request bro

main chasm
#

now I,m just stop really?

unique nimbus
#

My friend your bot is in queue. It needs to be accepted for auctions to work

#

Don't worry bro

main chasm
#

thank you my darling

#

sorry for spam

earnest phoenix
#

lol bro

unique nimbus
#

No Problem

earnest phoenix
#

you forgot the bro

ember atlas
#

What are possible reasons a command doesnt respond or error at all ?

earnest phoenix
#

everything

ember atlas
#

what is "everything"

earnest phoenix
#

read message

#

it could be everything

#

if you forgot the send message

ember atlas
#

its there

#

message.channel.send(embed)

earnest phoenix
#

if you forgot to sEE the message

ember atlas
#

see ??

#

what

earnest phoenix
#

it could be literally everything

ember atlas
#

what do you mean by see the message ?

earnest phoenix
#

if you didnt see the response

ember atlas
#

ok well just saying "everything" helps me not even .01%

earnest phoenix
#

ik

ember atlas
#

ill just wait for someone who maybe has some more answers :)

earnest phoenix
#

bc it could be literally everything there is no specific reason to a command not providing a response or error

ember atlas
#

just listing a few possible ones rather than "everything" would help a lot more

#

it sucks cuz it doesnt even error

earnest phoenix
#

because the reason is, everything

#

it most likely is erroring and you aren't handling it properly

ember atlas
#

all my errors are sent to the console

#

¯_(ツ)_/¯

earnest phoenix
#

you tell yourself that

#

it's rare to see a js dev who knows how to properly handle an error

ember atlas
#

i dont have an error handler

earnest phoenix
#

here, that is

ember atlas
#

just 9 times out of 10 its sent to the console

earnest phoenix
#

9 out of 10

#

there is still 1 more

#

look for it

ember atlas
#

never had this issue b4

#

¯_(ツ)_/¯

#

ugh this annoysme

earnest phoenix
#

why dont you just

#

handle it and log the exception/error

ember atlas
#

hm

#

could do that

#

¯_(ツ)_/¯

sudden geyser
#

then do that

ember atlas
#

damn that worked

#

found the issue

#
        const guild = client.guilds.get(args[0]);
              ^

SyntaxError: Identifier 'guild' has already been declared

rooThink

tranquil drum
#

is it already declared?

ember atlas
#

Not that I know of..

tranquil drum
ember atlas
#

i see it now

tranquil drum
#

on the line before it lol

ember atlas
#
    } catch (err) {
       ^^^^^

SyntaxError: Unexpected token catch
``` Also this use to work..
#

fuck

#

nvm

tranquil drum
#

what line is that from

ember atlas
#

this command just messed itself up

#

wait?

#

It's from line 207

tranquil drum
#

there's no try statement

#

is there?

#

i think the try statement from line 12 ends on line 114

ember atlas
#

oh?

tranquil drum
#

the check user permission function isn't declared inside the try statement

ember atlas
#

its showing it ends on 213

#

when its not supposed to

tulip tundra
#
//code
} catch (err) {//}
ember atlas
#

thats what i have

#

ok

#

same thing with the no response no error...

sudden geyser
#

Please just fix your syntax.

Your code is unorganized. Even your checkUserPermission function returns before the extra stuff is handled, assuming you meant to put it outside.

ember atlas
#

?

#

tbh imma just remoe that

tranquil drum
#

lol idk where your bracket blocks start or end cause the formatting is so weird

ember atlas
#

looks fine to me

tranquil drum
#

oh i see what happened

#

your catch block is at the end of a function instead of the try

#

just move it to the next closing bracket

#

idk lol this is pretty messed up

ember atlas
#

eh looks fine

tranquil drum
tulip tundra
#

your catch should be at line 211

ember atlas
#

it is

#

should be

tranquil drum
ember atlas
#

probably am gonna rewrite this command tbh

tulip tundra
tranquil drum
ember atlas
#

deleted that part

wanton nova
#

is it allowed to remove the bot from dbl and add it back in?

quartz kindle
#

If you remove it from the website, you need to apply it again and get it verified again

wanton nova
#

yeah my bot blew up because it was on the front page of the new category

west spoke
#

I think he means kick it

#

oh

wanton nova
#

trying to relive that moment

quartz kindle
#

Ehh idk about that lol

wanton nova
#

i mean thats my speculation

#

it did get to 300 servers in less than a week

#

enough for verification, just didn't have enough votes

amber fractal
#

why would you want to remove it if it's doing good

#

that sounds like a bad business decision

tranquil drum
#

he wants to have it relisted on the front of new

valid frigate
#

lmfao

ember atlas
#

Hi im back

wanton nova
#

@amber fractal its losing servers now and not gaining much

#

do any other commands work @ember atlas

#

and are you sure that you have all of those databases filled out?

ember atlas
#

yes they do.

wanton nova
#

you should have a check to see if they exist

#

maybe thats why it isnt sending

gritty bolt
wanton nova
#

so basically

.addField('Moderator Role', `${modrole.name || "No Mod Role"} (${modrole.id || ""||})`, true)

something like that

sudden geyser
#

syntax error

wanton nova
#

what

#

oh crap

ember atlas
wanton nova
#

there

ember atlas
#

thats probably why its not sending

sudden geyser
#

@gritty bolt I'm not familiar with MongoDB, but it's an array, so you'd just index it (<Array>[0]).

gritty bolt
#

so like result[0]?

sudden geyser
#

try it and see

gritty bolt
#

undefined still

sudden geyser
#

how'd you access it

gritty bolt
#

check my code

#

i just did result[0]

tranquil drum
#

where's your code

gritty bolt
#

hastebin above

tranquil drum
#

nvm

gritty bolt
#

except user is now replaced with result[number]

#

also got `` let user = result[]
^

SyntaxError: Unexpected token ]``

tranquil drum
#

you need a number

gritty bolt
#

yea

#

i've got 0

tranquil drum
#

let user = result[]

#

there's no number lol

gritty bolt
#

oh fixed that

#

lol

#

that was an autosave

#

i still am getting undefined for my user varaible

#

weather i put in [author] or [0]

amber fractal
gritty bolt
#

(author is the name of the value for the user)

amber fractal
#

a decline in servers is generally considered a bad thing

sudden geyser
#

Sbss can you show the updated code?

tranquil drum
wanton nova
#

removing the bot doesn't mean removing all of the servers its in

#

only this and maybe a few others

gritty bolt
wanton nova
#

but it will rejoin in a week or two

gritty bolt
#

and I think so

#

it wasnt that page though

sudden geyser
#

why are you indexing the 2nd item when there are only 1 items in it

ember atlas
#
     .addField('Moderator Role', `${modrole.name || "No Mod Role Set"} (${modrole.id || ""||})`, true)
                                                                                             ^

SyntaxError: Unexpected token }
#

What happened when i used your code spooky guy

sudden geyser
#

leading ||

gritty bolt
#

oh

#

but then after that how do I get to the data?

#

if i change user can i use the newvar.item?

sudden geyser
#

Items is just "items"/a name. I recommend you check out javascript arrays and indexing values/items.

gritty bolt
#

tried looking at those

#

to be more clear just in case i wasnt before

#

im trying to define my array so i can get the value of an object inside

warm marsh
#

What is the Discord API endpoint for getting username?

sudden geyser
#

Are you using a library, or actual calls.

amber fractal
warm marsh
#

I have checked there.

#

I'll check again.

amber fractal
earnest phoenix
#

wait how to do code bin?

gritty bolt
earnest phoenix
#

no type a code bin in chat

#

like

#

money = None

amber fractal
#
let x = 5
#

that?

earnest phoenix
#

ya that

amber fractal
#

that's a code block

#

3 backticks

#

then code then 3 backticks

#

`

earnest phoenix
#

\\let x = 5\\

amber fractal
#

backticks not slashes

#

it's right above tab on a qwerty keyboard

earnest phoenix
#

---let x---

#

let x

amber fractal
#

there you go

earnest phoenix
#

ok thanks

amber fractal
#

you can also give it a lang to color it better

earnest phoenix
#

how to do that?\

amber fractal
#
let x = 5
#

only works on pc tho

earnest phoenix
#

ok

#

python: im having an error. so i have this

#

money = None

#

than in an async function, i do this:

global money
money += 10
#

it gives me an error:
TypeError: unsupported operand type(s) for +=: 'type' and 'int'

#

how to fix this?

sudden geyser
#

money is None, and int is not None

earnest phoenix
#

im trying not to define money = 0because that resets money every time I run the code

#

what to do?

ember atlas
sudden geyser
#

You could assign it directly with = instead of +=

ember atlas
#

No response to command. No error.

tranquil drum
#

can you confirm the command is being executed?

ember atlas
#

By doing what ?

tranquil drum
#

a console.log at the top of run or something

sterile minnow
sudden geyser
#

get ready for serverjoin flood

sterile minnow
#

But my Bot is not approved lol

ember atlas
#
module.exports = { 
    name: 'guild', 
    alaises: ['data'],
    description: 'Gets data.', 
    usage: '<server id>', 
    category: 'owner', 
    run: async (client, message, args) => { 
      console.log(command.name)

@tranquil drum would this work?

sudden geyser
#

oh then rip

tranquil drum
#

ya

ember atlas
#

command isnt define

tranquil drum
#

except there's no command def lol

ember atlas
sterile minnow
#

I hope my Bot will be Approved nxt time

ember atlas
#

idk what to define it as

tranquil drum
#

just put a string in there

#

or message

#

this.name

amber fractal
#

mine works just fine too

sterile minnow
#

Rythm not

ember atlas
#

not even registering as running @tranquil drum

tranquil drum
#

where are you calling the run function

ember atlas
#

where i always call it

tranquil drum
#

does it have the await keyword

ember atlas
#

no

tranquil drum
#

try putting the await keyword

sudden geyser
#

await isn't required

ember atlas
#

^

#

only command that doesnt work is this one

tranquil drum
#

where are you calling it?

ember atlas
#

what?

tranquil drum
#

can you show the code where you call run

ember atlas
#

um

#
module.exports = { 
    name: 'guild', 
    alaises: ['data'],
    description: 'Gets data.', 
    usage: '<server id>', 
    category: 'owner', 
    run: async (client, message, args) => { 
tranquil drum
#

that's the definition for run

#

where do you call it?

ember atlas
#

idk what u mean?

tranquil drum
#

like actually execute it?

sudden geyser
#

likely to be occuring in the message create event

ember atlas
#

this tbh

tranquil drum
#

i imagine you import the module somehow then call run()?

ember atlas
#
   if (command)
        command.run(client, message, args)
#

maybe?

tranquil drum
#

ya

ember atlas
#

ya

#

thats where i call it

#

in the message event

tranquil drum
#

you can check if the command object actually exists for the command you're trying to execute

ember atlas
#

hm?

sudden geyser
#

to truly help, we'd need the message create function, but we probably don't want that. Maybe check the checks you did to see where it's failing. Sometimes it can be simple mistypings

tranquil drum
#

do you have something along the lines of if message.startsWith(command.name)

ember atlas
#

it would error tho

tranquil drum
#

or where is command defined / populated

ember atlas
#
client.on('message', async message => { 
let prefix = await db.fetch(`prefix_${message.guild.id}`)
if(!prefix) prefix = '!'
    if (message.author.bot) return; 
    if (!message.guild) return; 
    if (!message.content.startsWith(prefix)) return; 

    if (!message.member) message.member = await message.guild.fetchMember(message);

    const args = message.content.slice(prefix.length).trim().split(/ +/g); 
    const cmd = args.shift().toLowerCase(); 

    if (cmd.length === 0) return; 

    let command = client.commands.get(cmd); 
    if(!command) command = client.commands.get(client.aliases.get(cmd)); 

    if (command)
        command.run(client, message, args)
});

tranquil drum
#

client.commands

#

where is that populated?

ember atlas
#

I feel like we are in endless and useless loops

tranquil drum
#

nah we're tracing the problem back

ember atlas
#

Every command but this specific one works

tranquil drum
#

you could have a problem when populating this one command

ember atlas
#
client.commands = new Collection();
tranquil drum
#

how do you add them commands to the collection?

ember atlas
#

theres a whole command handler and stuff

tranquil drum
#

can you check if command is defined?

sudden geyser
#

teemaw it's a basic command handler. An example would be an idiots guide one

tranquil drum
ember atlas
#

this aint an idiots guide lol

tranquil drum
#

like right here

sudden geyser
#

ik, but it's similar

tranquil drum
#

just console.log(command)

ember atlas
#

ya true

gloomy lantern
ember atlas
#

i dont use that so idk

tranquil drum
#

yeah idk what that is @gloomy lantern

ember atlas
#

Ok, added the console.log, ran the data command and got undefined

tranquil drum
#

that means the client.commands collection doesnt have that command

ember atlas
#

running a command that works gave me

{ name: 'ping',
  category: 'info',
  description: 'Pings the bot.',
  run: [AsyncFunction: run] }
tranquil drum
#

or your method of querying the collection is faulty somehow

ember atlas
#

hm

tranquil drum
#

that's why there's no error

ember atlas
#

oh thats differnt

#

never had that issue so how do i fix it

tranquil drum
#

if all your other commands work then it's probably not the fault of querying the collection

#

so i imagine there's a problem where you add this specific command to the collection

ember atlas
#

hm

gloomy lantern
#

I don't know what IDK is
code me each has thrown off

ember atlas
#

the thing thatadds the command is that module.exports = {
// blah
}

tranquil drum
#

idk = i don't know

ember atlas
#

let me go over that

tranquil drum
#

no that's fine

#

it's where you call require()

#

there's probably a problem there

gloomy lantern
#

Hmm

tranquil drum
#

@ember atlas

ember atlas
#

ok well it errors with an actual error now LULW

tranquil drum
#

what is it

ember atlas
#
(node:180) UnhandledPromiseRejectionWarning: ReferenceError: r is not defined
#

Ok well it seems that its registering it again

#

So thanks teemaw

tranquil drum
#

okay cool

#

remember what we did here, you can always trace your code back to where the problem is

#

even if it feels like you're going nowhere

ember atlas
#
(node:20660) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'name' of undefined
#

Why would i be getting this at line 51?

#

Let me get the code

tranquil drum
#

what's on line 51

ember atlas
gloomy lantern
#

my bot does not save changes

tranquil drum
#

that means logchannel is undefined

#

does that key exist in the db?

#

oh wait it looks like you're trying to detect if it doesn't exist

ember atlas
#

Ok, so I canot make it so if its disable it says no channel set on the command?

tranquil drum
#

you can get rid of .name

#

then it'll work

ember atlas
#

I dont want it to spit the id

#

i want it to be the name

gloomy lantern
#

eyAic3RhdHVzQ29kZSI6IDUwMCwgIm1lc3NhZ2UiOiAiSW50ZXJuYWwgc2VydmVyIGVycm9yIiwgImFjdGl2aXR5SWQiOiAiZjY5M2RjOWMtOTRiYy00NzM1LThhNWYtNzdlMmRhMTk0NmIwIiB9

ember atlas
#

but if its not set then say its not set

gloomy lantern
#

Cod error

tranquil drum
#

oh

#

i see

#

you can do a ternary probably logchannel ? logchannel.name : 'No Log Channel Set'

ember atlas
#

and do that as the field ?

tranquil drum
#

yeah like ${logchannel ? logchannel.name : 'No Log Channel Set'}

#

same for the id

#

${logchannel ? logchannel.id : ''}

ember atlas
#
 .addField('Welcome Channel', `${welcomechannel.name || "No Welcome Channel Set"} (${welcomechannel.id || ""})`, true)
#

isnt that kinda what i have?

tranquil drum
#

not really, it's close

#

but if welcomechannel doesn't exist then it'll throw an error instead of false

#

when you try to access .name of an undefined object

#

with what i posted it checks the existence of the object itself

#

so it doesn't throw an error

ember atlas
#

ah

#

thanks for all your help

tranquil drum
#

np lol

ember atlas
#
embed.thumbnail.url: Not a well formed URL.
#

??

#

Proabably referring to .setThumbnail(icon) but what's wrong with that?

tranquil drum
#

console.log the url?

ember atlas
#

(node:15700) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'tag' of undefined

#

This just fuckin worked

#

const owner = client.users.get(thisGuild.ownerID).tag

amber fractal
#

why not just guild.owner.user.tag

#

prevents unnecessary functions from being called

ember atlas
#

k!

#

(node:18788) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'user' of undefined

#

thats why :)

amber fractal
#

do you even have a guild?

ember atlas
#

Yes?

#

Ya just tested it too bud

#

Works in eval, not in command.

amber fractal
#

lemme delete that tho

#

Shoulda done it in my guild mmLol

ember atlas
#

.addField('Guild Owner', `${thisGuild.owner.user.tag} (${thisGuild.ownerID})`, true)

#

This is what I have

amber fractal
#

log thisGuild

ember atlas
#

thisGuild is client.guilds.get(args[0])

sudden geyser
#

are you sure the guild owner is cached

ember atlas
#

yes he is

amber fractal
#

what's args[0] though

#

an id?

ember atlas
#

Or he is not

#

And yes

#

I got a deprecation warning

amber fractal
#

are you on d.js master or stable?

ember atlas
#

I wouldnt know

amber fractal
#

chances are you're on stable

ember atlas
#

how can i check

#

also how can you make it so your caches an owner

amber fractal
#

try npm show discord.js version

#

You can just go back to the way you were doing it by getting from the id

ember atlas
#

11.5.1

amber fractal
#

Hold up I may have given you false information mmLol I never knew how to check the installed package version lemme try something else

#

yeah try npm list discord.js

ember atlas
#

discord.js@11.5.1

amber fractal
#

yeah that's stable

#

if you go back to the way you did it, given guild is correct, your previous code const owner = client.users.get(thisGuild.ownerID).tag should work.

ember atlas
#

guild is correct

#

this caching thing is dumb as shit

#

so const owner = client.users.get(message.guild.ownerID).tag doesnt work..?

#

ok so it appears this servers owner isnt cached

#

works for everything else

#

ty for the help

amber fractal
#

ownerID should be there regardless you can try awaiting it mmLol

#

idk if it would actually do anything though

shy rose
#

fyi thats gonna break if someone runs that in dm

#

be a fatal for calling .tag on null

amber fractal
#

I return on dm channels

ember atlas
#

Command can be dmd anyways

earnest phoenix
shy rose
#

custom css

earnest phoenix
#

I need code

shy rose
earnest phoenix
#

Not found for that fonts bro

shy rose
#

aint giving a solution if thats what you want

#

style is how you get custom colours/fonts

earnest phoenix
#

But how i define those fonts

shy rose
earnest phoenix
#

Its not helpful

shy rose
#

this changes the font type
which is on that page or directly linked

earnest phoenix
#

Dude its not

shy rose
earnest phoenix
#

No

shy rose
earnest phoenix
#

How define you those font with p

shy rose
#

not here to spoon feed you code

#

p is the css selector

#

applies to the p tag

earnest phoenix
#

But how p select those font only

shy rose
#

the vote buttons probably have an id that you could use as the selector

earnest phoenix
#

It mean i need to add new fonts over the those old font ?

#

I not write those font throw my html/css then how can define them ?

shy rose
earnest phoenix
#

Ok ok thanks I'll try it wait

#

@shy rose can i get cods from other bots with inspect elements ?

#

Yea its good now i can get with inspect elements

earnest phoenix
#

i define money = int
but when I add 10 to money (money += 10), I get an error. TypeError: unsupported operand type(s) for +=: 'type' and 'int'

#

what should i do

slender thistle
#

money initially is just an int class

earnest phoenix
#

How would I go about checking the above messages recursively until a condition is met?

#

Can I do it without fetching a given number of messages beforehand and not spam the api ?

earnest phoenix
#

Essa

earnest phoenix
#

how much is a:
• day in timestamps
• week in timestamps
• month in timestamps
i'm developing a bot that has global timestamps that save and when it reaches the timestamps, it does a purge on servers that invited the bot in and set it up

#

what

unique nimbus
#

You mean a day in seconds?

#

Idk

earnest phoenix
#

is that like asking how many pages a book has

#

pretty much

#

there's no context whatsoever behind this question

#

which language? what kind of a timestamp? unix? in seconds? in milliseconds?

#

would you guys be mad if i asked for critique on some non discord related c code?

#

this is a development channel, you can ask anything dev related

#

oof looks bad in chat lemme post in pastebin

#

no pls

#

why are those preferred ?

#

dark mode ? xD

#

dark mode by default, there are no ads or anything else obscuring your view for the text and better syntax highlight

#

aware uses do-while

#

and the "question mark" operator

#

the function is find the greatest common denominator of 2 positive numbers

#

the question mark is for ternary operations there

#

it's short for if else

#

yeah

#

it's partially for the sake of using it and shorten the vertical length of the code

#

is it cancer that it uses both if else, ternary operations, do while and while xD?

#

anyway, i was looking for tips to shorten the code and maybe making it more readable ?

#

like, i'm not sure what ppl experienced in c would think about styling do-while like this

earnest phoenix
#

How can I make it so JS can accept anything coming after a specific string ?

#

This isn't something usable with Boolean, so .includes() won't help

#
msg => !msg.author.bot && msg.content.trim().toLowerCase() === following.toLowerCase() + //literally anything following my "following" variable.
#

startsWith?

#

starsWith() is Boolean

grizzled jackal
#

RegEx maybe?

earnest phoenix
#

RegEx 👀

#

Hmm let me try

#

What are you specifically trying to do

#

Like get a parameter value from a cmd ?

#

following is a letter, and I made a collector to collect each word starting with that letter, but it doesn't work since the collector doesn't understand what "anything following the letter" means

#

Deff regex then

#

Hmm

#
following.toLowerCase() + idk xD
#

If the structure is consistent you could probably also just trim off the letter aka "following"

#

following.trim() ?

#

Still a bit confused

grizzled jackal
#

is following a constant letter? I mean, it doesnt change?

sudden geyser
#

Yakumo I think they want to check the first letter of the item in the list.

You could use startsWith as it does return a boolean. I don't understand what you mean by the extra stuff like following.trim() // the purpose.

wheat jolt
#

Does .fetchInvites() really fetchs all invites?

#

(d.js)

earnest phoenix
#

what do the docs say

#

I'm looking for a command to dm someone with a discord.js bot. How can I do that?

harsh nova
#
let user = await client.users.get("<id>");
user.send("message")
earnest phoenix
#

hm

#

Well

#

I can't explain what I mean in english

#

But it's not something like that

#

I want a command that looks like a mute command

#

$dm @user [dm]

harsh nova
#

split into args, extract user mention as user obj. use user.send(whatever comes after mention)

earnest phoenix
#

k

unreal junco
#
    at item.request.gen.end (/Users/511172/Desktop/BOT/node_modules/discord.js/src/client/rest/RequestHandlers/Sequential.js:85:15)
    at then (/Users/511172/Desktop/BOT/node_modules/snekfetch/src/index.js:215:21)
    at process.internalTickCallback (internal/process/next_tick.js:77:7)
(node:27750) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:27750) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

#

code:

late hill
#

code for promptMessage?

unreal junco
#

the error has to be with emojis

#

prompMessage works

#

since it works on other commands

#
promptMessage: async function(message, author, time, validReactions) {
    time *= 1000;

    for (const reaction of validReactions) await message.react(reaction)

    const filter = (reaction, user) => validReactions.includes(reaction.emoji.name) && user.id ===  author.id;

    return message
        .awaitReactions(filter, { max: 1, time: time})
        .then(collected => collected.first() && collected.first().emoji.name);
    }```
late hill
#

The error is that code

#

✂️

#

is the unknown emoji

#

that you can't add as reaction

earnest phoenix
#

rekt

late hill
#

the error is thrown by that piece of code running*

unreal junco
#

how to fix?

late hill
#

By using an emoji that it does know

#

would be ✂

unreal junco
#

✂️

#

earnest phoenix
#

^

#

oop

#

unreal junco
#

ok

earnest phoenix
#

\✂

#

What is status code 522 on request failed?

#
#

what

#

well ok then

opaque eagle
#

For the dirtiest company ever, Google has a rather simple description

#

Search the world's information, including webpages, images, videos and more.
Google has many special features to help you find exactly what you're looking for.

earnest phoenix
#

does messages not have a "edited" property that returns either true or false ?

#

in d.js

sudden geyser
#

I mean, editedAt could tell you

earnest phoenix
#

what value does it return if a message has not been edited ?

mossy vine
#

it wont exist

#

thats why it has a ? before it

#

if you try to use it, it will be undefined

earnest phoenix
#

i just want some sort of property i can use in an if statement to check if a msg has been edited

#

if(message.edited)

mossy vine
#

so you want to know if the message has been edited or not?

earnest phoenix
#

yep

mossy vine
#

if(message.editedAt) should work

earnest phoenix
#

i guess js just interpret undefined as false ?

mossy vine
#

iirc

sudden geyser
#

yes, it's like doing if (!!message.editedAt)

#

inverts then inverts for if (true or false)

earnest phoenix
#

aight works

#

I managed to do it finally

grizzled jackal
#

Oh?

earnest phoenix
#

Using following.toLowerCase() + message.channel.lastMessage.content.toLowerCase()

#

And then adding a fancy touch to prevent nuisances

#
message.channel.lastMessage.content.replace(/\s/g, '').slice(1).toLowerCase()
#

thanks for code :D?

#

As you can see, first of all I remove spaces (trim() didn't work) and finally slice the first letter so it gets replaced with following

#

@earnest phoenix np lol

#

:D xd

#

hmm, when using fetchMessages with limit = n, is possible to start from a message that is not the last ?

#

there should be a from param

#

ah good to know

#

this

#

fun fact

#

I only use from with Array.from() 👀

#

if you set the after property to 0 you can get first messages inside of the text channel

#

Yeah bcs JS starts counting from 0

#

no

#

😭

#

because 0 is not a valid snowflake so it jumps to the first valid message snowflake in the channel

#

Ahh

#

this has nothing to do with arrays

#

It's like slice(-1), -1 is not a valid snowflake so it fetches the last char in a string

#

Interesting, not sure what scenario that would be useful for xD

#

So, I am thinking about using it recursively by checking if the above msg was edited

#

If above msg was edited check again.

#

Would that be api spam? If there are like 10 edited messages in a row

#

why

#

just listen for the event

tulip tundra
#

how do i check if the bot is connected to the same channel as the user who used the play command

earnest phoenix
#

The thing is I have to compare current msg with above msg for the main feature

#

samsung so what should I tell you about

#

So the bot servers in a channel which only allows specific type of message relating to the previous msg

#

So if I type

#

"0"

#

Next msg must be "1"

#

The problem arise if someone edits their before validated msg

#

Into "99999999"

#

so listen to the messageUpdate event

#

Do you suggest just deleting the msg if it is edited?

#

it's your design, do whatever

#

Because ppl are allowed to write any text after a valid msg

#

i don't know how you envisioned for it to work in your head, that's why

#

i'm just telling you that you should listen to the event rather than spamming requests for it

#

plus listening to the event would be realtime

#

I understand

#

But I think I would still need to compare with above msg and getting above msg by fetching it

#

Like in this case

#

0

#

1

#

2 edit

#

3

#

So the event listener would point me to msg that was just edited

#

And I would still need to fetch above message to compare with the edited msg to check if it's still valid,

#

it would still be more optimal

#

But in hindsight yeah

#

one request per one certain edit rather than 50+ requests to not even be sure if the message was edited

heavy marsh
#

I need a help on a command Discord.js
My command soo far : ```js
client.on('messageUpdate', (oldMessage, newMessage) => {

let embed = new Discord.RichEmbed();
embed.setAuthor(oldMessage.author.tag, oldMessage.author.avatarURL);
embed.setDescription(`**Message edited in #${oldMessage.channel.name} [Jump to Message](https://discordapp.com/channels/631538895166636054/${oldMessage.channel.id}/${oldMessage.id})**`);
embed.addField("Before Editing", oldMessage.content);
embed.addField("After Editing", newMessage.content);
embed.setTimestamp();
embed.setFooter(`ID: ${oldMessage.author.id}`);

oldMessage.guild.channels.get(632565093024137246).send(embed);
});

**I** want to to check if it has more than 500 words display the 500 words then do **...**
earnest phoenix
#

if what has

#

Do you want to split a text into two messages ?

heavy marsh
#

oldMessage.content newMessage.content

#

both

earnest phoenix
#

Because there is a parameter that does that automatically

#

what you're thinking of zerp is something different

#

Oh this is an embed

#

check both of theirs length property, if it's bigger than 500 (per each), take the first 500 characters out of the strings (contents) and apply ... to it

heavy marsh
#

ahhh how can i take the first 500 out 👀

earnest phoenix
#

use substring

heavy marsh
#

.substr(500)

#
client.on('messageUpdate', (oldMessage, newMessage) => {
   
   if(oldMessage.length > 500){
       
    let embed = new Discord.RichEmbed();
    embed.setAuthor(oldMessage.author.tag, oldMessage.author.avatarURL);
    embed.setDescription(`**Message edited in #${oldMessage.channel.name} [Jump to Message](https://discordapp.com/channels/631538895166636054/${oldMessage.channel.id}/${oldMessage.id})**`);
    embed.addField("Before Editing", oldMessage.content.substr(500) + `**...**`);
    embed.addField("After Editing", newMessage.content.substr(500) + `**...**`);
    embed.setTimestamp();
    embed.setFooter(`ID: ${oldMessage.author.id}`);
    
oldMessage.guild.channels.get(`632565093024137246`).send(embed);
       
   }
    
    let embed = new Discord.RichEmbed();
    embed.setAuthor(oldMessage.author.tag, oldMessage.author.avatarURL);
    embed.setDescription(`**Message edited in #${oldMessage.channel.name} [Jump to Message](https://discordapp.com/channels/631538895166636054/${oldMessage.channel.id}/${oldMessage.id})**`);
    embed.addField("Before Editing", oldMessage.content);
    embed.addField("After Editing", newMessage.content);
    embed.setTimestamp();
    embed.setFooter(`ID: ${oldMessage.author.id}`);
    
oldMessage.guild.channels.get(`632565093024137246`).send(embed);
});
earnest phoenix
#

why

#

use a ternary operation for the necessary part and avoid so much allocation

#

oldmsg = content.length > 500 ? (content.substring(0, 500) + "...") : content

#

same thing for new

#

except using new message's properties

heavy marsh
#

ooh ok thanks

earnest phoenix
#

Thx

indigo geyser
#

@heavy marsh idk js, but I think you can simple do oldMessage.jump_url or something

earnest phoenix
#

jump url ?

slender thistle
#

js is camelCase, python is snake_case

indigo geyser
#

Bruh

slender thistle
#

And it's just <Message>.url

indigo geyser
#

Ok

heavy marsh
#

really

#

👀

earnest phoenix
#

how do i delete a message in a "messageupdate" event ?

#

there is both oldMessage and newMessage

#

does deleting one of them delete the entire msg

#

do i have to delete both ?

#

is there a third option ?

toxic ledge
#

How do I advertise?

rugged bramble
#

Does anyone know how i get the user mentioned in java? Example: !rep @someone

loud salmon
#

@rugged bramble what library

rugged bramble
#

JDA

loud salmon
#

you would get the message object, and then there is a function to get a list of mentioned users or mentioned members

rugged bramble
#

like how?

loud salmon
rugged bramble
loud salmon
#

no

#

get the message

#

not the textchannel

rugged bramble
#

like this?

loud salmon
#

yes

rugged bramble
#

ok i go test

#

nothing?

loud salmon
#

nothing because you arent getting members from a specific guild

earnest phoenix
#

Hey! If i got an json, how can i find the place of the ID 4325352?

[
{ ID: '1132123141', data: 3070 },
{ ID: '4325352', data: 50 },
{ ID: '7546542', data: 10 },
{ ID: '34534552', data: 8830 }
]
harsh nova
#

.filter

sudden geyser
#

or find

harsh nova
#

oh yeah that would probobly be better

earnest phoenix
#
exports.run = async (client, message, args) => {
let prefix = ayarlar.prefix
let channel = message.mentions.channels.first() || message.channel

const mongoose = require("mongoose")
mongoose.connect(link, {useNewUrlParser: true});
 
  const kayitK = mongoose.Schema({
  id: message.guild.id,
  kanal : channel.id
})

 
  if(args[0]==="kapat"){
    kayitK.delete()
       message.channel.send(`${client.emoji.evet} Kayıt kanalı başarıyla sıfırlandı!`)
  }else{
 kayitK.findAndUpdate(
   { id: message.guild.id
   
   }, 
   {
     id: message.guild.id,
     kanal:channel.id
   
   })

    message.channel.send("kaydetti herhalda")
  };
  
  
   
 
}
#

help

amber fractal
#

k

#

would be nice if you actually asked a question

mossy vine
#

oh god are you connecting on every command use

loud salmon
#

dbl moreinfo

covert turtleBOT
#

If you want people to be able to assist you, please provide more information, such as what library and language you're using, the code in question and what you are trying to do and/or what is causing the error.

west spoke
#

Oh my god

#

reconnecting every message

earnest phoenix
unique nimbus
#

Have you looked at the error

#

UnhandledPromiseRejectionWarning

#

DeprecationWarning

earnest phoenix
#

Yehh

west spoke
#

promise ()

#

depreciation is fine

#

Though you will want to find a better way to do it

#

Oh

#

Not in js

#

depreciation in java is fine, but not js apparently

hushed berry
#

Deprecation and depreciation are two different things

earnest phoenix
#

Why

quartz kindle
#

the problem is that whatever you have before ".first()" is undefined

grim aspen
#

probably user

grizzled jackal
#

@earnest phoenix it's users not user

tulip tundra
#

how do i get the size of categories

quartz kindle
#

filter channels by parent

tulip tundra
#

like message.guild.channels.filter(c => c.type === 'category'); ?

quartz kindle
#

that will give you a list of categories

#

to get a list of channels that belong to a specific category, you have to filter if the channel's parent matches a specific category

#

you can combine both to get a list of categories and their sizes

halcyon nymph
#

discord.py

Does anyone know how to make it so that people using an incorrect command doesn’t spit out an error while still keeping pythons usual error handling?

cobalt umbra
#

what's the difference @halcyon nymph

#

you want to ignore the error and at the same time have one?

halcyon nymph
#

If someone does !<unknown command> it spits out an error, o don’t know how to stop it from doing that without doing magic in on_command_error which stops all errors in python

cobalt umbra
#

it doesn't stop them it deals with all of them. And yes you need to use on_command_error

halcyon nymph
#

Cool, how?

quartz kindle
#

if you're using a command handler, then its a shitty one

cobalt umbra
#

just add this in it

 if isinstance(error, commands.CommandNotFound):
  return
halcyon nymph
#

Okay thanks

slender thistle
#

Uhh

#

@halcyon nymph are you also making sure other errors aren't ignored

halcyon nymph
#

Yeah

west spoke
#

@halcyon nymph except discord.errors.(not command): pass

slender thistle
#

Not entirely sure where that could be done

west spoke
#

I did it for mine

#

at the top of it: the try, and at the bottom: pass

halcyon nymph
#

Ooooo, indenting my entire code by one line doesn’t feel like the right solution

#

Maybe something more practical

west spoke
#

only way I know of

open flicker
#

ovh hosting good?

amber fractal
#

I haven't had any problems with them over the 10 months I've used them

ornate latch
#

@vague kiteshut the f up

#

BANN ME PLZ

#

I ASK U TO

#

PPZ

#

Plzz ban me

#

Plz

#

I beg u

#

For real

#

Ban me

#

Plzzzzz

grizzled jackal
#

Well then 🤔

ornate latch
#

Plz

#

Plzz

grizzled jackal
#

I mean..if you're so eager just tag a mod I guess?

ornate latch
#

Im trying to get banned by doing something bad

west spoke
#

@modern sable

modern sable
vague kite
sudden geyser
#

r/therewasanattempt

ornate latch
#

@sudden geyser bruh

sudden geyser
#

hi

sinful lotus
knotty steeple
#

self promot

#

ban

sinful lotus
vague kite
#

Will check it out thx 💕

true basin
#

Anyone know how to implement auto-moderation into a bot?

I'm running into complications. For example, for detecting a message after message at high speed... the bot will thus have to keep track of when a message was posted and then keep track of the speed with which the newer messages come. For every user. Then it will have to analyse the list of speeds to figure out which user is sending them too fast. It needs to periodically clean that list it keeps for each user as it would run out of memory fast, so it needs to figure when it's best to clean each list.
That's a lot of work, both for me and the bot. And that's just one system, every other system is also different.

sudden geyser
#

for sending messages too quickly, you can have something like a list/collection, have a timeout, and check to see if they send X messages under the time

true basin
#

What about duplicate messages?

#

Duplicate images, emotes, etc

cobalt umbra
#

that's the point of doing this system no?

true basin
#

Auto-moderation

cobalt umbra
#

one of

true basin
#

It's to prevent message spam, duplicate messages/images/emotes and people joining servers to advertise. As well as a local toggle feature for swearing/vulgar behaviour.

#

As well as spam mentioning

sick cloud
#

auto mod is a tough thing to do

#

it's pretty extensive

sinful lotus
#

yee

#

js isnt cut for it

loud salmon
gilded plankBOT
#

🤐 Muted RecoveringHours#3117 (@ornate latch)

true basin
#

I'm currently working in Python 3.7.3

#

If anyone has done it before I'd love some advice

cobalt umbra
#

a custom bucket maybe Thonk
that's what I see someone doing that would say but I've never done it

true basin
#

Why isn’t JS cut for it @sinful lotus?

steady forge
sinful lotus
#

@true basin Javascript is single thread, block it and your app is dead

earnest phoenix
#

@steady forge its should be but try

send({embed: embed})
steady forge
#

I try thaks

earnest phoenix
#

👍

steady forge
#

The same error continues :c

But, It only happens with tenor images, with gyphy images it works correctly

earnest phoenix
#

and remove embed from embed.setColor() or embed.setImage() @steady forge

#

Use

const embed = new Discord.RichEmbed()
.setColor("your color")
.setImage("your image")
msg.channel.send({embed: embed})
#

@steady forge

#

It will be work 100%

steady forge
#

:c

The same error, the image does not load.

I think the problem is the URL that Tenor gives

earnest phoenix
#

Is your url work directly

steady forge
#

I think

earnest phoenix
#

Its not playing automatically

#

Thats the problem

#

Try another gif

#

See this 👆 its playing automatically

steady forge
#

All Tenor images are like this D:

earnest phoenix
#

Idk about that but try another gif

steady forge
earnest phoenix
#

It should be send gif with another style

steady forge
#

How can I send an image that is not an embed or normal message?

All the gifs generated by the Tenor Api do not load

earnest phoenix
#

@steady forge you are trying direct link

#

You are not using api request

#

Read there docs and check how to request

steady forge
#

If I use the api, to generate the images.

But the TEST are to prove that url works.

earnest phoenix
#

@steady forge if your direct url playing automatically then your embed will play auto too

steady forge
#

The url of MEDIA I think it is direct although it is getting complicated to invoke it

earnest phoenix
#

@steady forge you know html ?

steady forge
#

A little

#

I know a little bit of HTML

earnest phoenix
#

dm

mossy vine
#

is the GUILD_CREATE event only fired on the shard that joins the guild or all shards?

hushed berry
#

@mossy vine only on the shard the guild is designated to

mossy vine
#

aight thanks

hushed berry
#

also, GUILD_CREATE events are also fired when guilds become available, just fyi

#

which means that you receive a GUILD_CREATE event for each existing server the shard is on on startup

west spoke
#

That's interesting

mossy vine
#

i assume d.js handles that as it says guildCreate is emitted when the client joins a guild

slender thistle
#

Can't be sure about that since DBL had outages here and there and most js devs (I would assume) come complaining their bot left this server

#

Should check the source code for that tbh

covert tartan
true basin
#

Is there a way for a bot to detect a new user and auto-kick them?

#

Concerning recently created accounts.

slender thistle
#

Depends how you want to "detect" those

earnest phoenix
#

Users have a account create property I believe with date created

#

You could just compare that to current time with something like momentjs

unreal junco
#

@true basin Auttaja does that

royal herald
#

guys why discord-js-commando do errors

twilit rapids
#

We need more information than that

#

What is the error?

#

What is it supposed to do?

royal herald
#

i cant npm

twilit rapids
#

Try npm i discord.js-commando

royal herald
#

ok

#

thx

twilit rapids
true basin
#

@unreal junco - auttaja?

unreal junco
#

ye

#

search it

true basin
#

It's a project that was updated 9 months ago

#

Doesn't really tell me how they accomplish it

heavy marsh
#

Command for discord.js - to remove server invites

client.on('message', message => {

let regex = new RegExp('/discord(?:app.com/invite|.gg(?:/invite)?)/([\w-]{2,255})/i');    

    let embed = new Discord.RichEmbed();
    embed.setAuthor(message .user.tag, message .user.avatarURL);
    embed.setDescription(`**Message deleted from <@${message .user.id}>**\n${message.content}`);
    embed.addField("Reason", `Invite link`);
    embed.setColor(`#FFFFFF`);
    embed.setTimestamp();
    embed.setFooter(`ID: ${message .user.id}`);
    
if(regex.test(message.content)) {  
      message.delete().then(
    message.guild.channels.get("631584749613482022").send(embed))
}

return

  })

NO errors but does check and delete

twilit rapids
#

@coral trellis zoomeyes

coral trellis
#

This is development mr Timo

twilit rapids
#

oh fu-

#

I thought I clicked off-topic lmfao

earnest phoenix
#

ok

#

@heavy marsh Try change message.user.id to message.author.id

heavy marsh
#
client.on('message', async message => {

let regex = new RegExp('/discord(?:app.com/invite|.gg(?:/invite)?)/([\w-]{2,255})/i');    

    let embed = new Discord.RichEmbed();
    embed.setAuthor(message.author.tag, message.author.avatarURL);
    embed.setDescription(`**Message deleted from <@${message.author.id}>**\n${message.content}`);
    embed.addField("Reason", `Invite link`);
    embed.setColor(`#FFFFFF`);
    embed.setTimestamp();
    embed.setFooter(`ID: ${message.author.id}`);
    
if(regex.test(message.content)) {  
      message.delete().then(
    message.guild.channels.get("631584749613482022").send(embed))
}
  })
#

^^^ NO errors but does check and delete

earnest phoenix
#

what is the problem then

heavy marsh
#

it dont delete server invites

#

doesnt*

earnest phoenix
#

does the regex test pass

#

^

heavy marsh
quartz kindle
heavy marsh
#
(https?:\/\/)?(www\.)?(discord\.(gg|io|me|li)|discordapp\.com\/invite)\/.+[a-z]
#

if i use this

quartz kindle
#

yes that one works

bitter sundial
#

why does it have to be a regex

earnest phoenix
#

+1

heavy marsh
#

what else to use then ...

bitter sundial
#

you could like

#

or anything else

#

do you really need to validate it like that with a regex

heavy marsh
#

isnt regex successful?

bitter sundial
#

it is successful

late hill
#

You should move the embed code inside the if

#

You're creating an embed on every message now

heavy marsh
#

oks

#
message.content.length > 500 ? (message.content.substr(0, 500) + ` **...**`) : message.content
#

it is correct if i do this?

quartz kindle
#

yes

quiet inlet
#

Nie

open flicker
twilit rapids
#

message.guild.guild.prefix = prefix

#

if(prefix === message.guild.guild.prefix) return message.channel.send(Префикс не может быть таким же как и стандартный.)

green kestrel
#

hmm

#

ok, it seems my bot wont function in real world use without guild_subscriptions=false

#

the minute it was joined to here for testing, a 75000 user server kills it

#

it takes so long to process the incoming userlist it misses a heartbeat

quartz kindle
#

during the initial login?

timber wedge
#

Is it against the rules to allow a bot to add reactions to a message that mentions the bot?

#

does that constitute as a "prefixed" command?

quartz kindle
#

i dont think its against the rules, since it is a response to mentioning the bot

#

a bot mention can count and be used as a prefix

timber wedge
#

wurd, thanks!

quartz kindle
#

and its more specific than responding to some random word people might use in conversations

timber wedge
#

right, exactly

jaunty stump
#

I need help again.

https://hastebin.com/jucovoyuto.coffeescript

I don't know what is wrong now. My token is correct and is perfectly fine straight from the dev portal. and I have the right info for my database and stuff.

still new to all of this with SQL/Databases

quartz kindle
#

where did you take the token from? which page?

jaunty stump
#

my applications/Bot

quartz kindle
#

what version of discord.js are you on?

jaunty stump
#

the newest version

#

it should be the newest version

quartz kindle
#

can you give me the version number?

#

should be in your package.json

jaunty stump
#

11.5.1

#

and i found that my token keeps changing even though I am not regenerating a new one.

sudden geyser
#

do you know the reason/have you checked your email

jaunty stump
#

why would I need to check my email?

sudden geyser
#

if it's automatically resetting, discord should send you an email saying why

#

like if it was on github

jaunty stump
#

I don't and have never gotten an email like that. not even in my spam folders

quartz kindle
#

the token itself doesnt regenerate, its just the timestamp that does

#

unless you're banned, of course

#

if you want, dm me your token, and i'll test it here

#

you can regen it afterwards

jaunty stump
#

ok

quartz kindle
#

your token works

#

you are doing something wrong with the login

mild escarp
#

can someone tell me how to make an uptime command?
discord.js

earnest phoenix
#

uhm

#

The onliest thing i can say is

#

client.uptime

grizzled jackal
#

Aye client.uptime is the number of milliseconds since the last time your client entered the Ready state, so with that you can convert it to minutes/hours/days, etc

green kestrel
#

@quartz kindle yes during the initial login

#

it seems that changing to guild_subscriptions=false fixes that, but broke the ability to dm because the cache wasnt populated

#

so ive had to rejig wether or not it considers people cached when it tries to message them

#

its one extra api call per "help" command, but thats no biggie

quartz kindle
#

which library are you using again?

#

a perl library?

jaunty stump
#

ok, while Tim is busy helping others and being a great person.
I now need to find out what I am doing wrong with my Sql stuff

https://hastebin.com/uyifunayal.cs
a friend of mine wanted me to make this bot I am making now. and they wanted marriages.. so I am trying to set up a database for some code I found on git hub because I know nothing about marriages. I am using heliohost.org for my hosting and they have a mysql database thing there I am using too.

quartz kindle
#

does heliohost even offer a vps or node.js? i didnt see anything about it in there

jaunty stump
#

they have MySQL databases and hosting so I would assume so as I have seen bots work with it from looking around on GitHub

#

if not then any recommendations?

quartz kindle
#

so your bot is not actually hosted there, only the database?

jaunty stump
#

I am going to make a new database and password
Yes. I host the bot myself

quartz kindle
#

do they allow external connections? if they do, maybe you need to configure something to allow it

#

afaik, external connections are blocked by default

jaunty stump
#

I don't know. I just made the stuff and started using heliohost.org yesterday

quartz kindle
#

i checked some of their forum posts

jaunty stump
quartz kindle
#

should be