#dev-log

1 messages ยท Page 44 of 1

regal archBOT
#

Description

This system will contain a few checks that will be triggered on the event on_message, the display_name of the message author will be checked, and if found abusive to our rules, will be reported or logged.

The checks should be fast and simple (for example using isalpha()) to prevent long and heavy calculations that are triggered on each message, but we can also expand them to fit our needs.

regal archBOT
#

I like this approach. Decorators are a clean way of doing it though down the line it may prove worthwhile to add a way to apply it to the whole cog in one go (kind of like cog_check, but for listeners too). I think a month is an adequate granularity for our needs. I think I like it more now that the season info is all in one file. It's almost like a config file even though it's still Python.

Code quality is great and the docstrings are very thorough. I also liked how your write-up in the...

regal archBOT
#

Is there a reason why you introduce an entirely new constant for this feature?

After invoking .bm now every message will have 2 emojis instead of one. Other user when reacting with envelope will not receive anything at all, and that is very confusing.

I do not think that we need to introduce a new constant and add a totally new emoji to do it, envelope will do just fine.

regal archBOT
#

The whitelist group should use type converters for the supported types. This would allow things like mentions to be used rather than forcing users to get the IDs. It would also allow it to infer the type rather than requiring it to be specified explicitly.

The set command should be turned into separate commands for each of the types so something like !whitelist invite discord.gg/... is possible. I don't think set should turned into a subgroup because that'd make invocation too ver...

ebon magnetBOT
#

Build 20200331.1 succeeded

Requested by

GitHub

Duration

00:01:06

Build pipeline

Seasonal Bot

regal archBOT
#

As @sco1 said
I don't think it makes sense from a UX perspective to utilize the same reaction for multiple purposes when one of those purposes silently disappears after a timeout. This is already barely discoverable functionality, and with this implementation a user that does know of its existence doesn't know if it has timed out or if it's broken. A second emoji solves half of the problem, which might be sufficient.

And i agree on this rather than using same emoji.

#

It will be more complicated than that, for example when you do .games and you will actually get Point and click and you will not see hack-and-slash because the check grab the first result already.

Granted that no one should ever search for a genre called and this is something we can do to to improve user's experience.

An example of what we can do, is that if all returned results have scores greater than 0.6 we can list all of them instead, like when searching for tags and there ...

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200331.2 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200331.3 succeeded

Requested by

GitHub

Duration

00:01:00

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200331.5 succeeded

Requested by

GitHub

Duration

00:02:17

Build pipeline

Seasonal Bot

#

Build 20200331.4 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200331.6 succeeded

Requested by

GitHub

Duration

00:01:14

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20200331.7 succeeded

Requested by

GitHub

Duration

00:02:08

Build pipeline

Seasonal Bot

regal archBOT
north knotBOT
night lilyBOT
#
SeasonalBot Loaded!

Active Season: Evergreen

ebon magnetBOT
#

Build 20200331.1 succeeded

Requested by

GitHub

Duration

00:01:56

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200331.2 succeeded

Requested by

GitHub

Duration

00:02:06

Build pipeline

Bot

regal archBOT
#

When passed a date not in the range of dates supported by the NASA Astronomy picture of the day a KeyError is raised.

We should confirm that the date passed is between June 16th 1995 and the current date.

Additionally, to be more fault tolerant we should handle API errors completely, I'll attach an example of an error response for people to work with should they want to take this issue on.

Sentry Issue: [SEASONALBOT-B](https://sentry.io/organizations/python-discord/issues/1589477958/?refer...

ebon magnetBOT
#

Build 20200331.8 succeeded

Requested by

GitHub

Duration

00:01:07

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200331.3 failed

Requested by

GitHub

Duration

00:01:20

Build pipeline

Bot

#

Build 20200331.9 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
#

Sorry been flat out. Took me ages to work out why the category names weren't showing up - including diving into d.py internals, before realising bot.cogs returns a dict not a list...

I pushed the cutoff for fuzzy down to 80, which seemed to help a wee bit. My only issue is that 99% of the time it's just a typo - and most people will know it's a typo - would pulling it down to 40-50 or so help to make some half-decent suggestions?

ebon magnetBOT
#

Build 20200331.4 succeeded

Requested by

GitHub

Duration

00:02:02

Build pipeline

Bot

regal archBOT
#

@lemonsaurus I have some question/notes about this:

  1. Can I work on it?
  2. About security: In Patreon webhooks documentation is:

By creating a webhook, you can specify a URL for us to send an HTTP POST to when one of these events occur. This POST request will contain the relevant data from the user action in JSON format. It will also have headers

X-Patreon-Event: [trigger]
X-Patreon-Signature: [message signature]

where the message signature is the HEX digest of the ...

#

4d33b9f Initial pass on log severity reduction - sco1
81d2cdd Logging severity pass from review - sco1
608f5c5 Use debug log level instead of warning in post... - MarkKoz [cc153e0](https://github.com/python-discord/bot/commit/cc153e052b765ddd8ee1494ad3eea2a552d9459c) Increase syncer logging level - sco1 [bd0df4b`](https://github.com/python-discord/bot/commit/bd0df4b93486ae343c828d67ab383b735b2dac36) Merge branch 'master' into update-logging-levels - lemonsaurus

#
[python-discord/bot] branch deleted: update\-logging\-levels
north knotBOT
ebon magnetBOT
#

Build 20200331.5 succeeded

Requested by

Leon Sandรธy

Duration

00:03:37

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

Can I work on it?

Yes, but get an approval from @scragly first, because I seem to remember scrags claiming it at some point, a while back.

So my idea is to use X-Patreon-Signature for verification.

That seems reasonable.

Environment variables: I think this should have 2 new environment variables: DISCORD_PATREON_WEBHOOK_URL, to where will be processed result sent and PATREON_SECRET (+ other keys when required) that will be used to identify a request.

Yep, sounds good.

...

regal archBOT
ebon magnetBOT
#

Build 20200331.1 succeeded

Requested by

GitHub

Duration

00:02:21

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200331.6 succeeded

Requested by

GitHub

Duration

00:02:07

Build pipeline

Bot

regal archBOT
#

a184b30 (!zen Command): Added exact word check before ... - ks129 [a1a6b56](https://github.com/python-discord/bot/commit/a1a6b560e22504ac981b9642c81b8985981baf84) Merge branch 'master' into zen-match-fix - Akarys42 [95dae9b](https://github.com/python-discord/bot/commit/95dae9bc7a7519c723539382848c02b9748d067f) (!zen Command): Under exact word match, change ... - ks129 [114565e](https://github.com/python-discord/bot/commit/114565e65c9ca0e0127dae3891dca1122042b57e) Merge remote-tracking branch 'origin/zen-match-... - ks129 [69ad34b`](https://github.com/python-discord/bot/commit/69ad34b76b24bdcfa7cc975a8f1c824590cfef6b) Merge branch 'master' into zen-match-fix - sco1

north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20200331.7 succeeded

Requested by

GitHub

Duration

00:03:12

Build pipeline

Bot

regal archBOT
#

Relevant Issues

Closes #331

Description

Added a new command .wikipedia (with alias .wiki) that uses the Wikipedia api to get a search result.
I decided to make the bot just print the wikipedia link instead of making a custom embed, since discord comes with a nice embed for wikipedia nativly. This can of course be changed if we think it is needed.

Screenshots

image
...

ebon magnetBOT
#

Build 20200331.10 succeeded

Requested by

GitHub

Duration

00:00:52

Build pipeline

Seasonal Bot

regal archBOT
#

@vivax3794 First, I think this should have more features than just link showing. This should use its own embed with parsed HTML (to MD). Additionally, this should have .wiki search <search> command, that uses LinePaginator and shows all results that Wikipedia returns. Also, one feature is supporting custom wikis, because all/most wikis that use MediaWiki have open API. So like .wiki custom <base_url> <article> and .wiki custom search <base_url> <search_term>.

One thing that I want ...

regal archBOT
#

High code quality! However, I do agree with @ks129 that added cog and got it working are not suitable commit messages, as when the PR is merged, the commits will be merged into the master branch as well, so something like

Initial commit for wikipedia Cog
Fixed command breaking when API return no result
are considered much better.

In general, to avoid the line being wrapped, a commit message should be 50 characters or less, and each line in the description should be 72 characte...

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200331.1 succeeded

Requested by

GitHub

Duration

00:04:35

Build pipeline

Snekbox

#

Build 20200331.11 succeeded

Requested by

GitHub

Duration

00:01:10

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200331.12 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200331.8 succeeded

Requested by

GitHub

Duration

00:01:56

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200331.13 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

#

Build 20200331.9 succeeded

Requested by

GitHub

Duration

00:01:49

Build pipeline

Bot

regal archBOT
#

Yes, this could be added to the if isinstance(callable_, Command): clause:

if hasattr(callable_, "invoke_without_command") and callable_.invoke_without_command:

However, I'm not sure how to handle such a situation. A warning-level log probably wouldn't be good - there currently exists [one place in the code base where the param is set to True and the decorator is used](https://github.com/python-discord/seasonalbot/blob/83f5b0c7b62df74edc0e58b67f535bfb11284c26/bot/exts/hall...

#

Commit: f229b442ef4d474737fe5edd0d5a2ff142effc8d

The referenced _fact_publisher_task method simply didn't exist. I'm not sure what happened there, or why it wasn't caught earlier. It was removed in 70d2170a0a6594561d59c7d080c4280f1ebcd70b, which dates back to 2018. Notice that the on_ready isn't even a registered listener at this point.

#

I do personally think it is cleaner. In some cases, having both the annotation and definition on one line becomes lengthy and visually cluttered. I find that I'm usually looking for one, or the other. My workflow for larger classes is to first annotate the attrs, and then start implementing. Since I've already decided on the types, my IDE will alert me if I violate a promise I made earlier.

#

I seem to remember scrags claiming it at some point, a while back.

It's mostly that I mentioned we don't need it to be a site thing. Instead a simple reactor event on our linode would suffice; at least, assuming there's no extra features required.

a simple patreon command

I don't this is necessary. They'd have a role in-server, so we'd easily be able to see patreon counts by doing a role member count instead in the case someone asks, but it's not often they do and they can just ...

#

Will we ever want to intentionally have seasons overlap?

It is not something that the current system accounts for. It will log a warning, and return the season at index 0. In retrospect, this isn't good design - we should probably check all seasons for collisions statically (right after all seasons are defined), and raise if they collide. This will make sure that the collision is caught before the bot connects. If I add such a check, I can then simply rely on len(active_seasons) alwa...

#

I cannot imagine how we could add support for overlapping seasons. There isn't really a good way to "merge" the attributes they provide: names, descriptions, or branding paths.

I was thinking just have one take priority and the other would simply be there for some extra available commands. But forget it, it'd make more sense to create subdirectories within seasons if we wanted to separate large groups of cogs.

regal archBOT
#

I'm interested in looking into this but before any searching is done on the inventories we need to clean them up.
Briefly touched upon this in a comment for #546 :
The inventories we get from some sources contain link to generated content which seems to be duplicated or at least unreachable through the bot because of the current parsing
([pandas-core-groupby-groupby-transform](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.GroupBy.transform.html#pandas-core-...

#

7180ef7 (Games Cog): Created new helper function get_b... - ks129 [ece3b4a](https://github.com/python-discord/seasonalbot/commit/ece3b4ae490d2ce19d5006b49cf6272356cdba62) (Games Cog): Added wrong genre matching to .ga... - ks129
7cc9644 (Games Cog): Removed unnecessary parameter from... - ks129
6e3cd45 (Games Cog): Fixed matching not found message - ks129
4ba21db (Games Cog): Added check is there more than 1 p... - ks129

ebon magnetBOT
#

Build 20200331.10 succeeded

Requested by

GitHub

Duration

00:03:35

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: feat/filter/322/merge\-tokens\-words
north knotBOT
ebon magnetBOT
#

Build 20200331.14 succeeded

Requested by

GitHub

Duration

00:02:06

Build pipeline

Seasonal Bot

north knotBOT
ebon magnetBOT
#

Build 20200331.11 succeeded

Requested by

GitHub

Duration

00:03:25

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200331.12 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

regal archBOT
#

f9fa3e6 (Tags): Added helper function handle_trashcan_... - ks129 [b37f221](https://github.com/python-discord/bot/commit/b37f221b9b68efed48409a64a802ea0df009627f) (Tags): Added trashcan handling to !tags get ... - ks129 [307aacb](https://github.com/python-discord/bot/commit/307aacbf1b7304ebb52d5193f19b5a12623cdbfd) (Tags): Fixed trashcan handling check. - ks129 [6f273e9](https://github.com/python-discord/bot/commit/6f273e96714c6de4738ec5ed2026e17cd3668594) (Tags): Modified helper function handle_trashc... - ks129
e28a580 (Tags): Fixed TimeoutError shadowing with `as... - ks129

north knotBOT
ebon magnetBOT
#

Build 20200331.13 succeeded

Requested by

GitHub

Duration

00:03:14

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200331.14 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

ebon magnetBOT
#

Build 20200331.15 succeeded

Requested by

GitHub

Duration

00:02:02

Build pipeline

Bot

regal archBOT
#

5d24f9a (Infraction Edit): Don't let change expiration ... - ks129
7954c75 (Infraction Edit): Don't change infraction when... - ks129
ad16fa8 (Infraction Edit): Changed already expired and ... - ks129
bb883f7 Merge branch 'master' into infraction-edit - sco1
ebd9815 Merge pull request #852 from ks129/infraction-edit - sco1

#

The generated mostly miss an # at the end which is needed to get the HTML tag to search from, but we don't need to preserve them since they should be duplicates and nobody is going to search for a simple with a / in its name.

Looking more at the symbols with spaces there's only around a hundred of them and they are mostly terms (binary file, generator expression) bit out of scope here but should the arg be changed to a greedy one? Or taking it as with the / that nobody is going t...

north knotBOT
ebon magnetBOT
#

Build 20200331.16 succeeded

Requested by

GitHub

Duration

00:03:22

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
#

... it's clearer to me where the truthiness is coming from since the comparison against the cycle frequency is visible.

That's a good point. I think it's nicer from the daemon's perspective to simply be fed True/False, and not have to worry about anything else. Overall, however, using range leads to cleaner code. I implemented this in d7c413b. Thanks for your insight!

#
[python-discord/bot] New branch created: decorator\-factory\-add\-generators\-tag
ebon magnetBOT
#

Build 20200331.17 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#

Okay, so I've discussed this with the admins and moderators, and we have several comments. @F4zii Please use these comments to reformulate the original issue text and change what this issue is going to solve.

  1. We don't care about detecting names which are hard to mention. It's overkill, todays current system works fine. Let's not do that.
  2. However, we might want to detect nicknames that have bad words in them. You can use the same wordlists we have in the regex filters.
  3. On that no...
#
[python-discord/bot] New branch created: decorator\-factory\-mutability\-tag
ebon magnetBOT
#

Build 20200331.18 succeeded

Requested by

GitHub

Duration

00:01:52

Build pipeline

Bot

ebon magnetBOT
#

Build 20200331.19 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

#

Build 20200331.20 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

ebon magnetBOT
#

Build 20200331.21 succeeded

Requested by

GitHub

Duration

00:01:44

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20200401.1 succeeded

Requested by

GitHub

Duration

00:02:23

Build pipeline

Site

regal archBOT
regal archBOT
regal archBOT
#

@MarkKoz As per our discussion on Discord, in a74debb I have added a __str__ implementation for the Month enum.

As a result, the logs now look nice:

Command lovefest will be locked to February
InMonthCheckFailure - Command can only be used in February

Listener CandyCollection.on_message will be locked to October
Guarded CandyCollection.on_message from invoking in April

Starting seasonal task PrideFacts.send_pride_fact_daily (June)
Seasonal task PrideFacts.send_pride_fact_d...
ebon magnetBOT
#

Build 20200401.1 succeeded

Requested by

GitHub

Duration

00:01:01

Build pipeline

Seasonal Bot

regal archBOT
#

Can I work on it? Also, discord.py v1.3.2 is released with small bug fixes. We should use this version.
Things I think should be used:

  • Commands calling: Now you can call commands like await self.command_function(ctx, kwargs) and no need for invoking and command getting. Should be used especially inside same Cog commands.
  • utils.sleep_until (already mentioned)
  • Use await ctx.send_help('command') instead ctx.invoke for sending help.
    Currently, I can't find more then these and t...
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200401.1 succeeded

Requested by

Leon Sandรธy

Duration

00:03:41

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200401.1 failed

Requested by

GitHub

Duration

00:01:16

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200401.2 succeeded

Requested by

GitHub

Duration

00:01:48

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: decorator\-factory\-add\-tag\-generators
ebon magnetBOT
#

Build 20200401.3 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200401.5 succeeded

Requested by

GitHub

Duration

00:01:42

Build pipeline

Bot

#

Build 20200401.4 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200402.1 succeeded

Requested by

GitHub

Duration

00:01:42

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: fix\-token\-strip\-log
north knotBOT
ebon magnetBOT
#

Build 20200402.2 succeeded

Requested by

GitHub

Duration

00:03:39

Build pipeline

Bot

oak estuaryBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200402.3 succeeded

Requested by

GitHub

Duration

00:01:55

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200402.4 failed

Requested by

GitHub

Duration

00:01:59

Build pipeline

Bot

#

Build 20200402.5 succeeded

Requested by

GitHub

Duration

00:01:47

Build pipeline

Bot

regal archBOT
#

What's wrong?

Right now, when issuing a ban ( !tempban for example ) if the reason is greater than 512, it will fail because discord only allow 512 letters.
However, the bot will still add the infraction to our DB and register it as an active ban, and thus subsequent ban will fail, saying that user is already banned.

Expected behaviour:

When the reason is greater than 512, either send a warning / confirmation that the reason is greater than 512 and so reason will be cut off to b...

regal archBOT
#

It is up to debate:

The 512 chars limit is only applied to discord, in reality it should not affect us if we ever want to make a thorough ban reason, and limiting ourselves to 512 just because of Discord does not feel right, right?

However, if we decide to open the limit to more than 512, we might want to truncate the message to be used as reason for discord. In that case, a confirmation / warning that the reason will be truncated will be nice.

regal archBOT
ebon magnetBOT
#

Build 20200402.1 succeeded

Requested by

GitHub

Duration

00:01:06

Build pipeline

Seasonal Bot

regal archBOT
#

What's up?

Thanks to @scragly, we have a beautiful icon for the upcoming game jam [2], but its shape / theme diverges from the usual snake logo [1]. Using this as the server icon could therefore be confusing to our users, as they would no longer recognize our guild in their guild list.

Solution

Despite this, we would like to use it. @SebastiaanZ has come up with a brilliant idea to create an animated combination of the two, where the first frame is the usual [1], but then it morphs...

#
[python-discord/seasonalbot] branch deleted: seasonal\-purge
north knotBOT
ebon magnetBOT
#

Build 20200402.2 succeeded

Requested by

GitHub

Duration

00:02:39

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200402.6 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200402.7 succeeded

Requested by

GitHub

Duration

00:03:36

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

Why

Simplicity of being able to undo a command that was done

Task

Add a command that tracks the last commands used (that are reversible), and by whom used it. If done right this could be great tool for undoing mistakes like a typo in an ot-name.

It would achieve this by having a look up of the reversible command, and keep track of the input given. So if you undoed a ot add, it would keep track of the name added, and call ot remove with it.

It could undo a ban, if that was by m...

#

Thanks for the proposal! Theoretically it's a great concept but I don't think it can be robustly implemented within our framework.

While many of the commands have a simple "undo" mapping, others are not so straightforward. The moderation commands, for example, are one where the opposite action is not always going to be the same; we might want to edit the infraction that was just created, or pardon it, or even void it (when this functionality is added). This would require the undo command t...

regal archBOT
regal archBOT
#
[python-discord/site] New branch created: fix\-link
ebon magnetBOT
#

Build 20200402.1 succeeded

Requested by

GitHub

Duration

00:02:09

Build pipeline

Site

regal archBOT
#
[python-discord/site] branch deleted: fix\-link
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200402.2 succeeded

Requested by

GitHub

Duration

00:03:38

Build pipeline

Site

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200402.8 succeeded

Requested by

GitHub

Duration

00:02:24

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: feat/ci/b000/cache\-pipenv
north knotBOT
ebon magnetBOT
#

Build 20200402.9 succeeded

Requested by

GitHub

Duration

00:03:31

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200402.3 succeeded

Requested by

GitHub

Duration

00:01:03

Build pipeline

Seasonal Bot

regal archBOT
#

@lemonsaurus

Any specific PRs we're waiting for?

No, not really. Perhaps the help channel system. Anyway, I can just take responsibility for resolving conflicts on all PRs myself.

I'm not sure I like exts very much. extensions seems fine, but I don't really get why cogs is so bad.

In a sense, "extensions" is more correct since the package contains modules which Discord considers extensions. In turn the extensions contain the cogs. So the package contains extensions, not cogs....

regal archBOT
regal archBOT
#
[python-discord/django-crispy-bulma] New branch created: feat/deps/o138/pre\-commit\-hooks
#

Relevant Issues

python-discord/organisation#138
python-discord/organisation#153

Description

New hooks were added for pre-commit and they will run in CI too. pep8-naming was added as a flake8 plugin to ensure names comply with PEP 8.

Hooks added

A couple of these hooks automatically apply fixes. However, they still report failure and leave any changes they make uncommitted. Therefore, the user has to commit the automatic fixes.

  • check-merge-conflict - Check fo...
ebon magnetBOT
#

Build 20200403.1 succeeded

Requested by

GitHub

Duration

00:01:42

Build pipeline

Django Crispy Bulma

regal archBOT
north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20200403.1 succeeded

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

regal archBOT
#

My idea for the new directory layout that applies Scragly's sorting:

bot/
    extensions/
        filters/
            __init__.py
            antimalware.py
            antispam.py
            filtering.py
            token_remover.py
            webhook_remover.py (added by my recently, but should be here)
        __init__.py
        security.py
        error_handler.py

I didn't included every category currently, but this should how I see this. __init__.pys should h...

regal archBOT
regal archBOT
#

Right now, we've got copies of specific versions of Bulma and Bulma-Extensions in this repo, which is license permissable but adds maintenance in that we have to manually update these files to in order to "update" to a new version.

Perhaps we could include bulma and bulma-extensions as submodules to ensure these stayed up to date, and that we did not need to manage these files ourselves?

ebon magnetBOT
#

Build 20200403.1 succeeded

Requested by

Leon Sandรธy

Duration

00:01:36

Build pipeline

Django Simple Bulma

regal archBOT
#

@MarkKoz alright, and besides your argument about how it's technically more correct to use extensions than cogs, it also makes it clearer to users unfamiliar with the term cog and with discord.py what the folder contains.

consistency with seasonalbot would be nice, I guess. I'm just generally allergic to abbreviated names for things. I think extensions is better than exts and wish we had the former on both repos, and with https://github.com/python-discord/seasonalbot/pull/329 recently ...

regal archBOT
#

Hey, yea I decided to go with exts in SeasonalBot. I was looking for something to replace seasons (as the extensions within no longer bind to seasons), and exts seemed the most appropriate. As @MarkKoz mentions, it is technically more correct than cogs (plus I really don't like the word cog), and I personally find extensions unnecessarily long and verbose.

As @ks129 notes, d.py uses the terminology although they drop the plurality. I personally think it's better in plural, but I ...

regal archBOT
regal archBOT
#

Good call on splitting up the nsjail tests. However, I'm not certain on how I feel about the API tests. on one hand, it's a simple way to do it. On the other hand, I think the tests should be in a separate class/mixin which both test cases use. This makes more sense than having one test case subclass the other. Furthermore, the base class is creating both mocks when each test case only needs one of them. One way to solve this would be to pass arguments to setup() in the subclasses.

ebon magnetBOT
#

Build 20200403.2 failed

Requested by

GitHub

Duration

00:01:01

Build pipeline

Bot

#

Build 20200403.4 succeeded

Requested by

GitHub

Duration

00:01:19

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#

Setting up a cog for sending messages to the #dev-log channel could be useful in the future

I agree, and there's something planned for this actually in Python botto that is very likely able to be transferred over to this botto once complete in the form of an extension.

For now, we don't have a pressing need for any dev-log output other than the startup and we actually [already have a helper method on the bot instance to send a message to the devlog channel](https://github.com/python...

regal archBOT
regal archBOT
#
[python-discord/seasonalbot] New branch created: greeting\-message
ebon magnetBOT
#

Build 20200403.1 succeeded

Requested by

GitHub

Duration

00:00:53

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200403.2 succeeded

Requested by

GitHub

Duration

00:00:58

Build pipeline

Seasonal Bot

regal archBOT
#
[python-discord/seasonalbot] branch deleted: greeting\-message
north knotBOT
ebon magnetBOT
#

Build 20200403.3 succeeded

Requested by

GitHub

Duration

00:02:03

Build pipeline

Seasonal Bot

regal archBOT
#
[python-discord/seasonalbot] New branch created: fetch\-devlog\-channel
ebon magnetBOT
#

Build 20200403.4 succeeded

Requested by

GitHub

Duration

00:00:57

Build pipeline

Seasonal Bot

regal archBOT
#
[python-discord/seasonalbot] branch deleted: fetch\-devlog\-channel
north knotBOT
ebon magnetBOT
#

Build 20200403.5 succeeded

Requested by

GitHub

Duration

00:02:11

Build pipeline

Seasonal Bot

night lilyBOT
#
SeasonalBot

Connected!

regal archBOT
#

Description

The bot should check that there are no channels missing from the guild which are present in the bot constants.

Reasoning

As discussed in #342 this will help prevent issues like #335 and has already been implemented for bot.

Proposed Implementation

With the current implementation of the constants as simple classes (not sure why they're NamedTuples) without any annotations or being an object that holds more info about itself, we can check their contents through the...

north knotBOT
#

Postgres backup completed!

regal archBOT
#

Context

It is a common pattern to have a task wait until the bot connects, perform some action, and send a message to Discord. An example is the greeting start-up message added yesterday in #391.

Problem

Because it takes some time for the bot to populate its internal cache with data from Discord (e.g. guilds, channels, users, ...), discord.py provides a convenience coroutine wait_until_ready....

regal archBOT
#

Because it takes some time for the bot to populate its internal cache with data from Discord (e.g. guilds, channels, users, ...), discord.py provides a convenience coroutine wait_until_ready. However, in some cases (probably due to API latency), the coro will finish before the chache is ready, and any calls such as get_channel will return None.

Just to provide a little more background: Discor...

regal archBOT
#

In order to avoid circumvention of the existing URL filters by using a link shortener, or a redirect, unfurling shortened URLs and following redirect checks should be implemented into the existing URL filter.

The proposed APIs for unfurling and following redirects are:

In addition, although URLs posted might not be in the blacklist, they might lead to sites with explicit content, malware, or other content that ca...

ebon magnetBOT
#

Build 20200404.1 succeeded

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#
[python-discord/seasonalbot] New branch created: wait\-until\-guild\-ready
regal archBOT
ebon magnetBOT
#

Build 20200404.1 succeeded

Requested by

GitHub

Duration

00:01:01

Build pipeline

Seasonal Bot

native joltBOT
#

Description
Currently flake8-annotations will report an error if the self or cls parameters are not annotated. It is not clear what flake8-annotations wants from the source code in order not to report these errors, and neither PEP 484 nor PEP 3107 offers any guidance as to how self or cls should be annotated. In fact PEP 484 suggests in Annotating class and instance methods that such annotati...

native joltBOT
#

This means that the out-of-the-box behaviour of flake8-annotations appears (at least at first glance) contrary to the guidelines of the PEPs it is supposed to be enforcing.

The purpose of this package is not to enforce the related PEPs, as they make no mandates regarding full annotation coverage. Its purpose is to detect the absence of these annotations; all errors are exposed and we leave it up to the developer to determine what subset of these errors to enforce for their project. Thi...

regal archBOT
native joltBOT
#

The purpose of this package is not to enforce the related PEPs, as they make no mandates regarding full annotation coverage. Its purpose is to detect the absence of these annotations; all errors are exposed and we leave it up to the developer to determine what subset of these errors to enforce for their project. This project, for example, currently ignores 6 of its own errors.

Fair enough. Thanks for the clarifications :-)

If it would be helpful we can include the links to these PE...

regal archBOT
#
[python-discord/django-simple-bulma] New branch created: feat/deps/o138/pre\-commit\-hooks
#

Relevant Issues

python-discord/organisation#138
python-discord/organisation#153

Description

New hooks were added for pre-commit and they will run in CI too. pep8-naming was added as a flake8 plugin to ensure names comply with PEP 8.

Hooks added

A couple of these hooks automatically apply fixes. However, they still report failure and leave any changes they make uncommitted. Therefore, the user has to commit the automatic fixes.

  • check-merge-conflict - Check fo...
ebon magnetBOT
#

Build 20200405.1 succeeded

Requested by

GitHub

Duration

00:01:55

Build pipeline

Django Simple Bulma

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
regal archBOT
#

Hi, @MarkKoz Thanks! for the detailed review. I need clarity on a few things:

  1. Even if we split set command to separate commands for each type, how does it improves the invocation? For invocation, we still have to use the same syntax !whitelist invite ...
  2. How can I infer the type based on the input, as there some type which takes free form text like the extensions type? For supporting the mentions, my plan is to use the regex to take out the ids from the mentions. Is this the right...
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200405.1 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200405.2 succeeded

Requested by

GitHub

Duration

00:01:33

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: feat/frontend/o200/help\-channels
#

1ec0a10 Resources: add JSON with array of chemical elem... - MarkKoz
3e5bd73 HelpChannels: create boilerplate extension and cog - MarkKoz
439c0dd HelpChannels: load element names from JSON - MarkKoz
01bf328 Constants: add constants for HelpChannels cog - MarkKoz
73d218b HelpChannels: add constants for active/dormant ... - MarkKoz

north knotBOT
ebon magnetBOT
#

Build 20200405.3 succeeded

Requested by

Joseph Banks

Duration

00:02:58

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200405.4 succeeded

Requested by

GitHub

Duration

00:02:44

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200405.5 succeeded

Requested by

GitHub

Duration

00:01:16

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: restricted\_tags
#

Closes #778

Implementation

as suggested in the issue.

Details

  • Created folders for 3 roles: Helpers, Moderators, and Admins.
  • When a user uses the tag command, a new method called check_accessibility checks if the user has the necessary role to access that tag.
  • If the user does not have the required role, no message is displayed, the user assumes no such tag exists.

Additional

Implemented this to the methods which search tags by content.

ebon magnetBOT
#

Build 20200405.6 succeeded

Requested by

GitHub

Duration

00:01:34

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200405.7 succeeded

Requested by

GitHub

Duration

00:01:22

Build pipeline

Bot

regal archBOT
regal archBOT
#

Even if we split set command to separate commands for each type, how does it improves the invocation?

It has the advantage of verifying that types are valid. If the type is an argument, you'd have to write a custom converter to validate. They will also show up in the list of subcommands in the help command. I don't have a strong feeling for it either way but I do think I prefer them being separate for that reason.

It also allows for each command to use a separate converter for the va...

#

@MarkKoz

Oh I think what you're getting at is when task.cancel() is called but task.cancelled() still returns False, meaning it wasn't actually cancelled

Yep, that's what I was referring to. It's specifically when task.cancel() is called, task.cancelled() returns false, and task.exception() contains an exception of some form. Your _task_done_callback() does cover this for the most part (I hadn't looked over it), but indefinitely running tasks may still be a concern with that impl...

#

Oh and I forgot that a task is also considered done when an exception is raised inside it, so presumably that means the done callback would also trigger if an exception was raised when there was an attempt to cancel a task?

Yep, it's only an issue when the exception is in the process of propagating/being handled, but hasn't been cancelled yet. If it finished raising, the task is considered done, so it should trigger the done callback when the exception was raised.

As mentioned above, ...

regal archBOT
regal archBOT
#

By far the most requested feature in #help-channel-feedback is to allow the original claimant in a help channel to mark the channel as !dormant. After considering the drawbacks vs the benefit, we have agreed that we should do this.

We'd also like to make one small related change in the same pull request - Whenever !dormant is called, the bot should delete the invocation message. This keeps our help channels from filling up with !dormant invocations, which prevents unfamiliar users fr...

regal archBOT
regal archBOT
regal archBOT
#

Resetting the cooldown completely seems to be a bad idea because it would allow users to repatedly make one channel at a time in use and put it back into the dormant state.

I think cancelling the initial task and creating a new one that will reset the permissions in a (potentially) shorter time would be fitting here, does a minute sound like a good cooldown if this is wanted? And should that be in the config or just a literal/module const?

regal archBOT
ebon magnetBOT
#

Build 20200406.1 succeeded

Requested by

GitHub

Duration

00:01:25

Build pipeline

Bot

#

Build 20200406.2 succeeded

Requested by

GitHub

Duration

00:01:18

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

This has not been solved yet, when I do .bm @seasonalbot hi I got this traceback

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/discord/ext/commands/core.py", line 83, in wrapped
    ret = await coro(*args, **kwargs)
  File "/bot/bot/seasons/evergreen/bookmark.py", line 46, in bookmark
    permissions = ctx.author.permissions_in(target.channel)
AttributeError: 'ClientUser' object has no attribute 'channel'
#

After discussing this with the core developers, we're gonna close this issue for now. It seems like a needlessly complicated solution to a problem we don't have - we have bucketloads of emoji slots available right now, and we don't really have any seasonal emojis to put into this system.

With the concept of seasons being less prevalent this year than last, I also don't think it makes as much sense. Right now we're in easter season, but nothing eastery is really happening - we're doing the ...

regal archBOT
regal archBOT
#

@Numerlor we've discussed that hypothetical edge case among the core devs, and feel like it's not really necessary to solve it here and now. If someone does that, it'll be plainly visible (lots of subsequent embeds in some channels), it won't really disrupt anything, and we'll moderate it. If it happens a lot, we'll come back to implementing a solution for this, and yeah, a short cooldown would probably be the right move.

For now, let's just reset the cooldown to zero for the channel owner...

regal archBOT
#

closes: #867

Implements the requested feedback from the linked issue for the dormant command, allowing claimants to close their own channel, restore their send permissions to available channels and delete the invokation message.

I'm not entirely satisfied with the check here but couldn't think of a nice way to make it a decorator, so I'm open to other ideas if there are any.

await self.available_category.set_permissions(member, send_messages=None)

Was not sure if th...

ebon magnetBOT
#

Build 20200406.3 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#
[python-discord/site] New branch created: offensive\-messages\-patch
regal archBOT
#

The fix is the same as https://github.com/python-discord/bot/commit/1509d3b1c39fac825d5e5a09fd0caf780db7c91c. I just overlooked applying it to help_channels.py too.

Ignoring exception in on_message
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/discord/client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "/bot/bot/cogs/help_channels.py", line 516, in on_message
    if channel.category and channel.category.id != constants....
regal archBOT
#
[python-discord/bot] New branch created: help\-channel\-system\-minor\-improvements
#

This PR aims to make two changes to our help channel system:

1. Add status emojis to help channel names

The new help channel system appears to be intuitive to most of our members. One comment that has been made a few times is that it would be clearer if the channel names would indicate the status of the channels as well. It still happens that people don't notice the existence of two different categories and add their question to an already claimed channel.

By adding emojis to the...

ebon magnetBOT
#

Build 20200406.4 succeeded

Requested by

GitHub

Duration

00:01:24

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200406.5 succeeded

Requested by

GitHub

Duration

00:01:32

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200406.1 succeeded

Requested by

GitHub

Duration

00:00:56

Build pipeline

Seasonal Bot

regal archBOT
#

The ValueError can only be raised by

apod_date = datetime.strptime(date, "%Y-%m-%d").date()

right? In that case, you can move the try block up and put it there only, since the rest will not raise ValueError, so something like this

try:
    apod_date = datetime.strptime(date, "%Y-%m-%d").date()
except ValueError:
    await ctx.send(f"Invalid date {date}. Please make sure your date is in format YYYY-MM-DD.")
    return

now = datetime.now().date()

if datetime(...
ebon magnetBOT
#

Build 20200406.2 succeeded

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200406.6 succeeded

Requested by

GitHub

Duration

00:01:25

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200406.7 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

regal archBOT
#

Do we want to remove the channels from the cache when the command is invoked and before they are moved to make sure users can't run it twice before the bot has a chance to do the move and discord to pick up the change?

Yes, that would be a good idea. It would also clear up useless items in the cache. My only concern is that should resetting permissions fail, the only recourse to reset them would be to wait it out or manual intervention by editing the category overwrites.

If the chann...

regal archBOT
ebon magnetBOT
#

Build 20200406.8 succeeded

Requested by

GitHub

Duration

00:01:20

Build pipeline

Bot

regal archBOT
#

@MarkKoz To be clear here, how do we want the error handling to pan out?
Is the issue described in the comment also present now if the task fails?
So we want to remove from the cache as early as possible to make sure it can't be ran more than once, then try to reset the permissions and if that fails move the channel and attempt it again?
Got a bit confused here

If the channel remains intact, then at the least the dormant command could be invoked again by staff. I say staff because ther...

#

Sorry, meant to write "if the cache remains intact". I don't have a clear idea of how to do it. Ideally if something fails, it'd still be possible to repeat the command to try again. If the cache is cleared, then repeating the command wouldn't work for resetting permissions. Furthermore, the operations should be independent of each other. If the permissions can't be reset, still move the channel and vice versa.

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200407.1 succeeded

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

regal archBOT
#

4cb5030 Add channel status emoji to help channels - SebastiaanZ
ae49def Change bottom sorting strategy to using a large... - SebastiaanZ
dfbecd2 Use configurable prefix to clean help channel n... - SebastiaanZ
e3d7afa Use clean help channel name for used name set - SebastiaanZ
c4015d8 Set the ID of the new Help: In Use category - SebastiaanZ

#
[python-discord/bot] branch deleted: help\-channel\-system\-minor\-improvements
north knotBOT
ebon magnetBOT
#

Build 20200407.2 succeeded

Requested by

GitHub

Duration

00:02:55

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
regal archBOT
#

While the minesweeper fix works, it only applies to a single command. The end_command defined just
below (and potentially others) suffer from the exact same, unsafe look-up. I'd propose that this PR addresses all of these.

This is merely a suggestion, but rather than catching the KeyError every time, I'd probably do:

game = self.games.get(user_id)

if game is None:
    ...
    return

...

Alternatively, a d.py check preventing the command from being invoked ...

#

Hi!
I am a member of the team developing monocodus โ€” a service that performs automatic code review of GitHub pull requests to help organizations ensure a high quality of code.
Weโ€™ve developed some useful features to the moment, and now weโ€™re looking for early users and feedback to find out what we should improve and which features the community needs the most.

We ran monocodus on a pre-created fork of your repo on GitHub https://github.com/monocodus-demonstrations/bot/pulls, and it f...

#

Hello, thank you for reaching out.

We already have a nice CI setup which checks with flake8 for PEP8 violations and a few other tools to ensure high code quality so I'm not sure how the service you are offering provides any benefits over the current system we have.

We'd rather not receive issues like this on GitHub, as we tend to try keep GitHub issues to bugs and feature proposals, so for further discussion please see https://pythondiscord.com/ and feel free to bring it up in the #dev-...

regal archBOT
ebon magnetBOT
#

Build 20200407.1 succeeded

Requested by

GitHub

Duration

00:01:19

Build pipeline

Seasonal Bot

regal archBOT
#
[python-discord/bot] New branch created: mitigate\-permission\-unsynchronization\-available\-help\-channels
#

This PR aims to mitigate the issue that available help channels fail to synchronize their permissions with the Help: Available category despite our best efforts. As we have not yet identified the root cause of the issue, I've implemented an ensure_permissions_synchronization helper method that is called to check and, where needed, remedy available help channel permissions synchronization issues.

I've also changed the category name Help: In Use to Help: Occupied to reflect the curre...

ebon magnetBOT
#

Build 20200407.3 succeeded

Requested by

GitHub

Duration

00:01:29

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] branch deleted: mitigate\-permission\-unsynchronization\-available\-help\-channels
north knotBOT
ebon magnetBOT
#

Build 20200407.4 succeeded

Requested by

GitHub

Duration

00:03:03

Build pipeline

Bot

oak estuaryBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200408.1 succeeded

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

regal archBOT
regal archBOT
#

This is an interesting approach that I did not consider, but I like it a lot. There are, however, a few changes needed.

  • There are still places in this cog where the look-up is unsafe and fails on a KeyError. The flag_command is an example. Please review the entire cog to ensure that this PR addresses all unsafe look-ups.
  • I'm a little bit on the edge about blanket-catching any KeyError that falls out of the commands. While it's probably ok, my personal approach would have...
ebon magnetBOT
#

Build 20200408.1 succeeded

Requested by

GitHub

Duration

00:01:04

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200408.2 succeeded

Requested by

GitHub

Duration

00:01:19

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
regal archBOT
#
ebon magnetBOT
#

Build 20200408.2 succeeded

Requested by

GitHub

Duration

00:00:54

Build pipeline

Seasonal Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200408.3 succeeded

Requested by

GitHub

Duration

00:03:46

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200408.3 succeeded

Requested by

GitHub

Duration

00:02:22

Build pipeline

Seasonal Bot

north knotBOT
night lilyBOT
#
SeasonalBot

Connected!

regal archBOT
north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20200409.1 succeeded

Requested by

GitHub

Duration

00:01:33

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: send\-logs\-via\-webhook
ebon magnetBOT
#

Build 20200409.2 failed

Requested by

GitHub

Duration

00:00:58

Build pipeline

Bot

#

Build 20200409.3 succeeded

Requested by

GitHub

Duration

00:01:29

Build pipeline

Bot

regal archBOT
#

I'm not sure if I'm really worried if a permissions update doesn't work out; the worst that can happen is that the user has to wait the normal period of 15 minutes, right? Could be annoying, but it's not the end of the world for the people involved.

A far greater issue at the moment is that the overwrites system doesn't work reliably. Despite there being no reason for it, as far as I can see, channels keep getting out of sync with the category permissions **even with the resent mitigation ...

ebon magnetBOT
#

Build 20200409.4 succeeded

Requested by

GitHub

Duration

00:02:30

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] branch deleted: send\-logs\-via\-webhook
ebon magnetBOT
#

Build 20200409.5 succeeded

Requested by

GitHub

Duration

00:01:22

Build pipeline

Bot

regal archBOT
regal archBOT
#

Okay, it's time to bump this issue and increase the priority of it. We've now got a couple of days worth of experience with the current system based on permission "overrides" (see note 1) and it's not working well in ways we did not anticipate.

For those not familiar with the current mechanism, we use permission overrides to stop members from claiming a second help channel within 15 minutes of claiming their first (see note 2). We do that by adding a member-specific permission override to ...

regal archBOT
ebon magnetBOT
#

Build 20200409.6 succeeded

Requested by

GitHub

Duration

00:01:32

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200409.7 succeeded

Requested by

GitHub

Duration

00:01:21

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

However, I imagine the memory footprint will still be insignificant which is why I said it's not important

That's my intuition as well. Since we're keeping a mapping of channels to members, we should have a maximum of "max help channels" mappings in the dictionary under normal circumstances. Even if all channels go dormant with command invocation, the number of additional object references should be manageable.

#

Just to document, could you describe the race condition you were thinking of? Could be relevant if we do notice something going wrong in the future. (Although I'm not worried about that as you're not too worried about that as well.)

self.cancel_task should only be called once move_to_dormant returns, which I think is after it has done its work (in the current implementation), I think. There are currently no create_task or other non-awaited scheduling methods involved.

ebon magnetBOT
#

Build 20200410.1 succeeded

Requested by

GitHub

Duration

00:01:21

Build pipeline

Bot

regal archBOT
#

Maybe race condition is the wrong term. If the command is invoked when the channel is about to automatically go dormant, then it may attempt to move an already dormant channel. I am not sure what the consequences of that are. This problem would still exist anyway even if the order was flipped back around. A robust solution would probably require some sort of lock, but that would mean one lock per channel which gets relatively complex.

#
[python-discord/bot] New branch created: bug/info/869/tag\-encoding
ebon magnetBOT
#

Build 20200411.1 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200411.2 succeeded

Requested by

GitHub

Duration

00:01:49

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: stats
#

Integrates the bot with Graphite (through statsd).

Provides the following stats:

  • mod_alerts.{rule_name} - Triggers of the mod alerts
  • defcon_leaves - Users denied access due to defcon
  • command_error_count - Total error count of commands
  • bot.filters.{filter_name} - Messages violating content filters
  • help.total.in_use - Total in use help channels
  • help.total.available - Total available help channels
  • help.total.dormant - Total dormant help channels
  • `help.out...
ebon magnetBOT
#

Build 20200411.5 succeeded

Requested by

GitHub

Duration

00:02:05

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: bug/frontend/870/help\-channel\-dm\-category
ebon magnetBOT
#

Build 20200411.6 succeeded

Requested by

GitHub

Duration

00:01:17

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200411.7 failed

Requested by

GitHub

Duration

00:01:21

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200411.8 succeeded

Requested by

GitHub

Duration

00:01:30

Build pipeline

Bot

native joltBOT
#
[python-discord/flake8-annotations] branch deleted: dev\-next
#
[python-discord/flake8-annotations] New tag created: v2\.1\.0
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200411.9 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200411.10 succeeded

Requested by

GitHub

Duration

00:01:18

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200411.11 succeeded

Requested by

GitHub

Duration

00:01:17

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200411.12 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

ebon magnetBOT
#

Build 20200411.14 succeeded

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

#

Build 20200411.13 succeeded

Requested by

GitHub

Duration

00:01:56

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200411.15 succeeded

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200411.16 succeeded

Requested by

GitHub

Duration

00:01:30

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200411.17 succeeded

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: stats
north knotBOT
ebon magnetBOT
#

Build 20200411.18 succeeded

Requested by

Joseph Banks

Duration

00:04:09

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200412.1 succeeded

Requested by

Joseph Banks

Duration

00:03:21

Build pipeline

Bot