#dev-contrib

1 messages Β· Page 29 of 1

toxic wren
#

wdym, the site has a github repo with the stuff?

patent pivot
#

not the data ......

toxic wren
#

what data is in the site?

#

Well, if there was data.......

#

yeah your fucked

vale ibex
#

yeah, poor joe

patent pivot
#

oh we found the data

vale ibex
#

I'm fixing

#

don't worry

patent pivot
#

it was in /tmp

vale ibex
#

uncle chris is on it

toxic wren
#

oh yay

#

crisis averted

last patio
#

next time let's not rely on chris' raspberry pi to back up our data

vale ibex
#

Just consider yourselves lucky that i convinced netcup to colocate my pi3b+

toxic wren
vale ibex
#

wasn't just the website, entire postgres data

toxic wren
#

What postgres data do you have? Analytics, API's?

celest charm
#

One of the netcup operators is allergic to raspberry, so they had to take the day off while we're updating our stuff

vale ibex
toxic wren
vale ibex
#

Most of this are internal services

toxic wren
#

Lots of metricity data would have been gone

#

Why is this possible?

last patio
#

Many people are saying this

patent pivot
#

there's an auto-ban in place

vale ibex
#

we're approachable like that

toxic wren
toxic wren
#

I just discovered I can ping any role

patent pivot
#

try ping directors

toxic wren
#

I don't wanna be banned.....

patent pivot
#

are you just copying the ID

#

rumbled .....

toxic wren
toxic wren
patent pivot
#

ping Helpers

toxic wren
#

Works for any role... except roles with more than one word

lilac valve
#

just discord being discord

toxic wren
#

I feel the urge to ping all the Helpers

toxic wren
fallen patrol
#

Lol otherwise I'd find that mention bug

patent pivot
#

yeah it's not a discord ban

fallen patrol
#

I can see pydis having an automatic ban + lock channel + add the otn if everyone is mentioned

patent pivot
#

it's a ban from the Chrisjl mind palace

fallen patrol
#

Something like that

blissful olive
#

can someone assign me sir-lancebot issue 1710 i really want to work on it

blissful olive
fallen patrol
#

pseudocode

#

but was inferring

#

!src otn a

stable mountainBOT
#
Command: otname add

Adds a new off-topic name to the rotation.

Source Code
blissful olive
#

"They were having an existential crisis because all the data was on Chris's Raspberry Pi." - Accurate Description of Infrastructure Incident

fallen patrol
#

smh I'll just

stable mountainBOT
#
I'll allow it.

Your reminder will arrive on <t:1763104360:F>!

stable mountainBOT
fallen patrol
#

might as well

#

i meant to type 1M

blissful olive
rapid swallow
blissful olive
#

hm @patent pivot is a json good for storing the commonly used repo names or a python dict should suffice?

patent pivot
#

if you want to be creative we could support comments in there as well for further flexibility but might need a custom JSON decoder

blissful olive
patent pivot
#

and we don't want to have to update it every time

blissful olive
patent pivot
#

and then merge that to your aliases loaded from the JSON

patent pivot
patent pivot
#

so depends on whether you want to paginate

blissful olive
#

oh alright

patent pivot
#

should also probably filter out forks

blissful olive
#

bunch of "probably"s lol

blissful olive
patent pivot
#

no

#

would be v slow + repos don't update that frequently

#

once on bot start is fine

blissful olive
#

so this logic should be in __main__.py?

patent pivot
#

no β€” there are ways to hook onto the cog load

#

look at other cogs for the cog load methods

#

other cogs do this

blissful olive
#

ok

patent pivot
#

you could also make it a task to refresh it every 24 hours or something β€” which might be a shout

#

have a look for the tasks.loop stuff for that

fallen patrol
patent pivot
#

lol

#

if we did it in a task every 24 hours i was just going to say do it unauthenticated

fallen patrol
patent pivot
#

because it's not user controlled

#

the only reason we'd authenticate would be for higher ratelimits because of user usage

#

counts towards a different ratelimit if we don't authenticate

celest charm
#

It's also impossible to leak our token if we don't authenticate

#

one less headache

fallen patrol
#

which is so true but we already use the token for eg .gh user/repo commands which do allow path injection

#

.gh user python-discord/../torvalds

celest charm
#

oof

fallen patrol
#

yeah

#

pydis has a lot of commands like this

celest charm
#

strings are the goto of the 21st century

fallen patrol
#

the fun one is .gh user ""

#

which makes a request to a url with "" formatted into the path

celest charm
#

we will ascend to the next level of information technology when we, as a programming society, develop a burning hatred for strings

fallen patrol
#

its that bug that causes this in python as well

#

but somewhere there's a weird bug that does that thingy

blissful olive
patent pivot
#

honestly you will find it's easier to use a task

toxic wren
#

sir-lancebot#1710

toxic wren
#

oh docs doesnt work

blissful olive
toxic wren
fallen patrol
#

well typing indicators have been disabled again

#

the code is 40062: Service resource is being rate limited

patent pivot
#

discord has been kind of dying all day

fallen patrol
#

...except the monkey patch is treating the ratelimit as normal..... fuck

#

!e 3

#

:^)

patent pivot
#

we've had a bunch of sentry exceptions

stable mountainBOT
#

Sorry, an unexpected error occurred. Please let us know!

HTTPException: 429 Too Many Requests (error code: 40062): Service resource is being rate limited.

patent pivot
#

503s left and right

fallen patrol
#

why is this

patent pivot
#

because that's probably what they used to send when they disabled typing indicators

#

they changed the behaviour recently

fallen patrol
#

No that's in the root request handler in disnake/dpy

#

Every 500, 502, and 504 is requested three times

#

That would explain why they sent 401s or 403s in the past: those weren't continual retries

toxic wren
#

oh so were being rate limited a lot

#

lemme check another server

#

Other servers are fine

#

This is a bot thats used a lot

#

not being rate limited

#

!exec
print("hello")

#

!e 3

#

oh no longer being limited

#

nvm

thorny obsidian
#

@fallen patrol Reviewed your open AoC Sir Robin PRs. Major changes only on one.
Very nicely done across all though, really appreciate the contribution.

LMK if you want holiday cookies shipped to you. It's something I do for staff and will also extend to significant contributors.

#

My offerings:

Also other staff can vouch for the legit-ness of the offer

patent pivot
#

can vouch

#

thank you to USPS for the intercontinental cookie delivery

fallen patrol
celest charm
fallen patrol
#

its not; I can remove it; been busy

#

oh wait that's the only blocker for that merge afaict

celest charm
#

sorry that's fine

#

no rush, I just got randomly pinged to review that PR because I'm in the events team

#

actually, I don't have the events team role now that code jam is over

#

oh, I have Code Jam Viewers

fallen patrol
#

also didn't know that; tried it myself with reveal type

#

sir-robin#166 is ready once again :D

fallen patrol
#

gonna go back to breaking discord, github, monty, python in that order

patent pivot
#

borg is enraging me

#

borg is no longer enraging me

toxic wren
patent pivot
#

backup utility we're switching to

