#dev-log

1 messages ยท Page 20 of 1

regal archBOT
odd spireBOT
oak estuaryBOT
regal archBOT
#

We have some high-quality articles over at /pages/ and I look forward to seeing more. However, as someone who has a fairly sound grasp of the organization and structure of the content as compared to a new user, I still struggle to navigate and discover more pages with ease. I often find myself stumbling upon pages I have not seen years before (despite themselves being present) as well as having troubles recalling the hierarchies of the content when ne...

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
#
[python-discord/king-arthur] branch deleted: integrate-sentry
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
#

After diving deeper into it, it turns out that it's a quirk of iOS/iPadOS + Safari. This SO question has a few solutions that worked perfectly for me:
https://stackoverflow.com/questions/18047353/fix-css-hover-on-iphone-ipad-ipod

  1. With javascript
<script>
    document.addEventListener("touchstart", function() {},false);
</script>
  1. Add tabindex to body
<body tabindex=0>
  1. HTML ontouchmove
<html ontouchmove>

These are the only sol...

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

Closes #707 if approved.
(new PR because of branch)

Description

  • Added 4 commands to fun.py to output a string in different cases to add to the already existing .randomcase
    PascalCase, camelCase, snake_case, SCREAMING_SNAKE_CASE
    .pascalcase aliases [.pascal .pcase]
    .camelcase aliases [.camel .ccase]
    .snakecase alias [.scase]
    .screamingsnakecase aliases [.screamsnake .ssnake .screamingsnake]
  • Added a helper function in utils/helpers.py to attempt to strip a string of punctuat...
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/bot-core] New branch created: document-bot-attributes
regal archBOT
regal archBOT
#
[python-discord/bot-core] branch deleted: document-bot-attributes
odd spireBOT
regal archBOT
#
[python-discord/bot-core] New branch created: better-error-handling
#
[python-discord/sir-lancebot] New branch created: use-botcore-command-error-manager
#

Part of this bot core issue

This acts as a demo of how error handling will be done in the bots.

This deflates the CommandErrorHandler from all the conditionals in place when it comes to error types.
Most importantly, it allows us to centralize error handling of both text and slash commands in one place, and reuse any necessary logic.

Note: We will make a beta release of the bot-core package to facilitate testing. In th...

odd spireBOT
regal archBOT
#

Description

Add more trivia questions. Format is `- question - 'answer' or 'answer2' (note)

Science

  • How much obsidian is required to craft an enchantment table? - '4'

CS

  • Which Turing Award winner created a typesetting language based on Tex? - 'Lamport' or 'Leslie Lamport'
  • What letter is used to separate date and time in ISO 8601? - 'T'
  • HTTP/3 is built on which Transport Layer Protocol? - 'UDP'
  • What algorithm yields accurate RTT measurements in TCP? - 'Karn' or...
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

Relevant Issues

Closes #937

Description

  • Added "christmasify" command to add a Christmas touch to user's avatar.
  • Currently has 2 effects - Room for future additions
    • Make avatar chilly
    • Add ornaments

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
odd spireBOT
oak estuaryBOT
regal archBOT
odd spireBOT
oak estuaryBOT
regal archBOT
odd spireBOT
oak estuaryBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/bot-core] New branch created: update-ruff
regal archBOT
#
[python-discord/bot-core] New branch created: Use-more-ruff-rules
#

This updated our ruff config to select all rules, and disable those I thought weren't useful.

The only breaking changes that I can see will affect our repos is the change to in_whitelist_check.

Draft release notes

Breaking Changes

All breaking changes are related to making boolean default and boolean-typed positional arguments in function definition keyword args only. The arg anmes and functions are listed below.

  • sync_app_commands in `pydis_core.BotBase.load_extensions()...
#
[python-discord/bot-core] branch deleted: update-ruff
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

This doesn't seem to work very well for using text from a reply.

Consider this series of commands:
<img width="650" alt="image" src="https://github.com/python-discord/sir-lancebot/assets/50042066/55e9fc8b-e215-4ca7-8235-9c8914fe1d3e">

