#development

1 messages ¡ Page 633 of 1

sinful lotus
#

I dont see a ping command in /ping

#

also you dont need to upload node-modules

frosty juniper
#

its in mainpage

#

its ok , its a temp rep , ima delete it later anyways

sinful lotus
#

cant tell, I dont see you are making an embed in ping command

frosty juniper
#

its sending a blank embed for all commands

sinful lotus
#

well I cant tell the root code, but probably due to the code being unorganized to a big degree

#

and something is getting executed even it shoudnt due to more than 4(?) message events

#

and mixed timeouts, mixed promises with hard to read indent

#

I would start from reorganizing and refactoring the code to one client.on message only

#

dont forget to indent properly

frosty juniper
#

okay , ill give it a go

#

thanks

split lantern
#

@frosty juniper Get a linter

frosty juniper
#

its okay , i found the bug .

#

the anime search command was returning an empty embed

agile vine
frosty juniper
#

had the same issue once @earnest phoenix , removing node modules completely and installing it again fixed it for me

pallid zinc
#

Just copy address of folder

#

And past

#

Cd address here

earnest phoenix
#

ty

earnest phoenix
#

Btw Alex, you should have your token in a json file

{
"token": "your token here"
}

then in your main file:
const token = require('../your destination')

and instead use
client.login(token.token);

pale ether
#

Anyone here ever used the Wikidot API with c#? If so, was there a library available? Can't seem to find one 😐 (the API uses Xml-RPC)

vestal lake
#

Anyone know if the C# tweetinvi library has resolved the null exception error yet?

pale marsh
#

Did you try checking their github page or the release notes?

vestal lake
#

yeah but there's so much submissions there

#

just thought I'd ask here to see if anyone knows before I start combing all of that only to realize it's not fixed haha

worthy gulch
#

Does anyone know expected waiting time for verification here?

slender thistle
#

As the queue is currently full, it might take more than a week

worthy gulch
#

Ah yeah, because it's been, that was I was wondering

#

Thanks for that information, I'll wait ! 😃

slender thistle
cursive dagger
#

You will go throu soon

#

Its about 10d waiting time rn

worthy gulch
#

Allright

earnest phoenix
#
      throw er; // Unhandled 'error' event
      ^

Error: socket hang up
    at connResetException (internal / errors.js: 559: 14)
    at TLSSocket.socketOnEnd (_http_client.js: 436: 23)
    at TLSSocket.emit (events.js: 205: 15)
    at endReadableNT (_stream_readable.js: 1154: 12)
    at processTicksAndRejections (internal / process / task_queues.js: 84: 9)
Emitted 'error' event at:
    at TLSSocket.socketOnEnd (_http_client.js: 436: 9)
    at TLSSocket.emit (events.js: 205: 15)
    at endReadableNT (_stream_readable.js: 1154: 12)
    at processTicksAndRejections (internal / process / task_queues.js: 84: 9) {
  code: 'ECONNRESET'
}

Then my bot restart. How can I do ?

#

and his is full of times

ember flame
#

Who can I contact for my bot being denied for bot reviewing incompetency

slender thistle
#

Website mod who declined it

ember flame
#

I clearly stated that the bot requires permissions in the submission
But it was given no permissions

#

therefore it fucked up

#

happened 2 times

sinful lotus
#

dm the website mod

slender thistle
#

If a bot is required to have a certain permission in order to execute a certain command, that's understandable. I don't think making all commands require server permissions (even the fun ones) is a good idea.

sinful lotus
#

thats the best shot you get right now

#

or better make your bot say the missing perms exactly

#

so the mod wont mess it up

pale marsh
#

Also never have Admin or Manager Server as your bot perms. It's way unsafe

ember flame
#

I dm'd Oliy#0330.
I have it request administrator for utility commands in the future

sinful lotus
#

why oliy

#

oliy dont verify bots

pale marsh
#

Trust me, whatever you want to achieve can be done with so many perms other than Admin

ember flame
#

I didn't know who verified bots

sinful lotus
#

also they wont give your bot admin perms

pale marsh
sinful lotus
#

no one will

ember flame
#

ohhh

sinful lotus
#

you need to specify exactly what perms it needs

pale marsh
sinful lotus
#

and you need to make the bot say that perms it needs that is missing

lime fiber
#

How can I get one invite link usng the server id?
I'm using this but I'm getting not found unknown channel.

@client.command(pass_context=True)
async def teszt1(ctx, *, sid):
    server = client.get_server(sid)
    invite = await client.create_invite(server, max_uses=1)
    await client.say(invite)
cursive dagger
#

You have to create a invite to a channel if i am correct

lime fiber
#

Docs says this: destination – The Server or Channel to create the invite to.

pale marsh
#

Also I think sid is string not int

#

Try to convert it

#

Unless discord.py works with strings, but I doubt it

lime fiber
#

There is no problem with get_server the problem starting with create_invite

slender thistle
#

How do you create an invite without a channel

pale marsh
#

Then make sure your bot has permission to create an invite

#

I think it defaults to the default channel

#

AKA the first one returned by the api

lime fiber
#

It has permissions. And I don't know the channel I'm just know the server id and name.

slender thistle
#

Default channel... those don't exist anymore

lime fiber
#

But it says I can create an invite using the server. : destination – The Server or Channel to create the invite to.

pale marsh
#

You're using rewrite right?

lime fiber
pale marsh
#

Oh

slender thistle
#

I'll just remind you that you are still using a very old d.py version

pale marsh
#

I keep forgetting lol

lime fiber
#

I know it, but the docs is for 0.16.12

slender thistle
#

Kef, not everything is a Client method on rewrite+

pale marsh
#

No lol

#

The docs and in rewrite

lime fiber
pale marsh
#

I'm not fully familiar with rewrite yet shiv

#

@lime fiber that's because you're reading 0.16 docs lol

lime fiber
#

And I'm using 0.16

slender thistle
#

Just a heads up

warm flame
#

oof 0.16

slender thistle
#

Well.

#

Unknown channel

#

I wonder why you are getting such error when d.py tries to get a default channel

#

This honestly looks shady, though.

warm flame
#

what does

pale marsh
#

Try making the destination a channel in the guild object then

slender thistle
#

Why do you want to create an invite to a server through your bot

pale marsh
#

like server.channels[0] or whatever is equivalent

lime fiber
#

ok, I'll try thanks

#

This code worked for me 👍

@client.command(pass_context=True)
async def teszt1(ctx, *, sid):
    server = client.get_server(sid)
    csatlista = list(server.channels)
    for x in range(len(csatlista)):
        csati = csatlista[x-1]
    invite = await client.create_invite(csati, max_uses=1)
    await client.say(invite)
slender thistle
#

Why that iteration even

#

