#dev-contrib

1 messages · Page 108 of 1

green oriole
#

If Github was old enough

dusky shoreBOT
sleek steppe
#

You'd make a new PR

clever wraith
#

nhnhhnhnn

#

!rank

clever wraith
#

if you want i can give you push access

vocal prairie
#

Out of curiosity, what db does Modmail use?

vocal wolf
fallen patrol
#

oh lol hello

vocal wolf
#

(we don't own modmail, but we're made modifications)

vocal prairie
#

It might take some setup

#

But it's possible

sleek steppe
#

Why though?

vocal prairie
#

idk

vocal wolf
#

ah, didn't know

#

ty

vocal prairie
#

I thought maybe, since things in PyDis seem to use Redis or Postgres

fallen patrol
#

yeah but who wants to write their own bot for modmail when you can get one that just crashes sometimes

vocal prairie
#

Nice save

sullen phoenix
#

we use postgres, redis, and mongo

short snow
#

bump

clever wraith
#

whag is sir lancebot’s prefix

#

@dusky shore

#

.

#

thanks

#

i keep thinking about fun commands that are simple and easy to add

vocal prairie
#

You can always check out Sir Lancebot's source if you're curious about it

clever wraith
#

hah

vocal prairie
clever wraith
#

thx

#

152 forks looking

#
>>> Me: .say Hello I am Sir LanceBot
>>> *Sir Lancebot deletes the message*
>>> Sir LanceBot: Hello I am Sir Lancebot```
#

would this command be a cool one?

vocal prairie
clever wraith
#

which is why regex is exist! filtering go brrr

fallen patrol
#

@vocal wolf i think i actually found a modmail bug and that might be what happened lol

sharp timber
#

Speak

vocal wolf
#

lmfao

fallen patrol
#

i already told you bast lol

#

race condition

#

since i didn't get a close message

sharp timber
#

That's not always guaranteed, we can silently close channels

#

yours wasn't, though, which is interesting

fallen patrol
#

well

#

yeah

#

like

#

i didn't get a close message but 6 seconds before i had gotten a message from a moderator

#

and i think that was followed by a close command
i assume this
that's what it seemed like

#

so i wonder if my channel was deleted but not fully closed on the other end so it was trying to relay the message i sent but did not relay it

#

because there was no channel or record

keen valley
#

What does that mean

short snow
#

It's a list of public objects of that module, as interpreted by import *. It overrides the default of hiding everything that begins with an underscore.

keen valley
#

So that file is acting as a module

short snow
#

all files act as a module

fallen patrol
short snow
#

A module is basically python is the code written inside the file

#

the regex module, the typing module, they all are just files

fallen patrol
#

But

#

Why is init.py needed in every bot folder even if it is empty

green oriole
#

Because that's how Python work

#

You need an __init__.py file in importable modules, even if it is empty

fallen patrol
#

Wut but

#

I import my bot

#

from bot import Bot

#

It works fine

green oriole
short snow
#

"8s 8t"?

fallen patrol
fallen patrol
gritty wind
#

If you don’t have an init, you’re importing the file itself, not the folder

clever wraith
#

ok

remote abyss
sleek steppe
#

You want api.html

remote abyss
#

Ok sure

sleek steppe
#

Oh that's what you mean

remote abyss
#

Point is how to make the docs command find it 😅

sleek steppe
#

It's something about there not being a symbol for it

remote abyss
#

Poo

#

I have to paste that link like every day lol

#

I usually use commands.html though because it actually explains how to use it with examples

brazen charm
#

The command relies on the docs exposing the necessary symbols and providing tags to go off of in the html, in the case of that page there seem to be a few symbols around it for the sections or for the page itself. So for example you can do this but the names for things outside of normal objects aren't very discoverable to the users

#

!d ext_commands_commands

stable mountainBOT
#

Commands

One of the most appealing aspect of the command extension is how easy it is to define commands and how you can arbitrarily nest groups and commands to have a rich sub-command system.

Commands are defined by attaching it to a regular Python function. The command is then invoked by the user using a similar signature to the Python function.

For example, in the given command definition:

@bot.command()
async def foo(ctx, arg):
    await ctx.send(arg)
```...
stable mountainBOT
#

