#development

1 messages ยท Page 726 of 1

west raptor
#

People aren't born with the ability to program

#

There are hundreds of people being introduced to the field everyday

lapis merlin
#

:)

grizzled frigate
#

Yoyoyo

#

Like

#

Where to start

west raptor
#

You should start by learning python

#

Many great courses online

grizzled frigate
#

Yes

#

But

#

Will it take long?

#

Are you using js or python?

west raptor
#

Depends on how quick you learn

#

Python is a hard start but easy to master

#

While js is the opposite

warm marsh
#

Does anyone know why I get an error like: Failed loading opus. Is opus installed? Ruby | Ubuntu 18.04

frozen cedar
#
    if(target.binds === null) {
        target.binds = ""
        
    }
        let data = JSON.stringify(target);

        fs.writeFileSync(`./guilds/${message.guild.id}.json`, data)```
#

For some reason if it removes the last thig in target.binds it will leave target.binds as null

#

that is a no no

#

how can i fix

warm marsh
#

Is target.binds an object? Or array?

frozen cedar
#

array

warm marsh
#

Okay.

#

Js allows the use of Object define property.

#

Might fix that.

frozen cedar
#

??

warm marsh
#
let test = Object.defineProperty({}, "binds", {
value: [],
writable: false
});
#

Means the property binds cant be overridden.

#

Will always be an array.

frozen cedar
#
    
                
    delete target.binds[i];
let test = target.defineProperty({}, "binds", {
value: [],
writable: false
});
        let data = JSON.stringify(target);

        fs.writeFileSync(`./guilds/${message.guild.id}.json`, data)
        
        
}```
#

So it would look like that?

warm marsh
#

No.

#

Where you define target.

