#dev-log

1 messages ยท Page 28 of 1

regal archBOT
#

Thanks for the PR - this looks really good! The code is very neat and I love the addition of the requires_effect/effect_restricts options. Also, thanks for the detailed PR description, it makes it much easier to review.

I've played around with it and the game works nicely - I have no suggestions from a gameplay perspective.

I've commented on a few minor points, let me know your thoughts :)

#

I understand what this is attempting to indicate, but I don't think it is intended that __annotations__ is used to define type attribute types like this - from what I can tell it is not documented, or supported by type checkers (and also I think if it was allowed it would have to be dict[str, type[RoomData] | type[EndRoomData]]).

I think it would be fine to just not include this line, we're not too strict about typing on this repo.

#

This error will log if the user runs .adventure available_games, which isn't really an issue, though I think it would be fine to just treat AVAILABLE_GAMES_DICT as the source of truth, rather than trying to read the file first.

This would also fix a minor bug where if you run .adventure <really long string filling discord character limit> you can get an OSError because the file name it tries to read is too long (happens on windows at least, not sure if it is OS dependant).

regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

Yep, tbh I come from a TS background, and I'm not sure how I would translate the following into Python:

type GameData = {
  start: RoomData
  [room_id: str]: RoomData | EndRoomData
}

From my research, there doesn't seem to be any equivalent syntax in Python, unless you break things down further (e.g. into two different dictionaries).

As far as I'm aware, Python doesn't strictly enforce type hints, so there shouldn't be a problem either way (even if we delete the entire ...

#

This was referenced from help.py to be honest... I thought there were some underlying assumptions about performance or whatsoever, but apparently not?

I just did a quick git blame on this, and it looks like the line was from 5 years ago, copy and pasted from the Python bot (ref) ๐Ÿ˜…