class discord.ext.commands.Command(func, **kwargs)```
A class that implements the protocol for a bot text command.

These are not created manually, instead they are created via the decorator or functional interface.
remote abyss
#

👍 thx

brazen charm
#

THe page is also behind discord/ext/commands or something like that but because it leads to the top of the page iteslf instead of a specific tag I don't think it parses any content out of it

vocal wolf
#

@brazen charm heh, nice.

#

Thank you again for the docs PR btw, feels so much better to work with these days.

vocal prairie
#

I love my diff on the site repo

sleek steppe
#

1 ++ 1 --?

vocal prairie
#

Yes

#

Because it's even

sleek steppe
#

we're not looking at this though

vocal prairie
#

:o

#

That's nice

clever wraith
#

Hello, I'm trying to solve an issue for the upcoming Advent of Code and I'm having some trouble setting up the AOC calendar so I can test it. It requires a session cookie / join code which I do not have access to.

clever wraith
#

I'm a bit late but... 😓

thorny obsidian
#

@sullen phoenix you around? Is your session cookie for your leaderboard still up?

sullen phoenix
#

yeah, here's my leaderboard's join code: 645282-edc03cc8

thorny obsidian
#

Could you send the session cookie to Lepto? I want to make sure we're still testing for multiple leaderboards~

sullen phoenix
#

you you can get your own session cookie by logging into the AoC site and looking at the cookies, Lepto

thorny obsidian
#

ah shweet, thanks

sullen phoenix
#

no problemo

#

you also have to join the leaderboard yourself, i think

clever wraith
#

I don't believe I'm in the leaderboard

#

kutie sent me the stuffs though ! thanks anyway 😅

short snow
#

sir-lancebot#614 , sir-lancebot#618 , sir-lancebot#605 , sir-lancebot#649 and sir-lancebot#649

all of them need one approval each, if anyone has got sometime lemon_long

short snow
#

whoops, it is 649, not 615

whole forge
#

@short snow re: wtf python
your comment on the issue implies that the command was meant to show the actual explanation/code.

Should I make use of the line pagination here, since some examples are really big. For example the walrus operator example.
any reason this is not part of the PR? was there a discussion/context that im missing?

short snow
#

yeah it was, lemme get the link

#

me and scal decided on that

#

somewhere in this chat

whole forge
#

@short snow so it wasn't implemented because you couldn't think of a good way to do it, not because it was specifically decided against?

#

if thats the case, i would have some ideas

short snow
#

i can look into implementing

whole forge
#

is there any markdown parser library alredy installed in sirlancebot? if so, use that

short snow
#

none are installed as of now

balmy sparrow
#

"You can get information about the Pride Leader on the Wikipedia command"
(from the pride leaders command) if the wikipedia command can do this why even have a separate command?

short snow
#

to specifically showcase notable LGBTQ+ community leaders active in the tech industry

balmy sparrow
#

🤔 fair enough

short snow
#

laundmo which markdown parser would be good? there are many and dunno which would be the best

whole forge
# short snow none are installed as of now

in that case there a a few things to note about the markdown:

  • all example blocks start with <!-- Example ID: 11111-1111-111-111111 --->
  • all example blocks end with a line containing 💡 Explanation
  • the last actual wtf block ends before ### ▶ Minor Ones

i would suggest searching for the header and after that the example id, and including everything until the explanation block on the first page (if that alaways fits) and the explanation etc on following pages

whole forge
short snow
#

so the regex would fail

#

the pattern doesn't maintain consistency

#

dunno if mistune would be able to parse it correctly i will still give it a try

#

got the latest version

#

installed with -U

whole forge
#

carful: do you have v1 or v2? the docs i sent are for Release v2.0.0rc1.

short snow
#

i tried installing that, but it said couldn't find the version

#

fails with pipenv and pip

whole forge
#

@short snow you installed the v1 version which is default when running pip install mistune but the docs are for v2
you need to specify the version when pip installing, as the docs say

short snow
#

i missed the c after r, 😛

whole forge
#

ah

short snow
#

this looks nice, it might work, i will play around with it a bit more and commit the changes

placid ermine
#

(latex unload)

short snow
#

<@&267628507062992896> this

vale ibex
#

!c unload latex

stable mountainBOT
#

:x: Could not find the extension latex.

vale ibex
#

!c unload Latex

stable mountainBOT
#

:x: Could not find the extension latex.

thorny obsidian
#

.etx unload latex

vale ibex
#

🤔

short snow
#

.c unload latex

thorny obsidian
#

.ext unload latex

dusky shoreBOT
#

:ok_hand: Extension successfully unloaded: bot.exts.evergreen.latex.

thorny obsidian
#

I can't spell

vale ibex
#

oh lol it's lance

#

ofc

short snow
#

and we should block it from working in dms

thorny obsidian
#

I blame this headache though

short snow
#

i did one of that reload

vocal prairie
#

What's !c?

vale ibex
#

It's an alias of extensions

#

!help c

vocal prairie
#

Got it

stable mountainBOT
#
Command Help

!extensions
Can also use: c, cogs, ext, exts

Load, unload, reload, and list loaded extensions.

Subcommands:

!extensions list
Get a list of all extensions, including their loaded status.
!extensions load [extensions...]
Load extensions given their fully qualified or unqualified names.
!extensions reload [extensions...]
Reload extensions given their fully qualified or unqualified names.
!extensions unload [extensions...]
Unload currently loaded extensions given their fully qualified or unqualified names.

vale ibex
#

What's with the 3 reloads lol?

gritty wind
#

Latex command raises lance to the mem limit

thorny obsidian
#

People fucking with the latex command in offtopic

vale ibex
#

ahhhh

placid ermine
#

totally not me who started

#

nope

vale ibex
#

can we just rip out the setup function until it's fixed?

gritty wind
#

Or leave your thoughts on persistence for cog unloads

#

That’s

#

A solution

short snow
placid ermine
#

what was the last decision on the latex command

#

is a local installation feasible?

gritty wind
#

And to answer your question

#

No

#

It should throw an error without it

vale ibex
#

I had a lazy look on the two repos and couldn't see it

gritty wind
placid ermine
#

O

vocal prairie
#

Rather hacky, but can't you just remove/comment that cog out for a while?

gritty wind
vale ibex
#

I'll find it

#

was looking for PRs tbh lol

thorny obsidian
#

I think the next step for this is honestly a local install.

vocal prairie
#

sir-lancebot#705

dusky shoreBOT
vale ibex
placid ermine
#

noob question incoming: how would you install latex locally

#

its not like

#

you just open up google chrome and click on the download link lol

vocal prairie
vale ibex
#

We could prefix the filename with _

thorny obsidian
vale ibex
#

Isn't there possible security risks allowing latex to be ran?

#

IE similar to eval

thorny obsidian
#

I think we can restrict it... I think the setting is called paranoid? The only thing we'd have to check for is making sure we handle when someone tries to get it to loop forever or other silly stuff

#

what "thing" are you referring to? is there an issue for it?

vocal prairie
thorny obsidian
#

Is there an issue for this problem?

vocal prairie
#

That was implemented, was it not?

thorny obsidian
#

Yes, on the repo where we track issues and PRs for the issues.

stable mountainBOT
#

pydis_site/hosts.py lines 4 to 8

host_patterns = patterns(
    '',
    host(r'admin', 'pydis_site.apps.admin.urls', name="admin"),
    # External API ingress (over the net)
    host(r'api', 'pydis_site.apps.api.urls', name='api'),```
thorny obsidian
#

Well, the correct process here would be to make an issue on the repo so we can discuss it. Once it's approved and assigned to you, then you can start working on it.

sleek steppe
#

github, gitlab, gists, and something else I think

vocal prairie
thorny obsidian
vocal prairie
short snow
#

it does send already?

vocal prairie
thorny obsidian
#

A core dev will review it and if you'd like to contribute to the fix, a core dev will assign you

short snow
#

in:channel

#

yes it is easier for coredevs to review the issue then

thorny obsidian
#

from: <your name> in: <channel name> in discord search
And yes, info is appreciated to make communication easier

thorny obsidian
#

If you can't document the error then we can't exactly know what to fix

vocal prairie
#

So you want to limit the number of lines?

gritty wind
#

Yes

thorny obsidian
gritty wind
#

For a bug, you want to provide whatever you think will help people find and fix the issue. Usually things like description, causes, reproduction steps, etc

#

But this is a simple fix, so nothing needed really beyond description

#

I plan on porting over the templates to more of our projects, but we will have a dev meeting at some point first

#

Cc: @vocal wolf

thorny obsidian
#

Not yet, the fix is being reviewed

vocal wolf
#

we need a dev meeting, yes

gritty wind
#

If someone is already assigned, no

#

Unless you ask to work with them and get assigned

#

But it seems like the code is already written

placid ermine
#

So
do I PR a latex command which uses the local installation

#

and

#

do I have to open issue

vocal prairie
patent pivot
#

hmm

#

theoreticlly we'd just install it in the docker image

#

we could maybe cache on the host

sleek steppe
#

For bot#1547, is this good for the embed?

dusky shoreBOT
green oriole
#

Not sure about the checkmark, it should use ✅ but overall that's pretty good

vocal prairie
#

I'm pretty sure that check is the pfp part of the footer, right?

sleek steppe
#

The icon_url

#

I wasn't sure if this looked better

fallen patrol
#

yeah

fallen patrol
green oriole
#

Oh hmmm

sleek steppe
fallen patrol
#

why is it named questionmark

green oriole
#

Could we just plug the CDN url for the built-in emoji?

green oriole
#

But that's not the Discord version of this, is it

fallen patrol
#

oh

green oriole
#

Yeah, this exact one

fallen patrol
#

but that's an svg and iirc they don't take svgs

fervent sage
#

issue is the image urls dont ^

green oriole
#

Aaahh discord, consistency at its finest

#

Hmm couldn't you link it from the twemoji repo?

fallen patrol
fallen patrol
green oriole
#

Well, if we use the link we should store it as a constant

sleek steppe
#

New constant?

fallen patrol
#

why does it need to use something new?

#

a constant already exists

green oriole
#

I'm not too sure where this constant is from but it looks pretty bad in comparison to the other emojis

sleek steppe
#

Should I just replace this

fallen patrol
#

how does that look bad?