frozen cedar
#
    let target = JSON.parse(rawdata);
        var i = 0;

        target.binds.forEach(function(element) {
if(element.bindID == drole.content) {
    
                
    delete target.binds[i];
    if(target.binds === null) {
        target.binds = " "
        
    }
        let data = JSON.stringify(target);

        fs.writeFileSync(`./guilds/${message.guild.id}.json`, data)
        
        
}
i = i + 1```
#

So what part of that?--

#

Sorry, Ive just never heard of this

warm marsh
#

Binds is passed from a string.

frozen cedar
#
        const fs = require('fs');
    let rawdata = fs.readFileSync(`./guilds/${message.guild.id}.json`);
    let target = JSON.parse(rawdata);
        var i = 0;

        target.binds.forEach(function(element) {
if(element.bindID == drole.content) {
    
                
    delete target.binds[i];
    if(target.binds === null) {
        target.binds = " "
        
    }
        let data = JSON.stringify(target);

        fs.writeFileSync(`./guilds/${message.guild.id}.json`, data)
        
        
}
i = i + 1
warm marsh
#

I don't want to spoon feed but your top line. You could use const binds = { binds } = JSON.parse... and then create an object with Object.define...

#

Whoops.

#

Made a mistake. I hate mobile.

#

const { binds } = JSON.parse(rawdata)

#

Then create an object with that data.

earnest phoenix
#

is it possible to create a text database? I want each of my users to be able to create their own profile text or something haha

sql.prepare("CREATE TABLE scores (id TEXT PRIMARY KEY, user TEXT, guild TEXT, points INTEGER, profile TEXT);").run();

warm marsh
#

Yes it is possible.

earnest phoenix
#

is it text or am i missing something? pandasad

#

Ohh

warm marsh
#

Text or any other string type

#

Just be careful of what is typed.

earnest phoenix
#

Thankyou!! ๐Ÿ’ž ๐Ÿ‘

warm marsh
#

โœŒ

frozen cedar
#

yeah, somehash, i have no clue what you mean

#

you just gave me some code, with no explanation of what it is actually doing

warm marsh
#

Its creating or editing an object and adding a property that can be set so it cant be overridden.

#

I'll get some info.

frozen cedar
#

You dont understand, it needs to be able to be overridden

#

the point is so that an object can be deleted from it

warm marsh
#

it needs to change data type?

#

Or will always be an array

frozen cedar
#

I just dont want the nulled part when it is overwritten

warm marsh
#

From what I saw your only deleting the data within the array not the array itself.

#

You're *

frozen cedar
#

Exactly.

#

I only want to delete a specified data thing

#

but when it does tha

#

t

#

it leaves behind null

warm marsh
#

Yes so using object define property it will delete the data but not the array.

frozen cedar
#

i dont want to delete all the data

#

sigh

warm marsh
#

...

frozen cedar
#

i only want to delete one object in the array

west raptor
#

@warm marsh opus is probably a ruby library of some sort

frozen cedar
#

thats the WHOLE point of this

warm marsh
#

I had a look but found nothing.

west raptor
#

I've never used ruby so I'm not sure

warm marsh
#

Yeah no worries. Will continue scraping the web.

frozen cedar
#

That doesn't accomplish anything I'm trying to do.

#

I got it, nodejs delete leaves empty space in arrays

#

nodejs splice doesnt

#

so uh

#

please dont link irrelevant information next time

warm marsh
#

Next time use the console or explain better.

#

Also splice is part of vanilla js not nodejs.

frozen cedar
#

You should've asked for clarification in the future, I think I made it clear that me using delete left a null object behind and that I didn't want that

#

Console wouldn't help at all with that issue as no code errors were made

swift jungle
#

Console will always help.

earnest phoenix
#

hoi i may look dumb but i just wanna ask how do i add score.points a certain values?
score.points++; this add 1 to member points

and i have tried score.points + 23; to add 23 points but it didnt work

swift jungle
#

score.points += 23;

earnest phoenix
#

That worked, thank you!!

#

๐Ÿ’ž

swift jungle
#

โœŒ

sick cloud
#

anybody know a suitable replacement for fs.statSync that accepts file buffers?

surreal sage
#

@weary lark Great music bot! Perfect sound, Sometimes lag but its ๐Ÿ‘Œ

weary lark
#

Thank you! @surreal sage yeah it lags cause self hosting atm

surreal sage
#

Same

weary lark
#

will be getting a host at 100 servers

surreal sage
weary lark
#

cause theres no need to do it early

surreal sage
#

Yep

#

We have bad internet to

weary lark
#

ye we both do

surreal sage
#

i host on laptop connected to our wifi

#

BAD wifi

#

max 4 mbps

#

lol

solemn harness
#

same here

surreal sage
#

My friend be like = 100+

#

But we get it sure last year

weary lark
#

damn

#

our internets getting downgraded

#

too much traffic over here

surreal sage
#

Rip..

weary lark
#

and they wanna make more money

valid frigate
#

k you know what

surreal sage
#

What provider? We use solcon

valid frigate
#

self hosting is honestly better than some vps providers

solemn harness
#

yes

surreal sage
#

Yep

weary lark
#

yeah

solemn harness
#

alot better

surreal sage
#

Like a old laptop is good

weary lark
#

i use optus

surreal sage
#

You dont want to pay anything

weary lark
#

i mean you still gotta pay for power

#

and internet

#

but thats it

#

really

surreal sage
#

ye lol

valid frigate
#

lol

#

i put my faith into big vps providers

#

off brand vps are cringe

surreal sage
#

How long does it take to remove the undefined of servers?

valid frigate
#

you never posted your sever count

surreal sage
#

oh lol

#

How do i?

earnest phoenix
#

lol

surreal sage
#

no like

#

i cant find on the site too

valid frigate
#

???

surreal sage
valid frigate
#

you should ask this in #topgg-api since that's how you get help with interacting with dbl's api

surreal sage
#

k

valid frigate
#

dbl's api

#

yeah

surreal sage
#

bro

#

im confused

mossy vine
#

blockquotes. put a > before it

surreal sage
#

a>

#

a<>

#

a<> hi

#

<> hi

#

a`` hi

#

`` hi

#

. hi

#

hi

#

gotchu

#

hi

#

hi

weary lark
#

egg
woah

mossy vine
#

okay stop spamming smh

surreal sage
#

Egg Pie
Stfu

weary lark
#

ye stop spamming lol

surreal sage
#

ok?

weary lark
#

but at least you're figuring it out

surreal sage
#

yep

#
k```
#
test sry```
valid frigate
#

have you ever heard of test servers

surreal sage
#

yes

valid frigate
#

???

surreal sage
#

nvm

earnest phoenix
#

๐Ÿฝ

earnest phoenix
#
    var newprofile =  message.content.split(" ")[1];
    
    client.setProfile.run(newprofile);
  }```
I make a command that allow user to edit their profile to a new one but i got an error `RangeError: Too many parameter values were provided`
#

๐Ÿ˜ข

#

you can set args limit

#

!?

#

why data.botName is undefined

#

.

tawny panther
#

does anyone know a way to add a say command for a discord.py bot

modest maple
#

what

#

await message.content.send("message")

#

is that what u mean?

sinful pawn
#

e

wheat jolt
#

I can use both d.js and eris at the same time on a single bot no?

tawny panther
#

a say command it is meant to repeat what a user says and deletes the command usage
like this !say <example text>

modest maple
#

that would just be looking for the command

#

then if you have the message content an a list

#

printing the list without the command

tawny panther
#

i am new to coding so an example command line would help me a lot

#

i have looked it up and the code examples do not work or just are not clear on how to put it into a command

radiant jay
modest maple
#

async def on_message(message):
    Split_Message = message.content.split(" ", 1) # splits the command away from the main text
    Split_Message[0] = Split_Message[0].upper()
    if Split_Message[0] == "!SAY":
        await message.channel.send(f"{Split_Message[1]}")```
#

@tawny panther theres ur example code

#

@radiant jay can the bot actually speak (Perms), and can it actually find and process the song given.

radiant jay
#

yea

#

worked when i had the music system built from scratch

modest maple
#

hmmm

#

its rlly hard to find out cuz its not giving u an error

#

get the print statements out xD

radiant jay
#

uh yea

#

stuff is flowing correctly

#

it just doesnt play music

earnest phoenix
#

are you sure you have lavalink running

#

it doesn't play music

#

lavalink does

#
dbl.webhook.on('vote', vote => {
webhookname.send(`User with ID ${vote.user} just voted!`);
});``` where i get the webhook id and webhook token
#

from the webhook url

#

its a url

#

where i get token or id

#

from the url

radiant jay
#

@earnest phoenix yep it is and its reciving connections

earnest phoenix
#

i am getting error that dbl is not define

radiant jay
inner sapphire
#

REEEEEEEEEEEEEEE

earnest phoenix
#

check if there is a newer build of lavalink

weary lark
#

^

inner sapphire
#

TIMO

#

REEEEEEEEEEEEEE

#

@twilit rapids GET YOUR ASS IN HERE

twilit rapids
#

can we not taz

inner sapphire
#

sorry.

#

but your the only person ik that knows lavalink

earnest phoenix
#
   ^
ReferenceError: dbl is not defined
``` geting this error
inner sapphire
#

one second

quartz kindle
#

@earnest phoenix dbl is not defined

#

duh

inner sapphire
#

const dbl = require("dbl.js")

#

i think

glacial mango
#

Anyone knows why gifs won't load in my embed messages?

inner sapphire
#

@earnest phoenix const DBL = require("dblapi.js");

radiant jay
#

@earnest phoenix thanks.

twilit rapids
#

@glacial mango what is the size of the gif? Anything larger than 50MB will not embed

inner sapphire
#

wait

#

wouldnt it bee 100?

twilit rapids
#

No

inner sapphire
#

since its in here

twilit rapids
#

You can still upload more than 50MB, but videos or audio files will not embed above 50MB

inner sapphire
#

ahh

glacial mango
#

I don't know what the size is, I get random gif from giphy

inner sapphire
#

right click it

#

save it

#

right clic

#

properties wil tell u

earnest phoenix
#
               ^
TypeError: Cannot read property 'on' of undefined```
inner sapphire
#

um

earnest phoenix
#

error

glacial mango
#

gif is 5 mb

quartz kindle
#

@earnest phoenix show your full code, that doesnt tell us anything

glacial mango
#

oh I know why it's not loading

earnest phoenix
#
   dbl.webhook.on('vote', vote => {
webhookname.send(`User with ID ${vote.user} just voted!`);
});```
glacial mango
#

I get a url like this: https://giphy.com/gifs/FILAUSA-RdI59AGZu52equuB3g
but to load it im embed I need it as this: https://media.giphy.com/media/RdI59AGZu52equuB3g/giphy.gif

#

How do I get that other url?

inner sapphire
#

?

quartz kindle
#

@earnest phoenix thats not your full code

inner sapphire
glacial mango
#

I know

#

sec

#

I use this js const Discord = require("discord.js") const giphyRandom = require("giphy-random"); (async () => { const { data } = await giphyRandom('zUcGF9UPtUjIDjTkAk0Oy9ahUqVIEjXO'); const result = data.url const title = data.title const Embed= new Discord.RichEmbed() .setColor('#c111d9') .setTitle(title) .setURL(result) .setImage(result) msg.channel.send(Embed) })();

earnest phoenix
#

i just copy the code from appi and paste with my token and id@quartz kindle

glacial mango
#

the data.url = https://giphy.com/gifs/FILAUSA-RdI59AGZu52equuB3g

#

not the url you sent

quartz kindle
#

@earnest phoenix you are defining dbl wrong

#

show all the code

inner sapphire
#

no he isnt

#

@earnest phoenix npm install dblapi.js

#

install that

quartz kindle
#

he is defining it wrong, because dbl.webhook is undefined

glacial mango
#

Tazhys can you help me?

quartz kindle
#

meaning his dbl is wrong

inner sapphire
#

i gave him the code from the api docs

#

unless he didnt use it

quartz kindle
#

or used it wrong

inner sapphire
#

@glacial mango what ya need

glacial mango
#

But it gives the wrong url to use it in embed

#

How do I get the right url?

earnest phoenix
#

here it is

inner sapphire
#

idk anythung about gifphy

#

idfk

quartz kindle
earnest phoenix
#

yall need to learn how to read docs

#
const dbl = new DBL(yourDBLTokenHere, { webhookPort: 5000, webhookAuth: 'password' });
dbl.webhook.on('ready', hook => {
  console.log(`Webhook running at http://${hook.hostname}:${hook.port}${hook.path}`);
});
dbl.webhook.on('vote', vote => {
  console.log(vote);
});``` what i put in password
quartz kindle
#

whatever you want

#

you create a password

#

and then you put this password in your bot's edit page in the website

tawny panther
#

i need a bit of help?

#

with a say command

#

here is the code i have for it

#

@ bot.command('say')
async def ping(ctx):
print(ctx.author)
async def on_message(message):
Split_Message = message.content.split(" ", 1) # splits the command away from the main text
Split_Message[0] = Split_Message[0].upper()
if Split_Message[0] == "a.say":
await message.channel.send(f"{Split_Message[1]}")

slender thistle
#

"Make it all uppercase but compare to all lowercase"

#

Do you see conflicts there

tawny panther
#

could you please specify

slender thistle
#

What do you think Split_message[0] is

tawny panther
#

noob at coding i am

slender thistle
#

So learn basics...

tawny panther
#

Trying to

slender thistle
#

... by creating a Discord bot?

tawny panther
#

sigh can you help me

slender thistle
#

I gave you a logical solution

#

What do you think 'test'.upper() will return

tawny panther
#

@ bot.command('SAY')
async def ping(ctx):
print(ctx.author)
async def on_message(message):
Split_Message = message.content.split(" ", 1) # splits the command away from the main text
Split_Message[0] = Split_Message[0].upper()
if Split_Message[0] == "A.SAY":
await message.channel.send(f"{Split_Message[1]}")

#

i updated it

slender thistle
#

Test it

tawny panther
#

k

#

Nope still did not work

slender thistle
#

Are you using the bot.event deco on on_message

tawny panther
#

what do you mean?

slender thistle
#

Ya'll devs need to learn basics before getting to complex shit...

#

Do you know what a decorator is

#

And why are you not using the commands extension for your say command

modest maple
#

bruh when i gave you example code i didnt mean copy it and expect it to instantly work

slender thistle
#

Giving example code nowadays equals to the "dev" expecting to be spoonfed all the time

modest maple
#

yup smh

slender thistle
#

and while spoonfeed is discouraged, idk how else we are supposed to explain complex things when they haven't bothered doing the basics

modest maple
#

yh

#

like .upper()

#

is pretty freaking simple

tawny panther
#

hey i am trying to learn

modest maple
#

we're just saying

#

dont jump into complex things

slender thistle
#

Python basics, not a lib

modest maple
#

when you dont know the basics

tawny panther
#

it not my fault that the guides online can't be freaking clear

slender thistle
#

It's not our fault either

quartz kindle
#

because the guides are made for people who already know the basics

tawny panther
#

all of my knowlage i had to learn by looking at the code

modest maple
#

like for example:

do you know what a subrutine is

what a class is

what inheritance means

how async modules work

what the basics like .upper() .lower() work

how lists and dicts work

hows var types work

tawny panther
#

i look up basic variable and get barely anything on it making it harder for me to learn those variables

modest maple
#

you only need to go into the shell and have a play around

slender thistle
#

Don't look things up on the go

earnest phoenix
#

you won't learn to multiply just by looking at the results, you have to understand how it works

same analogy applies here

modest maple
#

I started doing discord bots after i knew how Classes, subrutines, dicts all the basics worked

#

and even then when i first started it took me some time to understand what was going on

#

but i didnt expect to be spoon fed everything

#

cuz thats not a good way to learn

tawny panther
#

i keep the code at hand now i know which varible will do what once i see it run
for example i looked once at a basic response command and knew which variable triggered the command which one was reply

earnest phoenix
#

@quartz kindle where I put the password in the website

#

Note book

#

:200iq:

#

brain

#

Where in website

slender thistle
#

Your bot's Edit page, very bottom

cerulean salmon
mossy vine
#

if it isnt mentioned of course there isnt gonna be mentions (resulting in undefined)

cerulean salmon
#

how to handle this error ?

trim saddle
#

@vital lark

async def refresh_token(self):
        auth = base64.b64encode(f'cool_id:cool_secret'.encode())
        headers = {'Authorization': f'Basic {auth.decode()}',
                   'Content-Type': "application/x-www-form-urlencoded"}
        while True:
            async with aiohttp.ClientSession().post('https://accounts.spotify.com/api/token', headers=headers,
                                             data='grant_type=client_credentials') as resp:
                value = await resp.json()
                with open('config.json', 'r') as g:
                    gg = json.load(g)
                
                gg["access"] = value["access_token"]
                with open('config.json', 'w') as json_file:
                    json.dump(gg, json_file)
            
            await asyncio.sleep(3600)
lapis merlin
#

hmm

vital lark
#

@trim saddle I'll see if I can translate in dms

trim saddle
#

alright

slender thistle
#

@trim saddle I suggest you open the file once in w+ mode

trim saddle
#

theres no issure with this code

#

i just needed augu to translate it to js

modest maple
#

thats not rlly a simple process

#

java works in a diffrent way to Python

slender thistle
#

I am giving SUGGESTIONS

modest maple
#

i agree with shiv

#

you rlly should do w+

#

if the file gets deleted it automattically makes one

trim saddle
#

i'm never using this code again

cerulean salmon
wheat jolt
#

can I use both d.js and eris at the same time on a single bot account?

mossy vine
#

yes, you can run 2 instances under 1 account

#

not sure why you would want to run d.js and eris

wheat jolt
#

eris doesn't have await reaction function

mossy vine
#

you can make your own

#

very easily

wheat jolt
#

or events for messageReactionAdd

mossy vine
#

literally called messageReactionAdd

earnest phoenix
slender thistle
#

Anything you want

earnest phoenix
#

which password

slender thistle
#

You create a password

earnest phoenix
#

then the bot will send the upvotes message

slender thistle
#

If password in code and password on the bot's Edit page match up, yes

earnest phoenix
#

where i put that password in the bot edit page

slender thistle
#

Do we have to point with arrows exactly where it is

#

The bottom of your bot's Edit page

earnest phoenix
#

lol

slender thistle
#

At this rate we will need to teach people how to breath by 2021

earnest phoenix
#

lmao

#

fr

modest maple
#

yup

earnest phoenix
#

๐Ÿ˜ณ

slender thistle
#

I'll let you Google what "authorization" means

earnest phoenix
#

ok

#

pls use the human mind before you ask a question

#

:/

merry sparrow
#

does any of u know how to disable ffmpeg opening console prompt using pm2/forever whenever u play a song

earnest phoenix
#

where should i put the webhook password

slender thistle
#

Do you know what "URL" stands for?

earnest phoenix
#

lmao

#

Unreal Real Link

slender thistle
#

I'd rather we keep bs away from this channel

earnest phoenix
#

@earnest phoenix

slender thistle
#

If you are not willing to help, keep your comments to yourself

earnest phoenix
#

yeah i guess..

#

ok imma head out then

#

so i need to put in Authorization

slender thistle
#

Yes

earnest phoenix
#

the webhook password

#

ohk thanks a lot

vital cobalt
#

do i violate discord tos if i log some messages to a website

slender thistle
#

If without consent, yes

earnest phoenix
#

the webhook password is just a way of confirming that DBL is the one which made the request

vital cobalt
#

if they are bot commands?

slender thistle
#

Depends ig

#

You should request for the user's permission either way

#

If your bot states that the command usage will show the message content on a website, you should be good

vital cobalt
#

ok ill just add something like that to the help embed footer

earnest phoenix
#

i have done

#

now how i know that its working or not

#

the vote

slender thistle
#

Vote

#

or iirc dblapi.js has test event too

earnest phoenix
#

where

slender thistle
#

Nvm, the vote event has type attribute

earnest phoenix
#

What library do you guys use to create bots?

vital cobalt
#

djs, discord.js

earnest phoenix
#

thanks, I'll check it out. I've been using kUtils but it's actually bad

vital cobalt
#

2.4 End User Data. ...message content, message metadata, voice data and voice metadata.
what does "message metadata" mean in this context?

earnest phoenix
#

author

#

text channel

#

etc

vital cobalt
#

ok

earnest phoenix
#

I can't use iframes in my bot's description until it's approved can I? :/

#

@slender thistle but how it will send the message of upvotes

#

its not sending the message of upvotes

earnest phoenix
#

someone help

earnest phoenix
#

:/ no one is their

sage bobcat
#

One message removed from a suspended account.

sudden geyser
#

How are you checking it

earnest phoenix
#

include both <@> and <@!>

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

earnest phoenix
#

bot is not sending upvotes message

#

plzz help

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

earnest phoenix
#

js

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

no error

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

no

modern elm
#

yes it is smh

earnest phoenix
#

its on github

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

its for test

#

and i have hosted in vps

modern elm
#

yes, its in glitch lmao

earnest phoenix
#

its on;y test code

#

i copt paste to my repo

#

then

modern elm
#

ik, im just wondering why you would lie abt something like that

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
modern elm
#

do you need to call the webhook

#

or is it just dbl.on

sudden geyser
#

why does it matter it's glitch

modern elm
#

facts

sudden geyser
#

Not the biggest thing to worry about

earnest phoenix
#

i want like that

#

someone vote then it should send the message

late hill
#

The code you've sent

#

Just logs it to console

#

So like

#

?

earnest phoenix
#

so now what i do

late hill
#

Does that work

#

Do you see those logs in console

modern elm
#
// const DBL = require('dblapi.js');
// const dbl = new DBL(bot.config.DBLTOKEN, { webhookServer: server, webhookAuth: '' }, bot);

//dbl.webhook.on(`ready`, hook => {
 // console.log(`Webhook is up and running at http://${hook.hostname}:${hook.port}${hook.path}`);