It works as expected. helloWorld gets converted to snake case, and back to camel case.

However, consider this example, where instead of using text provided as command arguments, replies are used instead:
<img width="650" alt="image" src="https://git...

#

A little nitpick-y, but let's capitalize the comments here as recommended by pep8.

    # Return early if no text provided.
    if not txt:
        return None

    # Take out punctuation
    txt = re.sub(r"([^\w\s]|_)", " ", txt)

    # Make full cap words lowercase but leave camelCase / PascalCase
    words = [word.lower() if word.isupper() else word for word in txt.split()]
    txt = " ".join(words)

    # Attempt to split PascalCase and camelCase
    words = []
...
#

There's quite a lot of potentially excessive " ".join and .split()s here.

Especially if you're going to opt for the solution in my first review comment, we're doing a .split immediately after a " ".join when neutralise_string returns.

One way we could improve this is to iterate over each word using an outer for-loop, before looping through each individual word like on line 26, and append to something like a new_words list. This removes the need of the .join call on line 21...

regal archBOT
#
[python-discord/site] New branch created: fix-metricity-message-counts
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#

Relevant Issues

Closes #937

Description

  • Added "christmasify" command to add a Christmas touch to user's avatar.
  • Currently has 2 effects - Room for future additions
    • Make avatar chilly
    • Add ornaments

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...
#

So I've been trying to look for any notes regarding redis in the contributing pages and I came across this page:
https://www.pythondiscord.com/pages/guides/pydis-guides/contributing/bot-extended-configuration-options/#with-the-bot-running-locally

There's a link to a heading "Working with redis" but there is no such heading on that page with that link. Only a "Starting redis using other methods" heading:
https://www.pythondiscord.com/pages/guides/pydis-guides/contributing/bot-extended-con...

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

Connected!

odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
regal archBOT
#

I don't really understand the purpose of the added changes. What was wrong with the existing test?

The existing test dates back to when where we loaded the config from the yaml file, it's not relevant anymore

sections = (
            cls
            for (name, cls) in inspect.getmembers(constants)
            if hasattr(cls, "section") and isinstance(cls, type)
        )

This evaluates to nothing, so the test isn't doing anything.

Why is the change in this PR?
...

odd spireBOT
regal archBOT
#

Thanks wookie.

I opted for all.min.css because I can't tell whether we would need the regular style as well in the future, and all.css would just include everything we are allowed to use for the free plan.

The latest FA release was added with only the required CSS/font files kept before force-pushing. I think it's safe to just include everything in webfonts since it's just a few files and we'll never know when we might use icons that need them.

odd spireBOT
regal archBOT
#

The existing test dates back to when where we loaded the config from the yaml file, it's not relevant anymore

Makes sense, thanks ๐Ÿ‘

Because I wanted to test that pydantic loads variables correctly from the environment, not the env file. And I can't guarantee the value of an env variable on contribs machine if they ever run tests, which will cause a failure when such a variable doesn't exist :)

It's not ideal for a test to behave differently in CI versus locally. Can we use `os.e...

regal archBOT
regal archBOT
regal archBOT
regal archBOT
#

This looks great :)
Where did you get ice_frame.png and ornaments_frame.png from? We need to make sure they're licensed appropriately so we can use them here. I also wonder if there's a higher quality version of ice_frame.png, currently it looks quite blurry.

It was just downloaded from google so i have no clue where the source actually is ๐Ÿ˜…

Reverse image search for ornaments_frame.png led me to [this](https://www.hiclipart.com/free-transparent-background-png-clipar...

#

This looks great :)
Where did you get ice_frame.png and ornaments_frame.png from? We need to make sure they're licensed appropriately so we can use them here. I also wonder if there's a higher quality version of ice_frame.png, currently it looks quite blurry.

It was just downloaded from google so i have no clue where the source actually is ๐Ÿ˜…