#

aside from the role colors

green oriole
#

Hmmmm

#

I remember they were for something

fallen patrol
#

it can't be reused?

green oriole
#

It doesn't really fit the Discord emojis if you ask me here

fallen patrol
#

although ngl the constant has a pretty bad name Icons.green_questionmark
that's a checkmark.

stable mountainBOT
#

bot/exts/help_channels/_message.py line 112

embed.set_thumbnail(url=constants.Icons.green_questionmark)```
fallen patrol
#

that's where its used

sleek steppe
#

This is what it looks like with the default emoji

fallen patrol
green oriole
#

Aha, it is used at the top of the help channel messages

#

You found it already it seems like haha

#

In this case it looks good because there is some vertical space under it

sleek steppe
green oriole
#

Oh

#

It is rounded by discord, isn't it

sleek steppe
#

Yes

green oriole
#

Gotcha

#

We can use the existing one then

#

Sorry that I didn't realize earlier

sleek steppe
#

It's still used in help channels though

fallen patrol
#

It's actually a constant of question mark within the bot.

sleek steppe
#

Yeah I know, which is why I messed up

fallen patrol
#

Would that be out of scope for the pr to rename it in the help channels cog as well

sleek steppe
fallen patrol
#

wat

fallen patrol
#

that is a checkmark

#

#

that is a questionmark

fallen patrol
#

you didn't

patent pivot
#

cute

#

i like that

fallen patrol
sleek steppe
fallen patrol
#

the constant is referring to the emoji in this embed

stable mountainBOT
#

bot/exts/help_channels/_message.py line 112

embed.set_thumbnail(url=constants.Icons.green_questionmark)```
sleek steppe
#

That is the DM

fallen patrol
#

wait...

#

oh

#

i am dumb

#

sorry

stable mountainBOT
#

bot/exts/help_channels/_message.py line 194

embed.set_author(name=AVAILABLE_TITLE, icon_url=constants.Icons.green_checkmark)```
fallen patrol
#

i legit thought the constant was wrong

exotic ember
#

@vocal prairie o/ Just giving a heads up that since the guides have been migrated to the dewikification branch, you're free to start work on the search function

placid ermine
#

!src src

stable mountainBOT
#
Command: source

Display information and a GitHub link to the source code of a command, tag, or cog.

Source Code
placid ermine
#

😛

fallen patrol
#

Inspect.

#

!d inspect

stable mountainBOT
#

Source code: Lib/inspect.py

The inspect module provides several useful functions to help get information about live objects such as modules, classes, methods, functions, tracebacks, frame objects, and code objects. For example, it can help you examine the contents of a class, retrieve the source code of a method, extract and format the argument list for a function, or get all the information you need to display a detailed traceback.

There are four main kinds of services provided by this module: type checking, getting source code, inspecting classes and functions, and examining the interpreter stack.

placid ermine
#

theoretically it should just be 2-3 lines changed but god knows

tawdry vapor
#

What do you mean by local installation? Like using a latex distribution rather than matplotlib and starting with.subprocess?

fallen patrol
#

Yes

tawdry vapor
#

Did what @gritty wind was doing not pan out?

fallen patrol
#

No idea

placid ermine
tawdry vapor
#

I see. Depends on how much benefit the mpl interface would provide. Hard for me to tell without actually seeing both implementations.

#

I think if we were to install latex then we should look into lightweight distributions. Even the most basic package on debian is like 150MB. Texlive is also not particularly fast from what I understand.

placid ermine
#

via mpl, it would just be the current code with one line added to the config
without mpl i think i would have to make a template .tex file, write to it and render in a subprocess

#

Yeah I found a ~150MB distribution too, though a SO post said ~75MB is possible

tawdry vapor
#

It's a trade off of performance and more features (ie more packages)

fallen patrol
#

Odd

tawdry vapor
#

Also more work to set it up in the dockerfile compared to just apt get I imagine

fallen patrol
#

It looked to me like it was only 105 mb

tawdry vapor
fallen patrol
#

I probably already had 45 mb worth of packages installed

tawdry vapor
#

I'm not super concerned about space but it'd be nice to keep it low

fallen patrol
#

For a development friendly bot it should be pretty high priority

#

Imho

placid ermine
#

I mean
if you're not working on the latex command
do you need a latex installation at all

fallen patrol
#

No but

#

Docker file will install it anyways

#

Unless an env var could be configured to skip that in the image lol

balmy sparrow
#

@short snow went a little overboard with that docstring haha i didn't mean to make it that long, but i've approved nevertheless

gritty wind
#

If you’re talking about 100 and 150mb there isn’t much improvement over matplotlib

#

The reason processes didn’t pan out is matplotlib rendering would try to do everything in one step and basically overload the memory limits

patent pivot
#

Hey folks, an update. Discord have rolled out a service deploy and fixed the issue I reported about our bots not getting typing start and user update.

short snow
#

perfect, so now we can test whether the user is typing or not?

tawdry vapor
placid ermine
#

Have you confirmed that the memory issues are circumvented when using an external install?
Yeah, there are no memory issues when it uses the local installation

fervent sage
#

@vale ibex perhaps .avmod as an alias too

#

ooh its merged

fervent sage
#

i can just add it in my thing lol

vale ibex
#

feel free to add in your PR though 🙂

#

yea 😄

fervent sage
#

am i good to start on that now?

vale ibex
fervent sage
#

epic, ty!

short snow
vale ibex
#

Wonder what happened here

#

#bot-commands message

short snow
#

hmmm, is event some tag?

#

!event

#

!tag list

#

!t

#

nope, pithink

brazen charm
#

It matches subcommands iirc

vale ibex
#

Yea, I think that's it

#

since its an alias of

#

!help branding about

stable mountainBOT
#
Command Help

!branding about
Can also use: branding current, branding event

Show the current event's description and duration.

short snow
#

is there a issue open about griff-ify command?

fervent sage
#

@vale ibex to confirm on my issue, my current plan was to pretty much remove the individual commands in favour of just the two .avatarmod *ops and .avatarmod list, is this ok or should I try to keep both?

The main reasoning/issue that means removing the commands is better is that the ideal solution uses invoked_without_command in the group decorator, which means if I do .avatarmod 8bitify invert but there's a command named 8bitify, the command will take precedence and think that it was passed invert as an argument, not that it was passed two effects to apply.

The other thing is that I want to put each effect in a class like:

class EffectClass:
    description = "A description of what the effect does, so I can use this in `.avatarmod help <effect>`"

    def __call__(self, image: Image) -> Image:
        ...
```the issue i have now is that some of the effect commands take parameters, such as
```py
async def avatareasterify(self, ctx: commands.Context, *colours: t.Union[discord.Colour, str]) -> None:
```so I'd need to figure out some way to pass those as well.
The solution I'm currently thinking of thus looks something like this:
`.avatarmod *options` applies the options to your avatar with defaults that the effects provide
`.avatarmod list` lists the available options/effects
`.avatarmod help/info <effect>` shows the `EffectClass.description` for that operation
`.avatarmod effect <effect>` does what the current commands do basically, so an example command might be `.avmod effect easterify #87ceeb`

These should all work provided there isnt an effect called `list` `help` `info` or `effect` which seems fairly unlikely.

Wow this is a big message.
vale ibex
#