//});
//dbl.webhook.on(`vote`, vote => {
 //   var VotedUser = vote.user;
 //   console.log(`User with ID ${vote.user} just voted!`);
 //   try{
 //     bot.users.get(VotedUser).send("Thanks for voting!");
 //     bot.users.get(bot.config.ownerID).send(`${VotedUser} just voted for ${bot.username}`);
 //   }
 //   catch(error){
 //     console.log('Uh oh! ' + error);
//    }
//});
earnest phoenix
#

no its not send the message

modern elm
#

that will work

late hill
#

why did you post that as comments

earnest phoenix
#

what should i change in this

modern elm
#

what should i change in this ๐Ÿคฆ

#

step 1

#

uncomment all the code

#

step 2

#

change the fucking message

#

jesus

earnest phoenix
#

where i put the webhook link

modern elm
#

do you know how to program in javascript?

earnest phoenix
#

yes

#

wait its shows webhookServer: server undefine

#

what should i put in server

quartz kindle
#

dont put anything there

#

that setting is only if you already have an http server running

#

so the module will use the existing server instead of creating a new one

#

just remove that setting, and dbl will create an http server

copper wraith
#

Ubuntu 18.04

earnest phoenix
#

@quartz kindle so how the bot will send the upvotes message in the specific channel

#

