#topgg-api

1 messages ยท Page 17 of 1

robust root
#

thats lists

#

thats what python calls them

scarlet snow
#

dictsmasterplan2

robust root
#

i dont even understand the purpose of tuples in py

jaunty plank
#

Think of a database like a spreadsheet.

You have columns and rows.

Rows are individual things(like a player)
Columns are each individual thing related to each player

robust root
#

can i nest stuff

scarlet snow
jaunty plank
#

So you can take your dict, and rotate it sideways. That's how your "spreadsheet" would look.

scarlet snow
#

you can have others

jaunty plank
#

Wide is good

scarlet snow
#

i like key

jaunty plank
#

You can have thousands ^-^

scarlet snow
#

๐Ÿ˜†

robust root
#

wait

#

wait

#

hol up

jaunty plank
robust root
#

can redis store dicts?

scarlet snow
robust root
# scarlet snow yeah

oh so why not store ur whole json into 1 redis and each time ur using it call the redis to retrieve the data then put it back in there again

scarlet snow
#

cus

#

thats exactly the same as just

#

having a json

robust root
scarlet snow
#

and read/writing it every time you do something

#

that wasnt my point

robust root
scarlet snow
#

my point is why would you read write a whole json in one go when you only need to read write the data youre editing

#

๐Ÿ˜†

jaunty plank
#

It's slow, but it works

scarlet snow
#

ofc it works, but kind of makes the point of redis obsolute.

#

better to just learn how to use it

robust root
#

.-.

scarlet snow
#

well i suppose if your json is never gonna be larger than tens of kilobytes you wont have an issue

robust root
#

im looking for a way to simply bridge JSON from a shard to another

#

for now

#

oh wait y do it now its pointless for me atm

scarlet snow
#

๐Ÿ˜‚

jaunty plank
#

Here's the thing, when you need it you'll need it instantly.

#

Or you'll have to bring your bot offline until you fix it

robust root
#

i can just recode the entire thing and do 1 restart

jaunty plank
#

You don't have to fix it now, but just start thinking about it.

scarlet snow
jaunty plank
#

Yeah, but if you don't know how it can take days

scarlet snow
#

if u suddenly need shards

jaunty plank
#

Discord will kick your bot offline yeah

#

Start thinking about it now, start preparing for it soon, finish it before 1k servers ^-^

#

The ideal time to be sharded is around 1500 servers

#

Since this is a big refactor, youll want to work on it early.

scarlet snow
#

Snowball effect and whatnot

jaunty plank
#

Get reminders working. Next to rewards its the biggest thing that will improve your counts.

scarlet snow
#

Already have vote reminders weirdsip

jaunty plank
#

Put that in redis first, thats a good way to start.

scarlet snow
#

Yeah

jaunty plank
#

redis has a great pub sub system iirc

scarlet snow
#

lets play guess what day i implemented vote rewards

#

๐Ÿ˜†

scarlet snow
jaunty plank
#

redis can use expire times.

So, you store the id of the user who voted with an expire time of 12 hours.
After 12 hours it will expire and be deleted from redis automagically.
Pub/Sub to the expire and redis will give you an event and the Users ID.

scarlet snow
#

switching to a db improving my script in more than one way

jaunty plank
#

Yeah, itll be 1-2 lines to add the key. and 4-5 to send the reminder message.

scarlet snow
#

yeah, nice stuff.

#

redis has a free 30 mb cloud server

#

to start with

jaunty plank
#

I run local redis

#

But for experimenting thats fine to use ๐Ÿ˜„

scarlet snow
#

yeah local is probably best, whats the point of nano second writes if it takes 150 ms to get the info

#

only problem is idk if my hoster has support for this

#

ill have to

#

see

#

when im done learning

jaunty plank
#

vps?

scarlet snow
#

nope

jaunty plank
#

ahhh

#

whyyy

#

๐Ÿ˜„

scarlet snow
#

ease of use mainly

#

never expected my bot to get this far, this was just a side project. Never done any of this before.

robust root
#

im thinking about redis

#

dunno if itll eat RAM

#

or not

jaunty plank
#

It stores everything in memory

scarlet snow
#

^

jaunty plank
#

but you're working with kilobytes

#

so

scarlet snow
#

if ur info is 10kb its gonna take 10kb of memory

#

haha

robust root
#

thats expensive

scarlet snow
#

its not

jaunty plank
#

A proper database is better for memory usage.

scarlet snow
#

a discord bot is already a very lightweight application

#

so dont really need to worry about ur memory size

robust root
#

alr ill hop off the night gn yall

scarlet snow
#

just make sure you have overhead and youre fine

scarlet snow
jaunty plank
#

๐Ÿ‘€ I mean top.gg's redis is using like 80gb last I heard

#

fun stuff

scarlet snow
#

i mean thats a lot

#

but servers have way more ram than that

#

plus topgg has tens of thousands of bots and users and interactions

#

so it makes sense

jaunty plank
#

I'm sure its mostly caching searches causing that size.

scarlet snow
#

Also yeah

robust root
#

i found ZODB which allows async read-writes but idk if it has any flaws

#

it uses JSON objects so thats already a plus

#

SQL has a flaw, that is it does not allow async write

#

it can only process one write at a time

jaunty plank
#

SQL can pool

#