#

as part of wider changes to the way we run databases

#

e.g. redis is treated actually as non-persistent, mongodb moves to being hosted on a VM rather than a container (though it's still technically containerised)

#

we upgraded from postgres 15 to 18 the other day

#

upgraded from Debian bookworm to trixie

#

Kube 1.32 to 1.34

toxic wren
#

Oh yeah I've been seeing the infra changes lately

toxic wren
patent pivot
#

which remains a very good tool, and we continued a change to hopefully add pg 18 support anyway, but we just wanted to run things in such a way that blackbox wasn't compatible with and was going to be easier on-host

fallen patrol
#

And robin

patent pivot
#

mostly won't, if they lose data they lose data

#

we will still configure redis to persist we just no longer guarantee it (and internally we haven't for a long while)

#

no majorly critical functionality depends on it, it's mostly just annoying if it goes

#

but we no longer have redis in our backup solution

#

we lose things like hacktoberfest linked accounts or spooky name leaderboards but that's about the worst of it

#

if we have issues with not guaranteeing persistence we might work on a transparency layer to replace redis and back the data onto postgres, there is an owl corp project which already kind of does this

blissful olive
#

we could invoke the help command here

toxic wren
#

the user can do .help if they want to

#

the error actually tells them its not valid

visual sandal
#

Hy

patent pivot
#

maybe we should migrate off cloudflare

oblique cairn
#

What do we actually use Cloudflare for (beyond auth)?

vale ibex
#

We have quite a few actions and workers

#

And our DNS is in cf

toxic wren
#

github down!!!!

#

noooo

#

I cant push

#

I spoke to soon

#

Git is now working

#

yay πŸŽ‰

#

the intern at AWS and Azure has clearly picked up another internship at Cloudflare

#

not related...

#

!off-topic

stable mountainBOT
fallen patrol
#

also wild that discord didn't go down

fallen patrol
blissful olive
fallen patrol
#

Yes.

#

I don't think the repo command needs to be modified to support shorthand repos

#

oh @patent pivot

#

fuck that autocomplete wow

#

Sorry joe, did not mean to ping

#

moment

#

I thought we were talking about the issues/pulls command eg bot#341 would search github: black#4203 would then work

dusky shoreBOT
blissful olive
fallen patrol
#

Ye

blissful olive
#

well i dont understand why we shouldn't add it

fallen patrol
#

Oh I guess my original mention was regarding that but yeah

#

Though consideration for adding it to issues will probably be a separate pr honestly

#

It doesn't need to be in this one cause that's scope creep

blissful olive
#

yes.

patent pivot
#

it's not like it isn't persistent, it's just not backed up daily to three continents

fallen patrol
outer oasis
#

/lh

patent pivot
#

devops would rather commit to helping reset those mentioned features instead of making redis persistent and work

#

fundamentally, the reason is less "we don't want to do it" and more that we have changed all our other state off kubernetes, mongodb is hosted alongside postgres now (in a podman quadlet) and borg is used for backups

fallen patrol
patent pivot
#

the chance we lose data is minimal and if we do there are considerably larger problems to worry about than the redis volume.

we do not configure redis differently, we still use a WAL, nothing changes apart from the fact we aren't backing up a dump file.

it is still a persistent service, advent of code will happen and be fine, if we are genuinely worried we can figure out a manual backup solution but I'm not worried and neither is anyone in devoops.

the changes to backups have already been made and redis has stopped being backed up.

#

we talked this through and have talked this through for a long while, we put in place other mitigations for this, we just aren't taking a backup of a minimally used key-value database to 3 continents anymore, the service remains just as available, as persistent and as reliable as before.

#

long term yes we should migrate away things that would become painful if frankfurt got nuked and we lost the redis data, but then we'd lose the rest of the cluster anyway, so Β―_(ツ)_/Β―

#

the guarantee we've always made is that if redis crashes we will at most lose 1 second of data, that guarantee remains in place, the guarantee that if frankfurt gets nuked then we still have data is the only thing we've changed (and that is a final decision, we're not going back to the previous backup solution for this)

#

(and there is also fundamentally no way to include redis on this new system without migrating redis to our linux VMs since we can't hit redis from outside the cluster, and we don't want to do that because it kind of defeats the point of using redis)

fallen patrol
#

implementation detail for github repo implementation when expanding it to repo#num syntax: ensuring the top most result actually has the same repo name is important lmao

#

search of pylance brings up basedpyright which is probably undesired

#

I cache both 200s and 404s for whether or not a repository exists

fallen patrol
#

(for the equivalent logic for pydis just have the default_user default to python-discord

though obviously there's a small difference between the two as i prioritise the server's set default_user over the pre-existing aliases: where pydis would want to prioritise the aliases over their own repositories (peps and kubernetes as two examples)

#

it is somewhat weird to use peps#3 and get the pydis repo lmao

dusky shoreBOT
stable mountainBOT
#

app/components/github_integration/entities/resolution.py line 48

async def find_repo_owner(name: str) -> str:```
fallen patrol
#

when the fuck did i add C\d+ support

#

oh wait

#

lazy matching not positive

blissful olive
#

sir-lancebot#1711

patent pivot
celest charm
#

noted: do not nuke Frankfurt yet

patent pivot
#

🀣

blissful olive
# patent pivot 🀣

E can i get an update on sir-lancebot#1711 cuz no core dev seems to have gotten involved as of now

patent pivot
#

will have a look after dinner

#

!remind 1hr this

stable mountainBOT
#
Bad argument

1hr is not a valid duration string.

patent pivot
#

!remind 1h this

stable mountainBOT
#
ROGER THAT

Your reminder will arrive on <t:1763661342:F>!

fervent sage
stable mountainBOT
fallen patrol
#

@patent pivot if this requires code changes please check my 25-> 12 day pr because I have four open ones for aoc code and I did my best to ensure they wouldn't have merge conflicts with each other

patent pivot
#

i think we'd probably merge yours first

#

i'm just saying the caches are simple enough we could sub it out with the api client if we wanted

#

i've got a fastapi thing going at the moment that'd do it

fallen patrol
quiet plover
#

Hey

fallen patrol
#

Arguably storing those leaderboard access tokens in the API might make that easier too to change them as it wouldn't require a redeploy

#

And I presume you'll migrate existing assignments over lol

patent pivot
#

we'll see

#

i don't have a real solution

#

it's a shame that it got to this point really

#

there is aoc stuff on site so at some point that was clearly the plan

#

this feature was implemented long after we said we don't want persistent stuff in redis

last patio
#

Can we just trial run PostgREST for once

#

I'm getting tired of seeing generation after generation of the most straightforward CRUD endpoints on site

patent pivot
#

in fairness the giveaway for people should've been the objects being called RedisCache

patent pivot
last patio
#

I've waited 8 years of my life for you to refer to something I'm doing as "a nice idea"

fallen patrol
#

Most disappointing thing about loss of api

patent pivot
#

the problem is that we keep building applications and stuff at all to do these things because we don't want to put databases in the bots

#

api was an extension of that

#

the thing is i don't know that postgrest is the be-all-end-all solution to our uses of redis

#

riak?? riak ??? riak? riak??? @last patio

fallen patrol
patent pivot
#

yes, that's the existing rule and has been the rule since we introduced redis

#

the problem is people didn't stick to that rule

#

the question isn't where we store data, we know that the data we store and depend on in redis shouldn't be in redis, we've known that for as long as we've had RedisCache

#

the question is how we then nicely do postgres, because spinning up a new service every time we want to do that postgres storage for our bots is ridiculous (for example, code jam management, whilst it works, is kind of ridiculous to have as a side dependency for sir robin)

#

the thing is ultimately half the AOC stuff can stay in redis and be fine and be lost and we'd be alright

#

it's literally only the account linking and leaderboard stuff

#

which I do think wouldn't be disasterous to store on site because it's just a table that FKs into our existing site user model

#

as far as I know, we don't use that and I'm not sure why it's on site

thorny obsidian
#

Trying to catch up with convo stuff but there are a lot of chunky messages. AoC data is not something I consider critical and if everyone needs to relink accounts... okay. They can relink accounts. I don't think we lose any critical data and I don't care about historical data

patent pivot
thorny obsidian
#

If the DC where redis is burned down and we lose the data.... meh.

Do we want to migrate everything out of redis?

#

(I don't know what the driving question/desire of the convo is)

patent pivot
#

most stuff we keep in redis because we accept losing it is a non-issue, and if we get time and feel like we want to make things more resilient we move it

there wasn't really a driving question I don't think, it spawned out of devops changing the backup solution for all our databases which means we no longer keep backups of redis (but redis is still persistent)

thorny obsidian
#

Ah, yeah. I don't consider AoC critical. I think the only thing I do on Robin is CJ stuff but iirc that's already going through site

patent pivot
#

through code-jam-management iirc

#

this was the PR that was going to migrate sir robin to using site API instead of redis for storing stuff but looks like it got superseded and the site functionality never got adopted

#

but all the APIs are there on site and ready to go

thorny obsidian
#

Mmmm, okay I can take a look at migrating that properly to site in Jan

patent pivot
#

yea β€” I don't think it's critical but in theory the APIs are there and that PR serves as a bit of a reference of a way to go about it β€” but it's not like things are instantly going to break

celest charm
#

Slightly unrelated, but maybe we could run our own micro-advent of code to test the aoc functionality in prod ahead of december? (next year)

#

like a fake/stub

sick ocean
fallen patrol
#

I'm expecting a couple merge conflicts and I'm busy next week

celest charm
#

sorry, I'm a bit busy with penguin stuff

last patio
last patio
#

REE-ACK? REEEEE-ACK? REEEEEEE-ACK????????

blissful olive
patent pivot
#

from a cursory glance most of the things I would've flagged are now resolved so pending me actually testing the feature it's probably good

patent pivot
#

these should be returning the top starred repo with that name

eager dome
#

could technically do best-match -> manual filter most starred, seems to be easier to do ngl

Like sometimes, the exact name you are searching for with most-stars is not even on the first page

patent pivot
#

the problem is if you search golang on github the top repo by stars is not golang

#

it's that project-based-learning repo

#

so we need to sort by stars descending and pick the top repo that also matches the repository name that was specified

eager dome
patent pivot
#

yeah

#

so it does need changing

#

but only to do the name filter

blissful olive
blissful olive
#

hm does this suffice?

eager dome
#

CI is failing

fallen patrol
fallen patrol
eager dome
fallen patrol
#

Yeah

#

Cpython doesn't need to be bound

blissful olive
eager dome
patent pivot
#

it's not the name of the repo, I disagree we should return it, if everywhere else we're striving for exact matches why would we add fuzz here

steep kiln
#

Hey

blissful olive
patent pivot
#

let's leave it and if we see people tripping up on it we'll add it, for now the mappings should match exactly

blissful olive
#

king-arthur#336

dusky shoreBOT
blissful olive
#

;-;

patent pivot
#

what's up with that

#

ah you've made the change for repo names

patent pivot
#

.gh repo site

dusky shoreBOT
#
NEGATORY.

The repository should look like user/reponame or user reponame.

patent pivot
#

old instance running, ignore the error response

#

.gh repo go

dusky shoreBOT
#
go

The Go programming language

patent pivot
#

.gh repo python

dusky shoreBOT
#
I'm sorry Dave, I'm afraid I can't do that.

No repositories found matching python.

patent pivot
#

.gh repo cpython

#

.gh repo cpython

dusky shoreBOT
#

The Python programming language

patent pivot
#

noice

#

works

#

although

#

.gh repo cpython

dusky shoreBOT
#

The Python programming language

patent pivot
#

nice

blissful olive
#

this is from stored mappings

patent pivot
#

yea

#

I added the comma separation to forks and stargazers

#

.gh repo site

dusky shoreBOT
patent pivot
#

.gh repo kubernetes

dusky shoreBOT
#

Production-Grade Container Scheduling and Management

toxic wren
#

.gh repo dragonsenseiguy

#

Devops privledges....

#

100% python dedication too

#

none of my repos show up actually

#

fetch_most_starred = False
Oh

patent pivot
#

to true

#

when the PyDis lookup fails

patent pivot
patent pivot
#

yes, but sorted by stars when you search for that query it's not there

#

.gh repo icecast-exporter

dusky shoreBOT
#
jb3

A Prometheus Exporter for Icecast

patent pivot
#

it does work

#

.gh repo language-circuitpython

dusky shoreBOT
#
jb3

A plugin for the Atom Editor to allow interfacing with CircuitPython devices.

patent pivot
#

.gh repo fizzbuzz.ko

dusky shoreBOT
#
jb3

FizzBuzz as a Kernel module

patent pivot
#

.gh repo psql_extended

dusky shoreBOT
#

Extends postgres docker image by adding a few useful pg extensions

patent pivot
#

.gh repo python-poetry-base

dusky shoreBOT
#

A base Dockerfile with poetry pre-installed

patent pivot
#

seems to work @toxic wren

#

it just depends on repo name

toxic wren
fallen patrol
fallen patrol
#

Lmao I just realised it might be the ratelimit but not sure

#

Search is separate from the 5k/hour rl.

#

It's typically 30 over 60 seconds

patent pivot
#

what might be the ratelimit

#

ratelimit would actually fail

#

not just give no results

blissful olive
#

is anyone working on sir-lancebot#1709

dusky shoreBOT
blissful olive
#

oh so we have to remove this command entirely as well

#

the .space nasa command also doesn't work

stable mountainBOT
blissful olive
# blissful olive the `.space nasa` command also doesn't work
2025-11-24 10:23:47 | DEBUG | bot.exts.core.error_handler | Error Encountered: ContentTypeError - 403, message='Attempt to decode JSON with unexpected mimetype: text/html', url='https://images-api.nasa.gov/search?media_type=image', Command: space nasa, Author: ryushison, Channel: sir-lancebot-playground
2025-11-24 10:23:47 | ERROR | bot.exts.core.error_handler | Unhandled command error: 403, message='Attempt to decode JSON with unexpected mimetype: text/html', url='https://images-api.nasa.gov/search?media_type=image'
Traceback (most recent call last):
  File "C:\Users\Muhammad Hasan\Desktop\Coding\sir-lancebot\.venv\Lib\site-packages\discord\ext\commands\core.py", line 266, in wrapped
    ret = await coro(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Muhammad Hasan\Desktop\Coding\sir-lancebot\bot\exts\fun\space.py", line 107, in nasa
    data = await self.fetch_from_nasa("search", params, NASA_IMAGES_BASE_URL, use_api_key=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Muhammad Hasan\Desktop\Coding\sir-lancebot\bot\exts\fun\space.py", line 227, in fetch_from_nasa
    return await resp.json()
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\Muhammad Hasan\Desktop\Coding\sir-lancebot\.venv\Lib\site-packages\aiohttp\client_reqrep.py", line 756, in json
    raise ContentTypeError(
    ...<7 lines>...
/search?media_type=image'
#

when i open https://images-api.nasa.gov/search?media_type=image it gives me a json instead of a HTML page showing 403 error.

#

I think we need a user-agent header then

patent pivot
#

do we know which inventory is causing the empty symbol

fallen patrol
#

(me)

patent pivot
#

what and that being in cache causes that or something?

fallen patrol
#

that parses very weirdly

#

i think?

patent pivot
#

I don't get why it's always appearing in #dev-log

#

I'll wipe the cache in a bit

brazen charm
#

user requests shouldn't have anything to do with the warning

#

there probably was a change in sphinx that it generates a direct link to the docs in the inventories with no fragment, the bot parses it into an empty string and then tries finding that in the html

patent pivot
fallen patrol
#

i'm really busy the next few days but I have those sort of urgent aoc prs that need reviews before i can fix them, and I have a limited amout of time

#

Some of them are ready for merge and only need to be merged

patent pivot
#

i just wiped redis cache to test, error still occurs after a clean start up with nothing in the cache that would be related to !d ""

fallen patrol
#

hm okay

patent pivot
#

so

#

it actually triggers every time someone uses the docs command

brazen charm
#

the bot parses all of the items on a page when anything from it is fetched, so it'll trigger on any cache miss to a page that has one of the broken items

#

just needs an if != "" somewhere or maybe they added a category for it that could be ignored

patent pivot
#

yea

#

i'm just curious what those object are

#
DocItem(package='python', group='doc', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='')
#

looks like the module pages are the main culprits

#

but they still work β€” you can still do !doc abc

lilac valve
patent pivot
#

yea

#
bot-1        | DocItem(package='python', group='module', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='module-abc')
bot-1        | DocItem(package='python', group='method', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.ABCMeta.__subclasshook__')
bot-1        | DocItem(package='python', group='method', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.ABCMeta.register')
bot-1        | DocItem(package='python', group='class', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.ABC')
bot-1        | DocItem(package='python', group='class', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.ABCMeta')
bot-1        | DocItem(package='python', group='function', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.abstractclassmethod')
bot-1        | DocItem(package='python', group='function', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.abstractmethod')
bot-1        | DocItem(package='python', group='function', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.abstractproperty')
bot-1        | DocItem(package='python', group='function', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.abstractstaticmethod')
bot-1        | DocItem(package='python', group='function', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.get_cache_token')
bot-1        | DocItem(package='python', group='function', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='abc.update_abstractmethods')
bot-1        | DocItem(package='python', group='doc', base_url='https://docs.python.org/3/', relative_url_path='library/abc.html', symbol_id='')
#

wonder what the doc intersphinx role is for

#

that's what we pull group from

#

though

#

hmmm

#

i can't see that role in the intersphinx inventory at all

#

ahh

#
library/abc std:doc -1 library/abc.html abc β€” Abstract Base Classes
#

interestingly std:doc is disabled here

#

lol

#

we actually parse way more types than I thought we would

#

!d vp1p2p5

stable mountainBOT
#

v1.2.5

Bug Fixes

β€’ Fix a bug that caused crashes due to missing animated field in Emoji structures in reactions.

patent pivot
#

we should probably be filtering these roles a lot

#

we don't really want std:label or std:doc

patent pivot
#

actually I imagine labels are probably fine β€” or seem to be behaving fine

toxic wren
patent pivot
#

yeah they run things like this all the time

#

they're nice

toxic wren
#

I want to do it

#

but I'm not sure if I can do it alone

#

and I have to do stuff for another hackathon

#

(reason why im not active on pydis and those PR's)

blissful olive
toxic wren
#

We need 1 more member

patent pivot
blissful olive
agile epoch
#

Hi

#

What’s it about
Can I join. ?

toxic wren
patent pivot
#

!doc refreshdoc

stable mountainBOT
#
Inventories refreshed
patent pivot
#

should be no more of the spam in #dev-log from docs command now

#

this never did cause a problem but still continues to cause no problems

#

!d vp2p6p4

stable mountainBOT
patent pivot
#

labels still work also

patent pivot
#

πŸ’ͺ πŸ’ͺ πŸ’ͺ πŸ’ͺ

#

about 1/5 the size of our backups from before

#

previous backups were about 9GB for 7 days, using this we're down to 2GB for 7 days

cold island
#

Anything left to do before aoc?

patent pivot
cold island
#

@thorny obsidian are you holding off on merging for a particular reason, or is it good to go if it looks ready?

patent pivot
cold island
#

Hi @fallen patrol are you available this weekend to sort out sir-robin#165 ? sir-robin#166 also has merge conflicts that need to be resolved before merging, although it seems lower priority

fallen patrol
#

@patent pivot @cold island @thorny obsidian unfornuately, i'm pretty busy from today up to sunday: basically right when AOC starts. I had time before now but I'm on the schedule at work for this night and all of this weekend

#

i can fix 166's merge conflicts but 165 i don't have time to sit down and reword

#

i can remove the command but i'll put in a todo where someone can comment with a review suggestion and press apply suggestion lmao

cold island
fallen patrol
#

fixed conflicts on 166 but need to retest it

#

rebased 165 though

#

oops broke 166

#

ok fixed πŸ‘

#

This is satisfying though

patent pivot
#

broke snekbox

#

whoops

fallen patrol
#

:)

fallen patrol
patent pivot
#

i only operate in his majesty's time

#

chris lovering central time

#

i think i fixed it

fallen patrol
#

oh yeah sir-robin#166 is ready again

patent pivot
#

after

#

nice

#

!e 3.14j ```py
import sys
print(sys.version)

stable mountainBOT
patent pivot
#

!e 3.14 ```py
import sys
print(sys.version)

stable mountainBOT
patent pivot
#

!e 3.13 ```py
import sys
print(sys.version)

stable mountainBOT
patent pivot
#

seems good enough

toxic wren
#

!xkcd 1

#

.xkcd

#

.src xkcd

dusky shoreBOT
#
Command: xkcd

Getting an xkcd comic's information along with the image.

Source Code
toxic wren
#

!src help

stable mountainBOT
#
Help Command

An interactive instance for the bot help command.

Source Code
toxic wren
#

.help

toxic wren
#

!src ban

stable mountainBOT
#
Command: ban

Permanently ban a user for the given reason and stop watching them with Big Brother.

Source Code
toxic wren
#

!src kick

stable mountainBOT
#
Command: kick

Kick a user for the given reason.

Source Code
cold island
toxic wren
fallen patrol
#

sir-robin#165 is open for someone else to address comments, my time to contribute ran dry this month

cold island
#

I'll take care of it

cold island
#

Anyone ran into a problem with pycharm where running the bot works, but debugging says it can't find the module "bot"?

patent pivot
#

interestingly i had a similar problem but with vscode lol

cold island
#

did you manage to solve it?

cold island
#

well, I ran out of time this weekend, I'll work on it for next time

patent pivot
toxic wren
#

HelpForum
!help-forum close
Make the help post this command was called in dormant.
!help-forum
A group of commands that help manage our help forum system.
!help-forum title <title>
Rename the help post to the provided title.
Why do I see this in !help from @stable mountain

#

seems like a mod command

cold island
#

members can run it for their own posts iirc

vale ibex
#

yeah that's right

toxic wren
#

isn't there !close?

cold island
#

It's the same command

#

!src close

stable mountainBOT
#
Command: help-forum close

Make the help post this command was called in dormant.

Source Code
cold island
toxic wren
#

@patent pivot It's fine if docs just has a slash command right?

#

tag has only a slash command too

fallen patrol
cold island
#

Interesting

patent pivot
#

!or-gotcha

stable mountainBOT
#
The or-gotcha

When checking if something is equal to one thing or another, you might think that this is possible:

# Incorrect...
if favorite_fruit == 'grapefruit' or 'lemon':
    print("That's a weird favorite fruit to have.")

While this makes sense in English, it may not behave the way you would expect. In Python, you should have complete instructions on both sides of the logical operator.

So, if you want to check if something is equal to one thing or another, there are two common ways:

# Like this...
if favorite_fruit == 'grapefruit' or favorite_fruit == 'lemon':
    print("That's a weird favorite fruit to have.")

# ...or like this.
if favorite_fruit in ['grapefruit', 'lemon']:
    print("That's a weird favorite fruit to have.")
patent pivot
#

again the whole point of this command addition is basically to be an engagement of functionality, not a replacement, we are not at a stage where we want to get rid of text commands yet

thorny obsidian
#

(Also I think /tag should be hybrid and not slash-only like it currently is)

fallen patrol
#

Woo aoc

#

@thorny obsidian a heads up the FAQ link isn't clickable for some reason on android in #announcements

thorny obsidian
#

oooh I thiink I know why

fallen patrol
thorny obsidian
#

It's an android specific bug

fallen patrol
#

It's probably the . But if you wrap the link in <> it should fix it due to the markdown parser

#

???? Why does it work on here

#

That's so confusing

thorny obsidian
#

Discord has the weirdest bugs

fallen patrol
#

Oh, looks like markdown just dies in the intended list object

#
  1. Hi
    Test
#

???? I have so many questions

fallen patrol
#

@thorny obsidian hei! I sent you a DM regarding cookies!

toxic wren
#

Question: What do you guys think are the coolest commands. Can be mod commands too!

toxic wren
#

I noticed that there are some differences from #roles and the roles page on the website. I made a PR to address this.
site#1574

dusky shoreBOT
fallen patrol
#

Well remind me to fix this when I get a chance

Showing the full leaderboard truncates me because we have more than 1k and that means it's impossible to see my score compared to others lmao

fallen patrol
#

@patent pivot what's the upload size on the pastebin and is it possible to allow pydis bots a greater size

#

@humble leaf doesn't have mention everyone permissions in that channel

#

i think allowed mentions is set properly but when we fixed permissions due to that zero day it wasn't reset in the aoc channels

#

cc @wild prism

#

i think i patched all of those exploits

patent pivot
#

it's a pretty static limit

radiant merlinBOT
#

?

fallen patrol
tame pebble
fallen patrol
#

That's.... Okay

toxic wren
toxic wren
fallen patrol
stable mountainBOT
#

etc/pinnwand.toml-example lines 11 to 12

# Maximum paste size you want to allow.
paste_size = 262144  # 256kB in bytes```
stable mountainBOT
#

kubernetes/namespaces/web/pinnwand/defaults-configmap.yaml line 9

paste_size = 524288```
fallen patrol
#

so

#

I can probably extend the length on robin

patent pivot
patent pivot
#

if you do that then all pasted things are subject to that new limit, not just sir robin things

fallen patrol
#

what no

#

there's a hard limit of top 1k of the aoc leaderboard in the pastebin

#

the pastebin got changed from one backend to the other (hastebin to pinwand) and now we don't need to cut to 1k

patent pivot
#

oh you mean robin isn't posting the full data

fallen patrol
#

ye

#

an the comment said due to upload limits

patent pivot
#

right I'd just seen the links to our deployment files and been thinking from DevOps

#

yes that sounds fine

stable mountainBOT
#

bot/exts/advent_of_code/_helpers.py lines 294 to 297

# Only output up to the top 1000 so we don't hit paste length limit
# extra 2 lines for table header.
leaderboard = "\n".join(leaderboard.split("\n")[:1002])
file = paste_service.PasteFile(content=leaderboard, lexer="text")```
cold island
#

We're gonna hit the limit eventually so we should try to estimate it and take a good buffer if we're gonna do this

cold island
#

If we can get the config directly from the pastebin then we can just find the max number of lines we can send each time

fallen patrol
#

Yeah I'm thinking about making it be a for loop

#

To 500k characters

#

Wait that doesn't make sense

#

Every line is the same number of characters

#

Need to figure out padding

#

Take string length, floor divide // the 500k by that length, which tells us how many lines

cold island
#

Yeah, although that limit might change so I'm not sure about hardcoding it

timid sentinel
#

meh, I don't think it needs overcomplicating

#

I'd just increase the number a bit

#

Though most of the people are inactive so even that isn't particularly necessary

#

If you have a score you will appear

#

and if many more people join we should probably prune the leaderboards so we have less to keep track of.

toxic wren
#

Where is the source for @dusky shore whenever we say "halloween" it reacts to the message. Or a similar one that replies to the message.

patent pivot
fallen patrol
fallen patrol
#

@terse prairie i know you were curious

visual quiver
fallen patrol
#

@thorny obsidian do you want an issue to put aoc language roulette into sir robin?

My idea is using redis to store which day is which language on a per year basis but also clear the data afterwards. Its not critical to have but it would be nice, perhaps, to have sir-robin share the roulette language

using redis to allow events team to still set the language but not having to provide it

thorny obsidian
#

That would be super nice, if I wasn't also deciding the roulette language like... 3 minutes before >_>

#

Feel free to still create the issue though, I think it would be beneficial to have the roulette more team-built/team-decided vs my events overlord whims a few minutes before midnight

toxic wren
#

site#1574 ready for review

dusky shoreBOT
calm narwhal
#

Hi

tidal spoke
# calm narwhal Hi

Hello I am learning file handling, data analyst should I message here ?

toxic wren
#

every channel has a description related to it

tidal spoke
patent pivot
#

@outer oasis PR closed? we do need changes right, just not the order there

outer oasis
patent pivot
#

πŸ‘

patent pivot
#

!warn @modern grotto Advertising is not permitted within our community.

stable mountainBOT
#

:incoming_envelope: :ok_hand: applied warning to @modern grotto.

low peak
dapper laurel
#

Hi

cold island
#

Has something changed with the bot's logs recently? When I start it I don't see anything below warning level and it's not formatted either. I set BOT_TRACE_LOGGERS=* in the .env

fallen patrol
#

@thorny obsidian hey again, I dmed you a few days ago and wanted to follow up (I remember something about you never checking your dms and to ping you in server)

thorny obsidian
blissful olive
#

sir-lancebot#1450

dusky shoreBOT
blissful olive
#

this thing has been sitting for so long

#

nvm i think theres an open PR not linked to this issue

#

sir-lancebot#20

dusky shoreBOT
blissful olive
#

oh wait tf

#

this is a PR on a fork lol

patent pivot
#

i've seen this before

#

they just never tried to contribute any of their stuff back to us

#

Β―_(ツ)_/Β―

lilac valve
#

Reminds me of that time my friend asked the people at a foss conference showing off their foss project, "have you guys tried to commercialise this?"

blissful olive
dusky shoreBOT
blissful olive
#

sir-lancebot#1713

dusky shoreBOT
blissful olive
#

opened

austere hornet
#

Looking for reviews on my PRs as well:
sir-lancebot#1690
sir-lancebot#1694

Thanks!

fallen patrol
#

basically I just build it for you and guarentee it

#

otherwise you can make your own from the schematics

#

(but for the field it is, people would much rather have someone to blame)

oblique cairn
atomic ivy
#

no, this is not a meme channel
read the channel description

your message has been removed

celest charm
#

So, about the URL thing

#

!pypi can_ada

stable mountainBOT
#

Ada is a fast spec-compliant url parser

Released on <t:1738212339:D>.

celest charm
#

Seems like there's already a maintained and high-performance library for parsing URLs using the same standard JavaScript does

cold island
#

ada-python seems better maintained

celest charm
#

Yeah, it has Lemire himself listed among the PyPI maintainers

#

The can_ada github project does also have some commits from Lemire

cold island
celest charm
#

the difference is that can_ada uses a native extension instead of cffi

#

if the point is to squeeze as much performance as possible, that's proably better

#

(if not, we can probably use the pure python whatwg-url (though it's archived and not maintained, it probably just works))

cold island
#

Performance is good, but I'm willing to sacrifice a bit of it for something that's better maintained. They're both faster than urllib

celest charm
#

Then ada-url is probably the main candidate

blissful olive
#

pls rebiew

sir-lancebot#1713

dusky shoreBOT
green oriole
#

Left a comment

toxic wren
#

Sorry, guys I was not able to get any time to work on the docs slash command PR. I might not in the future too, if anyone wants to take it up feel free to! I was super busy with Hack Club.

blissful olive
eager dome
# dusky shore

You should check the channel type and skip if it is a dm channel. And you don't need a full message object to remove the reaction, a partial message object will work. Now that's a max of 1 api call.

blissful olive
#

i dont really know what you mean by a partial message object

#

can you explain

eager dome
#

!d discord.PartialMessage

stable mountainBOT
#

class discord.PartialMessage(*, channel, id)```
Represents a partial message to aid with working messages when only a message and channel ID are present.

There are two ways to construct this class. The first one is through the constructor itself, and the second is via the following...
blissful olive
eager dome
blissful olive
eager dome
celest charm
#

!e Python fails when you write a file that contains non-UTF8 chracaters in the name

with open(b"ban\xff\xff\xffana.txt", "w"):  pass
stable mountainBOT
stable mountainBOT
#

snekbox/snekio/attachment.py lines 75 to 79

# Disallow filenames with chars that can't be encoded in UTF-8
try:
    str(path).encode("utf-8")
except UnicodeEncodeError as e:
    raise IllegalPathError("File paths may not contain invalid byte sequences") from e```
celest charm
#

Maybe it would be more user-friendly to replace the bad parts? e.g. with path.encode("utf-8", "replace") (or path.encode("utf-8", "replace").decode() if we want to keep working with a str)

tawdry vapor
fallen cloud
#

Hello πŸ™‹β€β™‚οΈ I am new can anyone help me. Where to start of

feral copper
fallen cloud
#

Ok sorry

blissful olive
#

sorry to bother you guys but it has been some time since i received a last comment on sir-lancebot#1713 so it would be appreciated if it can be reviewed further and/or merged

dusky shoreBOT
blissful olive
#

;-;

patent pivot
# blissful olive ;-;

(it is christmas period so highly likely folks are with their family, this is probably a January thing)

blissful olive
#

i think i forgot about that because i dont celebrate christmas, sorry if anyone was distrubed too much

patent pivot
#

!paste

stable mountainBOT
#
Pasting large amounts of code

So that everyone can easily read your code, you can paste it in this website:
https://paste.pythondiscord.com/

After pasting your code, save it by clicking the Paste! button in the bottom left, or by pressing CTRL + S. After doing that, you will be navigated to the new paste's page. Copy the URL and post it here so others can see it.

patent pivot
#

!off-topic-names

stable mountainBOT
thorny obsidian
#

!warn 1390726189345280040 Don't advertise here

stable mountainBOT
#

:incoming_envelope: :ok_hand: applied warning to @torn island.

stark burrow
#

Hello guys

last patio
#

Hello Tech.c

vale ibex
#

Hello Tech.c

patent pivot
#

Hello Tech.c

blazing magnet
#

Hello Tech.c

spare plaza
#

Hello Tech.c

timid sentinel
#

Hello Tech.c

tame pebble
#

Hello Tech.c

oblique cairn
#

Hello Tech.c

wise marten
#

Hello Tech.c

blissful olive
#

Hello Tech.c

blissful olive
#

sir-lancebot#1719

#

sir-lancebot#1713

dusky shoreBOT
blissful olive
#

been so long i even forgot the pr number

tight stone
#

hi

oblique cairn
#

!clban 675890991877586974 work scam thing. You've also been warned before about this.

stable mountainBOT
#

:incoming_envelope: :ok_hand: applied ban to @timber elm permanently.

blissful olive
#

sir-lancebot#1713 is a fix to almost a 2 year old issue

dusky shoreBOT
oblique cairn
#

Hello @buoyant bobcat, I've deleted your message. This channel is about contributions to our open-source projects.

blissful olive
toxic wren
#

@oblique cairn remove pls

#

(pinging because you are active)

oblique cairn
fervent sage
#

Wanted to suggest #python-discussion message somewhat more officially, and given that ask whether it's a @stable mountain sort of command or a @dusky shore one? I don't have the time to write its implementation myself currently, but I'm willing to discuss how it could be done & justify its existence

zealous spoke
#

sounds like a reasonable fit for a context menu command to me. I doubt it'd get used much, but it might be nice for regulars

fervent sage
#

ah yeah posting the actual content here might have been a good idea kekw

#

whoops

fallen patrol
#

give it a bit of time before implementing

#

radios and checkboxes

#

-# image c/o @late hedge

blissful olive
#

I’ve followed up multiple times with sir-lancebot#1713. The changes are already approved, and the PR has seen no activity for over two weeks. Could we move this forward?

dusky shoreBOT
patent pivot
#

needs another approval

#

but yeah agree it has been a while

#

!remind 4h this

stable mountainBOT
#
Sure.

Your reminder will arrive on <t:1770156488:F>!

stable mountainBOT
oblique cairn
#

!clban 1433805733933219870 1d read our #rules before coming back

stable mountainBOT
#

:incoming_envelope: :ok_hand: applied ban to @quaint berry until <t:1770294602:f> (1 day).

marsh fox
#

Hello

#

I am a senior software engineer. I need to find the clients who have cool projects.

stable mountainBOT
#

7. Keep discussions relevant to the channel topic. Each channel's description tells you the topic.

eager dome
#

!d collections.abc.Collection

#

oh oops wrong channe;

rapid marten
#

hello everyone?

#

I am going to convert from audio feed to transcript by using python libaries and free modules now.

#

but there are some trobles.

#

who can help me?

blissful olive
rapid marten
#

hi

#

@blissful olive

blissful olive
#

this channel isnt for this conversation

#

soo lets not talk about this here

thorn tusk
#

Hello

#

@stable mountain

#

@oblique cairn @wise marten @blissful olive @stable mountain

#

Can you help me

blissful olive
#

?

wise marten
#

read the rules, follow them

thorn tusk
#

How to get Hypesquad badges my profile setting not so

wise marten
#

that is completely off-topic for this channel, and stop harassing people.

thorn tusk
#

see this

blissful olive
#

dont be offended by this but you're dumb

tame pebble
#

Prefixing your statement with don't be offended doesn't make it any less offensive, just like how you wouldn't like to get called like that.

If you see people off topic or whatever, indicate it to them or ping mods if they persist.

But don't go out calling people dumb

vale ibex
#

@midnight bough @bitter flame This server isn't for advertising

toxic wren
#

@patent pivot could I get metrics for the server from the last year? Just curious πŸ™‚

patent pivot
#

guhh

#

which metrics

toxic wren
#

all of them lmao

patent pivot
#

we collect hundreds of metrics

toxic wren
#

like the grafna ones

#

message count and activity related?

patent pivot
#

that's on the stats page

toxic wren
patent pivot
#

ya

#

partial week

toxic wren
patent pivot
#

that datapoint is lower because the period it's referencing hasn't finished yet

#

i.e. a week of 7 days is going to have much more data than a partial week of like 3 days

#

last period ran 5th to 12th feb

#

so this one will be 12th to 19th feb

toxic wren
#

ohhhh

grand flume
austere hornet
#

Hello, just wanted to follow up again on my 2 open Lancebot PRs:
sir-lancebot#1690
sir-lancebot#1694

Would someone be able to review these soon? Thanks in advance for your time.

loud meteor
#

I would appreciate if it'd be looked after ASAP, as I am in little hurry for this one :()

loud meteor
last patio
#

Hey folks, we (Joe, Mark and me) have just gone through a collection of old pull requests. We're trying to clean shop a bit on our GitHub repositories. If you have something that needs input, please post it here πŸ™‚

gritty elm
#

Hi there!

My friends and I want to take on the !stats command mentioned in issue #1724: https://github.com/python-discord/sir-lancebot/issues/1724

My friend, chenniebenniebingbang commented already, but could you please assign the issue to me? We’re aiming to finish it by March 3rd. Thanks!

GitHub

Adding a !stats command with the arguments of <timestamp_start, <timestamp_end> and <repo>. Example response: Stats for the bot repository: Issues opened: 20 Issues closed: 15 Pull R...

gritty elm
#

I notice that sir-lancebot bot does not have any tests. Are we allowed to implement our own tests related to our issue?

tame pebble
#

Problem with discord bots in general is that they're hard to test

patent pivot
gritty elm
patent pivot
#

I think you will struggle to fit it into one reasonably sized PR

last patio
#

It would probably be worth to open an issue with the proposed design

#

Doesn't have to be a PDF document with a huge technical description, just roughly how you want to write them and how you want to run them, maybe with a small proof of concept

patent pivot
#

that project is purposefully not tested because stakes are low and it increases the contributor burden massively to ask people to write tests, the point of this repo is for fun low-effort features

last patio
#

ah that t oo

patent pivot
#

the decision not to include tests was not accidental, it was purposefully omitted because it's not reasonable to ask for the types of contributors that we target

last patio
#

the /bot codebase is tested a bit IIRC but that's also pretty messy because of all the mocking, like Bella said

gritty elm
#

Damn, thats unfortunate. Would have loved to practise writing some tests aswell

#

Maybe we can submit a PR with some tests and you can give feedback, but wont accept it? Purely for academic purposes.

#

Or is that too annoying? I don't want to unnecessarily burden the maintainers

last patio
#

that's fine, yes

vale yacht
#

Hi!

Similar to Oskar, me and my friends would also like to contribute. We want to take on the !voiceban command in issue #1849 .

We are also aiming to finish by March 3rd. I just commented on the issue and hope to be assigned!

GitHub

Recently we've been having a problem with people joining and leaving the voice chat over and over and over. I'm wanting to have a new command made that will not only prevent them from being...

patent pivot
#

@gritty elm see my latest comment on that PR re: new contributors, please do not adhere to the advice to poll all commit history, just drop that as a feature, the rest of it is fine πŸ‘

maiden elk
#

Hi, similarly to the others above, we would like to contribute to sir-lancebot: https://github.com/python-discord/sir-lancebot/issues/627

We already started since we have a deadline from our course, but would love to get assigned and open a PR with the changes we have made

GitHub

Description Add a global points leader-board, for the points/coins which are earned by users while playing a game like Trivia Quiz, Tic Tac Toe, Connect 4, etc. Currently each game has its own lead...

last patio
#

hahahaha what is going on

#

sure, assigned you

maiden elk
#

quick question, what is the preferred way to upload images? asking about the duck coin for the leaderboard in #627

last patio
#

like into the repository?

#

somewhere under bot/resources/ with a path similar to the cog would work best I think

maiden elk
#

im gonna have to use a link, since im using the LinePaginator. should I use the link from github "raw.githubusercontent.com/..." after uploading it to the repo?

last patio
#

yeah I think thats how we do it in other places too

patent pivot
#

are you guys all in the same class

#

were we specifically recommended?

last patio
#

they're bellas children

maiden elk
patent pivot
#

interesting lol

summer garden
#

wouldn't it ideally be an emoji though anyway? So you wouldn't need to upload it as a resource. (i'm not sure what your plan is)

#

oh my bad i just saw the pr. Looks good

loud meteor
patent pivot
#

we'll try get to all your PRs but as you may appreciate we expected a couple of student PRs and over the last week we've had on onslaught of PRs and interest from students who may be in your class

#

that does naturally add more work to the pile and we want to make sure that all PRs get an equally thorough review β€” not just a skim review to get through all these student PRs

loud meteor
last patio
#

if you didn't start we should maybe look for something else

vale yacht
#

Yes I saw :( unfortunatly we had to start because our assignment (where we have to work on open source) is due tomorrow, so we are pretty much finished

#

I think it is fine for our assignment that it closed while we were working on it but sad that our work did not improve your bot

last patio
#

yeha I understand

#

we can give you a code review for learning still though, it's fine

patent pivot
#

was the recommendation to contribute to us something that your teacher suggested / provided?

gritty elm
#

Thank you btw for the extensive review. We'll look into fixing ASAP. Hope it was not too much headache!

patent pivot
#

I saw you added a test fixture & removed it β€” are you still planning on doing that for the lancebot PR?

gritty elm
#

I mean, you could probably give us better feedback on the tests than our TA could ever, but don't want to overwhelm yall either

patent pivot
#

@gritty elm one more issue with your PR, and a bit of a vulnerability.

since you're accepting raw user input and templating it into a URL users can perform directory traversal and access pretty much any API endpoint on github they want

#

the impact is sort of limited in that it's always get requests and the result data would probably just trigger errors, but it's still far from great

#

as an example, if someone puts in the repo name .. it would probably start querying user data because there's no validation in place

gritty elm
#

Great catch, thank you for pointing that out! Do you think it is enough to wrap the input repo quote(repo) or should we add additional checks to prevent directory traversal?

patent pivot
#

validating you've got two segments split by / and then URL-encoding those seems like the sensible way of doing it I'd guess

#

.gh

dusky shoreBOT
#
Command Help

**```
.github

**Can also use:** `gh`, `git`

*Commands for finding information related to GitHub.*

**Subcommands:**
**`github repository [repo...]`**
*Fetches a repository's GitHub information.*
**`github user <username>`**
*Fetches a user's GitHub information.*
patent pivot
#

I'd check how we do the validation for github repository

#

looks like quote is how we handle it there β€” so seems reasonable

#

but we do also have the check that there is not more than one / in the repo parameter

royal prawn
patent pivot
#

ehh

#

easy enough to call .src imo

#

.src gh

dusky shoreBOT
#
Command: github

Commands for finding information related to GitHub.

Source Code
patent pivot
#

the source code logic is not centralised in bot-core yet

#

i think ideally we move help & src there and then adding src to it adds it to all our bots which is the better solution here

loud meteor
patent pivot
#

just a note regarding all the student PRs: before we even consider merging these, we need all commits that reference your reports and internal teaching stuff dropped. i'm already a bit annoyed at your teaching staff that they're encouraging a messy commit history that adds/removes reports and tests and all sorts. a huge part of contributing to OSS is having good git etiquette and your commits are a huge part of that.

we don't plan on merging anything that has commits in the history that reference your report. even if commits add/remove a report it's still in the git history and I'd rather it not be there at all.

#

not at all trying to penalise you guys as students here β€” this is obviously something that's been designed pretty badly by your teaching staff β€” but if they are truly trying to teach good OSS contribution throwing a load of report work into other peoples public repositories is not the way to do it

gritty elm
#

You are probably referencing us. My mate accidentally added the report and removed it so that mistake is on us. We can just drop those commits from the history afaik. I am confused what other messy history you are referring to tho, maybe its something we could learn from.

patent pivot
#

& messy history is maybe a strong word, I just mean that squashing commits for single features is generally a nice thing to do to make things reviewable (as an example, another PR from a student group has >100 commits which when reviewing commit-by-commit is kinda lengthy)

patent pivot
#

@gritty elm great stuff on the bot-core PR, looks like the docs gen stuff is slipping up somewhere but I wouldn't expect you guys to go and fix that unless you actively want to β€” if you take a look at review comment (very minor stuff) then I'll just figure the docs out & push to your branch

#

will get a release out as soon as it's merged

#

actually β€” I suspect another issue might be that dateutil needs adding to bot-core

#

it's just in a package called python-dateutil, latest version is 2.9.0.post0

gritty elm
patent pivot
#

yea was just looking into that now hmmm

#

lol

#

docs don't build at all now locally for me

#

man this projects docs pipeline is a mess for whatever reason

#

this was fine a few months ago

#

actually

#

it builds fine on main so i think it's a dep that got bumped in your poetry relock

#

okay the plot thickens

#

it's something that's happening inside the actual converter code

#

ohhhh

#

i know exactly what it is

#

apparently it's the Converter class

#

I am really not sure why though

#

also @gritty elm the context argument shouldn't have been removed β€” it needs to be there

#

it just needs to be underscored because it's not being used

#

but i'm prob gonna end up fixing whatever the converter issue is and pushing back to your PR so I'll fix that

gritty elm
#

Sounds good!

sleek needle
#

Hello

patent pivot
#

gonna merge now before i totally trash your PR lol β€” the changes look good now so just needs the build stuff fixing

patent pivot
dry turret
#

Do events automatically trigger from the meta.md dates?

timid sentinel
#

yes, if the branding daemon is enabled on the bot

dry turret
#

Okay, eid is coming up and it still has last years dates, it'll be 19 or 20 this year

timid sentinel
#

I'm not too familiar with how the dates for Eid are decided, but based on us aiming to have the branding for 3 days last year, I think setting the branding to run from 19th-21st would make sense

gritty elm
cursive relic
#

regarding bot#3479 for later, Would the tag format like this make sense, or something along the lines of it?

[some kind of title]

- [hyperlink_to_resource] - short explanation
- [hyperlink_to_resource] - short explanation
- [hyperlink_to_resource] - short explanation
- [hyperlink_to_resource] - short explanation

{maybe link to resources page under all?}
dusky shoreBOT
celest charm
cursive relic
celest charm
#

The course page does have an "Audit course" button that lets you take it for free, but it's pretty difficult to find. And yes, I don't think the $300 certificate is any good

cursive relic
#

Ye... That's many reasons to pick the Harvard site, no reason to link to edX when it's like that (especially when edx doesn't provide any benefits)

#

I'll update this tomorrow, thx!

cursive relic
# dusky shore

What kind of title should the tag have? I thought about "Commonly recommended resources". The tag draft would look like this

celest charm
#

maybe it could also say that they are all free of charge

cursive relic
royal prawn
#

i'm curious about the exclusion of a byte of python

cursive relic
thorny obsidian
cursive relic
celest charm
celest charm
#

Including the fact that the resources are free does not fit in the title. Something like:

Go-to beginner resources
Here are the top free resources we recommend for people who are new to programming:

cursive relic
celest charm
cursive relic
#

right, ye that makes sense

celest charm
#

Number 3 Will Blow Your Mind

cursive relic
cursive relic
celest charm
#

i think we can fit that, yeah. describing what kind of resource it is

cursive relic
#

I'll add that there as well πŸ‘