??

#

@copper wraith do you want to host your bot there or

copper wraith
#

Yes

earnest phoenix
#

publish your app

#

do not copy files over and debug on the vps

copper wraith
#

then do what

earnest phoenix
solar wraith
#

of for crying out loud

#

why do i keep getting booted from the servers

#

;-;

#

error 401

slender thistle
#

What servers

solar wraith
#

the api servers

slender thistle
#

401 means invalid token/no token provided usually

solar wraith
#

yes

#

and i copied the token several times now

#

and regenerated the token several times too

slender thistle
#

special_think Are you working with top.gg API

solar wraith
#

no?

#

wait

#

what do you mean

slender thistle
#

What API are you trying to access rn

solar wraith
#

first lines in the log:

18:38:40 Discord     A supplied token was invalid.:```
#

(C#)

earnest phoenix
#

are you putting the token in GetEnvironmentVariable

#

Someone plzz help me in upvotes code

solar wraith
#
                Environment.GetEnvironmentVariable("classified"));
            await _client.StartAsync();```
#

yes

#

brb

earnest phoenix
#

GetEnvironmentVariable looks for an environment variable with the name you pass it

slender thistle
#

@earnest phoenix on vote, get channel, send message to it

earnest phoenix
#

the docs example says that the token is stored in an environment variable

#
// const dbl = new DBL(bot.config.DBLTOKEN, { webhookServer: server, webhookAuth: '' }, bot);

//dbl.webhook.on(`ready`, hook => {
 // console.log(`Webhook is up and running at http://${hook.hostname}:${hook.port}${hook.path}`);
//});
//dbl.webhook.on(`vote`, vote => {
 //   var VotedUser = vote.user;
 //   console.log(`User with ID ${vote.user} just voted!`);
 //   try{
 //     bot.users.get(VotedUser).send("Thanks for voting!");
 //     bot.users.get(bot.config.ownerID).send(`${VotedUser} just voted for ${bot.username}`);
 //   }
 //   catch(error){
 //     console.log('Uh oh! ' + error);
//    }
//});
#

This is the code

#

But where the bot will send upvotes message in the specific channel

#

How???

slender thistle
#

You are making your bot send a message to the user who votes for your bot

earnest phoenix
#

How do you defined server?

#

you seem to be misunderstanding how webhooks work

#

webhooks are requests to your own http server

#

you can do whatever with the data you get from them

quartz kindle
#

i already told him to remove server but he copied the code from someone else lol

undone rose
#

Thank you for manning this channel when nobody else will @quartz kindle i hereby award you best dev. Thank u for ur service

earnest phoenix
#

@quartz kindle what I put their then

loud salmon
#

I'm still pushing for a way to recognize you tim ;n; not all hope is lost

glacial cliff
#

On peut parler franรงais ici ?

lavish shuttle
#

9:44 AM] Fusion Gaming: But where the bot will send upvotes message in the specific channel
[9:44 AM] Fusion Gaming: How???

#

The code should be self explanatory

#

If you knew JS, you would know where to put it

earnest phoenix
#

:/ means

#

how is that mean

#

that's just telling the truth lol

quartz kindle
#

lmao spider

#

<3

#

@earnest phoenix remove this webhookServer: server

#

and why is your code all commented out?

earnest phoenix
#

I need help my sever listing is not working.

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

earnest phoenix
#

Can someone hekp me?

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

earnest phoenix
#

English

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

loud salmon
#

@sage bobcat he's asking about adding his server to our serverlist

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

@quartz kindle ohk I have removed

#

I am getting the 500 code if i try to save it.

sage bobcat
#

One message removed from a suspended account.

loud salmon
#

Here's how I know.

  1. Whitename, so not bot dev.
  2. He is asking in an unfamiliar channel.
  3. He said "server listing" not "server list command"
earnest phoenix
#

500 means server side issue, isn't your fault

modest maple
#

@earnest phoenix how old r u?

loud salmon
#

children

earnest phoenix
#

try reloading the page, might be a CSRF mismatch

loud salmon
#

bad agebaiting

modest maple
#

i was just going off cuz he looked fairly young on his YT

loud salmon
#

@earnest phoenix its not, shards die on dsl due to reasons and that translates to error 500 codes that eventually get resolved

earnest phoenix
#

๐Ÿคท

#

bad infrastructure

#

dbl's website is messy

loud salmon
#

w e w

earnest phoenix
#

So can it be fixed?

#

you'll have to wait it out (and possibly have a mental breakdown to waste time)

modest maple
#

tru that

earnest phoenix
#

shoot

#

What should I put I have removed the webhookServer: Server

quartz kindle
#

you should learn js

modern elm
#

^

thin quartz
#

So this was my first time submitting a bot. It was declined bc the description was filled with "spam junk" ..not really helpful for correcting it. What should the description be filled with? I was under the impression it was for the commands?

modest maple
#

no its the detailed description of your bot

#

so what it does

#

how it works

#

why its diffrent to all the others

#

examples of commands

#

customising the page

#

etc...

thin quartz
#

I could have sworn I wrote that. But a section on the submission i did copy and paste the command bc that's what i thought it was asking for.

#

Thank you for the direction @modest maple u rock.

modest maple
#

np

earnest phoenix
#

Hey, I bought an Raspberry PI 2 days ago.
I set up all my bots there, but I wanted to create an website too...
So, I installed all of the packages (apache2, etc..) but:
My Raspberry Public IP (starting on 185.x) is not responding - and all things on localhost are going on!

modest maple
#

Have you port forwarded?

earnest phoenix
#

No, how to do it? @modest maple

modest maple
#

search up how to port forward using <Insert your router here>

earnest phoenix
#

Ok

solar wraith
#

@earnest phoenix what do you mean?