Yea, that sounds good. I'd like there to be a limit on the number effects you can do at once, or at least some limit on concurrency

fervent sage
#

yep, currently i have a constant called MAX_OPERATIONS set to 5

vale ibex
#

Also, my PR added root aliases, so .avatarmod effect may not be needed

fervent sage
#

but it can be changed

fervent sage
vale ibex
#

Yea 😄 Thank Mark for that, i just ported it from @stable mountain

fervent sage
vale ibex
#

lul

short snow
#

this would a really nice addition

placid ermine
#

a fine addition to our collection

vale ibex
#

If the latter, I think adding a max_concurrency to this could be a good idea.

fervent sage
vale ibex
#

Awesome 😄

warm sparrow
#

!source

stable mountainBOT
warm sparrow
#

you guys know thse commands like

#

!code

stable mountainBOT
#

Here's how to format Python code on Discord:

```py
print('Hello world!')
```

These are backticks, not quotes. Check this out if you can't find the backtick key.

warm sparrow
#

!xyz

stable mountainBOT
#

xy-problem

Asking about your attempted solution rather than your actual problem.

Often programmers will get distracted with a potential solution they've come up with, and will try asking for help getting it to work. However, it's possible this solution either wouldn't work as they expect, or there's a much better solution instead.

For more information and examples: http://xyproblem.info/

vale ibex
#

Yea, what about them? 😄

warm sparrow
#

a more detailed command would be way betrter

vale ibex
#

We used to have one before, but it was abused and dropped without context

warm sparrow
#

it should be added back

short snow
#

there is a issue about that open

#

where lemon asks to word it better

vale ibex
#

So we removed it, in favour of people writing actual sentences to users

warm sparrow
#

how was it abused?

gritty wind
#

What would that tag even say that isn't easier to just type out?

short snow
#

just a single line

gritty wind
# warm sparrow how was it abused?

User A claims a help channel or asks a question
User A: "Hi"
User B: tag

The tag was just dismissive, used to often and too early, and often would just come across as rude to users, especially ones who have never used the system before

#

But again, what do you envision from this tag anyways?

warm sparrow
#

bruhh

#

my message was insta deleted

gritty wind
#

Don't ask to ask also had the same problem

#

Yes, it was deleted for that link

warm sparrow
#

can you re-post it?

gritty wind
#
Read the #help channel for information on claiming a help-channel or ask more simple questions in #python-general.

Never be afraid to ask questions, and make sure to ask them according to basic conventions: https://dontasktoask.com/

The first sentence is easily conveyed in:

Check out #❓|how-to-get-help to get help.
Doesn't really take much to type it out

#

As for don't ask to ask

#

That was blacklisted in the first place because while it's message may be relevant, it's quite rude in presentation, and is often dropped to quickly in a manner that had the same problem as the old tag

warm sparrow
#

Read the #help channel for information on claiming a help-channel or ask more simple questions in #python-discussion.

Never be afraid to ask questions, and make sure to include your full-error, what you are attempting to achieve and all the problematic code so we can help you quickly.

?

vale ibex
#

Honestly, I don't see us ever adding back a help tag like this. When it existed before, it was used in an aggressive manner.

For example, as Scaleios showed above, a user would opened a channel with Hi or hello and would then the channel would get flooded by people sending the ask tag. Which is extremely off putting for new users.

Whereas a simple What is your question? or What can we help you with? is far more welcoming.

gritty wind
#

and at that point, won't it be easier to tell people to read it

short snow
dusky shoreBOT
short snow
#

might want to comment and close that then?

vale ibex
#

That issue exists as it's something that we may consider if there is a good way to prevent it from being abused.

#

The last two sections summarise that quite well.

warm sparrow
#

I think it would be a helpful tag but I conceed the possible agressivness of the use of the tag may be problematic.

vale ibex
warm sparrow
#

maybe if it was exclusive to general and said something simple such as

Read the entirety of the #get-help channel to learn where to get help and how to ask a good and detailed question!
gritty wind
#

I don't honestly think it's all that useful of a tag, and the reasons for that require a bit of an understanding about why it was removed it in the first place. The tag is a very easy way of telling people to do something, the problem there is: users aren't expected to be told to do something.

If a user that isn't familiar with the help system comes in and says hi, they do so because that's expected in other settings. In their mind, they are just following the norm, and the next step would be waiting for someone to respond, then ask the question, like you would in real life.

Because the tag is literally one word, four letters, a ton of people would drop in, invoke it, then wait for the user to respond, without clarifying why they did that at all. The asker then may not understand why this block of text has shown up, or why people are typing random words in.

fervent sage
#

it feels much nicer as a user imo if someone says "Hey, you should check out #❓|how-to-get-help since this isnt really the right channel" anyway

warm sparrow
#

No, no, no. you guys have misunderstood me I think

gritty wind
#

Consider these two scenarios:

User A claims a help channel
User A: Hi.
User B: !ask
Bot: ....
In this scenario, nothing is targeted at the user, and a block of text has randomly shown up

Second scenario:

User A claims a help channel
User A: Hi.
User B: @User A Hey, please check out #❓|how-to-get-help (or hey, go ahead and ask your question)

warm sparrow
#

no no no

#

the tag is for when people ask

"Where can I get help"
A lot of people come and don't exactly know which channel to ask so they just are like "where can I get help". I'm not thinking about people asking the question badly

gritty wind
#

But why would they read a random block of text

warm sparrow
#

less characters and the tag can be more detailed.

#

in the search look for 'where can i ask'

#

and there are other variations of people asking, it's common. I think a tag would make it easy for helpers to respond to somebody quickly whilst helping somebody else.

gritty wind
#

I'll just go off your last draft:

Read the #help channel for information on claiming a help-channel or ask more simple questions in #python-discussion.

Never be afraid to ask questions, and make sure to include your full-error, what you are attempting to achieve and all the problematic code so we can help you quickly.

The second paragraph is about what type of questions to ask. The first is literally one sentence that can just say: "check out #❓|how-to-get-help"

It will also be directed at the asker from a user, not in a random text block from the bot which they may not understand is directed towards them, espically in high trafiic channels like #python-discussion

warm sparrow
gritty wind
#

Hmm but without the second paragraph, there really isn't much left in the tag

warm sparrow
#
If you want to ask a simple question, go ahead and ask it in the General Channel, if you need help on a more in-depth project then check out #how-to-get-help and claim a help channel.

But if you are looking for help on a specific topic, browse channels in the Topic Chat/Help category to see if any channels are applicable to you.
#

from !code

#

so fast to type, more detailed. common question. seems to be no reason not to add imo

gritty wind
#

I outlined my qualms with this being a tag at all here:

It will also be directed at the asker from a user, not in a random text block from the bot which they may not understand is directed towards them, especially in high trafiic channels like #python-discussion

The fundamental flaw with that message imo is that there is no context in which it makes sense. The only place where it makes sense to direct people like this is in #python-discussion, in which case you can drop the first sentence. You can drop the second one in favor of "check out #❓|how-to-get-help". The only thing that tag adds is the third sentence about topical channel (even though you can tell users the correct topical channel directly). Anyways, I don't think one sentence is enough to displace the problems with a tag.

warm sparrow
#

!code @gritty wind