Reverse image search for ornaments_frame.png led me to [this](https://www.hiclipart.com/free-transparent-bac...

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

I'm running some tests to see if all are the same format, which I think it should be. It does seem however that not all versions are released on the same date. For now the only example I could find is pygame which has 2 different dates in the urls.
As far as I'm aware we can just skip the arrow by providing datetime.date objects:
return max(datetime.strptime(dist["upload_time"], "%Y-%m-%dT%H:%M:%S").date() for dist in data['urls'])
In which case comparing still works and the latest date...

regal archBOT
#

Okay I did some digging. I think we can, and should, return the last element in the list. data["urls"][-1] is the top element on the downloads page. This will be the "source" distribution. Which is actually when the current version of the package was released. Later dates inside the urls are actually updated built distributions. So in either way, we'll need to use min() instead of max(), but as stated above I think this is unnecessary.
So I'm going with that and will await your feedba...

regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
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.

mint goblet
#

!d r

oak estuaryBOT
#
Inventories refreshed
odd spireBOT
regal archBOT
#

We should have a command to append to a nomination reason, when the current reason is okay and we just want to add information without repeating the entire reason. Like how we have !infraction edit and !infraction append.

The command should have a similar interface to the !talentpool edit reason command, with the only difference between the commands being how it changes the nomination reason.

#

We should have a context menu command for helpers to nominate users.

  • The command will be available only to helpers.
  • If the helper didn't nominate the user yet, a new nomination will be added, with the nomination reason being a jump link to the message the command was invoked on.
  • If there is already an existing nomination from that helper for that user, the jump link will be appended to the nomination reason.
  • Either way, the helper will be pinged with an appropriate confirmation ...
oak estuaryBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
#

Since the upload time provided by API is already in ISO 8601, we can just use min() on the upload_time_iso_8601 value and have it use string comparisons rather than with datetime, can't we?

However, I don't really know the differences between the distributions and why there's a difference in date.

Perhaps it's with the files being uploaded one by one during publishing, hence the delay of a few seconds between each. The last one, the source, as sorted alphabetically[^1], being up...

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

The following events' date should be updated:

Event New Date
Holi 24/03 - 25/03
Easter 31/03
Eid-ul-Fitar 11/04
Diwali 31/10 - 1/11

Note: The given dates are exact dates
since we don't use exact date instead we extend the events date, so that should be done.

All the dates are picked up from Google Calendar, except the Easter is picked up from Wik...

night lilyBOT
#
Sir Lancebot

Connected!

oak estuaryBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
regal archBOT
regal archBOT
#
[python-discord/site] branch deleted: feat/font-awesome-plugin
#
[python-discord/site] branch deleted: fix-metricity-message-counts
regal archBOT
regal archBOT
#
  • Sir-Lancebot

    Docker sets up "real" redis, so REDIS_USE_FAKEREDIS is only relevant to those that are not using docker, if I understand it correctly? If we remove that warning box entirely, users would need to click into the "Full environment variables" page to see information regarding redis set up.

    IMO, having a note on fakeredis there (like right now, but amended) lets people quickly set u...

regal archBOT
#

IMO, having a note on fakeredis there (like right now, but amended) lets people quickly set up the development environment with the required env vars (such as redis ones) without needing to look into the full reference. What do you think?

I think that's a good idea :slightly_smiling_face:

For the Python bot I do agree it's fine to leave it as it is. Setting up Redis locally i...

regal archBOT
regal archBOT
#

especially if it's the "standard way"

It's the standard way to do what it does, though I don't think it's any less hacky than the other solutions to solve this issue, since it's still not obvious why it fixes the issue (not a complaint about using it, just pointing it out).

My only question about using tabindex is if it has any other unwanted effects. It sounds like it should make the whole body of the page selectable through using tab, which doesn't sound ideal. In that case, `ontouc...

regal archBOT
#

My only question about using tabindex is if it has any other unwanted effects. It sounds like it should make the whole body of the page selectable through using tab, which doesn't sound ideal.

I was also concerned about this, but during testing I wasn't actually able to see any visual effects of having the body selected.

That said, setting tabindex=-1 also fixes the problem, and makes it so it can't be s...

odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/bot-core] branch deleted: Use-more-ruff-rules
regal archBOT
#
[python-discord/bot-core] New branch created: breaking-deps-changes
#