just random.choice at this point

pale marsh
#

I'm not even getting what the loop is for

#

What does it do?

slender thistle
#

iteration through server channels
Though that loop is just pointless

#

It legit just looks like a reinvented wheel version of server.channels[-2]

pale marsh
#

Yeah was about to say that lol

latent oasis
#

d.js
How to get the number of arguments?

mossy vine
#

assuming args is an array, args.length

fierce thorn
#

args.length?

latent oasis
#

tried

#

not working

#

oh

#

wait

#

no

#

not working

mossy vine
#

how are you defining it

latent oasis
#

const Discord = require("discord.js");
const { Canvas } = require('canvas-constructor');
const { loadImage } = require("canvas")
const fsn = require('fs-nextra');

module.exports.run = async (bot, message, args) => {
  if(!args[0]) return message.channel.send("Please provide some text")
  const myimg = await loadImage('https://i.imgur.com/SSzjSEL.png')
  if(args.lenght === '1'){
  let profile = new Canvas(513, 513)
  .addImage(myimg, 0, 0, 513, 513)
  .setTextFont("20pt Discord")
  .addText(args[0], 310, 53)
  let attachment = new Discord.Attachment(profile.toBuffer(), 'retarded_dog.png')
  message.channel.send(attachment)
} else if(args.lenght === '2'){
    let profile = new Canvas(513, 513)
  .addImage(myimg, 0, 0, 513, 513)
  .setTextFont("20pt Discord")
  .addText(`${args[0]} ${args[1]}`, 310, 53)
  let attachment = new Discord.Attachment(profile.toBuffer(), 'retarded_dog.png')
  message.channel.send(attachment)
} else if(args.lenght === '3'){
    let profile = new Canvas(513, 513)
  .addImage(myimg, 0, 0, 513, 513)
  .setTextFont("20pt Discord")
  .addText(`${args[0]} ${args[1]} ${args[3]}`, 310, 53)
  let attachment = new Discord.Attachment(profile.toBuffer(), 'retarded_dog.png')
  message.channel.send(attachment)
}
mossy vine
#

it just gets passed from another file/function

#

where does it actually get defined?

latent oasis
#

wdym?

#

where i get args?

mossy vine
#

i assume you have an index/main file where you do something like const/let args = ...

#

send the line where args gets declared

latent oasis
#

wait pls

#

const args = message.content.slice(bot.config.prefix.length).trim().split(/ +/g);

mossy vine
#

yeah so its an array

#

args.length then

latent oasis
#

lol

#

fixed by ading
message.content.split(" ").slice(1).join(" ");

#

it is better than check length of args

low dragon
#

Do I have to re-apply for my bot? because I don't really understand the announcement.

west spoke
#

No

low dragon
#

Oh okay, thank you.

west spoke
#

Essentially self promo

low dragon
#

So for that you need to give money to put your bot on the front page?

west spoke
#

Essentially

#

Though you can get on it by making a actually good bot

low dragon
#

Also, how come when you click on the PFP of those it shows Mewbot or something and yesterday it showed mee6?

#

Mkay.

west spoke
#

Wdym

low dragon
#

When I click on the bots thing it shows Mewbot.

west spoke
#

Ok

#

You clicked on that bot

low dragon
#

All of them are like that.

lime fiber
#

I've got another problem 🙄
So here is my code which is getting me invite links.
It's working, but it creates link to voice channels. But I want text channels. How can I do it?

@client.command(pass_context=True)
async def teszt1(ctx, *, sid):
    i = 1
    server = client.get_server(sid)
    csatlista = list(server.channels)
    for x in range(len(csatlista)):
        csati = csatlista[x-0]
    invite = await client.create_invite(csati, max_uses=1)
    await client.say(invite)
west spoke
#

What you could do is access the api directly or use something in rewrite

#

if channel.type

pale marsh
#

In the loop itself check if the channel is text channel then break the loop

west spoke
#

I just access it directly in case I need other stuff since async doesnt have is_nsfw()

low dragon
#

Ima step away since I know nothin' about coding.

west spoke
#

learn kthx

low dragon
#

Nope kty.

lime fiber
#

i used this: ```py
@client.command(pass_context=True)
async def teszt1(ctx, *, sid):
i = 1
server = client.get_server(sid)
csatlista = list(server.channels)
for x in range(len(csatlista)):
csati = csatlista[x-i]
while True:
if not csati.type == 'Text':
for x in range(len(csatlista)):
print(i)
csati = csatlista[x-i]
i += 1
else:
break
invite = await client.create_invite(csati, max_uses=1)
await client.say(invite)

What's wrong with it? The terminal looks like this:
#

That server has got text channels!

pale marsh
#

3 for loops?

lime fiber
#

oof

slender thistle
#

Honestly

hushed quarry
#

yeah that's incredibly inefficient

lime fiber
#

I accidently put my while into my first for

#

🤦

slender thistle
#

text_channels + random.choice

#

Ah wait

lime fiber
#

very funy

slender thistle
#

Async doesn't have text_channels does it

inner jewel
#

loop server.channels -> if is text -> use it -> break

slender thistle
#

Where did you see channel.type being a str though

hollow zealot
#

i have a question do any of u know how to connect a discord bot with faceit

lime fiber
#

It still return error in the terminal ```py
@client.command(pass_context=True)
async def teszt1(ctx, *, sid):
i = 1
server = client.get_server(sid)
csatlista = list(server.channels)
for x in range(len(csatlista)):
csati = csatlista[x-i]
if not csati.type == discord.ChannelType.text:
for x in range(len(csatlista)):
print(i)
csati = csatlista[x-i]
i += 1
else:
print('Text channel talĂĄlva!')
invite = await client.create_invite(csati, max_uses=1)
await client.say(invite)
break

hushed quarry
#

IndexError?

lime fiber
#

yep

hushed quarry
#

add print statements to your code and debug it

#

print out i, print out csatlista, etc. to figure out why it's going out of the list

pale marsh
#

I'm pretty sure all of this can be done with one for loop

lime fiber
hushed quarry
#

if you have a text channel, then break out of the loop

lime fiber
#

I've an else with a break in it.

hushed quarry
#

you have a logic error then because I don't see the thing being printed out

lime fiber
#

I'm just printed the i

#

It is getting voice channels and thats I need this to get text channels.

hushed quarry
#

one for loop

#

O(N^3) is very inefficient

slender thistle
#

I believe I provided a decent way to do that but apparently he didn't want to use it

#

Would need a separate list of text channels, then random.choice. How to get first and last text channels should be obvious

real helm
#

alternatives to change this?

#
client.guilds.forEach
#

In this code he sent in a difeerent msg the servers

#

and I want that he send all of servers in the same msg

amber fractal
#

Uh

#

That's api abuse

#

So I doubt anyone here will help you

real helm
#

wtf

#

i don't know what is "api abuse"

#

sorry, but what is it?

slender thistle
#

Sending too many requests at once

real helm
#

aaaa

#

and it is ilegal or something?

cursive dagger
#

Its against the ToS

amber fractal
#

Your bot will get ratelimited

#

And that

cursive dagger
#

It can also get your account terminated

real helm
#

holly fuck

#

sorry Discord

#

I delete it

#

Thank you @amber fractal @slender thistle @cursive dagger 😃

slender thistle
cursive dagger
#

😄

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

@sage bobcat what kind? what stuff u needa put in there

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

depends on the lua code

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

oh ok idk then wait for someone who knows

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

yeah but i assumed that you were getting something off of github and tryna just fill in the config and run it

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
#

ok lol im sorry

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
#

Its an element on the periodic table

sage bobcat
#

One message removed from a suspended account.

earnest phoenix
#

lol

sage bobcat
#

One message removed from a suspended account.

vestal dust
#

Hi, I'm getting 'db update text is a not function' error in db.quick. Can you help me?

neat falcon
#

code please

cerulean jacinth
#

ree

split lantern
#

@real helm if your users are intrested in the development of your bot they will join your support server, otherwise they will most likely ignore the msg anyways

copper cradle
#

^ Si, ademĂĄs de que es muy probable que saquen a tu bot de sus servidores, asĂ­ que no recomendarĂ­a hacer eso @real helm

earnest phoenix
copper cradle
#

That dude speaks spanish, so I gave him an answer in spanish mmulu but sorry for breaking the rule

neat falcon
#

bit silly that we can't help people in other languages in a help channel imo

copper cradle
#

^

earnest phoenix
#

by speaking a non universal language you are excluding other people from the conversation and neutrailizing their ability to help, which im pretty sure is why the rule exists

neat falcon
#

you could say similar about off-topic; speaking a non universal language there excludes other people from the conversation also

amber fractal
#

but we cant help if we dont understand what he's saying because google translate is shit

hushed quarry
#

please let's keep this on-topic and have the discussion elsewhere, like #general would be okay for this discussion

warm flame
#

hey literally just translated the previous message for the guy who doesn't speak english, no need to argue about it more than that,

neat falcon
#

fair enough

gaunt blade
#

how to make like 49 to 00:47 ?
and like if it is like 120 it makes it 02:00 ?

west raptor
#

wdym?

quartz kindle
#

you mean seconds to minutes?

#

120 / 60 = 2

opaque eagle
#

For writing an API, do you recommend using Go or Rust?

scarlet phoenix
#

Any language you want my dude

opaque eagle
#

I'm concerned about performance, mainly

scarlet phoenix
#

That is much more on your code than anything

#

Good python outperforms crappy rust code everytime

#

Do what you are most comfortable with

opaque eagle
#

Alrighty

leaden gust
#

So I've been looking into sharding on discord.js, mostly out of curiosity, and I'm kinda confused . Reading this https://discordjs.guide/sharding/ it kinda sounds like shards all have to run on the same machine, as opposed to say, deploying multiple shards across a network of connected computers? If so that's a shame, cuz I was thinking it would be fun to just have shards spawn and despawn in some sort of container orchestration thing like swarm

split lantern
#

Not really worth it but its possibl

#

There are 3 modes

#

4 with no sharding

leaden gust
#

Well it's not worth it with most bot's scale but just as a thought experiment i'm wondering if it's possible, cause the discord.js code just seems like it'll try to spawn a number of processes equal to the # of shards you need and that's it

split lantern
#

internal-sharding - 1 Process, d.js handels it all internally
sharding - 1 master process, each shard is a sub process ( no shared memory, aka you need broadcastEva l )
manual-sharding - you specify shard count and id can be split up over multiple Computers but good luck getting data from other shards

leaden gust
#

oh cool

#

But yeah then you can't communicate across shards right

#

cuz it's designed for inter-process communication there's no way for them to talk over the lan

split lantern
#

on one pc you can use broadcastEval wich works trough IPC iirc

#

sendkng strings / JSON.stringified Stuff

leaden gust
#

Yeah that plain wouldn't work then you're gonna need some sort of messaging system for your bots to synchronize for any kind of big bot

#

omg what if you used a dedicated discord server

#

where shards can send each other messages using their shardId

#

ahaah that'd be glorious

split lantern
#

If you are really bored you may procedd

leaden gust
#

wouldn't that be amazing, a single bot posting messages every few seconds to itself in an otherwise empty server

split lantern
#

Sounds like ratelimit fun and also dont forget accsesing a guild from another shard is g onna be hard

leaden gust
#

oh true

#

I really wonder how i'd tackle this problem

split lantern
#

smthng like new Discord.Client({shardId: 0, shardCount: 2}) should do it ( for starting manual shards in diffrent processes )

leaden gust
#

think i'll drop by the discord.js guys and ask them how their sharding would work out over a network

#

i expect to be ignored

split lantern
hushed berry
#

@leaden gust yo yo yo

#

im very familiar withwhat youre trying to do

leaden gust
#

I mean at this point i'd just use regular sockets

#

oh really? Do share haha

hushed berry
#

do your shards need any intercommunication?

leaden gust
#

It's a thought experiment, but yes they would absolutely need to communicate

hushed berry
#

also 1 sec lemme finish up this wot battle lol

#

okay, so

#

in what way would they need to communicate

leaden gust
#

Well let's see:

  • Each node needs to ping every other node when it goes up/down, i suppose you could do a heartbeat thing
  • Each node needs to know its id, and every other node's id, and they all need to be unique

If it can do that, that's already okay. Keep in mind my different instances can share a filesystem but i'm reluctant to use files for obvious reasons

hushed berry
#

Why do they need to be able to heartbeat each other? Thonk @leaden gust

#

Shouldnt that be the responsibility of the container orchestration system?

leaden gust
#

I need the bot processes to heartbeat each other, not the containers. The bots aren't aware of the swarm's state

hushed berry
#

Yeah, exactly

#

Why do they need to heartbeat each other?

leaden gust
#

Uh, to make it short, right now i have a single bot that parses a config file, and if it's split across multiple instances, each instance needs to know which part of the file it's allowed to parse. Also if a new shard arrives or a shard leaves, everyone needs to recalculate that

hushed berry
#

That is incredibly vague

#

Couldnt you jsut use the shard ID to parse that fraction of the file or something like that

#

A ton more resilient and no communication needed

leaden gust
#

What if I come in as shard 3 but then shard 2 bails tho

hushed berry
#

It's kinda hard to say since youve been incredibly vague

leaden gust
#

Also if another shard spawns after me i need to know that somehow

hushed berry
#

Why tho?

scarlet phoenix
#

Im confused why some shards use different configs yet share a singular config file

warm marsh
#

Does anyone know if you make the bots presence to be your spotify??

scarlet phoenix
#

This sounds like a job for some k8s

hushed berry
#

I use k8s for my bot

scarlet phoenix
#

Same

hushed berry
#

Works well enough for my 512 shards

scarlet phoenix
#

I use it at work, so it was not a hassle to setup. Although I doubt my bot needs it at only 15 shards

hushed berry
#

It's convenient for scaling, really

#

If your bot already works well on k8s, you're pretty much good

#

all you have to do is add more machines lol

scarlet phoenix
#

for sure, it is really nice if you have a micro service style architecture as well

leaden gust
#

My bot fetches realtime streams from twitter accounts. Those twitter accounts are described in a file. Two instances can't fetch tweets from the same account, so I need to make sure every single shard is aware of which part of the file it's in charge of, and if an instance drops out everyone needs to take care of part of that work.

hushed berry
#

This sounds like the wrong way to go about doing this

scarlet phoenix
#

do you use a front end for your k8s? I have been trying out rancer and its... ok i guess

leaden gust
#

Which part of that

hushed berry
#

Having the tweets be pulled from the bot processes

scarlet phoenix
#

Do you re fetch tweets on startup?

#

why?

leaden gust
#

No, it's realtime

#

i don't fetch it on startup

#

well i register a stream

hushed berry
#

Perhaps what you could do is register a stream for all the twitter accounts being listened to on that shard

leaden gust
#

anyway, i guess you could decouple it and have a separate process to do that work but then i still need to communicate with my shards

#

Right but how do i know which twitter accounts to listen to on each shard

scarlet phoenix
#

Make a separate service that does this independant of the bot. Then have the bot just hit that

#

At least thats how id do it

leaden gust
#

But then I STILL need to communicate with my shards lol

hushed berry
#

I'm not too familiar with how you have it setup so its hard to say

scarlet phoenix
#

If you dont want two to fetch from the same account.

  1. Any shard requests a random chunk of accounts
  2. Give them some and mark those accounts to the shard ID they were given to
  3. Only ever give them out to that shard.
hushed berry
#

It's kinda overcomplicated, really

scarlet phoenix
#

You could add a system arround that assignment. Making the extra service the source of truth for who gets what

leaden gust
#

It is overcomplicated, that's the entire point, I'm wondering how it could be done

scarlet phoenix
#

The shards are completely unaware.

#

Separation of concerns is a great thing to try to do when making something this complex

hushed berry
#

It also makes it ridiculously prone to failure

scarlet phoenix
#

Let one entity control them rather than delegating it to many sources

hushed berry
#

And adds a single point of failure 🤷

leaden gust
#

So the solution to sharding across a network when you need them to communicate is "never, ever do it,just write external subroutines to manage them"

scarlet phoenix
#

Not always

leaden gust
#

cuz it kinda sounds like that

scarlet phoenix
#

but in this case I think it works

hushed berry
#

No, you're just approaching the problem from a perspective that makes it difficult under those circumstances

leaden gust
#

Well ok, how would you make shards communicate over a network normally then

#

Cuz my use case is pretty simple, I just need shards to be able to send like, a ping to each other

#

not text data or anything

hushed berry
#

No, your use case isn't pretty simple at all

#

Shard rebalancing is like, not simple at all

#

What I would suggest doing is having each shard run a realtime feed for the guilds its on

#

You could just query the followed twitter accounts at startup for the guilds that shard is on

leaden gust
#

Hmmmmmmmmm but then I have a problem where if 2 separate guilds want the same twitter feed twitter might tell me to go fuck myself

#

I think

hushed berry
#

How so?

leaden gust
#

I did think of that tho it is pleasant to think about

hushed berry
#

You could just listen to a unique set of twitter accounts

leaden gust
#

Idk I'm wondering, I think that's how their enterprise api works, kinda like sharding

#

it'd be like 2 shards posting to the same channel

scarlet phoenix
#

Could you just make a twitter service that does all of the feed stuff. Shards are now completely agnostic to all feeds and just ask the service for the info they need.

#

Then this service is the singular point to twitter

#

no worrying about stepping on toes?

hushed berry
#

Tbh, the services dont even need to be connected to the shards

#

I'm assuming its just sending messages

scarlet phoenix
#

By connected I mean an api facing the bot in general

leaden gust
#

Yeah I think tha's the best solution

#

Decouple the twitter part into a central process, write some handshake protocols for shards where they say "Hey here's a list of channels I can see, give me my tweets"

hushed berry
#

Maybe a message broker would be useful here

#

Yeah, definitely

leaden gust
#

Do shards know when their scope grows/shrinks? Like when they lose or gain access to channels

#

cuz they still need to be able to poll it every so often

scarlet phoenix
#

Depending on what lib you use. just check how many guilds/channels you are in.

leaden gust
#

yeah, that's real shoddy tho, especially if they're rebalanced often

#

aw man i guess sharding across a network is a mess for my bot

#

it's possible twitter's enterprise api solves those problems, i haven't looked into that extensively yet

hushed berry
#

It doesnt really look to be the case

leaden gust
#

words can't express how sad I am

#

well thanks for participating in my thought experiment, i guess if my bot grows i'll just get a bigger vps :3

#

the main issue is that i don't just do the usual "get a message -> process data -> respond to it" workflow, since most of my input is actually spontaneous and comes from an external source (twitter)

#

... i just realized this is still a problem even if it's not over a network tho it's less of a problem

opaque eagle
#

So I want to have a feature in my bot that allows my users to store an array of numbers, but what would be the most intuitive way to add/remove numbers from that array?

amber fractal
#

push and splice

#

alternatively just splice

hushed quarry
#
  • get array of numbers from the db or create an empty array
  • append number
  • save it to the db
hushed quarry
green nexus
#

Why is there bot spammers in here

idle basalt
#

shit happens

hushed quarry
#

if you have issues with a specific bot, find their support server (click the button named "Support Server" on their DBL page). this channel is for bot development messages. #memes-and-media or #general if you're not here for bot development

opaque eagle
#

Not the programming logic

#

I wanna know what's the neatest most elegant way to get the user input..

#

like where to add and what to add, whether to replace the entire list with new values or append a value at the end, or add a value in the middle, etc

#

I don't want the command to be unbelievably long, but I also want users to edit the values quickly

earnest phoenix
#

@opaque eagle if u dont have plans to do special queries

#

u can save the entire array as numbers separated with commas

#

Or if u feel fancy

#

U make a table for arrays

#

arrays_tbl

#

arrayId | discordId

#

and then a table called arrays_val

#

arrayId | arrayVal

#

if u dont want the users to have multiple arrays

#

u can probs make a table like this

opaque eagle
#

I have a feeling you guys still don’t get what I’m asking

earnest phoenix
#

discordId | arrayVal

opaque eagle
#

Idc about the code/storage behind it

#

What would the “UI” look like for a command that allows a user to edit an array of numbers on Discord

#

Whatever I give up trying to explain it lol

earnest phoenix
#

can u explain why a user would like to have an array of numbers

zealous talon
#

excuse me ...how to connect database of my bot? My bot is written in JAVASCRIPT...My database is MSSQL

sinful lotus
zealous talon
#

OK let me try @sinful lotus Thank you

#

I think my bot did not run to sample of website...and no error message...why?

sinful lotus
#

probably you may need to run it a bit diff not sure

earnest phoenix
#

discord.net does anyone know how to list the total amount of users in a certain role

zealous talon
#

OK let me try it again

steep gate
#

Hi

#

do your bot have something against new Discord Users?

idle basalt
#

?

steep gate
#

We have on our Discord Server the problem that someone is always joining with a new Bot all 5mins and he is posting scam websites,
his bots are always new on discord, so is ur bot having something against new discord users?

glacial dew
#

wat

steep gate
#

is my english so bad

earnest phoenix
#

Those are known self-bots and has nothing to do with DBL nor this channel; you can use a bot to automatically have the links deleted. #general would be a better channel to use.

glacial dew
#

its not bad, just not explaining it very well.

idle basalt
#

i think hes asking if theres a way to do something about new discord users

zealous talon
#

I want my bot to connect to the database through my computer. but my computer is just a notebook computer.

#

now my bot give me a error message...it Looks like time out....but i don't know how to check connection

#

my English is not good as well

flat pelican
#

SQL oofed

zealous talon
#

@flat pelican ?

flat pelican
#

I hate SQL, that’s why

zealous talon
#

@flat pelican why? hate SQL?

flat pelican
#

I code with python, js is too complicated for me sorry

#

I prefer using a nonSQL like Mongo

zealous talon
#

@flat pelican That's OK , but i don't understand python....i never not use it

#

@flat pelican what is Mongo?

flat pelican
#

A database

zealous talon
#

@flat pelican OK,but my computer just installed SQL SERVER and ORACLE ...

flat pelican
#

Welp someone familliar with it may help you, I’m unfortunately bad with SQL stuff

glacial dew
#

mongo was a pain in the ass when our bot grew

#

its easy for small bots, even medium bots.

#

But when we started to scale it was no bueno

zealous talon
#

@flat pelican That's OK Thanh you

#

@glacial dew i don't know what is bueno...

glacial dew
#

bueno = good

#

So I said it's no good

zealous talon
#

@glacial dew OK,i see

#

@glacial dew Then..SqlServer is not good too?

glacial dew
#

We switched to SQL from mongo and it runs much more efficiently, and it cut our speeds by 90 percent.

#

So its almost instant

sinful lotus
#

sql is fine

glacial dew
#

It used to be a few seconds for each command on mongo

sinful lotus
#

47k guilded bot with maria db, runs flawlessly

late hill
#

How big is your bot Jakey

glacial dew
#

43k

#

8 million users

late hill
#

oof

sinful lotus
#

it depends on the design choice you make

#

sql is fine if you design it properly

glacial dew
#

Commands arent that frequent, its a one and done bot

#

24 hours

sinful lotus
#

my cps is still inaccurate so GWahreeVampySmug

late hill
#

I've used collections on mongo with over a million documents and didn't have any issues

zealous talon
#

but i don't connect my sql server database...

late hill
#

🤷

glacial dew
#

Yeah we had roughly a million documents.

#

Did not like it very well

zealous talon
#

and i don't know how to check connection

glacial dew
#

mmlol

late hill
#

oof

glacial dew
#

mongo lmao

#

mongo is a really good db

#

Not faulting it in any way

#

Just not for us

late hill
#

I try to only save data where necessary

glacial dew
#

same unfortunately.

#

Thats required data 😦

late hill
glacial dew
#

Imagine if I saved messages

late hill
#

😂

glacial dew
#

This every day

#

literally only 24 hours of messages.

zealous talon
#

So....Sql Server Connect fail....Time out...how to check connect?...

earnest phoenix
#

how to cache users my bot has

glacial dew
#

How big is your bot / how many users

earnest phoenix
#

well, this server has 50k members

sinful lotus
#

also what is your lib

earnest phoenix
#

but my bot shows 18k - 30k not more

#

djs

glacial dew
#

I use redis, or just storing it in memory

sinful lotus
#

.fetch()

glacial dew
#

yeet

sinful lotus
#

on clientOptions there should be fetchAll

earnest phoenix
#

client.users.fetch() ?

sinful lotus
#

that works too

#

stable or master?

earnest phoenix
#

master

sinful lotus
#

just set that to true

#

no need to do client.users.fetch()

earnest phoenix
#

ok thanks

#

ill try now

pale marsh
#

@earnest phoenix loop over the server members and check if they have the role or not

earnest phoenix
#

any quicker way? The server has 12,000+ members

pale marsh
#

I don't think so. Run through the cached members though, don't request each member from the api

#

Unless discord.net's DiscordRole object has like a list object of members with that role

sinful lotus
#

I dont think there is a quicky way but if you would do that make sure thats async

magic smelt
earnest phoenix
#

@earnest phoenix SocketRole#Users

#

get the role from the guild

restive furnace
#

!serverinfo

quartz hill
#

I will filter out the emojis reacted.

grim aspen
quartz hill
#

np I solved

#

dont need name only emojis id enough

warm marsh
#

Does anyone know a guide or video so I can learn about sharding for djs?

opaque eagle
mossy vine
#

that guide is indeed very good

earnest phoenix
#

hi

#

I need help

mossy vine
#

just post your question

earnest phoenix
#
   
  client.on('message', async (message) => {
    const db = require('megadb');
let prefijo = new db.crearDB('prefijos');
  let prefix;
  if (prefijo.tiene(message.guild.id, )){
   prefix = await prefijo.obtener(message.guild.id) 
  }else{
    prefix = 'jn!'
  }
  if (!message.guild) return;
  if (message.member.bot) return message.channel.send("ÂĄLos bots no pueden ejecutar mis comandos!");
  if (!message.content.startsWith(prefix)) return;
  const args = message.content.slice(prefix.length).split(/ +/g);
  const command = args.shift().toLowerCase();
 
  if(message.content === '@cerulean pasture') {
    message.channel.send(`Mi prefijo actual es ${prefix}`)
  }
#

I want the bots not to be able to respond, so they can not use the bot command

warm marsh
#

Thanks @mossy vine

#

@earnest phoenix

message.author.bot // Use
message.member.bot // Don't use.
mossy vine
#

@earnest phoenix first of all, dont create a database every time the command runs

earnest phoenix
#

if (message.author.bot) return; I think it's with that but it makes me spam

#

@warm marsh ?

warm marsh
#

?

earnest phoenix
#

do you can help me

warm marsh
#

I don't know what your issue is.

earnest phoenix
#

@coral trellis

#

someone

#

xd

amber fractal
#

Dont randomly ping people

#

Read the channel topic

#

Be patient

coral trellis
#

Please don't randomly mention people for help, Just put your question here and be patient

grand stream
#

@earnest phoenix

earnest phoenix
#

khe

slender thistle
#

(Wrong channel if you want to have a chat. Don't mention random people out of the blue.)

earnest phoenix
#

Cannot read property 'get' of undefined

#

actually no nvm

deep creek
#

anyone knows dpy? I need to know how to detect spam messages

ruby dust
#

depends

deep creek
#

wdym depends?

#

can you give me like a quick look of the spam detection code?

ruby dust
#

I was about to ask like what kind of spam exactly

deep creek
#

I know that it is inside the event (on_message) but IDK to detect it

#

like this

#

1

#

1

#

1

#

do you know how?

ruby dust
#

so duplicate messages

deep creek
#

yeah

#

and finally delete them all

ruby dust
#

on_message is only a discord event, that's pretty much all you need if you know the basics of python

deep creek
#

so how to make it? 😖

ruby dust
#

additionally, I don't know if there's a way to access discord.py's internal message cache, otherwise you can just make your own cache and implement certain checks if it falls under "spam"

deep creek
#

?

#

you mean message history?

#

message.channel.history(limit=int)

#

i just know that

ruby dust
#

you don't know how to build a cache system?

#

do you at least know anything about variables?

deep creek
#

yeah I know

frigid juniper
#

Hello, I wonder how can i disable my button inside my iframe in discord bot list website ?

#

I tried $(function() { $(".button_back").on('click', function(event){ event.preventDefault(); }); }); inside the console but still clickable

cursive dagger
#

@frigid juniper just move the other buttons

frigid juniper
#

Move ?

cursive dagger
#

Just retexture them and move them where you want

frigid juniper
#

Uh, I'm not sure you see the button i'm talking about

cursive dagger
#

ah ok

frigid juniper
#

This one is in the iframe 😃

earnest phoenix
#

how to get

#

all same data from a json file

#

like

#

if(cmd === cmds[cmd].alias)

west spoke
#
var cmds = "json text"
if(cmd === cmds[cmd])
#

I think

#

Idk what lib you are using but I understand json enough to understand it ig

brave anvil
#

Does anyone know of Discord sharding databases?( Good or pretty decent ones)

#

Like Redis

#

Or

inner jewel
#

define "discord sharding database"

slim heart
#

Like a good database for shardingÂż

#

Cuz it really isn’t much different than without sharding

reef jacinth
#

Stuff like Enmap (for js), Quick.db and KeyV probably don't really work on multiple shards because its partially based on cache

amber fractal
#

I sharded with enmap by running it in a different file

#

But I dont use it anymore because it was shit

#

And not really a db

split lantern
#

Enmap older verisons allowed to use postgres / mysql / redis

earnest phoenix
#

Anyone here use JSoup library before? Theres this weird issue where when compiled and run it throws NoClassFoundException

#

:c ¯_(ツ)_/¯

spring ember
#

It means the class the error refers to doesn't exist

humble gyro
#

heyo

pale glen
#

thanks @crystal needle

#

-thanks @crystal needle

#

-rpgstats

earnest phoenix
#

Commands are restricted to test channels.

pale glen
#

ye i confused testing and development sorry

bleak vortex
#

heyo, I'm currently using msgObject instead of message. How do I change this? I use TypeScript

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

bleak vortex
#

Doesnt work

humble gyro
#

helo

bleak vortex
#

I'm trying to change to message from msgObject

#

so for example,

#

instead of writing msgObject.channel.send it would be message.channel.send

onyx summit
#

How many Guilds per shard do you guys have?

copper cradle
#

I would recommend 1000

bleak vortex
#

what is a shard?

untold matrix
hushed quarry
#

since it's JSON, you just have to make a GET request with any http library that works with the language you chose for your bot, use a json library to parse it, and then use it within your code

rustic obsidian
#

I don't think he knew what you meant

untold matrix
#

I kinda get it

#

Is Axios a good HTTP Library?

hushed quarry
#

i've never used javascript before, but it looks promising

untold matrix
#

Alright thanks a lot for the information!

lofty hamlet
#

Hi

#

What is thie error ? Wtf

hushed quarry
#

you need 2FA enabled on your account for certain bot actions iirc

lofty hamlet
#

The problem is that I clear all reaction on a message and that it works on a lot of server except one

hushed quarry
#

the server probably has the 2FA requirement for moderation actions

lofty hamlet
#

UH OK

hushed quarry
#

this one

lofty hamlet
#

And i do verify the developpper account ?

hushed quarry
#

enable 2FA for whichever user account owns the bot

#

so, if the bot is hosted on your discord account, enable 2FA for that one

lofty hamlet
#

Ok thx

earnest phoenix
#

Hi, i have a problem, with a command, i store a value in my db and when i would use after, i have this error:

 Could not interpret "[u'logs']" as string.

Why i have this error ?

#

Whats the code?

#

When i use after, its:

guildConf = client.settings.ensure(msg.guild.id, client.defaultSettings)
msg.channels.find("name", guildConf.setlogs)

If u would like have more code, say me and i send all code that i use for this error

#

I need the part where you define the log channel I thini

#

think

#
    const guildConf = client.settings.ensure(msg.guild.id, client.defaultSettings);
    if (!msg.member.hasPermission('ADMINISTRATOR')) return msg.channel.send("Erreur `permissions manquante`: ADMINISTRATOR")
    let args = msg.content.split(/\s+/g)
    const [none, prop, ...value] = args;
    if (!args[1]) {
        let setconf_embed = new Discord.RichEmbed()
        .setColor("#3377ff")
        .setTitle("Config menu")
        .setDescription("Ici sera toute les commande pour configurer votre serveur")
        .addField('Commandes', `${guildConf.prefix}setconf prefix: Changer le prefix du serveur`)
        .addField('Informations', `La commande **${guildConf.prefix}setconf prefix** peut prendre en compte qu'un seul caractĂŠre pour le prefix`)
        .setThumbnail(client.user.avatarURL)
        .setFooter("Š ZÊbra'Bot", client.user.avatarURL)
        msg.channel.send(setconf_embed)
        return
    }
    if(!client.settings.has(msg.guild.id, prop)) {
        return msg.channel.send("Erreur `paramÊtre`: " + guildConf.prefix + "setconf <paramètre> <valeur/mention>\nparamÊtre disponible: `prefix` | `setlogs`");
    }
    if (args[3] && prop === "prefix" || args[3] && prop === "setlogs") return msg.channel.send("Erreur `valeur`: " + guildConf.prefix + "setconf <paramĂŠtre> <valeur/mention>\nLa valeur ne peut pas contenir plusieurs mots.")
    if (!args[2]) return msg.channel.send("Erreur `valeur`: " + guildConf.prefix + "setconf <paramètre> <valeur>\nLa valeur ne peut pas être vide");
    if (prop === "setlogs" && !args[2]) return msg.channel.send("Erreur `valeur`: " + guildConf.prefix + "setconf <paramètre> <valeur>\n")
    if (args[2].length > 1 && prop === "prefix") return msg.channel.send("Erreur `valeur`: " + guildConf.prefix + "setconf <paramètre> <valeur>\nLa valeur ne peux pas contenir plus d'un caractÊre")
    client.settings.set(msg.guild.id, value, prop);
    msg.channel.send("Le `" + prop + "` du serveur a ĂŠtĂŠ changĂŠ en `" + value + "`");
#

This is the part where i define the log channel and also the prefix

west spoke
#

Some reason it thought your message was a embed. Odd

earnest phoenix
#

For exemple, i tap this: -setconf setlogs logs and he put on my db the argument logs for the channel and when i would like find the channel "log" with msg.channels.find("name", guildConf.setlogs), i have this error:

Could not interpret "[u'logs']" as string.

So i don't think that my message was a embed

#

I use the same principle for the prefix and i have no problem with

ionic compass
#

any suggestions for converting emoji into a single ? rather than the 2 or more it automatically prints to console?

west spoke
#

Find it, replace one of the ? with ""

thorn nexus
#

Good day to all. I have a code that displays the top 10 level. How can I get the rank of each participant separately?

const top10 = DB.prepare("SELECT * FROM database WHERE guild = ? ORDER BY xp DESC LIMIT 10;").all(message.guild.id);
        let top = ['🥇', '🥈', '🥉', '🏅', '🏅', '🏅', '🏅', '🏅', '🏅', '🏅']
        let completeString = '';
        let i = 0;
        for (const data of top10) {
            let rankString = `**${top[i++]} ${client.users.get(data.user)}**\nОпыт: ${data.xp} 💠 Уровень: ${data.level} 🎓\n`;
            completeString += rankString;
        }
        const embed = new Discord.RichEmbed()
            .setAuthor("Топ 10 учасников по опыту!", message.guild.iconURL)
            .setColor(0x00AE86)
            .setDescription(completeString);
        return message.channel.send({ embed });
west spoke
#

Store usernames in json

#

Like

#

{"1":Name,"2":Name,"3":name}

thorn nexus
#

I use better-sqlite3 and d.js

west spoke
#

You can save a file

#

And also that's basic json

#

All langs use it

thorn nexus
#

Maybe there is a way to get the rank of the participant without saving it before getting

unique nimbus
#

save it in ram and get the data later

#

how?
idk

ionic compass
#

@west spoke the way I am implementing that is by using string.replace ("??","?"), the only down side is users who actually have two or more strings of ? will be changed as well

#

think im gonna stick with that, thanks SeemsGood

hushed quarry
#

@west spoke don't use requests as it's not async, so your bot would essentially pause while the request goes through. use aiohttp

west spoke
#

I async it

hushed quarry
#

it's not async though...

west spoke
hushed quarry
#

that's not requests

west spoke
#

await~

hushed quarry
#

that's aiohttp

west spoke
#

Oh

#

I'm dumb

#

on so many fucking levels

hushed quarry
#

er not asyncio

#

i meant aiohttp

west spoke
#

I mixed my api with that

#

Pfff

#

I use requests for the neko command

hushed quarry
#

yeah change that

west spoke
#

Meh

hushed quarry
#

(your entire bot would be unusable if someone uses the command -- if they spam it, your bot would eventually go offline)

west spoke
#

Yeah

round glade
#

Hmmm, so
Something took too much to do is a connection error right?

west spoke
#

That's what happened with the previous one used

#

Soooo... ty

#

Ok

#

Again how fking dumb am i

#

why do I mix the three up

#

urllib ffs

west spoke
#

This should work better than replacing it tbh

brave anvil
#

I need help

#

Uhhh

#

I wanna make a web dashboard

#

😃

west spoke
#

SQL, or file storage kbai

brave anvil
#

Ummm

west spoke
#

How to post is still unknown to me

brave anvil
#

I’m new to coding what’s the difference

west spoke
#

everything

brave anvil
#

XD

#

Sorry

#

😂

#

I know you need api endpoints

#

I’m guessing

west spoke
#

Depends

brave anvil
#

On

#

My life

#

XD

#

or wdym?

loud salmon
#

A web dashboard is not something you should do as a beginner programmer @brave anvil

west spoke
#

^

brave anvil
#

Well I’m not really a beginner

#

But

#

Ok

#

?

loud salmon
#

but you just said you're new to coding?

amber fractal
brave anvil
#

Yeah

west spoke
brave anvil
#

Ik

west spoke
#

bruh

#

Do you know html

brave anvil
#

Yes

west spoke
#

Why does it autocorrect to help

#

Fff

brave anvil
#

XD

west spoke
#

Ok

#

Learn from other sources ig

brave anvil
#

I know html

#

Java

#

Lua

west spoke
#

Css?

brave anvil
#

Yes

loud salmon
#

but yea, you need to know how to make a frontend website that connects securely to your bot's database

west spoke
#

^

brave anvil
#

Fun

#

XD

#

Money!!!

#

XD

#

Which is why most bots cost

loud salmon
#

huh?

amber fractal
#

if you know what you're doing it's free

west spoke
#

Probs newbie question but what do I change to CORS to allow upload from same-orgin.
I've tried using the Mozilla docs and all that and nothing works

#

And yeah

brave anvil
#

The reason why Most bots is hosting programs

west spoke
#

*html

#

Just host from a old laptop ez

brave anvil
#

money for 24/7 guaranteed uptime

west spoke
#

Not guaranteed

#

Never assume that

brave anvil
#

Well

west spoke
brave anvil
#

Depenes

amber fractal
#

24/7 is never guaranteed

brave anvil
#

I have a ovh server with 4 cores

#

Mainly because well

#

I host for someone I help

west spoke
#

cool I have a 2gb laptop and it hosts a bot with enough ram to run chrome smoothly

brave anvil
#

Same

west spoke
#

Doubt

#

Since chrome is a ram hog

brave anvil
#

My specs

west spoke
amber fractal
#

I dont believe this is the place to be chatting tho

brave anvil
#

Lovely

#

Ye

#

Can I make a database using rethink?

loud salmon
#

If its right for your uses yea

brave anvil
#

Urghhh

#

Redis

#

Jedis

west spoke
#

ok I guess my question will never get answered

loud salmon
#

huh?

brave anvil
#

What

west spoke
#

"Probs newbie question but what do I change to CORS to allow upload from same-orgin.
I've tried using the Mozilla docs and all that and nothing works"

loud salmon
#

oh rip

#

idk

west spoke
#

I've been trying at it for like a week straight

brave anvil
#

?

west spoke
#

I've read that one twice

brave anvil
#

XD

#

Sorry

west spoke
brave anvil
#

Api gateway?

west spoke
#

Using global resources

#

No extra api

brave anvil
#

Oh kk

#

Oh

#

?

west spoke
#

That's a nodejs server

#

S3

#

Is what I use

brave anvil
#

Pffff

#

Idk

#

I wanna be helpful and I try but I never am 😭

west spoke
brave anvil
#

Nedko

west spoke
#

MaxAgeSeconds is for my bot

#

Since it has a delay sometimes

brave anvil
#

Ehhh

#

Idk

west spoke
#

@cunning snow pip install discord==0.16.12

brave anvil
#

Ik python

west spoke
#

Async branch was discontinued

brave anvil
#

But

west spoke
#

That was for someone else

#

warking

brave anvil
#

XD

west spoke
#

Ok

#

idk I cant see a screenshot

brave anvil
#

XD

west spoke
#

To install async you have to use that specific version

#

0.16.12

brave anvil
#

Oh you use aws

#

@west spoke

west spoke
#

"I will sand you"

#

Yeah

brave anvil
#

Ok

west spoke
#

S3 = storage
Route 53= hoster

brave anvil
#

Ok

west spoke
#

Complete uptime using around 7 different servers around the us

#

But no support for anything except html

#

cri

brave anvil
#

Cool I host a website

#

Ssl

west spoke
#

Oke

brave anvil
#

Certified

west spoke
#

Ight I have to pay around $500 a year or sth ffffs

#

For a "secured" website application or whatever

#

I am perfectly fine with 11 a year for a un-secured website

brave anvil
#

Aa

#

I have ddos protection

#

For free

#

XD

west spoke
#

s3 comes with that by default I believe

brave anvil
#

Hmm

west spoke
#

Due to you know private stuff

brave anvil
#

Yeah

west spoke
#

And that they host their website using their website

brave anvil
#

XD

west spoke
#

Because logic

brave anvil
#

I don’t know much about the aws and mozilla engine

#

I tried to look for you something about it Maybe

#

Hmmm

#

Does anyone?

unreal oxide
#

switched off of AWS a while ago and used the funds saved for auction ads PanWut

brave anvil
#

ok

#

I

#

Uhhhh

#

Ok

#

I hate heroku

#

❌

#

Heroku

#

Me

#

I host on ovh

#

DigitalOcean

#

,selfhost

#

Yeah

#

XD

west spoke
#

I host on a laptop

brave anvil
#

I host on

#

Servers

west spoke
#

Discord broke oof

brave anvil
#

Umm

#

?

west spoke
#

DigitalOcean

#

Read

brave anvil
#

What

#

No

#

Not server

#

As in discord

#

Server

brave anvil
#

Its all in binary

#

Is

#

Its not a vps

#

Type

west spoke
#

It would work as it tho

brave anvil
#

Yes

west spoke
#

I mean AWS works as a vps if you know how

brave anvil
#

But it uses a cmd prompt

west spoke
hushed quarry
#

can you try combining your words so you don't send 1-2 words per message

west spoke
#

You can install python through cmd I think

brave anvil
#

Me?

west spoke
#

Ye

brave anvil
#

Ik umm

#

Aws you need a credit card

#

Sooooo

west spoke
#

Yeah

#

Because everything is paid

brave anvil
#

I’m not old enough

#

Sooooo

west spoke
#

I'm not either

#

Good for you neither do i

brave anvil
#

Omg

#

This is frustrating

west spoke
#

That's why I have it pay yearly

brave anvil
#

😭

west spoke
#

?

#

What's happening

#

Host through a old laptop

#

Free and easy to do

brave anvil
#

Irghhhhhhh

#

Umm

#

Yeah

#

Lang

west spoke
#

Py

#

He said py before soo

brave anvil
#

Dm me

#

@cunning snow

hushed quarry
#

@cunning snow you need a paid server to run your bot. stop asking people to host your bot for you... there are no other alternatives besides glitch/heroku

brave anvil
#

Details

#

Nvm

#

What

#

Oh

#

I was

hushed quarry
#

I said to combine your messages

west spoke
brave anvil
#

I though he was talking about hosting bot himseld

hushed quarry
#

one word per message is very spammy

west spoke
#

^^

brave anvil
#

Yeah

#

True

#

Like my life

west spoke
#

@cunning snow on Ebay you can get old vista laptops for under $100

brave anvil
#

Omg

west spoke
#

That's one of the cheapest and best ways since it's a one-time purchase

#

Imo

hushed quarry
#

or just get a raspberry pi for like $20

brave anvil
#

Yes

west spoke
#

With huge latency and bad wifi

brave anvil
#

Depends on your internet

hushed quarry
#

same thing as getting an older laptop, both are running from your home connection

brave anvil
#

I have really fast internet

west spoke
#

Pi normally uses more. I tried hosting on it before

#

Same here

hushed quarry
#

doubt it. it's just linux vs windows at that point

west spoke
#

And ram factor is a thing too. Pi zero is smallest, but doesnt have much ram

hushed quarry
#

keep this on-topic

west spoke
#

He wanted help in a dm justin

brave anvil
#

Does he want help or for me to host

#

Cause I would have to be paid to host

west spoke
#

Same here

brave anvil
west spoke
#

I would host another app if I was paid mmLol

onyx summit
#

I would host another bot if it's node and if you are not a complete retard and need help with starting it mmLol

hushed quarry
fiery stream
warm flame
fiery stream
#

why do always js has gooder docs in there packages then python

slender thistle
#

subjective

pallid zinc
#

How many times I can edit my message in js

sinful lotus
#

as long as you can track the message and respect the rate limit

pallid zinc
#

I have a dance command in my bot it again and again edit the message

#

But it very slow

#

Any way to increase the speed

#
 message.channel.send("(~‾▿‾)~ ")
.then(msg => {
msg.edit("~(‾▿‾~) ")
})
}```
#

Code is something like this

brave anvil
#

Umm

low wasp
#

@pallid zinc its all depending on the bots connection to discord

brave anvil
#

VPS

#

No

#

Bowser Cutie

low wasp