stable mountainBOT
#

Here's how to format Python code on Discord:

```py
print('Hello world!')
```

These are backticks, not quotes. Check this out if you can't find the backtick key.

warm sparrow
#

hm

#

I thought that was a thing

gritty wind
#

Right, so imagine this in a fast scrolling channel like py-gen

#

a random user has pinged me with nonsensical words

#

not really clear what I'm supposed to do from here

#

Which was also a reality of the original ask tag

warm sparrow
#

Oscar: !code @slow bone

Here are the best channels to get help:

If you want to ask a simple question, go ahead and ask it in the General Channel, if you need help on a more in-depth project then check out #how-to-get-help and claim a help channel.

But if you are looking for help on a specific topic, browse channels in the Topic Chat/Help category to see if any channels are applicable to you.

Modmail: ?

Oscar: Read bot's message :)
Understand this above scenario is not 100% of the time, most times people understasnd instantly
Could also be a in-build functionality of the bot that if you @ somebody in the tag calling it will send it in the tag-text itself.

gritty wind
warm sparrow
#

I think you are saying some false intuitions on how fast general is, sometimes it is very slow and usually it is at max 1 message every 6~ seconds

gritty wind
#

It doesn't have to scroll at all

#

but how do you connect between a random bot message, and someone pinging you?

warm sparrow
gritty wind
#

I outlined how the only thing the tag adds is topical channels

warm sparrow
gritty wind
#

Lol

#

Do you want proof of this exact scenario?

#

It's available

warm sparrow
#

Even if, in some cases; people will not understand it. Your logic still applies to most tags avaliable.

#

They are still mostly functional.

gritty wind
#

What is the connection between someone pinging you, and a random bot message

warm sparrow
#

After a bot command prefixed by a symbol "!" is sent a bot sends a message with the header "Here are the best channels to get help:"

gritty wind
#

As for the other tags, the only one I think really applies to that is resources, what other ones are used in py-gen?

warm sparrow
#

I think the relation is there.

gritty wind
#

Ultimately, if you are 100% sure about your viewpoint, leave a comment on the issue. We'll discuss it in a staff meeting, and maybe vote on it

brazen charm
#

The main concern I see with the tag is people just throwing it around. You're assuming the best case scenario where both the sender and the recipient understand what's going on and are using it properly, but previously with the ask tag it being sent instantly after a help channel was claimed (even when the claimant was typing out some kind of an explanation to the code for example), with no later communication from the person who sent it was a frequent occurrence. That is not something that you can really fix with wording imo as long as the idea of the tag remains

warm sparrow
warm sparrow
vocal prairie
#

In my opinion, it's rather insensitive to through some random tag at someone, especially since many people ask that right when the join the server. It's much kinder to actually take the time to welcome someone and direct them to get help if needed.

warm sparrow
#

I assume that the tag would be sent in py-gen after somebody asked where to get help, if it is not used in that scenario it really should be discounted and most people will learn to do so.

warm sparrow
vocal prairie
#

But it's insensitive. We don't want this server to become people throwing random bot tags at each other 24/7, we want it to be a friendly, welcoming community where we can have (virtual) human interaction and chat about Python.

brazen charm
#

I think the same things apply, even if at a smaller degree because more people are active in the channel

vocal prairie
#

And tbh, not as many people read bot tags as you think. When they see embeds, a lot of people just ignore them.

warm sparrow
warm sparrow
warm sparrow
gritty wind
warm sparrow
#

ty

#

no.

#

this is not at all what I want to make

fallen patrol
gritty wind
#

That was the old tag we removed

#

where you can suggest replacement tags

warm sparrow
#

maybe I should just make a new issue with more details instead concidering this is simply different.

warm sparrow
fallen patrol
#

so if a person replies to a message with a tag, the bot will reply to the same message

warm sparrow
#

that'd be cool

fallen patrol
warm sparrow
fallen patrol
warm sparrow
#

good idea then

vocal prairie
fallen patrol
#

!d discord.Message.reply

stable mountainBOT
#

await reply(content=None, **kwargs)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

A shortcut method to [`abc.Messageable.send()`](https://discordpy.readthedocs.io/en/stable/api.html#discord.abc.Messageable.send "discord.abc.Messageable.send") to reply to the [`Message`](https://discordpy.readthedocs.io/en/stable/api.html#discord.Message "discord.Message").

New in version 1.6.
vocal prairie
#

Only the person who "summoned" the embed can use the trash can

warm sparrow
fallen patrol
#

and only for around 5 minutes too

warm sparrow
#

i'm going to start making an issue

sleek steppe
dusky shoreBOT
fallen patrol
#

…why is double ping such an issue?

warm sparrow
#

it's not

fallen patrol
#

if ur worried about actually pinging a user twice in the channel, just send the content and then edit it to actually mention

#

that way you get the orange color but not the rest of it

warm sparrow
#

there we go

#

bot#1557

warm sparrow
#

would enjoy input @gritty wind or @vocal prairie

sleek steppe
warm sparrow
#

FUCK

fallen patrol
#

lol

warm sparrow
#

what else could it be

#

!gethelp

#

yes, gethelp

#

bruhhh

#

already I cahnged the title 3 times

fallen patrol
#

@sullen phoenix why is the token remover being removed?

#

Er, @cold island

fervent sage
#

filters are moving

fallen patrol
#

so they filter every message?

#

including bot responses?

fervent sage
#

?

fallen patrol
#

why are they moving?

#

what good does that do?

thorny obsidian
#

We're redoing our filter system so it's more cohesive, adaptable, and makes more sense.

fervent sage
#

take a look at site#482 and bot#1530

dusky shoreBOT
fervent sage
#

and site#479

dusky shoreBOT
cold island
#

It's not being removed, I just created a new branch without the old filters system so that the bot is still functional

#

The commit message says it will be brought back

balmy sparrow
#

@sleek steppe the bug you'd commented about in the image commands PR became an issue lmao

#

i wonder how this works

#

is there some sort of size restriction or something that's making it get sent separate from the embed

sleek steppe
#

@vale ibex said he fixed it blobpain

#

He said it was something about invalid names

vale ibex
#

I thought I did

#

have you got reproduction steps?

fervent sage
#

you need to make the filename url safe i think

sleek steppe
#

I think it's names with spaces in them

balmy sparrow
fervent sage
#

when i add () to my name it breaks

vale ibex
#

oh, () are valid filenames in unix

fervent sage
#

perhaps urllib.uriquote

vale ibex
#

I guess not for discord

#

Easily changed though, can just remove () from line 43

fervent sage
#

i'll test that now

#

if it works i'll pr it too

vale ibex
#

👍

#

sir-lancebot#712 was raised for it

fervent sage
short snow
#

it works hmmm

#

without any change?

fervent sage
#

no thats with change

short snow
#

ok

vocal prairie
#

Ummmm… Lance just died when I did .savatar. No response

#

After typing for a while

#

And I haven't changed my pfp for a day or two.

glass pecan
#

yep, we got the error

fervent sage
#

ok, sir-lancebot#713

dusky shoreBOT
sleek steppe
#

This is what I have now

balmy sparrow
#

looks cool

cold island
#

does it apply random rotations?

sleek steppe
#

I don't think so

vocal prairie
#

Then what does it do?

cold island
sleek steppe
#

Yep

vocal prairie
#

Isn't that what .splitify does?

cold island
#

.splitify

#

?

vocal prairie
#

It's being worked on iirc

sleek steppe
#

.splitify is this

vocal prairie
#

Ohhhh

sleek steppe
#

look at sir-lancebot#687

cold island
#

mosaic seems like a good name

sleek steppe
#

Joe suggested it in the previous PR

#

Thoughts on sir-lancebot#711?

dusky shoreBOT
vocal prairie
#

I like the idea

#

But I think we should definitely keep them as root aliases

thorny obsidian
#

I think the .issue and .pr aren't really needed with the dsfasdf#234123423414 thing

vocal prairie
#

That's true

cold island
#

the new code snippets feature should probably become a part of that cog

thorny obsidian
#

True, we could def use a consolidation of those features into one cog that makes sense

fervent sage
#

.pr quackstack 37

dusky shoreBOT
fervent sage
#

hm

#

evidently thats not a pr

#

lol

vocal prairie
#

.issue python-discord/sir-lancebot#1

dusky shoreBOT
thorny obsidian
#

.issue 1

dusky shoreBOT
thorny obsidian
#

sir-lancebot#1

dusky shoreBOT
thorny obsidian
#

nope

fervent sage
#

ok yeah its kinda useless then

#

i think rather than removing it maybe it would be worthwhile to increase the info it displays, such as including the author

thorny obsidian
#

Yeah, I think maybe having like a "github" cog or whatever that contains these features would be helpful

sleek steppe
#

.github

thorny obsidian
#

Because the asfasdf#11214 and having .issue and .pr feels needlessly redundant.

#

.github kutiekatj9

dusky shoreBOT
#
Command Help

.github
Can also use: gh, git

Commands for finding information related to GitHub.

Subcommands:
repository [repo...]
Fetches a repositories' GitHub information.
user <username>
Fetches a user's GitHub information.

thorny obsidian
#

.github janine9vn

#

-_-

vale ibex
#

.github user janine9vn

dusky shoreBOT
#

Engineer that likes to design and build things.

Followers
Following

1

Public repos

5

Gists

0

Organizations

No organizations

Website

No website link available

cold island
#

No organizations lemon_angrysad

fervent sage
#

could i create an issue along the lines of "Increase the amount of information given in .issue/.pr commands"

Basically, remove the ability to have multiple issues/prs since normal detection can do that, and add author details

sleek steppe
thorny obsidian
#

lolno, I'm not bout to be doxxed that much

cold island
#

doxxed?

tawdry vapor
#

You can selectively enable which organisations for which you publicly display your membership

thorny obsidian
#

Listing of my organizations would very quickly reveal who I am and I don't want the link between them ever. So I just don't list any.

cold island
#

hm, didn't think of the other ones, just meant pydis

fervent sage
#

python-discord should be fine right?

thorny obsidian
#

I don't want people from org A to necessarily know who I am here. I don't want people from org B to know who I am over there and I contribute to both.

cold island
#

but no pressure lol

fervent sage
#

ah

tawdry vapor
#

You're contributing to public repositories but fair enough, I suppose it would make it easier to find.

thorny obsidian
#

I am, but there's not that much of a link from my github username to the one here unless you look particularly hard.

cold island
stable mountainBOT
#

.github/pull_request_template.md line 18

- [ ] Read all the comments in this tempelate?```
green oriole
#

Oh no

#

Can you open a PR please?

sleek steppe
#

Sure

vocal prairie
#

Hello! I was thinking about how to implement search for the website, and I was thinking that it could get the headings and stuff using beautiful soup for the html. But I don't know how that would work for markdown. Any thoughts?

fallen patrol
#

Markdown*

jagged monolith
#

is this the right channel for questions about contributing to python or is this specifically only for the discord ?

tawdry vapor
#

It's specifically for this Discord's project. If you have questions about e.g. CPython contribution, I think #internals-and-peps is an appropriate place.

jagged monolith
#

ok thanks!

vocal wolf
#

@tawdry vapor bot#1555 merged

tawdry vapor
#

Thanks

vocal wolf
#

np

#

@ashen isle were you able to get your local @stable mountain working?

ashen isle
#

oh uh

#

I don't have access to a computer, so no

vocal wolf
#

oh

#

Whenever you're available, then

sleek steppe
#

@clever wraith iirc

vocal wolf
fallen patrol
vocal prairie
#

As part of dewikification

fallen patrol
#

no i mean

#

why do you need to parse the markdown

vocal prairie
#

To implement search

fallen patrol
#

but like

#

why does that require parsing the markdown?

#

do you need to know all of the formatting?

vocal prairie
#

I need to know the content

#

Specifically, the headers

#

Right?

#

Or is there something I'm missing?

fallen patrol
#

but then you would just need to parse the header---- ohh

#

🤦

#

there's request headers and text headers

#

i was thinking you meant request headers

#

why? NO IDEA.

vocal prairie
#

Lol

#

But do you know a good way to do that?

fallen patrol
#

just look for # at the start of a line with a regex?

#

^#

vocal wolf
#

If you have time to commit/push, go ahead.

vocal prairie
#

I also need to search for multiple types of headers

#

So I guess I could programmatically generate a "sitemap" with all the headers listed to use internally

fallen patrol
vocal prairie
#

Yeah

#

I'd have to go through every line

#

But how could I store that "sitemap"? pithink

vocal prairie
#

The bot doesn't include docs for Pygame right?

vocal wolf
#

!docs

stable mountainBOT
vocal wolf
#

correct

vocal prairie
#

Could we add that? I see a lot of people asking about Pygame

vocal wolf
#

Sounds like a good idea

#

!source docs

stable mountainBOT
#
Command: docs

Look up documentation for Python symbols.

Source Code
vocal prairie
vocal wolf
#

I'm not actually sure, I've never added to the docs command before

tawdry vapor
#

Probably https://www.pygame.org/docs/objects.inv and https://www.pygame.org/docs/ref/

sleek steppe
#

You'd need the objects inventory like and a base url that^

vocal wolf
#

!docs setdoc

stable mountainBOT
#
Missing required argument

package_name

#
Command Help

!docs setdoc <package_name> <base_url> <inventory>
Can also use: docs s

*Adds a new documentation metadata object to the site's database.

The database will update the object, should an existing item with the specified package_name already exist.

Example:
!docs setdoc python https://docs.python.org/3/ https://docs.python.org/3/objects.inv*

tawdry vapor
#

No, that doesn't make sense

vocal prairie
tawdry vapor
#

Look at the URL to a specific symbol

#

Always starts with .../ref/

vocal prairie
#

Ohhh

#

I was going based off the example

tawdry vapor
#

But yeah it might be doc/ instead of doc/ref

#

Not sure

vocal prairie
#

It's probably docs/ref

tawdry vapor
#

Well yeah but the /ref/ part might be in the inventory

vocal wolf
#

We can always remove it from the system, I think Mark's links are correct.

stable mountainBOT
#
Bad argument

HTTP GET on https://www.pygame.org/docs/ref/ returned status 404, expected 200

vocal wolf
#

oof

vocal prairie
#

So the base url doesn't have ref?

tawdry vapor
#

Not necessarily

#

It may just be an oversight with validation

vocal prairie
#

!src doc setdoc

stable mountainBOT
#
Command: docs setdoc

Adds a new documentation metadata object to the site's database.

Source Code
tawdry vapor
#

It makes the assumption that the base URL has to be 200 but there's no technical reason why it should be

#

Like it can be 404 but its children can be 200, as is the case with pygame

vocal prairie
#

Got it

#

So that validation is off.

#

Rather than the links

sleek steppe
#

Is the base url only for when you do !d?

tawdry vapor
#

No. It's used to generate the URL to a symbol.

sleek steppe
#

Ah ok

fallen patrol
#

!d discord

stable mountainBOT
#

In order to work with the library and the Discord API in general, we must first create a Discord Bot account.

Creating a Bot account is a pretty straightforward process.

fallen patrol
#

no, i guess not

short snow
#

can we have a discord.py tag explaining why to use .listen() over .event?

balmy sparrow
#

i don't think that's necessary, the docs for listen explains it quite well (with examples as well)

#

!d discord.ext.commands.Bot.listen

stable mountainBOT
#

listen(name=None)```
A decorator that registers another function as an external event listener. Basically this allows you to listen to multiple events from different places e.g. such as [`on_ready()`](https://discordpy.readthedocs.io/en/stable/api.html#discord.on_ready "discord.on_ready")

The functions being listened to must be a [coroutine](https://docs.python.org/3/library/asyncio-task.html#coroutine "(in Python v3.9)").

Example...
balmy sparrow
#

ah the example gets cut out off the embed now, but easy enough to click the link

short snow
#

for that we will have to leave discord, it could be better if we make one for own, adding few more points if needed (?)

brazen charm
#

Is leaving discord such a big issue when the recipient is already probably navigating between their editor, docs and discord?

short snow
#

uhh nope

vocal gale
#

There was just an interesting idea: what if the python bot moved help channels with only the claimant's messages to the top? People looking for people help could easily find people in need, and the chance of getting buried decreases.

fervent sage
#

i think it has its benefits, but in the end it means more state tracking of the channel which might cause weirdness if any events were dropped, that being said the weirdness applies to everything so /shrug it could be cool

vocal gale
#

¯_(ツ)_/¯

#

Maybe a command in lancebot or python?

#

!needshelp

brazen charm
#

There were issues previously with moving channels around frequently, not sure if it'd still be an issue but having the channel move around may not be the best for other people as they'd have to remember the names instead of just the order

vocal gale
#

I mean a command that prints or DMs the user channels which need help - that way, states only need to be gotten when a user queries them: it could DM or print a list of all the channels which are not attended to and their first messages. It's easier to scroll down a list with the owner, first message, whether it's been attended to, than hunting through the channels and scrolling to the last messages. That being said, its utility could be questioned...

brazen charm
#

I believe something like this has already been discussed a couple of times, but no idea if a consensus was reached

vocal gale
#

Ah, aight :D

tough imp
#

having the order change in the channel list is disorienting for members that switch between channels

vocal gale
#

Good idea: an entire list could be maintained of all help channels and their important information

brazen charm
#

Where would it be kept?

vocal gale
#

A new channel maybe? #help-info

vocal wolf
#

so far hasn't died

#

afaik

vocal gale
#

wdym?

vocal wolf
#

The dynamic message showing what help channels are available for claiming hasn't frozen

vocal gale
#

Ah yes :) this is about the help channels that have been claimed but haven't been answered yet

#

Functionality is questionable tho

vocal wolf
vocal wolf
tough imp
#

Isn't there already something like a cache of unanswered channels? I'm not sure

#

It'd have to solve the problem of not receiving messages while restarting

#

So it'd have to peak into some channels at start-up.. although I think that you can get something like the last message ID in each channel from just the channel obj? So there may be a neat way of doing this check that doesn't require any additional requests

#

I'm not too familiar with the help channels ext though

green oriole
#

We used to have a different emojis for unanswered questions, I'm not sure if we have a cache for it though

#

Not like it would be too hard to add anyway

brazen charm
#

Does last message id always point to the last message in discord or is it just updated from the events it receives?

tough imp
#

Oh yeah unaswered comes with the problem that a second msg from the claimaint shouldn't mark it as answered

#

So last msg ID wouldn't work anyway

brazen charm
#

It could be used to at least check for new messages

tough imp
#

Yea, true

vocal gale
gritty wind
#

That wouldn’t really work, it could be the owner responding

brazen charm
#

Just checking if the cached id and the current id are mismatched on a restart. If they are it'd go through the history

gritty wind
#

You have to find the first message in the session

tough imp
#

Claimant ID is cached I'm sure

#

if we also knew the msg id of the msg that claimed the channel, we'd be able to minimise the amount of requests needed

#

yea, there is a claimants cache which holds user IDs and question_messages which holds msg IDs

#

well it still wouldn't work though

vocal gale
#

But then, wouldn't we need to match every message to claimant ID?

tough imp
#

because the claimant could have sent something after someone answered yea

#

well at least it'd minimise the amount of histories that need to be checked

#

but just checking the last message wouldn't be enough

vocal gale
#

The time of last message needs to be cached too, because of dormant, so every time a new message is sent, can we check if it's the claimant?

#

but then two simultaneous messages would break it.

short snow
#

what if we cache the first messsages when the channel are opened?

#

and then on on_message, compare the msg id with that help channel's first msg id which was cached

#

if not, continue

short snow
#

and btw akarys, i have pushed the tests for enhacing incidents

gritty wind
#

How would you get an on message without a second message 👀

#

Just put it in automatically and remove it in a message event

#

Maybe compare the author

#

As for state syncs

short snow
#

welp, yeah

gritty wind
#

Just ignore it

short snow
#

that would be a good solution

warped compass
#

hay guys how do u move channels without rate limits?

#

like from Occupied to available

gritty wind
#

We don’t

#

There are limits

#

And we take them into consideration when designing the system

#

Some choices in the past have caused us to reach the limit, and sometimes we have turn certain features down

warped compass
#

ok thank you for the reply

sleek steppe
fervent sage
#

Discord.py will never get 429s unless you
A) are working with reaction endpoints
B) are running requests outside of it's internal handler

placid ermine
green oriole
#

lol

#

Those restarts were manual

vale ibex
#

yea, we're just bullying testing lancebot

deft patrol
#

oof

fallen patrol
sleek steppe
#

I haven't gotten 429'd in dpy before 🤔 and I've spammed a lot of times, including reactions

gritty wind
#

If you want a quick path to rate limits, try renaming a channel

#

Counting channels mean we can’t have nice things

vocal prairie
#

Somebody once thought they could rename a channel as a minute long countdown to something on Reddit

#

That was a fail

fallen patrol
#

I mean

#

You can.

#

You just need 5 different bot accounts.

fervent sage
fallen patrol
#

I've gotten them before so

fervent sage
#

unless your bot is restarting a lot and losing its ratelimit states

fallen patrol
#

Would an unload and load of the cog that did the edits affect it?

fervent sage
#

nope

fallen patrol
#

Then idk what to tell you because it does get the 429s

fervent sage
#

i dont have enough time to explain how libs like d.py/corded do ratelimit handling, but at a high level each route has a bucket, when you send a request that bucket is locked until the request is over so you can only have one request per bucket concurrently, the headers are examines and if the remaining is 0 it sleeps until the reset-after time before unlocking the route

fallen patrol
#

Oh

#

That actually might explain editing channels

#

Since.... Not every parameter does cause a rate limit.

sleek steppe
#

Ah nice a tag speedrun

balmy sparrow
#

was there an issue for this blocking tag?

sleek steppe
#

This tag doesn't talk about blocking, even though it should

balmy sparrow
#

yeah pithink

#

misleading name

sleek steppe
#

You should probably mention the issue in the PR description instead of the other PR

vocal wolf
#

@sleek steppe noice bot#1556

dusky shoreBOT
sleek steppe
#

thanks

vocal wolf
#

@tough imp you're still planning on doing a full review of bot#836, correct? Just making sure that it'll eventually happen.

dusky shoreBOT
tough imp
#

I will attempt tomorrow

vocal wolf
#

Thanks!

wise oriole
#

I've got an idea.

#

The .bookmark command can have an argument "secret" so that when you invoke the command, your message gets deleted.

short snow
#

And maybe a unbookmark command?

patent pivot
#

I don't like that idea

#

I think that relaying user messages permanently to user DMs is something that should definitely be public. I think if anything we should make it more visible that has happened.

#

Unbookmark sounds alright, I'd be alright with that (we could implement with replies or message links)

short snow
#

Well, sometimes, the bookmark is not needed, so there is no need to keep it in the dm

#

Ah ok

patent pivot
#

yeah sorry, was replying to the other one first 🙂

balmy sparrow
#

🤔 how would the command differentiate between normal bot replies in the DM and "bookmark" messages?

short snow
#

U specify the bookmark msg ID, which the bot had sent to you

#

And we can match for embed title

patent pivot
balmy sparrow
#

🤔 honestly don't see the point, but if everyone wants it 🤷‍♂️

short snow
#

Sometimes, you need a bookmark anymore

#

It is useless for you

balmy sparrow
#

i got that when you said it earlier, i just don't see it being a compelling enough reason

#

but maybe that's because i don't use the command often

glass pecan
#

likely yeah. tbh though i'd be using the dm channels pins for tracking important bookmarks in that case instead, but I can also understand if people just want to remove it entirely from dms. each to their own.

patent pivot
#

I don't think it's particularly useful, but it's also not particularly harmful and not a large cost to add

glass pecan
#

ye

short snow
#

Also sometimes, your dms clutter up with game messages, so it is hard to navigate through them, maybe we can have a solution for this too

#

Yeah, and other games too

wise oriole
#

hmm.

short snow
#

That was for Ankith, he asked if I was referring to battleship, and deleted it

wise oriole
#

yeah thanks for announcing that 👍

#

I was confused to whether the bot DM messages get deleted or not. I went to check and yeah, a lot of battleship gameplay messages there 😂

#

since I remember the bot deleting its own message "x has played, now its your turn" "you missed" "you hit" (or smth i dont remember correctly)

#

but my own messages aren't getting deleted. (the coordinates)

vocal prairie
green oriole
short snow
#

Yes, but pins have a limit right?

vocal prairie
#

50 max

#

So for people who do the games a lot…

short snow
#

For the ppl who do bookmarking a lot ^

vocal prairie
#

I misunderstood what you were talking about, mb

wise oriole
#

there is a command to force change an ot name?

glass pecan
#

no

green oriole
#

Nope, but the admins have edit channel perms haha

wise oriole
#

hm.

short snow
# vocal prairie I misunderstood what you were talking about, mb

Say you play battleship a lot, and you want to look at your bookmarks, currently there is no particular way to do this rather than just scrolling across the dm channel.

So what akarys suggested was to pin these bookmarks so we can view all of them together, but there is a limit to number of pins a channel can have so there is indirectly a limit to number of bookmarks too then

vocal prairie
#

Yeah I got it after

#

I just thought you were talking about the results of the games rather than the bookmarks

short snow
#

Ah lol

balmy sparrow
gritty wind
fervent sage
#

Sure mmLol

#

British English on top!!

wise oriole
#

the bot doesn't make sense. I just did .wiki something and someone other than me was able to change pages by reacting with left and right and even trashcanned it and got it deleted. I thought that could be done only by the person who invoked the command?

vocal prairie
#

I think that anyone can do it on Lancebot (maybe)

#

But not on Python

wise oriole
#

oh.

sleek steppe
#

Might just be for that command

vocal prairie
#

Does Lance have a centralized paginator like Python?

vocal prairie
#

Sebastiaan did. Lemme find the link

shut aspen
short snow
#
django.core.exceptions.ImproperlyConfigured: Set the METRICITY_DB_URL environment variable

i get this error when i run pipenv run start, so i did export $(cat .env)

#

but still doens't work

#
# .env
DEBUG=1
LOG_LEVEL=INFO
DATABASE_URL=postgres://pysite@localhost/pysite
SECRET_KEY='q4LdTplNaG2RazKV-UkbK5GxSp82_EenlIMohZZ_sDU'
vocal prairie
#

Dumb question, but did you set the METRICITY_DB_URL env var?

short snow
#

nope, wasn't mentioned in setup.md

vocal prairie
#

What project is this?

#

bot or site?

short snow
#

site, i think i got it, give a se

#

c

vocal prairie
#

Maybe setup.md isn't the most updated

#

The guide on the website is better ig

short snow
#

works, but Database could not be found, exiting.

vocal prairie
#

Are you doing it with Docker?

short snow
#
# .env
DATABASE_URL=postgres://pysite:pysite@localhost:7777/pysite
METRICITY_DB_URL=postgres://pysite:pysite@localhost:7777/metricity
DEBUG=1
SECRET_KEY='q4LdTplNaG2RazKV-UkbK5GxSp82_EenlIMohZZ_sDU'
STATIC_ROOT=staticfiles
#

nope pipenv

vocal prairie
#

So you're running it on the host?

#

With a separate postgres database?

short snow
#

yes

vocal prairie
#

Ah, then idk.

short snow
#

and the db exits

vocal prairie
#

I've only done it with Docker

#

If the database is hosted locally i.e. on the same machine as the webserver, then use localhost for the host. Windows and macOS users may need to use the Docker host IP instead.

If the database is running in Docker, use port 7777. Otherwise, use 5432 as that is the default port used by PostegreSQL.

#

You're using port 7777

#

You should be using 5432

gritty wind
#

That wording is a bit confusing

#

7777 is actually the correct port

#

7777 is the port the docker image exposes to the host, so if you are running the DB using the DB's docker image, that's what you use

vocal prairie
#

Even if it's not dockerized? Jason is using a local db with no docker

short snow
#

dawn was right, 5432 works

gritty wind
#

5432 is the port if your DB is installed locally

#

outside of docker (and our docker setup)

#

Are you not using the compose's DB?

short snow
#

nope

#

running locally

#
django.db.utils.OperationalError: FATAL:  password authentication failed for user "pysite"
FATAL:  password authentication failed for user "pysite"
``` btw, this is what i get now
vocal prairie
short snow
#

docker is really slow when i start it, and if i keep it running 24/7, my system goes slow.

short snow
gritty wind
#

Well if you aren't using the pydis PG container

#

It probably won't have the pydis password and table