The latest implementation in python-discord/bot seems to use await as well ([ref](https://github.com/pyt...

regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
#

Relevant Issues

Closes #494

Description

Implemented the .yoda command, which converts input text to Yoda-like speech according to the description in issue #494. Also includes unit tests to verify the functionality of the file.

Did you:

  • [x] Join the Python Discord Community?
  • [x] Read all the comments in this template?
  • [x] Ensure there is an issue open, or link relevant discord discussions?
  • [x] Read and agree to the [contributing g...
odd spireBOT
regal archBOT
#

Relevant Issues

Closes #1477

Description

Implements the desired changed to .bemyvalentine. Also adds the feature to let the sender choose if they want to send it anonymously or not.

Did you:

odd spireBOT
regal archBOT
#

The !zen {line} command treats the line parameter (if it is a number) as a list index, i.e. it starts from 0 and allows negative indices to start from the end of the list.
However, it does not allow list slicing. I think it should allow a slice parameter like 2:4 and it would return

Simple is better than complex.
Complex is better than complicated.

being lines 2 and 3 of the Zen of Python.
It wouldn't have too much use but I still think it is something worth implementing.

odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
oak estuaryBOT
regal archBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: anand/bot-setup-typos
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: anand/bot-setup-typos
odd spireBOT
regal archBOT
regal archBOT
#

Since we only support searching for a single symbol, we can simply ignore the text that comes after the first argument by changing the method's signature:

diff --git a/bot/exts/info/doc/_cog.py b/bot/exts/info/doc/_cog.py
index 105f0510..c0020ce7 100644
--- a/bot/exts/info/doc/_cog.py
+++ b/bot/exts/info/doc/_cog.py
@@ -302,12 +302,12 @@ class DocCog(commands.Cog):
             return embed
 
     @commands.group(name="docs", aliases=("doc", "d"), invoke_without_command=True)
-    asy...
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#

As per @decorator-factory 's suggestion:

!d provides a pretty huge embed that takes a lot of space, and you need to post a message for each documentation entry. I almost always click the docs link anyway, because the text gets cut off for all but the most trivial items.
It's common for gaming communities on Reddit to have a bot that scans messages for specially formatted mentions of items and gives some very brief information on all of them (and most importantly a documentation link) ...

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#

A lot of beginners encounter circular import error so often so that it would be nice && wise to have a command like !circular-import just like !return giving the user examples or bullet points to avoid circular imports or suggesting them resourced to check out.

I'm not well versed with this myself so I don't have a proposed implementation. Someone else with have to come up with or decide what content the !circular-import command will hold. However, I suggest that whatever it contains s...

regal archBOT
#

Since we only support searching for a single symbol,

I wrote this comment with this assumption in mind. I realize now that invocations like !docs not in are allowed (thanks to #1014) to retrieve reference docs for not in . If we change the method signature like I suggested, !docs not in will instead show results for the not operator. To specifically get results for not in, you would need to run !docs "not in".

I think the best solution, as algmyr said, would be to handle backt...

regal archBOT
regal archBOT
#

Implemented the feature in issue #3289.

Now, the !zen command accepts arguments in the form start:stop, and will return the corresponding zen lines.
Additionally, since the indices can now no longer simply be passed as integers, the zen_rule_index argument to the zen command was removed, and now indices are parsed from a regex expression.

odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
#

This latest commit fixes the problems you mentioned, but i noticed it's impossible to include the last line when slicing (i.e. !zen 1:18 and !zen 1:-1 will only include up to the semi-last line, and !zen 1:19 will error out. I was considering some options to fix that, and I wanted to get your opinions:

  1. Make slicing end inclusive -- i don't like this because it feels unpythonic and just uncoherent with the language
  2. Allowing for end_index == len(zen_lines) -- again, weird and...
odd spireBOT
regal archBOT
#
  1. Allowing for end_index == len(zen_lines) -- again, weird and unpythonic, but less bad than the previous option.
  2. Add the possibility for an open range (i.e. 1:) which will include up to the last line. -- this feels like the best option to me.

I like option 2 since it's consistent with how slicing in Python works. If we deviate from it, people might think it's a bug.
Maybe we can do option 2 AND option 3.

re: writing tests

draft a PR for it later on (should I open an is...

odd spireBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
#

I couldn't find a good way to phrase the sentence that could concisely and professionally tell everyone that this button is for everyone other than the reminder's author, so I decided to list the reminder mentions upfront to make it clear what the button will do. In exchange the embed might be considered a little verbose (until the button times out).

If others feel the embed is fine as it is and is not too verbose , then let's stick with it- but how about "Notify me too" or "Join reminde...

odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: forms
#
[python-discord/site] New branch created: forms-bootstrap
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#

Thanks for your patience on this. This all looks good other than two minor bugs I have noticed.

  1. When you type just .adventure, you get this error in the console after 30 seconds
Traceback (most recent call last):
  File "C:\Users\wookie\AppData\Local\pypoetry\Cache\virtualenvs\sir-lancebot-XnEUY10r-py3.12\Lib\site-packages\pydis_core\utils\scheduling.py", line 257, in _coro_wrapper
    await coro
  File "D:\sir-lancebot\bot\exts\fun\adventure.py", line 181, in...
regal archBOT
#

This is super cool, nice work!

I have added a few comments. There are definitely extensions that could be made to the functionality here, such as better preservation/handling of punctuation, but since language is sort of complex it's sort of an endless task so I wouldn't expect anything more for this PR.

One other thing, CI is currently failing because of trailing whitespace in the file, take a look at, make sure you run poetry run task precommit to install checks when you commit to f...

odd spireBOT
regal archBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

e7780bd Reminders: Add a button for others to opt-in to... - hedyhli
cdaa59f Reminders: More robust implementation of mentio... - hedyhli
e753586 Reminders: Refactor all opt-in button related l... - hedyhli
8efc22d Reminders: Simplify helper function to get butt... - hedyhli
9806725 Merge branch 'main' into feat/reminder-add-notify - ChrisLovering

#
[python-discord/bot] branch deleted: feat/reminder-add-notify
odd spireBOT
regal archBOT
#

8813f2d Added the possibility of slicing for the zen co... - LeandroVandari
4d63449 Fixed off-by-one error, as the end index can be... - LeandroVandari
a886997 Added support for negative signs and replaced r... - LeandroVandari
6d68dd7 Allows for end_index == len(zen_lines). Previou... - LeandroVandari
6d3cbfb Allows for slicing without a specified end inde... - LeandroVandari

odd spireBOT
oak estuaryBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] New branch created: remove-ping-on-auto-ban
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: remove-ping-on-auto-ban
oak estuaryBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

is this actually valuable to anyone? It just looks like the average linkedin SEO blogspam. doing a quick look:

  • first post is a guy advertising his youtube channel
  • second post is someone advertising their ... I don't even know what that does, but it brings "order, safety, and predictability to Python module integration", yeah I still don't know what it does
  • third post is a guy advertising his medium post on how he used kafka, an LLM via pytorch and slack (he calls it "GenAI") to loo...
regal archBOT
#

Resources can be helpful to some and not so to others. The same is true of every community we link to in our resources.

The space maintains a PSF code of conduct, and it's presence in resources helps us direct users who are keen on that kind of space, letting pydis focus more on learning than career growth, without leaving the user left on their own if they're interested in moving from a learning role into a career focused stage of their growth.

regal archBOT
#

These kinds of spaces are often less about the content and more about connecting its members, it shouldn't be judged on its content alone. Of course I agree that this content sounds terrible, but it's LinkedIn, that's par for the course. From the pov of someone trying to become more immersed in the Python ecosystem, it may offer an opportunity to reach out to or connect with people who could be valuable in their career path.

odd spireBOT
odd spireBOT
regal archBOT
#

These kinds of spaces are often less about the content and more about connecting its members, it shouldn't be judged on its content alone.

This is correct, but I would argue that any other platform is much better suited for connecting than talking to people than LinkedIn. I personally cannot remember a single moment where I've taken any value out of LinkedIn for learning Python (or any other programming language). Even for job hunting it's rare for me to find value, and I have years of expe...

regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

This converter is not used anywhere.

In addition, this converter is vulnerable to Server-Side Request Forgery through URL Injection. If the argument looks like discord.gg/../nefarious, this converter is going to make the request GET https://discordapp.com/api/v7/invites/../nefarious, which is the same as GET https://discordapp.com/api/v7/nefarious.

Example of how it could be exploited:

  1. provide the "invite" discord.gg/../guilds/267624335836053506/bans/12345 ([Get Guild Ban](h...
odd spireBOT
oak estuaryBOT
odd spireBOT
oak estuaryBOT
regal archBOT
#
jb3
[python-discord/bot] New branch created: jb3/founders-talentpool
odd spireBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
regal archBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: python-313-upgrade
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: sir-lancebot-python-313
odd spireBOT
regal archBOT
#

I timeboxed half an hour for this, and unfortunately I couldn't come up with a clean solution for the race condition you mentioned (without refactoring a bunch of code) ๐Ÿค” Do we have any utility functions for mutex/ critical sections/ something like that?

Using an asyncio.Lock would be an option to ensure you don't have two reaction handlers running at the same time. Refactoring to avoid mutable state as much as possible (e.g. trying to put as much logic as possible in @staticmethod f...

regal archBOT
regal archBOT
odd spireBOT
regal archBOT
#

Hmm, I don't see how docker compose is simpler. You need to install docker, as well as still needing Python/poetry locally for precommit.

In theory this would ensure you have all that in one click, even if you're on a device where you don't have the needed permissions to install those things, or docker slows your device down to a crawl.

In terms of maintenance, we already have a .gitpod.yml, which this could replace...

regal archBOT
#

Hi,

Iโ€™ve since moved on from contributing to this and in the middle of midterms
at my school. You can feel free to continue work on this.

On Tue, Apr 8, 2025 at 07:19 wookie184 @.***> wrote:

Are you still interested in working on this @Ken-Miles
https://github.com/Ken-Miles?

โ€”
Reply to this email directly, view it on GitHub
https://github.com/python-discord/sir-lancebot/pull/1542#issuecomment-2786253501,
or unsubscribe
<https://github.com/notificatio...

regal archBOT
#

Is the goal here to drive career discussion away from Python Discord and redirect people elsewhere?

The goal here is to have a diverse and complex network of roads others can use and navigate their path and communities at their own choice. We are not creating a roadmap, but acknowledging that community connections are not zero sum games nor are they a case of, "everyone should do x".

While we can't be a hub for every community, I think it's important to acknowledge LinkedIn is a spac...

regal archBOT
#
[python-discord/bot] New branch created: update-pep-cog
regal archBOT
#
[python-discord/bot] New branch created: update-pep-cog-2
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: update-pep-cog
#
[python-discord/bot] branch deleted: quote-normalization
regal archBOT
#

@jchristgit

This is correct, but I would argue that any other platform is much better suited for connecting than talking to people than LinkedIn. I personally cannot remember a single moment where I've taken any value out of LinkedIn for learning Python (or any other programming language).
Meanwhile, my entire career has been made possible exclusively by LinkedIn. Without LinkedIn I'd probably be in a dead-end tech support job today.

How do you envision actually talking to new peop...

regal archBOT
#
[python-discord/bot] New branch created: vivek/pastebin-codeblock
regal archBOT
#

Closes #2679

This PR adds support for paste.pythondiscord.com /paste.pydis.wtf paste links to the CodeSnippets cog.
The pastebin we use supports selecting lines across multiple files, which, AFAIK, the other services in this cog don't support.

image

Note: When selecting only a single line, the website generates the link as: https://paste.pythondiscord.com/EMJQ#1L2-L2. Technically, a link like htt...

odd spireBOT
oak estuaryBOT
night lilyBOT
#
Sir Lancebot

Connected!

oak estuaryBOT
night lilyBOT
#
Sir Lancebot

Connected!

oak estuaryBOT
odd spireBOT
ocean rock
#

@chris

#

@mint goblet hello

#

your remedial actions have spammed this channel, thanks

mint goblet
#

yeah

#

All in a days work

regal archBOT
#

This adds the long awaited ability to step while slicing to the !zen command, so you can finally do stupid things like getting every other line in reverse.

The regex was completely reworked to allow for the steps (I finally got to use ++ for something) (groups are now named instead of indexed for clarity)

Line numbers for display are now found via zen_lines.index instead of math. I am aware this is worse for performance, but it is a massive win for both ease of implementation and ...

odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#

Problem Explanation:
In the code, the backticks around the symbol name are handled later, but splitting the string happens earlier (symbol_name.split(maxsplit=1)[0]), which results in the symbol name being truncated before backtick handling is done.

For example:

!d \collections.Counter some more textis treated ascollections.Counter and the text after the symbol is ignored. However, the goal is to parse the symbol correctly even with extra trailing text after the backticks.

Solution:
To f...

regal archBOT
#

Hi, sorry for the delay in replying here!

Yes, you'd comment on people's post, add people who said interesting things are connections and try to chat with them, and post your own blog posts or whatever to try to give yourself exposure so that people will contact you. It's a meat market. I know that doesn't appeal to you but people who are willing to play that bullshit hustle can end up with interesting job opportunities. I know because I did.

No, it's just a large group that some of ou...

odd spireBOT
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/king-arthur] New branch created: RCE-as-a-Service
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
ocean rock
#

Issue vaporised

regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] branch deleted: python-313-upgrade
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
regal archBOT
#
[python-discord/bot] New branch created: remove-cban-alias
odd spireBOT
regal archBOT
#
jb3
[python-discord/bot] branch deleted: remove-cban-alias
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: sir-lancebot-python-313
odd spireBOT
regal archBOT
#
[python-discord/king-arthur] New branch created: numbers-uptime
odd spireBOT
regal archBOT
odd spireBOT
oak estuaryBOT
night lilyBOT
#
Sir Lancebot

Connected!

oak estuaryBOT
oak estuaryBOT
regal archBOT
ocean rock
#

vaporised

odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/king-arthur] branch deleted: numbers-uptime
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/king-arthur] New branch created: VERIFY_X509_STRICT
odd spireBOT
regal archBOT
#
[python-discord/king-arthur] branch deleted: VERIFY_X509_STRICT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: resource-missing-semester
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: resource-cs50
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: 3.14-snekbox
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
regal archBOT
#

Primary channels in Pydis see a large fluctuation in amount of users. Using metrics from Dave or channel monitoring, it could be possible to implement a dynamic slowmode for channels such as Python general or career discussion based on hours with more or less users online at the time.

For example, pygen could have a 5sec timeout during high load times and 3sec during low load times.

regal archBOT
#

Invoking !d discord to lookup the the discord.py documentation is currently not working as intended. It causes the bot start typing and never produces an output.

Image

It seems to be a specific issue with the discord look-up in particular, but more work into what specifically the error could be caused by is needed. The logging present currently isn't enough to trace down the specific issue in production.

...

oak estuaryBOT
regal archBOT
#
jb3

Supersedes #3325.

This issue is for the addition of a new argument to the !slowmode set command to have the bot time out slowmodes.

Proposed syntax: !slowmode set [channel]

Example use: !slowmode set #python-discussion 10s 30m

After expiration the slowmode should probably restore to whatever the previous value is, that way Moderators can still set a permanent value and have that be preserved (i.e. temporarily have a 10s slowmode before reverting to 2s after 2 hours).

We should pe...

regal archBOT
oak estuaryBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
regal archBOT
#

47aaa80 Replace 3.12 support in snekbox for 3.14-dev - ChrisLovering
1059e0a Add extra info about pre-release versions in sn... - ChrisLovering
3335e3a Dynamically get the default snekbox Python vers... - ChrisLovering
0113d82 Move snekbox help docs to the @command decorator - ChrisLovering
e3339bb Update snekbox tests to use new default python ... - ChrisLovering

ocean rock
#

chris thanks @mint goblet great comimit, thanks, joe.

mint goblet
#

@ocean rock thanks joe, great Pr, thanks, chris.

oak estuaryBOT
mint goblet
#

Ignore the 72 minute delay

odd spireBOT
ocean rock
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: fix-infraction-active-regression
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: fix-infraction-active-regression
odd spireBOT
regal archBOT
#

"name": "unkoynx7",
"version": "2.0.0",
"description": "Atualizaรงรตes no bot de vendas automรกticas",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [],
"author": "unkoynx7",
"license": "MIT",
"dependencies": {
"@discordjs/voice": "^0.13.0",
"axios": "^0.27.2",
"better-sqlite3": "^8.7.0",
"canvas": "^2.11.2",
"date-fns": "^2.30.0",
"discord.js": "14.11",
"fs-constants": "^1.0.0",
"imgur"...

ocean rock
#

vaporized

regal archBOT
#
[python-discord/king-arthur] New branch created: obey
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/king-arthur] branch deleted: obey
odd spireBOT
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: vivek/pastebin-codeblock
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: update-pep-cog-2
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: don't-hardcode-python-version-in-timeit
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/snekbox] New branch created: pin-3.14-dev-version
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

Hey I'm looking to tackle this one but just wanted to run through the implementation.

I'm not super familiar with redis but here's my understanding of approximately what needs to happen.

Scheduled tasks don't persist bot reboot, so when the cog is loaded it should load redis cache and check if there are active slowmodes for which a task to remove them needs to be created (for the time remaining), or if there are any slowmodes active which have already elapsed and for which the original time...

regal archBOT
#
[python-discord/snekbox] branch deleted: pin-3.14-dev-version
regal archBOT
#
[python-discord/site] New branch created: timeline-update-2025
#

Closes #3327.

Implemented an optional duration argument for the slowmode command. If the duration argument is present, the intended expiration datetime and the original slowmode interval are saved in redis cache. After the duration is elapsed, the original slowmode interval is grabbed from redis and restored to the channel.

The expiration datetime is cached so that it can persist bot restart.

odd spireBOT
ocean rock
#

chris i was MERGING THAT!

odd spireBOT
mint goblet
regal archBOT
#
[python-discord/site] New branch created: timeline-update-2025-nr-2
odd spireBOT
odd spireBOT
regal archBOT
#

This test checks if temporary slowmodes in cache are rescheduled after the cog is reloaded but I'm having trouble with getting the assertion on line 203 to pass. I mock two channels, one where the slowmode is already expired by the time the cog is loaded, and one where it is not expired. The task for the channel where it is expired should immediately callback the func that removes the slowmode. On line 200 I check that two tasks are created, and they are. On line 203 I check if the slowmode w...

odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
#

Doc item doc_item.symbol_id='tutorial-toplevel' present in loaded documentation inventories not found on site, inventories may need to be refreshed.

regal archBOT
#
jb3
[python-discord/site] branch deleted: timeline-update-2025-nr-2
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
mint goblet
#

Bot

odd spireBOT
regal archBOT
#
[python-discord/modmail-plugins] New branch created: mobile-friendly-mdlink
odd spireBOT
regal archBOT
#
[python-discord/modmail-plugins] branch deleted: mobile-friendly-mdlink
#
[python-discord/modmail-plugins] New branch created: mobilefriendly
oak estuaryBOT
#

Doc item doc_item.symbol_id='requests.URLRequired' present in loaded documentation inventories not found on site, inventories may need to be refreshed.

regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/modmail-plugins] branch deleted: mobilefriendly
oak estuaryBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: resource-cs50
odd spireBOT
odd spireBOT
regal archBOT
#
jb3
[python-discord/bot] New branch created: jb3/non-staff-rule-usage
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT