#dev-log

1 messages ยท Page 82 of 1

regal archBOT
regal archBOT
regal archBOT
regal archBOT
regal archBOT
#
[python-discord/site] branch deleted: jb3/update\-gunicorn\-prefs
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#

I noticed there is an up for grabs tag on this, if no one else wants to, I would love to implement this issue.

I've already started making the basics, once I'm free I can send a video of how the base looks

https://user-images.githubusercontent.com/82843611/131761332-508c85f4-4acc-480a-84d4-06526033c64d.mp4

Experimented with this hangman idea. I would love to work on this issue though if anyone else wants to take it, that's fine with me

#

@Shom770 I liked your video! You can certainly go ahead and implement this feature. I was actually going to take it but I had a feeling that I might not have much time to do it, so I didn't assign it to myself. If you get stuck along the way, feel free to DM me on Discord (DM-Friends is my username) or ping me here and I can try to maybe find some time to help you.

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

It seems that it just means A goes before a. In this case we only need to care about the first letter of each import, but if we had say TYPE_CHECKING and Task, then although the second letter of Task (a) is before Y in the alphabet, because it's lowercase it'd go after the TYPE_CHECKING import.

This is the result of linting after changing to TYPE_CHECKING, Hashable, Union:

Flake8...................................................................Failed

  • hook id: f...
regal archBOT
odd spireBOT
regal archBOT
#

Hi! I would like to implement this! This will be my first contribution, so I will probably have a lot of questions!

For the role added, I would guess the best method would be to listen for on_member_update?

Then for the monthly one, using Role.members?

I guess the #community-meta channel is in config.yml at guilds-channels-meta (meta being in the # Discussion comment)?

Should the monthly one get pinned?

regal archBOT
#

Great! I'll assign you to the issue. For reference what is your name on Discord? Also, feel free to ask questions in #dev-contrib if you need any further help!

For the role added, I would guess the best method would be to listen for on_member_update?
Yes, that would be the way to do it. Keep in mind that we'd only want to send a message for when a new patron subscribes, rather when someone stops being a patron. The modlog cog currently watches for role changes, so if you're looking for ...

#

Great! I'll assign you to the issue. For reference what is your name on Discord? Also, feel free to ask questions in #dev-contrib if you need any further help!
I am mathstrains19#2057 on discord!

Ok!

For the role added, I would guess the best method would be to listen for on_member_update?

Yes, that would be the way to do it. Keep in mind that we'd only want to send a message for when a new patron subscribes, rather when someone stops being a patron. The modlog cog curre...

regal archBOT
#
[python-discord/bot] New branch created: infract\-then\-dm
odd spireBOT
regal archBOT
#

That looks really nice. However, (that's just a suggestion.) since Sir Lancebot is now on discord.py 2.0 I believe it would be really great if somehow you could integrate the concept of views into the structure. That's still in the future, but as a concept I could imagine something like generic_views that are used all around the code, and are useful in many contexts, and "local" views that are specific to a Cog or topic.
(However no views have been created, and they won't be created in a...

#

Description

Add more information on how to run or reload a bot during testing to the contributing guides.

Reason

For people who are new to using Docker / discord.py / contributing to python-discord/bot or python-discord/sir-lancebot, this will be a helpful resource on how to test small changes during the development stage (or review).

Proposed Implementation

Based on a short discussion in #dev-contrib, this is a short and possibly incomplete overview of how to start / reload ...

#

Yea it does add main as it's own group. I think a deployment failing on push to main isn't too much of a concern, since the checks need to pass in the PR first anyway, so it would be very rare. It's also easily solvable by re-running the failed suite.

I think the change is a net positive as it means there are less suites in the queue, and leads to less re-deployments as you say.

regal archBOT
#

Had an idea - when someone changes their patreon tier to a higher level, the bot will also message.

However, this would only work if the new role was added first, and then the old role was removed.

How reliable would this be?

If it's a case of a computer changing the roles automatically, then we can make sure the requests are done in the right order.

If it's a case of a human manually doing the change, then I could provide a command that does the change, making sure it does in the...

#

I've actually been briefly looking over some mypy and there's a lot of false positives. Perhaps some of these could be brought down further by using the correct command line arguments but it's certainly annoying as-is.

As an example, we get error: Item "None" of "Optional[Role]" has no attribute "name" for the code

        for role_id in role_ids:
            if (role := guild.get_role(role_id)) is not None:
                members += len(role.members)
            else:
   ...
regal archBOT
#
[python-discord/.github] New branch created: update\-policy\-bot\-contribs\-list
#
jb3
[python-discord/.github] branch deleted: update\-policy\-bot\-contribs\-list
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] branch deleted: decorator\-factory/typehints\-fix
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#

When manually unbanning someone with a perma ban, this raises the below error. I assume this is due to expires_at being None

bot_1       | Traceback (most recent call last):
bot_1       |   File "/usr/local/lib/python3.9/site-packages/discord/ext/commands/core.py", line 85, in wrapped
bot_1       |     ret = await coro(*args, **kwargs)
bot_1       |   File "/bot/bot/exts/moderation/infraction/infractions.py", line 270, in unban
bot_1       |     await self.pardon_infraction(ctx, "...
#

Similar as the above, this fails with the below error when trying to edit an infraction without an expiry.

bot_1       | Traceback (most recent call last):
bot_1       |   File "/usr/local/lib/python3.9/site-packages/discord/ext/commands/core.py", line 85, in wrapped
bot_1       |     ret = await coro(*args, **kwargs)
bot_1       |   File "/bot/bot/exts/moderation/infraction/management.py", line 134, in infraction_edit
bot_1       |     expiry = time.format_with_duration(duration)
...
#

This errors with the below log

bot_1       | 2021-09-02 20:18:35 | bot.exts.backend.error_handler | ERROR | Error executing command invoked by Chrisjl#2655: &stream 126811506632294400
bot_1       | Traceback (most recent call last):
bot_1       |   File "/usr/local/lib/python3.9/site-packages/discord/ext/commands/core.py", line 85, in wrapped
bot_1       |     ret = await coro(*args, **kwargs)
bot_1       |   File "/bot/bot/exts/moderation/stream.py", line 140, in stream
bot_1     ...
regal archBOT
regal archBOT
#
jb3
[python-discord/site] New branch created: jb3/django\-prometheus
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/quackstack] branch deleted: vcokltfre/feat/package\-ready\-rewrite
#
[python-discord/quackstack] New branch created: feat/vcokltfre/seeded\-ducks
odd spireBOT
regal archBOT
#
jb3
[python-discord/quackstack] branch deleted: feat/vcokltfre/seeded\-ducks
odd spireBOT
regal archBOT
#
[python-discord/quackstack] New branch created: feat/vcokltfre/seeded\-ducks
#
jb3
[python-discord/quackstack] branch deleted: feat/vcokltfre/seeded\-ducks
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/sir-lancebot] branch deleted: android\-codeblock\-fix
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: Add\-timeout\-to\-GitHub\-repo\-metadata\-fetch
#

Sentry Issue: SITE-1G

SystemExit: 1
(36 additional frame(s) were not displayed)
...
  File "urllib3/connectionpool.py", line 1010, in _validate_conn
    conn.connect()
  File "urllib3/connection.py", line 353, in connect
    conn = self._new_conn()
  File "urllib3/connection.py", line 169, in _new_conn
    conn = connection.create_connection(
  File "urllib3/util/connection.py", line 86, in c...
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

So I see that this was approved in Feb of last year, but was there an agreed implementation method?

There would be a command named "season" with options for astronomical, meteorological, and solar seasons. If no options are passed, what should the default response be? Should there also be a North / South hemisphere check or just default to sending both?

Just trying to wrap my head around what could be done and what the result will be.

User Input

.season <optional season: astro, ...

regal archBOT
regal archBOT
#

I don't really understand this. The characters inside rhyme_scheme don't actually end up in word, so they wouldn't be going into the GET request.

Also, using urllib.parse.quote would turn one character into many. For instance, let's say someone types in .poem iรฑiรฑ (which is the same as .poem abab except with special characters), the sanitization would turn it into .poem i%C3%B1i%C3%B1. So the รฑ is now a group of 6 letters, and makes a whole new poem entirely.

I apologize ...

regal archBOT
regal archBOT
#

Hello @PythonTryHard

Can I just clarify, is the intended behaviour that you should get:

  • the 0 message for a score in the range 0-4 inclusive,
  • the 5 message for 5-19,
  • ...
  • the 95 message for 95-99, and
  • the 100 message for just 100?

If that is the case, then you would want to use bisect.bisect_left rather than bisect.bisect_right (which is what bisect.bisect is an alias of). It's actually only due to a quirk of tuple-comparison (shorter tuples are less...

regal archBOT
#

Relevant Issues

<!-- Link the issue by typing: "Closes #" (Closes #0 to close issue 0 for example). -->
Closes #677

Description

This is a work in progress and is an effort to contribute collaboratively with CyberCitizen01.

Implementation

To be updated as work moves on.

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 d...
odd spireBOT
regal archBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
regal archBOT
regal archBOT
#

Looks like all the errors are with humanize_delta not understanding None as the second timestamp. If only one timestamp is passed, then it's relative to now, but it does not treat a None second timestamp as equivalent to not having passed it at all. I suppose the best fix is to allow it to be None; having to check for None outside seems too annoying.

regal archBOT
#

Yes, but also no.

This is nice. This needs a change though, because we are using multiple workers, because Python can't gobble around on more than one core in the same address space.

gunicorn needs to be started with a configuration file as its argument, with the following contents:

from prometheus_client import multiprocess

def child_exit(server, worker):
    multiprocess.mark_process_dead(worker.pid)

This is step three from the Prometheus Python client's multipro...

odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: Add\-timeout\-to\-GitHub\-repo\-metadata\-fetch
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: ks123/goodbye\-talentpool\-channel
#

78b00dc Remove WatchChannel parent of TalentPool and mi... - ks129
dda3490 Use more accurate command names and docstring f... - ks129
f144bac Migrate nominations history command to non-watc... - ks129
807a27e Migrate Talent Pool Reviewer class to non-watch... - ks129
2d47640 Migrate unnominate command to non-watchchannel - ks129

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

Since 0b726398d2135ab414374412fa85f791569e3640 we accept a loop kwarg to scheduling.create_task which can be used to create a task with a not yet running loop where asyncio.create_task doesn't work directly.

Because the created tasks currently don't have any error handling they can hide errors in development until the task object is destroyed (if that occurs at all) which logs the exception. The scheduling alternative attaches a callback which logs exceptions to prevent this.

For ev...

regal archBOT
#

Relevant Issues

<!-- Link the issue by typing: "Closes #" (Closes #0 to close issue 0 for example). -->
Closes #599

Description

This creates a hangman game, and adds a new hangman.py file, with a Hangman cog, and a new folder in bot/resources/evergreen/hangman with images of the hangman.

From the original issue, I considered that the executioner may have been a bit too broad of a scope to go along with the game, and should be a separate issue for the sake of organiz...

odd spireBOT
regal archBOT
#

This won't let us match only with a name if a tag is matched with a long group but a short name, I'm on the edge of that being worth it for the increased code complexity.
On one hand it's relatively unlikely to happen as !<name> <2chars> would have to be invoked (maybe an emoji would be an actual case where that can happen) but then the code is also not that much less complex without the first if taking care of that case and then the name length check at the end

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
sullen whaleBOT
#
Sir Threadevere

Connected!

odd spireBOT
odd spireBOT
regal archBOT
#
jb3
[python-discord/quackstack] New branch created: jb3/update\-k8s\-path
#
jb3
[python-discord/bot] New branch created: jb3/update\-manifest\-path
odd spireBOT
regal archBOT
#
jb3
[python-discord/site] New branch created: jb3/update\-k8s\-path
#
jb3
[python-discord/site] branch deleted: jb3/update\-k8s\-path
#
jb3
[python-discord/site] New branch created: jb3/update\-k8s\-path
#
jb3
[python-discord/sir-lancebot] New branch created: jb3/update\-k8s\-path
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
jb3
[python-discord/site] branch deleted: jb3/update\-k8s\-path
#
jb3
[python-discord/sir-lancebot] branch deleted: jb3/update\-k8s\-path
#
jb3
[python-discord/quackstack] branch deleted: jb3/update\-k8s\-path
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
jb3
[python-discord/site] branch deleted: jb3/django\-prometheus
odd spireBOT
regal archBOT
#

Sentry Issue: BOT-1MQ

AttributeError: 'TalentPool' object has no attribute 'watched_users'
  File "discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "bot/exts/info/information.py", line 219, in server_info
    embed.add_field(name="Moderation:", value=self.get_extended_server_info(ctx))
  File "bot/exts/info/information.py", line 75, in get_extend...
#
[python-discord/bot] New branch created: fix/server\-command\-nominations
odd spireBOT
regal archBOT
#
jb3
[python-discord/site] New branch created: jb3/ips\-allowed\-hosts
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
jb3
[python-discord/site] branch deleted: jb3/ips\-allowed\-hosts
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] New branch created: pin\-platform\-in\-Dockerfile
odd spireBOT
regal archBOT
#
[python-discord/forms-backend] New branch created: Pin\-platform\-in\-Dockerfile
#
[python-discord/king-arthur] New branch created: Pin\-platform\-in\-Dockerfile
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: Pin\-platform\-in\-Dockerfile
#

Some of our deps don't have wheels for atm processors.

With Mac's M1 chips becomming more common, we should make it easier for those users to build our environments.

Relevant Issues

<!-- Link the issue by typing: "Closes #" (Closes #0 to close issue 0 for example). -->

Description

Did you:

  • [ ] Join the Python Discord Community?
  • [ ] Read all the comments in this template?
  • [ ] Ensure there is an issue open, or link re...
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: Pin\-platform\-in\-Dockerfile
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
sullen whaleBOT
#
Sir Threadevere

Connected!

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#

Sentry Issue: SIR-LANCEBOT-67

AttributeError: 'Member' object has no attribute 'avatar_url'
  File "discord/ext/commands/core.py", line 167, in wrapped
    ret = await coro(*args, **kwargs)
  File "bot/exts/evergreen/avatar_modification/avatar_modify.py", line 272, in prideavatar
    await self.send_pride_image(ctx, image_bytes, pixels, flag, option)
  File "bot/exts/evergreen/avatar_modifica...
regal archBOT
#

Description

I would like to create a mad libs game command for Sir Lancebot. When the command is run, the bot will ask the user to give them a random part of speech (e.g. noun, adjective, verb, plural noun, etc.). There will be a text file with 20 different stories that the bot will choose from each "round" to make the game a little more varied and interesting.

Reasoning

I personally think it's a fun game and I'm sure many people will want to play it!

Proposed Implementat...

#
[python-discord/bot] branch deleted: Add\-concurrency\-to\-all\-workflows
#
[python-discord/sir-lancebot] branch deleted: Pin\-platform\-in\-Dockerfile
night lilyBOT
#
Sir Lancebot

Connected!

regal archBOT
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: Pin\-platform\-in\-Dockerfile
#
[python-discord/bot] branch deleted: pin\-platform\-in\-Dockerfile
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/forms-backend] branch deleted: Pin\-platform\-in\-Dockerfile
#

This won't let us match with only a name if a tag is matched with a long group but a short name

I see now, so we just remove that if-statement and leave it to the code below this. That way we will at least match for groups yeah.

        if tag_identifier.group is None:
            return self._get_suggestions(tag_identifier)

        if len(tag_identifier.group) < 3:
            # No point in fuzzy matching if the group is less than 3 characters
            suggestio...
odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
#

Description

The .challenge command would pull a random kata (challenge) from codewars.com, and the user can filter with either the query or the kyu (difficulty), 1 being the hardest, 8 being the easiest, along with the programming language the kata is in.

Reasoning

codewars.com is a popular website for coding challenges, which many people use. A lot of people including myself want to be challenged sometimes but aren't sure what to do, and sometimes people also hit 'code blo...

regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: fix/server\-command\-nominations
odd spireBOT
oak estuaryBOT
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/quackstack] New branch created: fix/vcokltfre/beak\-colour\-bugfixes
odd spireBOT
regal archBOT
regal archBOT
#

Sentry Issue: BOT-1MS

AttributeError: 'TalentPool' object has no attribute 'cache'
  File "discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "bot/exts/info/information.py", line 219, in server_info
    embed.add_field(name="Moderation:", value=self.get_extended_server_info(ctx))
  File "bot/exts/info/information.py", line 75, in get_extended_serve...
#
[python-discord/bot] New branch created: declare\-talentpool\-cache\-on\-startup
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/site] New branch created: swfarnsworth/smarter\-resources/merge\-with\-main
odd spireBOT
regal archBOT
#
[python-discord/site] branch deleted: swfarnsworth/smarter\-resources/filtering\-system
#
[python-discord/site] branch deleted: swfarnsworth/smarter\-resources/new\-resources
#
[python-discord/site] branch deleted: swfarnsworth/smarter\_resources
odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: lance\-restructure
#

Relevant Issues

Closes #841, closes #846

Description

This substantially changes the exts/ structure for Lancebot. This moves us way from the seasons approach to something more generic and (hopefully) easier to understand for first-time contributors. The resources/ folder also mimics the exts/ folder.

The exts/ folder now has the following subfolders:

avatar_modification/
core/
events/
fun/
holidays/
utilities/

Avatar_Modification was kept as a high-le...

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

Connected!

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

Description

The cogs that are in the events folder are not loaded in.

Steps to Reproduce

Try to use .aoc

Expected Behaviour

It should send an embed containing the specifics of the AoC commands

Actual Behaviour

The cog(s) are not loaded in, so nothing happend

Known Impacted Platforms

  • [x] Web
  • [x] Desktop
  • [x] Android App
  • [x] iOS App

Possible Solutions

Add an __init__.py file to the events directory.

Additional Details

Would...

odd spireBOT
regal archBOT
#
jb3
[python-discord/.github] branch deleted: fix\-capitialisation\-of\-a\-contrib
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] New branch created: post\-restructure\-fix
odd spireBOT
regal archBOT
#
[python-discord/sir-lancebot] branch deleted: post\-restructure\-fix
night lilyBOT
#
Sir Lancebot

Connected!

odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
#
[python-discord/site] New branch created: init\-metricity\-at\-runtime
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#

I am starting to see why the if-statements look exactly like they do- because I tried to write a suggestion for the code to be exactly the same. That said I came up with something like this:

        if tag_identifier.group is None and len (tag_identifier.name) >= 3:
            return self._get_suggestions(tag_identifier)

        if tag_identifier.group is None or len(tag_identifier.group) < 3:
            # No point in fuzzy matching if the group is less than 3 characters or None
    ...
#
        suggestions = []

        if tag_identifier.group is not None and len(tag_identifier.group) < 3:
            # Try fuzzy matching with only a name first
            suggestions += self._get_suggestions(TagIdentifier(None, tag_identifier.group))

            if len(tag_identifier.name) >= 3:
                suggestions += self._get_suggestions(tag_identifier)

            return suggestions

I can't use the GitHub suggestions for this, because that would duplicate code. But what...

odd spireBOT
regal archBOT
regal archBOT
#

I'm getting quite confused over the whitelist logic - it's scattered over multiple files and I tried implementing an every parameter in in_whitelist_check but didn't get any results. I'll try some more stuff tomorrow, but if all else fails, I'm thinking of just making an Everywhere class whose instances can be put into the channels param. The class will roughly look like this: ```py
class Everywhere:
"""Docstring"""

def __contains__(self, item):
    return True
odd spireBOT
regal archBOT
#

I decided to remove the converter for tag names in f5db0b8 as after the removal of adding tags through the bot, it just restricted the input which can safely be ignored by the cog and with the new handling it could refuse tags when parsing a message even if the unparseable part of the message wasn't a part of the tag identifier.

An error caused by that was fixed in f3634f9dbcb6c7cc6952f7d9e40879518c4e6eb1 but I believe that should be everything that could have problems with input that woul...

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

Connected!

odd spireBOT
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
#
[bot] Branch Only\-check\-domain\-filters\-against\-URL\-like\-parts\-of\-a\-message was force-pushed to `fddd341`
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] branch deleted: Expand\-fitlers\-to\-\.gg\-
oak estuaryBOT
odd spireBOT
regal archBOT
#
[python-discord/bot] New branch created: discord\-2\.0
#

Since the Discord.py repository has been archived, we can switch to the latest commit of 2.0a0, knowing no breaking change will occur (still pinned to the commit just in case).

This PR fixes any problem related to the migration:

  • New avatar interface
  • TZ aware datetimes
  • Various internal API changes

The bot will also automatically join new threads and silence cannot be used in threads due to their lack of permissions.
This was a significantly harder migration than Sir Lance, but ...

odd spireBOT
regal archBOT
#

We have been using coloredlogs on bot for a while now which makes the logs more readable. There initially were some issues on windows but those seem to have been taken care of now.
The same configuration as the bot uses can be used for consistency.

I can take care of this along with #706 if @ToxicKidz is not working on that issue

regal archBOT
#
[python-discord/sir-lancebot] New branch created: license\-checking
#

Port of https://github.com/python-discord/bot/pull/1779


Since our project is licensed under the MIT License, we can't be using any incompatible license-wise dependencies in our project, such as GPL.

This commit adds a step to the CI lint phase that will use pip-licenses to verify that all the installed packages are part of an ALLOWED_LICENSE variable. This variable is currently set to be every license we currently use.

We opted to use an allowlist instead of a denylist to make...

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

Relevant Issues

Closes #827

Description

I added a every parameter in in_whitelist_check, which when set to True means a command is in the whitelist. Consequently, this means setting this parameter to True in whitelist_override essentially represents that a command can be used everywhere by everyone. I did that to the .bm command.

Did you:

#

Relevant Issues

Closes #321

Description

From now on the AoC leaderboard command accepts a total of 2 optional arguments a day and star string (eg.: 1-2, for the second star of the first day) and a number of results they would like to see, with a total maximum of 15. (Default is 10)
(The reason I used csharp syntax highlighting is because it surprisingly fits the results quite well)
![alt text](https://cdn.discordapp.com/attachments/857588537845874689/884474637365411920/Kepernyofot...

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

Connected!

odd spireBOT
odd spireBOT
regal archBOT
regal archBOT
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
regal archBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
regal archBOT
regal archBOT
odd spireBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
regal archBOT
odd spireBOT
night lilyBOT
#
Sir Lancebot

Connected!

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

Relevant Issues

Closes PR #605
Closes Issue #602

<!-- Link the issue by typing: "Closes #" (Closes #0 to close issue 0 for example). -->

Description

Gets the fuzzy match of a search query, returns None if the ratio is below 90 else returns the fuzzy match. If the return is None, then we send our custom Error Message else it sends the link to the subsection of the WTF Python README.md.

Reasoning

Approved by Staff

Screenshots from original PR

![image](https:...

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

Relevant Issues

<!-- Link the issue by typing: "Closes #" (Closes #0 to close issue 0 for example). -->
Closes #848

Description

This pull request adds a .challenge command, which uses bs4 to filter through the queries given for the challenge command, get the kata ID, then uses the codewars API to get information about the kata.

Here is an example of it running:
Say I used .challenge python binary tree, it essentially will search for the query 'binary tree' for kata...

odd spireBOT
regal archBOT
#

Description

Currently we have a .timeleft command under the hacktoberfest cog. However, it's a top-level command.
I'd like to move it as a subcommand so you would have to do .hacktoberfest timeleft.

Reasoning

Hacktoberfest is no longer going to be a major event we participate in and we have other events that I think would be better suited to this type of countdown. Advent of Code already has a countdown subcommand and that is a much bigger event for our server.

Pro...

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