Keep in mind things like discord uses SQL, it's great for huge huge workloads, things like async and concurrency are not problems you're likely to run into(at least until you're a company)

robust root
#

i found the multiprocessing just now

#

@scarlet snow u may want to look into this

#

apparently this creates a shared variable that can be accessed by different processes, in this context im talking about shards

#

u can just plug ur JSON file in a variable and use it for the whole bot(?)

#

idk if this impacts performance in any way but the first thing is that it works like a normal python variable

scarlet snow
#

Huh, cool!

Ive already decided on switching to a vps and REDIS though, spent some time yesterday learning REDIS and im gonna continue today.

Our convo yesterday made me realise that when the bot is bigger that just 5 minutes of progress list could mean a lot to a lot of people.

But this seems perfect for your application, yeah!

scarlet cobalt
#

One message removed from a suspended account.

scarlet snow
#

You know what

#

Good question

#

I dont know

jaunty plank
#

because we're very excited.

REDDIISSSSSSS

robust root
jaunty plank
#

mongodb is what you're looking for

#

Itll be paid pretty quickly though

scarlet snow
#

Oh you mean the "free limit" is low?

jaunty plank
#

since they cant host it on their own server they'll hit the free limit quickly.

scarlet snow
#

Redis has community edition which usually means free forever, just with less features ofc

#

Yeah gotchu

#

Today ive got tons of redis learning to do

#

Gonna make a cup of coffee and be learning redis for the next 4-6 hours

robust root
#

Now that im working on switching to AutoShardedBot i run into another problem

#

@scarlet snow do u know how to reload cogs in all shards?

#

I depend on bot.reload_extension() to update my cogs but i dont know how to do it across shards yet

robust root
#

oh wait

#

"Variables defined in the bot instance (bot) are shared across all shards because there is only one bot process unless you run separate process for shards manually. - ChatGPT

#

@jaunty plank does this mean i can just use a variable defined in bot for all shards that my bot creates?

jaunty plank
#

Theres internal and external sharding.

youll reach limits, but pretty much every bot uses internal sharding early on.

robust root
#

im kinda new to discord-based stuff so i dont really know much about them

jaunty plank
#

internal is using a single core, single process. external it uses multiple processes.

#

and multiple cores

robust root
jaunty plank
#

just be aware the risk of corruption goes up with any sharding

restive otter
#

help

0|bot    | Error: Cannot find module 'topgg.js'
0|bot    | Require stack:
0|bot    | - C:\Users\galac\Desktop\SquidGames Bot\bot.js
0|bot    |     at Function._resolveFilename (node:internal/modules/cjs/loader:1249:15)
0|bot    |     at Hook._require.Module.require (C:\Users\galac\AppData\Roaming\npm\node_modules\pm2\node_modules\require-in-the-middle\index.js:81:25)
0|bot    |     at require (node:internal/modules/helpers:138:16)
0|bot    |     at Object.<anonymous> (C:\Users\galac\Desktop\SquidGames Bot\bot.js:13:19)
0|bot    |     at Module._compile (node:internal/modules/cjs/loader:1565:14)
0|bot    |     at Object..js (node:internal/modules/cjs/loader:1708:10)
0|bot    |     at Module.load (node:internal/modules/cjs/loader:1318:32)
0|bot    |     at Function._load (node:internal/modules/cjs/loader:1128:12)
0|bot    |     at Object.<anonymous> (C:\Users\galac\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainerFork.js:33:23)
0|bot    |     at Module._compile (node:internal/modules/cjs/loader:1565:14) {
0|bot    |   code: 'MODULE_NOT_FOUND',
0|bot    |   requireStack: [ 'C:\\Users\\galac\\Desktop\\SquidGames Bot\\bot.js' ]
0|bot    | }```
silk idol
restive otter
#

topgg.js no found

runic creek
#

Because there is no such package, there is something like top-gg/sdk but not topgg.js

#

It's even official one

unique cedar
cerulean island
#

Why did I get that error?

#

Yesterday it was working and today it isn't, should I change something?

tidal idol
#

veld is making some site changes at the moment

#

it's likely because of that. try again later

cerulean island
#

oh okay ty

wooden geyser
#

Hi

restive otter
#

Is there an official package I can use to interact with the API? If not could someone recommend me one?

restive otter
#

How can see

#

if my bot is pending or not?

#

or rejected

abstract mothBOT
#

@restive otter

topgg Bot Review Notifications

If your bot is approved:
You'll get a DM from @abstract moth, a ping in #logs and you'll be assigned the <@&265125253443878912> role here.

If your bot is declined:
You'll get a DM from @abstract moth and you'll also get a ping in #mod-logs.

๐Ÿ’ก Please make sure you have your DMs activated for this server.

jaunty plank
unborn nova
#

Hi, I'm using the webhooks system of top.gg to notify when someone votes my bot, but it doesn't work, I put the URL of the discord webhook, I hit Send test and nothing is sent, but I tried with another website (https://webhook.site/) if the POSTs arrive.

(I also tried putting a Authorization key)

#

I tried to send a webhook using curl and it arrived correctly, so I guess it is top.gg's problem.

scarlet snow
#

Youre sending the post to discord not your script it looks like

#

Idk if thats intentional but the default way (the one i know of) is to send it to the public ip and port of where your script is executed

#

Does that make sense

#

(Ofc unless youre working through discord webhook system somehow i have no idea)

robust root
#

this (taken from my bot's console) is what top.gg sends u via the webhook url when someone votes

restive otter
#

discord just expects a certain json schema, see the dev docs of discord

#

top.gg doesn't send the json with that schema

#

although they could do it, just some small backend stuff

#

top.gg could add an option to either set a discord webhook or your own, and if it's a discord one they could send a json payload with the right schema e.g.

{
  "content": "user bla bla voted",
}
#

and then it would work perfectly fine

#

honestly surprised it's never been a thing so far

robust root
calm talon
#

How can I make a VOTE system like it says:

When someone voted
A reminder (in 12hr) to vote again
Gives Voter role?
(In python)

jaunty plank
#

Youll need a database, and to use webhooks

#

Just a note, these are not discord webhooks and dont work with discord webhooks.

scarlet snow
scarlet snow
jaunty plank
#

If you're doing it properly youll use a database ^-^

scarlet snow
#

but yes, a database is ideal. But scope is important.

scarlet snow
# calm talon How can I make a VOTE system like it says: > When someone voted > A reminder (i...

also in discord.py you add roles with the .addroles() function on a member object. But you will have to get the role and guild if you dont have it already.

without ctx:

guild_id =  123456789012345678 
guild = bot.get_guild(guild_id)

role_name = "voter role"
role = discord.utils.get(guild.roles, name = role_name)

await member.add_roles(role)

with ctx:

role_name = "voter role"
role = discord.utils.get(ctx.guild.roles, name = role_name)

await member.add_roles(role)
tidal idol
#
role_id = "12345678912345678"
role = discord.utils.get(ctx.guild.roles, id = role_id)

await member.add_roles(role)```
scarlet snow
#

yeah ๐Ÿ˜†

#

didnt come to my mind that i could probably just use role id

tidal idol
#

it just means it doesn't break if anything changes

#

role ID never changes but name can

scarlet snow
#

true, but if a server manager accidentally deletes the role and just makes a new one. its gonna have a different id but the same name.

just depends on how your server is managed

robust root
#

oh wait never mind it wont work upon restart

scarlet snow
robust root
#

unless my bot reaches like 10k+ servers i wont need a database anyway

scarlet snow
jaunty plank
#

If you have a stable server you can make a seperate bot instance just for reminders

robust root
scarlet snow
keen sleet
#

For posting a bot's statistics, can it be as simple as doing:

curl "https://discord.com/api/v10/application-directory-static/applications/$DISCORD_APP_ID" | jq .directory_entry.guild_count

And posting the server_count every 30 minutes via a scheduled worker?

I don't store my bot's guild count anywhere nor do I use discordjs or a gateway that receives events / updates a cache.

dry mantle
keen sleet
hollow hull
sage terrace
#

Hello! My bot's token doesn't seem to work anymore, and regenerating it just returns the exact same one that still doesn't work. What should I do?

keen sleet
sage terrace
#

Seems to be fixed. But now, both tokens (old AND new) works, even though the old one hadn't been working for, like, a week

#

Using the bots/:bot_id/stats endpoint

#

Now running into another problem ; despite retuning 200, the update count isn't updated on top.gg

#

probably a skill issue this time tbh

robust root
#

rate limit?

jaunty plank
dry mantle
robust root
robust root
tropic idol
#

Hi, im using topgg widget and it shows my bot's current server is only 7 servers, but its already more than 100 servers, how to change that?
Thanks in advance!

restive otter
#

You've got to post the amount of servers regularly

#

You posted it once and never again

tropic idol
#

may i know how to post it?

restive otter
#

You already did it once?

#

So do it again the same way

tropic idol
#

im actually losing it, because the project was so old lol, but okay, thanks!

restive otter
neat pawn
#

Disregard, I figured it out

cloud lantern
#

Hlo i need a small help how i can count the vote a user done ? i made a voteTracker but i dont know how i can fetch a user done votes

#

now its like this

restive otter
#

increment a number in your database

cloud lantern
restive otter
#

hey how to configure server stats on discord js with your api?

restive otter
dry mantle
#

np

restive otter
dry mantle
#

np

weary temple
#

where i can find this ??

dry mantle
#

you need to set it in your bot's settings under webhook

silk idol
calm bough
#

Hi. I need the API for Top.gg. To get the API, I created my Discord bot and added it to Top.gg 3 times. The bot was online 24/7, but it kept getting deleted. The bot was a simple and funny bot with commands like ping, hello, and a default response for unrecognized commands: 'I can't answer that.' However, I noticed that even simpler bots were approved on Top.gg. What do I need to do to get my bot approved?

dry mantle
calm bough
#

Thank you bro

silk idol
calm bough
#

so what commands and how many command i need to have?

silk idol
calm bough
silk idol
calm bough
#

Does this count as logic?
/todo add <task>
command allows users to add a new task to their personal to-do list. The user types /todo add <task>, where <task> is the task they want to add. The bot then responds with a confirmation message like "Task added: <task>" to indicate the task has been successfully added. This helps users organize and track their tasks within Discord.

silk idol
calm bough
#

So it's not logic?

silk idol
#

@empty gazelle can you help explain, my brain is too dead asleep to explain clearly

calm bough
#

so if I also add /todo view and /todo remove will it all be logic?

#

please give me an example of logic command

empty gazelle
#

hi

calm bough
#

hi

empty gazelle
#

anything that isnt just a simple text response

#

(for the most part)

calm bough
#

so the /to do is logic?
i.e
/to do add
/to do remove
/to do view

empty gazelle
#

yes

calm bough
#

Thanks

empty gazelle
#

np!

spare ridge
#

sup

void token
#

probably a highly requested question, But just looking for more info or someone's example on how you interact with the top.gg api to catch votes on your description. Not looking to plug it into a discord webhook just looking to get the notification that someone has voted

jaunty plank
#

Like a message in a discord server?

void token
#

nope, I wish to reward for it but that part isn't important, just looking for more info or an example on how you specifically interact to catch when someone has voted on your bot page

jaunty plank
#

Thats what webhooks are for ๐Ÿ™‚

void token
#

im not looking to send a message when someone votes

jaunty plank
#

yep, thats what webhooks are fo

void token
#

okay, Is there any examples around for such

jaunty plank
#

Programming language?

void token
jaunty plank
restive otter
sinful gust
#

Convert it

#

Use any of website

robust root
#

Do you want the bot to DM you or what

fiery crown
#

-bgimage

abstract mothBOT
#

topgg The bot page background link is currently broken. We suggest you use CSS for the time being!

topggDotRed Add the following code to your bot description:

<style>
body {
 background: url("INSERT_LINK_HERE");
}
</style>
restive otter
#

@fiery crowngood

calm bough
#

hi

#

My bot has declined for this reason: 'Bot Declined
Bot
ToDo (1322620937509670973)
Reviewer
welper (top.gg profile)
Reason
The prefix you've listed on your bot page seems to not match your bot's actual prefix. Please make sure the prefix you list is correct so we are able to test your bot properly.

Your bot doesn't have a (working) help command or obvious point of entry. Please make sure your bot has a help command or has an explanation in the bot description.'

#

But the prifixes I'v posted right and my bot is working correct and have command help

#

why it decliend for this reason?

#

If need I can send ypu invite of server where bot locatied to see that it works correct

#

When in DM I'm writing my bot.The commands work right

restive otter
#

Completely unrelated to the API

#

DM the reviewer instead ( @silk idol ) and wait some time

calm bough
#

Thanks

calm bough
#

How I can get top.gg API ? What I need to do?

icy laurel
restive otter
calm bough
#

With topgg API can get data for other bots? (i.e the same data which I get for my bot I want it for other bots)

icy laurel
#

My 12k bot went from 12k to 33 servers guys, someone touched the AutoPoster help lmao

icy laurel
#

but u can get other bot's stats with discord api

#

unless a bot is not public, then u cant

calm bough
#

Ok. Thank you

scarlet cobalt
#

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.

icy laurel
# scarlet cobalt One message removed from a suspended account.

I had it written in a certain way since the bot had 1k servers, never touched it , but I fixed it I just added a post request

const guildCount = await abot.shard.broadcastEval(
        bot => bot.guilds.cache.size
      );
      if (abot.config.status === "GLOBAL") {
        axios.post(`https://top.gg/api/bots/${abot.config.id}/stats`, {
          server_count: guildCount
        }, {
          headers: {
            Authorization: 'mykey'
          }``` 
I just cant restart the bot yet, will wait a few days
scarlet cobalt
#

One message removed from a suspended account.

void token
jaunty plank
robust root
# void token nope I will be rewarding users privatley so I only need their userid. Just want ...
token = "YOUR_TOPGG_TOKEN"
client = topgg.DBLClient(YOUR_BOT_OBJECT, token, autopost = True)

webhookman = topgg.WebhookManager(YOUR_BOT_INSTANCE)
webhookman.run(port = YOUR_PORT)

async def on_vote(request):
  try:
    data = await request.json()
    response = web.Response(status = 200, text = "Vote processed successfully.")
    id = data.get("user") #this is the user id  
    #process the vote here
    return response
  except Exception:
    return web.Response(status=500, text="Failed to process vote.")
        
webhookman.webserver.router.add_post(path = "/dblwebhook", handler = on_vote)```
#

replace YOUR_TOPGG_TOKEN, YOUR_BOT_INSTANCE and YOUR_PORT with your stuff

velvet grotto
#

zx

outer kernel
tidal idol
tired hatch
#

Hello
Is there a way when someone votes on the site and using a package make him send a notification in the channel?

dry mantle
vital dove
#

[2025-01-31 11:09:02] [ERROR] root: Failed to fetch Top.gg vote status: Forbidden (status code: 403): You are not allowed to check this bot.

Any ideas for this? Trying to fetch using my API token for my bot to see when a user votes, running into this error.

dry mantle
vital dove
vital dove
#

Tried regening, still giving me the same arrow that I'm not allowed to check the bot with 403

vital dove
dry mantle
vital dove
#

Where do I get my real API token from?

dry mantle
#

it'd be this

vital dove
dry mantle
#

weird then

#

and what are you trying to call to get the votes?

vital dove
#

await self.topgg_client.get_user_vote(user_id)

dry mantle
#

that's to get votes of a specific user for your bot

vital dove
#

then it's just checking true or false and returning those values

dry mantle
vital dove
#

Yeah, if a userID has voted, they get a "mini reward"

dry mantle
#

this is to check example if my user id has voted

vital dove
#
class Upvoted(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.topgg_api_token = os.getenv"TOP_GG_Token"  
        self.topgg_client = topgg.DBLClient(bot, self.topgg_api_token)

    async def check_upvote(self, user_id: int) -> bool:
        try:
            has_voted = await self.topgg_client.get_user_vote(user_id)
            return has_voted  # True if voted, False if not
        except topgg.errors.TopGGException as e:
            logging.error(f"Failed to fetch Top.gg vote status: {e}")
            return False

vital dove
dry mantle
#

sending it manually with my bot works

vital dove
dry mantle
#

curl

#

so try this curl -X GET https://top.gg/api/bots/BotID/check?userId=UserID -H "Accept: application/json" -H "Authorization: Bearer TOP.GG TOKEN"

vital dove
#

LOL

#

I got the fix.. I feel like a moron

dry mantle
#

what was it?

vital dove
#

Simply was using the wrong bot ID where it is in the url.. was using the bots key instead,

dry mantle
#

oof LOL

vital dove
dry mantle
#

np

arctic scarab
#

Hello, is it possible to make a system that notifies the console when a user has voted and which user it is?

restive otter
#

read the conversation just above

restive otter
arctic scarab
robust root
#

Oh wait u use js

#

Nvm

mighty blaze
jaunty plank
#

have you submitted your bot to top.gg?

mighty blaze
jaunty plank
#

what button? ๐Ÿ‘€

mighty blaze
#

"Submit Bot"

mighty blaze
#

was there an error? success?

jaunty plank
#

did you click the checkbox next to the submit bot button?

#

on the left side

jaunty plank
#

Does your long description include html?

mighty blaze
#

it's completely blank

jaunty plank
#

You cant submit bots with empty long descriptions

#

200 characters minimum

mighty blaze
#

how come the API says it can be optional?

mighty blaze
#

just wanna wrap this API

jaunty plank
#

๐Ÿ‘€

mighty blaze
#

ahh

#

it's cuz it doesn't mention on the text box when i first clicked on it

#

no worries

mighty blaze
#

now we wait wait

#

1-2 weeks pain

#

@jaunty plank is there a way to fast-track bots or am i just endlessly stuck in queue for 2 weeks

abstract mothBOT
#

topgg When will my bot be reviewed?

Currently our average bot reviewal time is a few days or more.

Because of this โ€” and because some bots take longer to review than others due to their features โ€” we can't guarantee your bot will be reviewed as quickly as someone else's in the past and we also can't guarantee your bot will be reviewed within that timeframe. There is no exact time for how long bot approval can take. There is no way to check your bot's position in our reviewal queue, but remember you're not first and you're not last!

You may edit your bot's page as much as you like both before and after it's reviewed and this will have no impact on its place in queue.

You can read more about our bot reviewal process in this support article: How the Bot Reviewal Process Works.

topgg_ico_bulb In the meantime, please make sure your bot follows all of our Bot Guidelines for a quick and smooth approval!

jaunty plank
#

bots are reviewed in order

mighty blaze
arctic scarab
#

How can I update my bot's profile picture on topgg?

lapis nest
#

hello ive encountered a problem, could u help me please?

abstract mothBOT
#

topgg The bot page background link is currently broken. We suggest you use CSS for the time being!

topggDotRed Add the following code to your bot description:

<style>
body {
 background: url("INSERT_LINK_HERE");
}
</style>
lapis nest
#

ty

frosty void
#

im trying to use the autoposter but its returning an error "unsupported client", ive looked for similar issues in this channel but i cant get any answers, if someone could help id grealty appreciate it :)

#


   AutoPoster(process.env.TOPGGTOKEN, client).on("posted", () => {
      console.log("Posted stats to Top.gg!");
    });```
#

this is my client

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
    GatewayIntentBits.GuildMembers,
    GatewayIntentBits.GuildMessageReactions,
  ],
  shards: "auto",

});```
dry mantle
#

Read starting here and try the same stuff might work

frosty void
#

hi there woo!

jaunty plank
#

latest djs version? ๐Ÿ‘€

frosty void
#

yep

frosty void
jaunty plank
#

I'll look here in like 5 minutes, maybe our lib is just too far out of date with the djs client.

dry mantle
#

i use discord.js 14.16.3 and the latest of topgg-autoposter without issues personally

jaunty plank
#

are you sharded?

dry mantle
#

unless between v14.16.3 and v14.17.3 had alot of changes

jaunty plank
#

is your client sharded*

dry mantle
jaunty plank
#

Might only be sharded djs clients

frosty void
#

wait im on 14.16.2 im dumb

#

hold on

jaunty plank
#

is your client sharded spoder?

frosty void
#

no

jaunty plank
#

hmm

dry mantle
#

maybe reinstall the packages?

jaunty plank
#

is your client extended? ๐Ÿ‘€

frosty void
#

well dang the new djs version didnt fix it

#

no its not

dry mantle
#

did you maybe try deleting node_modules and rerunning npm i?

jaunty plank
#

Yeah, latest version of each works fine.

#
import { Client, GatewayIntentBits } from 'discord.js'
import { AutoPoster } from 'topgg-autoposter'

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.login("...")

const ap = AutoPoster('...', client)

ap.on('posted', () => {
    console.log('Posted stats to Top.gg!')
})
dry mantle
#

and the exact code they used works for me minus some intents removed cuz my bot has them all disabled in the dev panel

late pebble
#
import { Client, GatewayIntentBits } from 'discord.js'
import { AutoPoster } from 'topgg-autoposter'

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.login("...")

const ap = AutoPoster('...', client)

ap.on('posted', () => {
    console.log('Posted stats to Top.gg!')
})
dry mantle
#

the people having that issue must have something in common either device/os/code itself no?

jaunty plank
#

Yeah, I figured its extended clients. But spoder said theirs isnt.

dry mantle
#

could it possibly be a global install of a package

jaunty plank
#

Anything that would make client not an instance of discordjs would.

hearty warren
#

-_+

jaunty plank
hearty warren
#

Lemme check

#

I can't see token

#

Oh now It woked

#

Randomly

mighty blaze
#

i'm currently trying to wrap top.gg's API and i'm wondering how exactly the webhook stuff is supposed to work, and also the updating server and shard counts, because they're not covered in the docs.

am i forced to just view the source code for the existing topggpy?

#

what confuses me is why would it not be in docs?

mighty blaze
#

and is there a sort of empty request that can be used to check if a token is valid or not?

robust root
# mighty blaze oh wow. what about the webhook stuff for when a user has voted for you?
#import topgg
token = "YOUR_TOPGG_TOKEN"
client = topgg.DBLClient(YOUR_BOT_OBJECT, token, autopost = True)

webhookman = topgg.WebhookManager(YOUR_BOT_OBJECT)
webhookman.run(port = YOUR_PORT)

async def on_vote(request):
  try:
    data = await request.json()
    response = web.Response(status = 200, text = "Vote processed successfully.")
    id = data.get("user") #discord userID of the person who voted
    #process the vote here
    return response
  except Exception:
    return web.Response(status=500, text="Failed to process vote.")
        
webhookman.webserver.router.add_post(path = "/dblwebhook", handler = on_vote)```
#

this is what I do

mighty blaze
#

was hoping to catch the issue before runtime

robust root
#

what token r u talking bout

mighty blaze
robust root
mighty blaze
#

i want to wrap it myself, not copy the existing one

mighty blaze
mighty blaze
#

the one you use for requests

robust root
#

i tried following the docs and it didnt even work even when i copied code straight from the docs

robust root
mighty blaze
#

i'll just send a dummy request, why not joeshrug

robust root
#

this token ur talking about?

mighty blaze
robust root
#

reset it once, copy it into ur code then forget about it

#

unless u touch that reset button ur fine buddy

winter glacier
#

๐Ÿ™„

robust root
#

no need for extra code

#

trust ur gut ๐Ÿ˜„

#

btw its funni how discord dev page doesnt have a button to reveal the token dumb ahh move by me frfr

robust root
#

why here

dry mantle
#

for "security purpose"

robust root
#

thats y i crossed it out

dry mantle
#

ahh

silk idol
mighty blaze
robust root
#

buddy suspecting his own work ๐Ÿ˜ญ

robust root
silk idol
dry mantle
#

you forgot this is the internet and even more dumb people lol

silk idol
dry mantle
#

lol

robust root
#

i wonder how bad gen beta will be

jaunty plank
#

(I'm not sure what super means the docs don't work, I think he means the py library example didn't work for him)

mighty blaze
jaunty plank
#

V1 doesn't exist

#

We're on v0 of the api

mighty blaze
#

ok thanks woo

unborn sun
#

Can any1 send me rumble bot invite

silk idol
abstract mothBOT
#

@unborn sun

topgg To find a bot that you need, please try searching for it on our website.

You may need to refine your search term, but with just a little effort you can find the bot that you need. Read our Quick Start Guide to Top.gg support article for more information on how to best use our search.

If you still haven't found a bot that suits your needs, then try searching on Google for it.

unborn sun
mighty blaze
#

does anyone know how to get your user ID?

silk idol
mighty blaze
#

even with authorization it doesnt say anything

mighty blaze
#

didnt get anything either

#

i'll try it again later

mighty blaze
#

nope

#

@willow sphinx

willow sphinx
#

?

mighty blaze
#

huh.. strange

willow sphinx
#

yeah

mighty blaze
#

oh my bad

#

i was tryna figure out how the /users/:user_id endpoint works

#

cuz my user ID doesn't work with it, despite me having a top.gg account

#

dude wtf

mighty blaze
# willow sphinx yeah

xetera, since you're available (i'm guessing), do you know why my user ID doesn't work with the API?

#

you'd probably know more about this than i do, considering you probably helped make the platform

willow sphinx
#

I don't really know, I can't remember how that system works

mighty blaze
#

do you know who does?

jaunty plank
#

๐Ÿ‘€ Thats intresting

#

A lot of users are not available from the api

#

The API for users just seems extremely out of date @mighty blaze

#

My bio via the API is really really old.

mighty blaze
#

i saw the repo was last available for like python 3.9

dapper copper
#

its also the same time the bot owner disparity in the api happened

jaunty plank
#

Yeah, that sounds right.

mighty blaze
dapper copper
#

We've had a numerous amount of issues with user data on topstats (aka dblstats)

#

though as far as I know it's a WIP on fixes

mighty blaze
dapper copper
#

Nah it wasnt

#

Veld recently came back into ownership. So it should get fixed this year

dapper copper
#

Just give it time

mighty blaze
#

will the docs get updated for the webhook stuff?

#

and could you explain how that works for me?

dapper copper
#

What specifically?

#

Oh I know why your discordID doesnt work. Top.gg uses their own ID system now afaik too

#

so it's likely down to that

#

Where you can do to top.gg/user/:discord_id is likely doesnt work with the api

mighty blaze
dapper copper
#

They send you web request to the webhook you setup

#

cc @jaunty plank you likely have more context on this considering the app you host

jaunty plank
jaunty plank
mighty blaze
jaunty plank
#

json

mighty blaze
#

or what the webhook is even supposed to look like

mighty blaze
robust root
mighty blaze
#

like how Bot is documented

jaunty plank
#

Its a snowflake

#

(discord ID)

mighty blaze
#

and how do you setup a webhook for yourself?

jaunty plank
#

you host the http server on whatever port and path you want, then top.gg sends the request to that endpoint.

#

I'd do some research on webhooks itself before working with top.gg webhooks specifically.

mighty blaze
#

seems pretty neat

#

how do you test vote too?

robust root
robust root
mighty blaze
robust root
#

Oh wait

#

Im not sure if u need a port opened to be able to receive requests

dusty panther
#

..

robust root
jaunty plank
dry mantle
mighty blaze
#

dumb question but i wanna make sure i get this right

dry mantle
#

with cloudflare tunnel you just need to run the agent on the device and then you need a domain and set it up in there

mighty blaze
#

and im not using the tunnel

#

how can i do it just straight up?

dry mantle
#

for cloudflare tunnel you go here https://one.dash.cloudflare.com/
then click Networks => Tunnels
then Create a tunnel
then click Select Cloudflared
give it a name then save tunnel
then it tells you how to install it
so you do that then click next
and then there you give it a domain/sub domain
and for service it'd be http with localhost:whatever port you set

jaunty plank
dry mantle
#

true

#

i think with the agent installed you can also do it in console and be assigned a random cloudflare subdomain unless that stopped

dry mantle
#

then what you can do is open a port in your router but only do so if you REALLY know what you're doing

#

cuz you'll need to set some fancy rules so only top.gg can access it

mighty blaze
#

tell me more farm_vcatthink

jaunty plank
mighty blaze
jaunty plank
#

I dont think that works in this case.

#

I think thats more for 2 devices you own, this is the top.gg servers sending you a request.

mighty blaze
#

just for reference, what do i do after port forwarding?

jaunty plank
jaunty plank
#

Then fill out your URL and auth on top.gg and send a test ^-^

#

You can fill it out on your bot page > edit > webhooks

mighty blaze
mighty blaze
#

is this section of the API ever used?

#

i can't think of a place where this would be used

jaunty plank
#

We used to list servers too not just bots

mighty blaze
jaunty plank
#

Nope

opal solar
#

Guys, I switched from axios to another http client and now I'm constantly getting 400: Bad Request errors. Any idea why?
What is needed when updating the guild count? Below you can see my not updated request.

await ky.post(process.env.TOPGG_API_STATS_URI, {
    headers: { Authorization: process.env.TOPGG_TOKEN },
    body: JSON.stringify({ server_count: guildCount }),
    });
#

Used route is: https://top.gg/api/bots/1082707872565182614/stats

arctic scarab
#

Is there a way to check if a user has voted in the bot or not with a command?

opal solar
mighty blaze
#

how does the /bots searching endpoint work?

#

my code for wrapping that is this:

class Client:
    ...

    async def search_bots(
        self,
        *,
        limit: int = 50,
        offset: int = 0,
        search: Params,

        sort_by: str | None = None,
        reverse_sort: bool = False
    ) -> list[Bot]:
        """
        Search for bots in the Top.gg API
        """
        
        if not 1 <= limit <= 500:
            raise InvalidInputError("limit cannot exceed the range 1-500 inclusive.")

        params = {
            "limit": str(limit),
            "offset": str(offset),
            "search": ' '.join(f'{k}: {v}' for k, v in search.items())
        }

        if sort_by:
            params |= {
                "sort": f"{'-' if reverse_sort else ''}{sort_by}"
            }
        
        _, json = await self.http.make_request(
            "/bots",
            params = params
        )

        bots_found: list[Bot] = []

        for raw_bot_json in json["results"]:
            JSONCleaner.clean_bot_json(raw_bot_json)

            bots_found.append(Bot(**raw_bot_json))
        
        return bots_found

but for some reason, i always get the same values every time, no matter what i put in the search kwarg: ```py
async def main():
client = Client(open("token.txt").read())

bots = await client.search_bots(
    limit = 3,
    search = {
        "name": "HydraBot"
    }
)

print([bot.name for bot in bots])

this just returns `['HydraBot', 'BotGoPvP', 'Discord Fireman']`
#

it keeps returning that, no matter the data i put into search

jaunty plank
#

IIRC bots endpoint hasnt worked for a long time either.

#

Most of the api endpoints never got used by anyone, so they never got updated.

mighty blaze
#

thanks woo

trail kelp
#

Is there a python github project that works with py-cord ?

#

The official python package also install discord.py, which mess up my bot

robust root
restive otter
restive otter
robust root
restive otter
#

That's a downside I'm not a fan of since the beginning, forcing users to use a library

robust root
#

Does it enforce dpy

restive otter
robust root
#

Oh

#

Well that sucks

#

Luckily i use dpy

restive otter
#

Not a fan of that, I remember the C++ library that was also enforcing D++ or something

#

Maybe that changed in-between but don't know

#

Enforcing a lib is just bad

robust root
#

Didnt even know the enforcement exists

restive otter
#

ehm actually they removed that enforcement in the py library lmao

#

Just never got updated on PyPi

#

awesome

mighty blaze
restive otter
#
pip install topggpy==2.0.0a0
#

That version is just dependent on aiohttp

trail kelp
#

Otherwise will probably just do the http requests

trail kelp
restive otter
#

there was 1.4.0 then everything else is in 2.0.0a0 i guess

trail kelp
#

I see perfect ! But and the library is no longer dependent on discord.py right ?

restive otter
#

just some specific range of aiohttp

autumn cipher
mighty blaze
#

when does top.gg clear user votes?

mighty blaze
tidal idol
mighty blaze
#

i meant user-specific

restive otter
mighty blaze
#

is it reset at 00:00 UTC+X or is it reset after 24h from the vote

tidal idol
#

oh

#

12 hours after the vote

#

users can vote every 12 hours

mighty blaze
mighty blaze
restive otter
#

I mean, there's not many things you can do

mighty blaze
restive otter
#

The thing is that "it works"

#

Should rather maintain the currently existing one

autumn cipher
silk idol
abstract mothBOT
#

@autumn cipher

Your question is likely answered by one of pinned messages.
Please take time to read the pinned messages by clicking on this icon.

autumn cipher
jaunty plank
plain hamlet
#

Get log of reviews, it's possible?

restive otter
#

no

silk idol
gaunt jungle
#

Is there any way to get the time remaining of a user to get the next vote using the api?

#

Or any way to check when was the last time they voted

jaunty plank
#

Top.gg doesnt provide that info

gaunt jungle
#

Oh okay

plain hamlet
robust root
plain hamlet
zealous kernel
#

I have one issue of vote thing I had completed the vote but it is not showing and not give pkc

robust root
trail kelp
#

can you get a test token for top.gg api ?

#

I don't see any ways to not use the real token

vital anvil
#

hi <@&412346069675147264>,

the V0 api will have some potentially breaking changes with the rewrite. As we're getting close to launching I figured I'd share these with you.

What changes

/api/bots

  • sort no longer allows every parameter, by default descending is enabled, and you can no longer sort ascending.
  • sort only allows the follow inputs: monthlyPoints, id, date
  • the following response fields are removed: defAvatar, discriminator
  • the following response fields are only returning empty values: lib, guilds, shards, shard_count, certifiedBot
  • the following response fields are added reviews.averageScore: Int, reviews.count: Int.

/api/bots/:id/stats

  • no changes

/api/bots/:id/check

  • no changes

/api/bots/:id/votes

  • the 1000 votes limit is lifted, however by default we only return 100 per page.
  • a new page parameter is introduced.
  • votes are sorted by time voted.

Important to know -- these changes are not live yet, but once we move to the rewrite this is what will change. If any library has any issue with this, please let me know and we can make it work before we go live.

dapper copper
vital anvil
#

most likely next week

dapper copper
#

๐Ÿ‘Œ I'll prep now tbh

vital anvil
#

consider this your heads up haha

dapper copper
#

Uhhh, will shards will still have a value if posted right?

vital anvil
#

no

#

empty value

mighty shuttle
#

Shards bye bye

dapper copper
#

welp

vital anvil
#

so for shards, it'll be [] and for shard_count it'll be 0

dapper copper
#

guilds too?

vital anvil
#

guilds is an array of servers the bot is in

#

server_count still exists

dapper copper
#

Oh ok

#

๐Ÿ‘

#

so shards are nuked

vital anvil
#

while we still allow people to update them

#

i want to stop doing so

#

not something we really can do anything with as a platform

dapper copper
#

All good, good to know

#

more useless metric for us too tbf

vital anvil
#

yea

mighty shuttle
#

Any new values shown with update?

vital anvil
#

no

mighty shuttle
#

๐Ÿ‘ thanks

vital anvil
#

anything u may want?

#

if its easy i can add it

dapper copper
#

Review count and average review stars if possible? Would be a displayable metric and also gives a general idea on how well a bot is liked

vital anvil
#

yea fuck it i can do that

dapper copper
#

Legend

mighty shuttle
#

@vital anvil Is it possible to get the counts for each type of review given? (if not ofc all good)
5 stars: 1000 reviews given
4 stars: 200 reviews given
... etc

vital anvil
#

no

#

don't push your luck

mighty shuttle
#

zoomeyes ofc ofc

#

ty tho this is sick

vital anvil
#

ye gotchu

woven coral
#

hi @silk idol

#

i don't feel like using warnings.warn('this is now deprecated', DeprecationWarning) everywhere so i think i'm just gonna delete them outright

#

btw is posting shard ID and/or shard count no longer supported?

vital anvil
woven coral
#

oh okay

#

@vital anvil is certifiedDev also getting deprecated?

vital anvil
#

Yeah

woven coral
#

icic

woven coral
alpine horizon
#

Hi, I wanted to set up the webhook for votes on my bot and I wanted to know if it was possible to test the webhook with โ€˜test votesโ€™?

dapper copper
alpine horizon
#

Thanks !

dapper copper
#

No problem ๐Ÿ˜„

woven coral
dapper copper
vestal wasp
#

should we bot devs stop posting shard counts?

dapper copper
jaunty plank
#

Hopefully that will be handled gracefully, ie it wont error when its still included.

vestal wasp
#

would be cool to get a field for user installs though

dapper copper
jaunty plank
#

Ah

vital anvil
woven coral
vital anvil
woven coral
#

but it's not displayed in the API?

woven coral
#

because if so, we have a lot of deprecated in our hands lol

dapper copper
vital anvil
#

oh i haven't

scarlet bloom
#

Hello everyone!! ๐Ÿ™Œ๐Ÿ™Œ,, i hope y'all are doing great.

vital anvil
#

To sort by id

woven coral
#

but like

#

what's the point lmao

scarlet cobalt
woven coral
scarlet cobalt
#

One message removed from a suspended account.

#

One message removed from a suspended account.

woven coral
vagrant rune
#

What to do if I cant open top.gg on my safari browser send me a dm if u can help

plain hamlet
jaunty plank
vagrant rune
jaunty plank
#

Hopefully within a few hours.

vagrant rune
vagrant rune
jaunty plank
#

closer to hours than months ^-^

vital anvil
#

we're back

novel yoke
#

since 2-3 mins i am trying

vital anvil
#

I'll take a look when I can

#

It was expected there would be bugs

novel yoke
halcyon solstice
#

hi

plain hamlet
# plain hamlet

@vital anvil sorry for the ping, still not fixed see the image

vital anvil
#

clear your ssl cache

tidal dock
vital anvil
plain hamlet
vital anvil
#

Clear your ssl cache

#

We needed to swap ssl certificate

woven coral
#

hai veld, is it me or does https://top.gg/api/users/661200758510977084 always return 404?

#

or does it only accept Top.gg IDs?

#

i recently realized that clientid always equates to the discord ID, while id sometimes vary between the bot's discord ID and top.gg ID

#

cc @vital anvil

vital anvil
#

clientid = application id

#

id = user id

#

that's normal

woven coral
#

user id?

#

what's the difference?

#

also what caused this

#

it's already POST ๐Ÿ˜ญ

#

also
GET https://top.gg/api/bots/stats gives { message: 'Bot not found' }

GET https://top.gg/api/bots/1026525568344264724/stats gives { message: 'Not found' }

vital anvil
#

Im fixing a bug there now

woven coral
#

i already did

vital anvil
#

ok cool

#

deploying the fix now

woven coral
#

is it deployed now

vital anvil
#

still deploying

#

sorry the build broke peepoCoffee

#

its done building native stuff now

#

it's generating the webserver now

woven coral
vital anvil
#

users api ded

woven coral
#

WHAT

vital anvil
#

gonezo

woven coral
#

wait you're intentionally removing it from the API altogether?

vital anvil
#

yea i kinda forgot about it

#

that's why the route alltogether was not mentioend tears

#

is it used for anything actually?

woven coral
mighty shuttle
#

users bye bye

#

are total votes back :^)

woven coral
#

for their idk 195th command

runic hearth
vital anvil
#

not yet

vital anvil
#

ah, for lists, yes.

woven coral
#

if you plan on removing users i'll remove it from the sdks

vital anvil
vital anvil
#

i can't really think of anything useful for the users endpoint that would be an amazing feature

#

bots i can get

woven coral
#

what about teams?

vital anvil
#

api v1

woven coral
#

alrighty

vital anvil
#

no point updating api v0 and then dropping it a week later

woven coral
vital anvil
#

yea sounds good

woven coral
#

alright

#

is it coming back in v1?

vital anvil
#

thanks!

#

unsure, not really sure what to do with it other than data crawl discord users

#

which... i kinda wanna avoid

woven coral
#

yeah

vital anvil
#

owners/team members sure

#

also i will not expose discord IDs by default in api v1

woven coral
#

maybe their banner and bio? who knows if you wanna add more things to user's profiles in the future

vestal wasp
vital anvil
#

you can use the graphql api until api v1

#

probably better data quality in there anyways

vestal wasp
#

nvm I used to use the dblstats api

runic hearth
vital anvil
#

seems fine?

runic hearth
#

for me : no

vital anvil
#

ah odd

#

I'll take a look when i can

vestal wasp
#

so is the vote change thingy already 'set into stone'?

woven coral
#

@vital anvil fire

mighty shuttle
woven coral
#

testing in production ๐ŸคŒ

vestal wasp
#

reminds me of another site from few days ago

vital anvil
#

actual fire

#

there's so many sneaky bugs that popped up

#

gimme a break lol

dapper copper
#

Would have been useful for getting the user data that we display

#

rather than forcing users to login to topstats rofl (I'm being sarcastic dw)

dapper copper
#

@vital anvil is there by any chance you can give us legacyid in the api response for bot?

#

because something the client id =/= bot id

#

and we have no way of actively tracking that now

vital anvil
#

?

#

bot id = discord id

#

client id = discord application id

dapper copper
#

not always

vital anvil
#

what do you mean not always

dapper copper
#

I mean, for some reason dyno isnt being tracked

#

and we have 3 different ids for it

#

161660517914509312
155149108183695360
then we have its top.gg id

vital anvil
#

second = discord id

#

first = discord application id

#

i can double check

dapper copper
#

We dont get discord id in the api

#

just id: which is top.gg id I assume

#

and clientid

vital anvil
#

oh

#

yea it should be discord id

dapper copper
#

you able to add it by chance?

vital anvil
#

pushed fix

#

just replaced it

#

top.gg id shouldn't be there yet

dapper copper
#

okay thanks

#

Im still gonna need the discord is but I assume thats gonna be under discordid in the future

vital anvil
#

id = discord id

#

client id = discord application id

dapper copper
#

Yea I meant when topgg id comes in

#

thanks for sorting it

vital anvil
#

we'll get there when we get there

dapper copper
#

๐Ÿ‘Œ

vestal wasp
#

why does topgg even have separate ids. I know that other platforms than discord were planned but still

vital anvil
#

so we dont need to rely on multiple indices on majority of the querying

cloud lantern
#

Hi
Auto poster is not working it show's 405 method not allowed

vestal wasp
#

scroll up

plain hamlet
vestal wasp
#

it's an issue on the server, you cannot fix it

#

you can just wait

tidal dock
vital anvil
#

once the site is stable, I'll look at the api

rose briar
#

i also have same problem it happens today.

restive otter
#

yeah because for some reason the library makes a post request to /bots/stats instead of bots/:id/stats

#

testing 101

restive otter
rose briar
#

it been working for years it happen today

#

i think the library working well or need updates idk

restive otter
#

there's a pr to update it, though will take some time

rose briar
#

can u send me link of it

restive otter
#

@woven coral missing bot id in the url?

    async def post_guild_count(self, guild_count: Optional[int]) -> None:
        """Posts bot's guild count on Top.gg."""
        await self.request("POST", "/bots/stats", json={"server_count": guild_count})
restive otter
#

eh, leads to 405s?

woven coral
#

you could POST /bots/stats and it would be the same as POST /bots/{id based on top.gg api token}/stats

#

besides you can't do /bots/{any other id}/stats

restive otter
#

so it will use the current auth token to post the bot id's stats?

woven coral
restive otter
woven coral
#

but now the endpoint currently doesn't work

#

i'll have to wait for veld on that

restive otter
#

okayokay

woven coral
#

@restive otter at the moment, the following endpoints do not work:

GET /users/{id}
GET /bots/{id}/stats
POST /bots/{id}/stats
#

@rose briar too

#

also kyla i think you're using an outdated version of our library

#

the one on pypi hasn't been updated since november 2021

jaunty plank
woven coral
#

fyi i'm currently removing get_user from all of the sdks i maintain

jaunty plank
#

get user was out of date anyway. the data in that database wasnt updated for years.

dapper copper
#

Putting this here too, /api/bots endpoint is broke - I know it's not top prio, just pointing this out

#

I'm only able to fetch 22005 bots

vital oak
#

why this eror

jaunty plank
midnight grove
#

ID is 779311078412255242 just in case

hushed heron
#

It's server stats posting broken? i get "Internal Server Error"

restive otter
restive otter
tidal dock
#

i still see this error @signal hawk

#

TopGGAPIError: 405 Method Not Allowed it auto bypass vote req

vital oak
restive otter
restive otter
fast elm
#

Hello ๐Ÿ‘‹
when sending stats to bots/:bot_id/stats endpoint it returns an Internal Server Error

rose briar
#

It's known issue

quasi gate
#

TopGGAPIError: 405 Method Not Allowed

gusty locust
gritty hemlock
#

When I try to regenerate the token it tells me that it has regenerated it but it always gives me the same one

raven plume
vestal wasp
#

everyone has it

quasi gate
novel laurel
#

lol

#

i thought it was just a skill issue on my part for using an ancient version of autoposter library