This adds a few more breaking changes that I've wanted to do for a while since we're making a new major version.

  1. Drop Pydantic 1.X support. We had to use a deprecated function for backwards compat. It's been out long enough that I feel comfortable dropping support for it.
  2. Spliting fakeredis from the async-rediscache extra. This means that uses of this lib can install async-redis cache without having to install fakeredis, this allows for 3.12 support
  3. Drop support for 3.10. Suppor...
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/branding] New branch created: update-events
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/branding] branch deleted: update-events
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

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

Connected!

regal archBOT
#

I'm okay with this. I think we can debate some of the wording a little bit, but ultimately I think it accomplishes the goal of succinctly answering the following:
"Why shouldn't I use the Python distributed with my OS?" and "What should I do instead?"

Technically installing a separate interpreter is done by Pyenv or similar tools, but I'm not sure engaging in that level of elaboration is going to make this any clearer to newcomers.

LGTM.

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: docs/suggest-resources
#
[python-discord/site] branch deleted: docs/dark-theme-dev
odd spireBOT
regal archBOT
#

4d1ba10 Capitalize "Discord" in header; Change print st... - swfarnsworth
96038fd Rewriting of non-code sections. - swfarnsworth
36f1aa2 New tag to explain why == True et al are wrong. - swfarnsworth
ac3b8ae Bump regex from 2023.10.3 to 2023.12.25 (#2863) - dependabot[bot]
e136658 Bump rapidfuzz from 3.5.2 to 3.6.0 (#2865) - dependabot[bot]

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] New branch created: update-config-tests
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
#
[python-discord/site] New branch created: fix/timeline-icons
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: use-bot-core-paginator
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/sir-lancebot] branch deleted: use-botcore-paginator
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

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

Connected!

odd spireBOT
regal archBOT
regal archBOT
#

Moving this below

        if reason:
            reason = textwrap.shorten(reason, width=512, placeholder="...")

causes a change in behaviour.

I assume the behaviour we want is for the full message to be sent to the database, but the reason to be trimmed in the audit log (I assume because there's a limit there), but now it's also trimmed in the database.

_Originally posted by @wookie184 in https://github.com/python-discord/bot/pull/2316#discussion_r1439052748_

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

Connected!

oak estuaryBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
oak estuaryBOT
regal archBOT
#
[python-discord/snekbox] New branch created: 3.12.2-support
regal archBOT
#
[python-discord/snekbox] New branch created: add-dependabot
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/snekbox] branch deleted: 3.12.2-support
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
#

The following test code:

!e ```py
with open(b"\xC3.txt", "w") as f:
f.write("test")


Snekbox fails with a (presumably non-exploitable) 500 error:

[FALCON] [ERROR] POST /eval => Traceback (most recent call last):
File "falcon/app.py", line 386, in falcon.app.App.call
File "falcon/app.py", line 1070, in falcon.app.App._get_body
File "falcon/response.py", line 270, in falcon.response.Response.render_body
File "falcon/media/json.py", line 179, in falcon.media.json.J...

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

Description

The bemyvalentine feature allows for valentines to either be secret/anonymous (sends the message to the selected user through DMs, without mentioning who it's from), or public by default (sends the message to #sir-lancebot-playground for everyone to see).

I would like for the non-secret mode to send valentines privately to the selected user in DMs, just like the secret mode.

The only difference would be that the valentine embed will include who the message is f...

regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] New branch created: Continually-check-for-posts-that-need-to-be-closed
#

This PR adds a check that runs every 5 minutes to look for idle help channels and close them.

This is to cover the case where a Discord outage causes us to miss a help post creation.
I purposefully didn't use the discord.py task system here as this cog already has it's own scheduler and deals with closing all active tasks itself.

This PR also has two small changes to the help cog I noticed while writing & testing this PR.

#

Sentry Issue: BOT-3QY

Forbidden: 403 Forbidden (error code: 40058): Cannot message this thread until after the post author has sent an initial message.
(3 additional frame(s) were not displayed)
...
  File "bot/bot.py", line 64, in on_error
    await handle_forbidden_from_block(e_val, message)
  File "bot/exts/help_channels/_cog.py", line 147, in on_thread_update
    await _channel.help_post_archived(after...
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: fix/timeline-icons
regal archBOT
#

I get the following error when my test account that I muted rejoins the server (while the timeout is still active) because member.is_timed_out() is True and hence reason is not assigned a value:

bot-1        |   File "/bot/bot/exts/moderation/infraction/infractions.py", line 664, in action
bot-1        |     await member.edit(timed_out_until=arrow.get(active_timeouts[0]["expires_at"]).datetime, reason=reason)
bot-1        |                                                        ...
regal archBOT
regal archBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/bot-core] branch deleted: breaking-deps-changes
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/bot-core] branch deleted: better-error-handling
regal archBOT
odd spireBOT
regal archBOT
#
[sir-lancebot] Branch use-botcore-command-error-manager was force-pushed to `fd6490c`
#
[sir-lancebot] Branch use-botcore-command-error-manager was force-pushed to `9d330d0`
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: pydis_core_11
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: fix/timeline-liechtenstein
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: fix/timeline-liechtenstein
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: feat/timeline-css-rewrite
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

I've noticed something that could warrant its own issue. When attempting to unmute a user who left the server, the bot will reply that the it has failed to pardon the infraction since the user has left the server. However, it will also mark the infraction as inactive in the db. This means that once the user rejoins, someone will have to manually remove the timeout.

Yes, i think this should be dealt with in a separate issue.

odd spireBOT
regal archBOT
#

This has been originally raised by @vivekashok1221 here

The current scenario is this

Scenario

  1. A user is muted for 4 days
  2. The user leaves the server
  3. Someone with the right perms pardons the unmute
  4. The user rejoins the server

Problem

Step 3 will only pardon the infraction in our database, but the native discord timeout will still remain in place since we cannot edit that when a user is ...

regal archBOT
#

Is the idea to display entire diffs, or only selected lines in the diff? If it's the entire diff, I think it'd often be too long to fit in a message. Only displaying selected lines could work, though I've found GitHub's UI for selecting/viewing specific lines in diffs isn't as good as for normal files, and (the reason I mention this) this seems potentially quite difficult to implement, given how the GitHub UI lets you select using line numbers from both things being compared.

I think it wo...

regal archBOT
#

@zeptofine it was alright, you can reopen it if you're still interested in this.

Currently if someone uses the wrong symbol a different message should be sent indicating that they're using the wrong symbol.

The trade-off here depends on how many people use the wrong symbol when seeing the current message. If it's most people than this change would be worth it. If it's only a few people then it might be better to keep the message shorter and accept that in a few cases they'll need the se...

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

The only thing I miiiiight change would be to check if member.timed_out_until is not same as the expiry time in the database before applying the timeout. This could potentially save an API call in the handful of scenarios when a user under a timeout rejoins the server and the timeout duration is unchanged (although, it is more likely that in the event a timed-out user does rejoin the server, the duration has not been edited).
Again, this case does not happen that often, and even if it...

regal archBOT
#
[python-discord/sir-lancebot] branch deleted: pydis_core_11
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
#
[sir-lancebot] Branch use-botcore-command-error-manager was force-pushed to `832acb1`
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/bot-core] New branch created: preserve-original-command
#
[python-discord/bot-core] branch deleted: preserve-original-command
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: delete-bm-ctx-menu
regal archBOT
#
[sir-lancebot] Branch use-botcore-command-error-manager was force-pushed to `5c610e0`
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
odd spireBOT
regal archBOT
oak estuaryBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
regal archBOT
#
[sir-lancebot] Branch use-botcore-command-error-manager was force-pushed to `6f8a5b1`
odd spireBOT
odd spireBOT
regal archBOT
night lilyBOT
#
Sir Lancebot

Connected!

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

Connected!

regal archBOT
#

Bulma v1.0.0 is here! ๐ŸŽ‰
https://bulma.io/documentation/start/migrating-to-v1/

A number of useful features were introduced that benefit us directly.

This means most, if not all...

  • limitations described in #1176 (on the CSS side),
  • warnings/tips documented in #1231, and
  • the hardcoded colors throughout the code base...

...are no longer necessary once we upgrade.

Note though, we're still blocked by lemonsaurus/django-simple-bulma#100 if we decide to do this.

Overview o...

odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
#

A little update on this issue:

  • [x] How to suggest a new resource for inclusion (done in #1226)

  • [x] How to implement a new resource. What files need to be edited, and how? (done in #1226)

  • [ ] The review process for a new resource. Who reviews and approves these suggestions?
    @swfarnsworth has [mentioned](#organisation message) they'll work on this once they've wrapped up the year-end survey project.

regal archBOT
#
[python-discord/site] New branch created: fix/footer-bulma-logo
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: fix/footer-logo-filtering
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
oak estuaryBOT
regal archBOT
#

@mbaruh I see that we have the same FilterListViewSet registered under two different routes, which creates a namespace collision upon registration since we're not specifying a basename for the route which leads to DRF extracting a basic one based on the viewset's class name.

Having looked at the bot code, I don't see the /bot/filter-lists route being used, shall we just remove it then ?

regal archBOT
#

Both Python and Sir-Lancebot have the ext command that allows to load/unload/list extensions.

The code is currently duplicated, and seems fit to be ported to bot-core as all bots could use that feature to have access to the same information about the different extensions' status.

#
[python-discord/sir-lancebot] New branch created: cleanup-constants
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: codeowners
odd spireBOT
odd spireBOT
regal archBOT
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
#

With a new design for our events page (#1210), weโ€™ll have to update our events page more often to keep it up-to-date. We need a way to minimize the efforts and friction for this redundant work by automating it in some way.

_Note: The problem this proposal tries to solve comes from the design of the new events page, for which PR is not yet merged, but in the event of that feature not ending up getting to production, I believe some ideas presented here can still be useful regardless of w...

regal archBOT
#

Is this issue approved? If so, I'd be interested in working on this.

I made a quick prototype using the UI interaction button (similar to .bm), which will not support opt-outs at all.
<img width="550" alt="image" src="https://github.com/python-discord/bot/assets/50042066/69e75d5d-94c9-4f55-bb1c-b0c2170ab36e">

However, using reactions as originally proposed lets the original author see who also opted-in to be notified. With this approach we'd have to perhaps have it edit the original ...

regal archBOT
regal archBOT
#

Yes, you can start working on it.

We should probably be moving away from using reactions; the button is better UX. I don't think the ability to see who else added themselves is important; editing the message with the new count is sufficient, but I do not consider that a strict requirement.

We will have to keep in mind the limits on how many people can be mentioned.

regal archBOT
#
[python-discord/bot] New branch created: codeowners
#
[python-discord/site] New branch created: codeowners
oak estuaryBOT
night lilyBOT
#
Sir Lancebot

Connected!

oak estuaryBOT
regal archBOT
#

Yes, all mentions are pinged as message content together with the reminder embed sent publicly:

<img width="460" alt="image" src="https://github.com/python-discord/bot/assets/50042066/c527306a-349e-47d9-b94a-deee7fa492db">

So the mention limit will just be the 2000 character limit, counting all mentions to be in the <@ID> form. On average, the character limit might be exceeded with >90 different people click on the button to get mentioned, if I'm not mistaken.

odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: python-3.12