#

with an enviorment

solar wraith
#

so i name that token?

#

that in there?

sage bobcat
#

One message removed from a suspended account.

solar wraith
#

yes

sage bobcat
#

One message removed from a suspended account.

solar wraith
#

C# is something i do understand

#

its about the functions

earnest phoenix
solar wraith
#

i know what functions it has and i can recreate from there

earnest phoenix
#

GetEnvironmentalVariable looks for an environmental variable with the name you specified

#

you put your token as the env name

stray wasp
#

Is it me or did you just open all your ports?

modest maple
#

some routers do that by defualt

earnest phoenix
#

which would mean you would have to have an environmental variable with the name as your token and the value as your token

#

the docs do it with environmental variables because it's safer

solar wraith
#

@earnest phoenix ports and hosting is my fortรฉ need help?

earnest phoenix
#

however if you don't want to use them

#

remove the environment part

solar wraith
#

no this is just testing

#

:3

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

solar wraith
#

just me messing around

#

seeing wether i can do it

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

solar wraith
#

HOSTING!

#

i

sage bobcat
#

One message removed from a suspended account.

solar wraith
#

am

#

a system administrator

modest maple
#

i am root

solar wraith
#

something with hosting, ports, networks is my skill

earnest phoenix
#

@solar wraith what do you mean?

slim heart
#

no

sage bobcat
#

One message removed from a suspended account.

solar wraith
#

ah did you supply your external IP?

slim heart
sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

Yes

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

solar wraith
#

...

#

could you not like

#

insult me for ONE BLOODY FRICKING SECOND

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

slim heart
#

@solar wraith please don't try and help if you don't understand the information or circumstances on what's going on. Kinda chat filling at this point while this guy is trying to get help

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

slim heart
#

and everyone here rn fuckoff u too dv

undone rose
#

@solar wraith can you help me perhaps?

solar wraith
#

sure

#

what ya need

undone rose
#

I have an iDrac system with Ubuntu installed which I access via a virtual console inside iDRAC/SSH, and the dedi boots into PXE. Im just not sure exactly how to reinstall Ubuntu on the machine. Trying to get rid of my current install and start fresh with a new Ubuntu

#

I dont see any options within IDRAC 6 enterprise that I can use to re/uninstall the OS

solar wraith
#

does it have a CDrom drive?

#

other wise you will have to create a bootable USB drive

undone rose
#

Probably the server is in a datacenter nowhere near me

#

I use IDRAC to remote into the machine

#

I had a bunch of options for OS choice when i first booted it

solar wraith
#

you cant

#

if you had the server near you you could reinstall

undone rose
#

What about PXE?

#

Would i be able to do anything from there?

solar wraith
#

PXE is network boot

#

unless your inside that network you cant

#

or know where they have stored their immages

undone rose
#

But I remote into it during that boot so id have access to the machine as it boots

solar wraith
#

you would be best served asking for their help

undone rose
#

Ah

solar wraith
#

yes but i have no idea how to help you

undone rose
#

Yeah not sure where their images are

solar wraith
#

yes

#

excpected as much

undone rose
#

Ah well i guess ill contact one of their admins

#

Ty

solar wraith
#

give em a call or an email

undone rose
#

But PXE is where id reinstall right?

#

Or is there something in the virtual console inside idrac where id do it

modest maple
#

you should be able todo it via virtual console

undone rose
#

Sorry im server admin illiterate

modest maple
#

providing its enabled

solar wraith
#

yes

undone rose
#

Ty

slim heart
#

eric doesnt actually know what he's on about lmao

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

solar wraith
#

thats it

modest maple
#

Either Virtual console

#

or PXE would work

#

PXE by defualt

slim heart
#

dont act like you understand something, if you're just gonna google it

loud salmon
#

erm

#

how about we stay positive here

undone rose
#

I'll go ahead and pxe it, thank ya

loud salmon
#

and if you have any issues with members not being clear on their intentions

sage bobcat
#

One message removed from a suspended account.

loud salmon
#

then you dm me

#

instead of just mocking them openly

slim heart
#

he gave incorrect info

sage bobcat
#

One message removed from a suspended account.

loud salmon
#

pls dm me with your concerns so that i can deal with it in a calm and directed manner

#

instead of just talking about it here

solar wraith
#

@earnest phoenix its still not accepting my token

earnest phoenix
#

what is your code

solar wraith
#

probably botched it

#
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Discord;
using Discord.Commands;
using Discord.WebSocket;
using Microsoft.Extensions.Configuration;

namespace tanki_online_alpha
{
    public class Tanki_Online_Alpha
    {
        string value;
        bool toDelete = false;
        
        value = Environment.GetEnvironmentVariable("token"));
      // If necessary, create it.
      if (value == null) 
      {
         Environment.SetEnvironmentVariable("token", "(had my token here)"));
         toDelete = true;
         
         // Now retrieve it.
         value = Environment.GetEnvironmentVariable("token"));

        Console.WriteLine($"token: {value}\n");

        public static void Main(string[] args)
            => new Tanki_Online_Alpha().MainAsync().GetAwaiter().GetResult();
        
           
        private DiscordSocketClient _client;
        
        public async Task MainAsync()
        {
            _client = new DiscordSocketClient();

            _client.Log += Log;
            Task Log(LogMessage msg)
            {
                Console.WriteLine(msg.ToString());
                return Task.CompletedTask;
            }

            // Remember to keep token private or to read it from an 
            // external source! In this case, we are reading the token 
            // from an environment variable. If you do not know how to set-up
            // environment variables, you may find more information on the 
            // Internet or by using other methods such as reading from 
            // a configuration.
            await _client.LoginAsync(TokenType.Bot,
                Environment.GetEnvironmentVariable("token"));
            await _client.StartAsync();

            // Block this task until the program is closed.
            await Task.Delay(-1);

          
        }
    }
}```
earnest phoenix
#

and is there an env variable named token

sage bobcat
#

One message removed from a suspended account.

loud salmon
#

oi

#

dv

#

not needed right now.

earnest phoenix
#

you are annoying at this point, @sage bobcat

solar wraith
#

env variable no i dont think so

#

hold up

earnest phoenix
#

well

solar wraith
#

what syntaxis do i need for that?

earnest phoenix
#

what

#

do you even know what you're talking about

solar wraith
#

kinda

earnest phoenix
#

you are on the right track but you expect your code to read an environment variable that doesn't exist

#

to see how to set one google your os and append "set env var" to it

solar wraith
#

ah

#

i see

#

so i need to declare the environment variable and supply that with the token

earnest phoenix
#

correct

solar wraith
#

see when you take a programming language you know a sister of (in this case C++) it becomes much MUCH more easier :3

quartz kindle
#

why dont you just hardcode it lol

solar wraith
#

cuz hardcode is gรฆ

quartz kindle
#

you're basically hardcoding it anyway

#

just doing the long way about it

earnest phoenix
#

not really

quartz kindle
#

setting and getting it via env variables from the same code

earnest phoenix
#

you can update env vars anytime

#

c# is compiled

quartz kindle
#

hes setting it and getting it right after

earnest phoenix
#

just saw that

#

lol

quartz kindle
#

lol

earnest phoenix
#

mobile scrolling dum

solar wraith
#

no i deleted that part

#

its g\รฆ

quartz kindle
#

ah ok lel

#

did it work that way tho?

solar wraith
#

oh face palms

#

thats what you mean with set env variable

earnest phoenix
#

the whole point of using env vars is so you don't actually put your token directly into the code

solar wraith
#

ahh

#

so i declare the token

#

in my system settings ๐Ÿ˜‚

earnest phoenix
#

Can someone send me kick command for bot

quartz kindle
#

yeah, you put it in your system's environment variables

loud salmon
#

we dont spoonfeed here @earnest phoenix

solar wraith
#

xD

earnest phoenix
#

Where them?

solar wraith
#

i feel stupid

loud salmon
#

not here lol

mossy vine
#

@earnest phoenix not here

earnest phoenix
#

K

solar wraith
#

this is where the line between sysadmin and dev fade i geuss

quartz kindle
#

@earnest phoenix if you want codes, go to stackoverflow lol

solar wraith
#

i knew it was a thing though

earnest phoenix
#

Is that server?

quartz kindle
#

no, its a website

earnest phoenix
#

Oh k

solar wraith
#

ffs

#

i still get the boot @earnest phoenix

#

or i did something wrong XD

quartz kindle
#

how about you do some debugging? like print all your system's environment variables to see if your token even exists there

earnest phoenix
#

i suggest Console.WriteLine or debug with breakpoints to see if it's actually set

trim saddle
#

@fervent oyster yo cutie

quartz kindle
#

^

solar wraith
#

ah i see what you mean

fervent oyster
#

what

trim saddle
#

i think i've hit a snag

fervent oyster
#

oh?

solar wraith
#

before i start breaking my head over shit

#

this is correct right?

mossy vine
#

nice token leak

fervent oyster
#

LMFAO

mossy vine
#

go reset

solar wraith
#

feck

#

yeas

quartz kindle
#

lmao

solar wraith
#

xD

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

solar wraith
trim saddle
#
const artists = []
            for (const artist in track.artist) {
                artists.push(artist.name)
            }

            em = {
                color: bot.color, 
                author: {name: track.name, icon_url: bot.img}, 
                description: `โ—ฝ Album: ${track.album.name}\nโ—ฝ Artist(s): FILLER`,
                thumbnail: {url: track.album.images[0].url}
            }

i think the issue is around the array part @fervent oyster

#

ok discord

solar wraith
#

@earnest phoenix was that token set up correct?

trim saddle
#

just indent how you feel

earnest phoenix
#

yes but reset it and update it @solar wraith

fervent oyster
#

@trim saddle dont use const, it prevents the array from changing, use let

#

the array is basically read only now

#

with const

zealous veldt
#

#development etiquette

  1. If you know something, and someone asks a question about that thing, don't shit on them for asking. Either help them or stay quiet. If you don't have anything nice or helpful to say, keep quiet.
  2. This channel exists to help people. If you're not feeling helpful, your not wanted in this channel.
  3. Keep in mind that we started as beginners once, so be nice. Helping people helps us all. The more knowledgable the development community as a whole is, the more we all benefit.
  4. Don't say random, un-helpful, unrelated jargon to try to make yourself sound smart, if anything it makes you look dumber.
  5. If you can't answer someones question, don't try to extrapolate your knowledge from something else, you'll most likely confuse everyone involved.
  6. Don't ask to ask (eg. "can I ask a question"), this channel exists for questions, you don't need permission to ask one.
  7. Keep inside jokes in responses to a minimum, they're likely to confuse the person asking for help.
  8. No language/library wars, it makes everyone involved look like a dick.
trim saddle
#

did moose just write rules for one channel

quartz kindle
#

you're*

undone rose
#

Rules were needed

solar wraith
#

@earnest phoenix waaaay ahead of you

#

xD

#

its null

#

:c

#

its not reading it ;-;

earnest phoenix
#

restart the process/os

solar wraith
#

restart sys?

#

le

#

*lel

earnest phoenix
#

try to

trim saddle
#

wow i'm stupid

#

i also made another issue

solar wraith
#

execute command shutdown /r /f /t 0

earnest phoenix
#

sometimes it needs a restart to apply the change

solar wraith
#

:3

#

alright

#

brb

trim saddle
#

track.artist was undefined

#

i was supposed to be using track.artists

quartz kindle
#

you can also use array.map() to turn that for loop into a one liner

solar wraith
#

nice

#

it read the key

#

then i got the boot

#

great

#

at least that works

quartz kindle
#

one step at a time

#

thats how coding is done

solar wraith
#

coding <-> setting up a server

earnest phoenix
solar wraith
#

xD

#

@earnest phoenix same here

#

aaahhhhh

#

@quartz kindle was using the spilled token

#

so there we go

earnest phoenix
#

You're stuck on the same problem ?

solar wraith
#

yes

#

but you shouldnt acces the gateway like that

#

you should supply it with a token

quartz kindle
#

are you trying to use the rest api or the gateway websocket?

earnest phoenix
#

rest api to get the socket endpoint

quartz kindle
#

without a library?

solar wraith
#

bad idea

earnest phoenix
solar wraith
#

krrgg huston we have lift off

#

xD

quartz kindle
#

there are many libraries that handle that part for you, are you trying to make your own library?

earnest phoenix
#

I'm trying to use this as a learning exercise

#

I tried setting my bot token like an OAuth athorization header but that doesn't seem to work

solar wraith
earnest phoenix
#

How'd you set the bot token?

solar wraith
#

enviorment table

modest maple
earnest phoenix
#

oauth token type is Bearer

solar wraith
#

hehehe

#

i mean

earnest phoenix
#

bot token type is Bot

solar wraith
#

what ya gonan do with it?

#

i mean ekore sure thats my user profile XD

earnest phoenix
#

@earnest phoenix THANK YOU

solar wraith
#

and now what

earnest phoenix
#

that's what was wrong :p

solar wraith
#

:D

#

now that we have something that is conciderd a launch

earnest phoenix
#

not yet, this only give me back the websocket I need to open :p

solar wraith
#

now we gonna add a simple ping pong command

#

:3

#

wait

#

can i also get the bots name?

earnest phoenix
#

Maybe I should write my own library

#

you will most likely need to go to a therapist appointment while doing that

solar wraith
#

that made me laugh

earnest phoenix
#

lol, I believe it - going through all the documentation

#

discords api is so inconsistent and constantly changes

solar wraith
#

alright cry is there a way to have my bot name extracted from the api and printed to the console?

#

just yes or no

earnest phoenix
#

yes

solar wraith
#

yeet

#

nice

earnest phoenix
#

you don't even have to make a request to the api

solar wraith
#

hmmmm MegaThonk

#

facinating

earnest phoenix
#

its returned through the gateway after logging in

solar wraith
#

ah

earnest phoenix
#

so its cached in the client property

solar wraith
#

so console.print("bot name")

#

xD

#

this is stupid ๐Ÿ˜‚

bitter sundial
#

@fervent oyster @trim saddle const doesn't make an array unchangeable

it's true you can't rewrite it like artists = 'I'm something else' but artists.push() still works

valid frigate
#

const means you can't overwrite the value itself, eg a new array

fervent oyster
#

i never knew that

valid frigate
#

but you can stil modify the array lmao

late hill
#

same thing for object properties basically

trim saddle
#

hmm.

solar wraith
#

Dangit

#

i cant get it to call a different C# file

#

cuz i like code to be easy to look at

#

so general commands go into a file general.CS but how do i call this back to main?

polar pier
#

Tell it to import it / grab it

#

Like you would python with import

#

Can't remember what C# is

#

Thing CPP is include xyz

solar wraith
#

yeah

#

i know

#

i know C++

#

i will look into it tommorow

#

other wise i will stare my self blind at it

earnest phoenix
#

Hey, I bought an Raspberry PI 2 days ago.
I set up all my bots there, but I wanted to create an website too...
So, I installed all of the packages (apache2, etc..) but:
My Raspberry Public IP (starting on 185.x) is not responding - and all things on localhost are going on!

solar wraith
#

I tried my best ;-;

#

But i cant help fully without being there irl

trim saddle
#
let artists = []
for (const artist in track.artists) {
    artists.push(artist.name)
 }

this still doesn't work

blissful scaffold
#

because you are changing artist it cant be a const

trim saddle
#

wait wha

blissful scaffold
#

every time you loop you overwrite the value for artist

trim saddle
#

ohhhhhhhhhhh.

blissful scaffold
#

use let artist in ...

#

the artists array can be a const

#
const artists = []
for (let artist in track.artists) {
    artists.push(artist.name)
 }
trim saddle
#

wait

#

i think i realized the issue

#

artist returns a list index

#

i.e 0, 1, 2

sudden geyser
#

Wait, what? What do you mean by "because you are changing artist it can't be a const"?

blissful scaffold
#

when you use a const you are not allowed to overwrite it

#

you are allowed to change what is inside a const list/object

sudden geyser
#

Yeah, but what are they overriding in the loop?

blissful scaffold
#

the value of artist changes each time the loop loops

sudden geyser
#

Yes, but I don't think that's their issue

#

I think they're looking for of and not in

blissful scaffold
#

oh, looks like i was wrong, the examples im looking at now are using const there

amber fractal
#

Wouldnt matter how you defined it really... It works with let and var too, just when it's const the value is, what do you know, constant

frozen cedar
#

@quartz kindle do u have Bitcoin

quartz kindle
#

a bit

earnest phoenix
#

coin

sage bobcat
#

One message removed from a suspended account.

lavish shuttle
sudden geyser
#

Do you have the es import stuff enabled

#

It's a flag I believe

lavish shuttle
#

I don't think so

#

That explains

vital lark
#

@lavish shuttle You need to append a flag to use ES5 features

lavish shuttle
#

Which flag?

vital lark
#

add type to your package.json: json { "type": "module" } and run with node --experimental-modules app.js

lavish shuttle
#

Will try

earnest phoenix
#

    profile = client.getProfile.get(message.author.id); //Get the profile SQL db

    let rest_of_the_string = message.content.slice("~newprofile".length);//removes the first part

    profile.profile = rest_of_the_string; //set the new profile
    client.setProfile.run(profile);
    message.channel.send(`Your new profile is ${profile.profile}`);
   }```
This is my command that enable user to edit their current profile, is there any way I can set a limit to how many characters counts is in their profile?
lavish shuttle
#

Use the substr function

sudden geyser
#

Danish, check the length of a string if you want to check beforehand

solar wraith
#

Is it possible to store commands in a seperate C# file and call them into a main file?

#

just need Y/N

mossy vine
#

y

unkempt palm
#

weird thing, I use require('node-schedule') then I set a task like schedule.scheduleJob(`* */8 * * *`, function() and it ran every minute

#

testing now with schedule.scheduleJob(`* 0,8,16 * * *`, function() but still idk if is the right way, anyone could help? need to set it to run every 8 hours

compact oriole
#

I think node-cron is better for that

#

Its more reliable

slender mountain
#

let j = schedule.scheduleJob({hour: 8, minute: 0}, function() {

unkempt palm
#

thanks guys

compact oriole
#

just wanna ask, how much time does it take to approve my bot? thanks ๐Ÿ˜„

earnest phoenix
#

as much as it needs

compact oriole
#

yea yea

#

but just some estimate