#dev-log

1 messages ยท Page 49 of 1

regal archBOT
#

Description

A command such as .statuscat would be implemented to visually show what different status codes are, with cats.

Reasoning

For people who may be confused by status codes or need a reference when working on their projects, https.cat is the perfect resource. Humans can quickly either what the status code from the output of their program is trying to tell them, or use it as information when creating their website.

Proposed Implementation

A...

regal archBOT
#
[python-discord/seasonalbot] New branch created: statuscats
#

Relevant Issues

Closes #423

Description

I've added a command called "http_cat" with an alias "statuscat". It recieves an integer from a user, then processes it through http.HTTPStatus to see if the status code actually exists. If it does, the URL will be valid and a picture will be displayed within an embed. If not, the embed won't show an image and instead it will tell you that the status code provided does not exist.

Reasoning

Instead of using aiohttp with...

ebon magnetBOT
#

Build 20200711.1 failed

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200711.2 succeeded

Requested by

GitHub

Duration

00:01:00

Build pipeline

Seasonal Bot

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

Build 20200712.1 succeeded

Requested by

GitHub

Duration

00:02:29

Build pipeline

Bot

ebon magnetBOT
#

Build 20200712.2 succeeded

Requested by

GitHub

Duration

00:02:23

Build pipeline

Bot

regal archBOT
#

Description

Since we do not allow the bot to mention roles anymore (b1c0177) except for moderators+ (36330b1) after the incident, this has created a new issue where the bot cannot ping roles where it is actually needed in certain places. This needs to be fixed.

Some of these places include:

  • Mod alerts (pings @everyone)
  • Mod log (pings @everyone)
  • The help channel system (pings `@Help...
north knotBOT
#

Postgres backup completed!

regal archBOT
#
[python-discord/bot] New branch created: 1038\_allow\_role\_mentions\_in\_specific\_areas
ebon magnetBOT
#

Build 20200712.3 succeeded

Requested by

GitHub

Duration

00:02:33

Build pipeline

Bot

regal archBOT
regal archBOT
#

I think it sounds messy to subclass WatchChannel here. There's so much stuff in there that we don't need, and several of the key items in it would need to be modified to work for this.

I'm leaning towards a much, much simpler implementation where we just relay messages as they arrive. The motivation behind the async batch message consumption of the watchchannels was because we it to be easier to read the flow of the conversation, instead of having several users conversation blend into one ...

regal archBOT
ebon magnetBOT
#

Build 20200712.4 succeeded

Requested by

GitHub

Duration

00:02:27

Build pipeline

Bot

regal archBOT
regal archBOT
#

Consensus among core devs appears to be that we should continue to use @everyone pings.

The reason for this is that it allows the #mod-alerts channel, which typically has a low signal-to-noise ratio, to be muted. The trick to it is to surpress @here and @everyone for the entire server and then mute the channel. Changing it to a @Moderators ping makes this trick impossible.

Ideally, I think Discord should address this in the UI, but I suppose I don't really care whether we use on...

#
[python-discord/bot] New branch created: dm\_relay
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200712.5 succeeded

Requested by

GitHub

Duration

00:02:38

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200712.6 succeeded

Requested by

GitHub

Duration

00:03:11

Build pipeline

Bot

#

Build 20200712.7 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: feat/backend/800/scheduler\-redesign
north knotBOT
ebon magnetBOT
#

Build 20200712.8 succeeded

Requested by

GitHub

Duration

00:03:49

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

An image is set even if the status code doesn't pass the check in the following lines. This causes a funny side effect if you try .statuscat 0: https://http.cat/0.jpg responds with a cat that's not even the 404 one, and it's displayed with the error message from the footer. You could move the .set_image() to the try or put it in an else block.



        try:
            HTTPStatus(code)
            embed.set_image(url=f'https://http.cat/{c...
regal archBOT
ebon magnetBOT
#

Build 20200713.1 failed

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200713.2 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

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

Build 20200713.1 succeeded

Requested by

GitHub

Duration

00:02:24

Build pipeline

Bot

ebon magnetBOT
#

Build 20200713.3 succeeded

Requested by

GitHub

Duration

00:00:56

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200713.4 succeeded

Requested by

GitHub

Duration

00:01:01

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200713.2 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
#

!docs command for discord.py

I am aware that there are some plans for discord.py in the future and I personally think that !docs is being used a lot on this channel.
Would it be possible to make a subcommand or a separate command for discord.py documentation and have it search by keywords?

It would make it a lot easier since in some scenarios the command can get quite long, for example instead of doing !docs discord.ext.commands.CommandOnCooldown.retry_after we could simpl...

#

While editing the duration of an infraction, the scheduler will throw an exception when trying to set a new task for the infraction. The reason is that we're currently calling a Scheduler method that expects a coroutine as the second argument, but we're actually passing the infraction dictionary:

https://github.com/python-discord/bot/blob/c975104b0eeb1592889d2ba118b318ea719aba0b/bot/cogs/moderation/management.py#L142

https://github.com/python-discord/bot/blob/c975104b0eeb1592889d2ba11...

ebon magnetBOT
#

Build 20200713.3 succeeded

Requested by

GitHub

Duration

00:02:30

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200713.4 succeeded

Requested by

GitHub

Duration

00:02:33

Build pipeline

Bot

regal archBOT
#

I preferred the name field because (although it's really not a name) it prevents having to worry about the embed description length, plus I think it looks ok.

I'm still a little bit on the edge though, I feel like it may be more logical to just return if the download fails. I'm considering moving the logic elsewhere, the archive function is now branching too much and I'm struggling to adjust the tests. :angry:

ebon magnetBOT
#

Build 20200713.5 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200713.6 succeeded

Requested by

GitHub

Duration

00:02:46

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: 1038\_allow\_role\_mentions\_in\_specific\_areas
north knotBOT
ebon magnetBOT
#

Build 20200713.7 succeeded

Requested by

GitHub

Duration

00:04:29

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200713.9 succeeded

Requested by

GitHub

Duration

00:02:33

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200713.10 succeeded

Requested by

Leon Sandรธy

Duration

00:04:29

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200713.11 succeeded

Requested by

GitHub

Duration

00:02:30

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: talentpool\-oldest
regal archBOT
ebon magnetBOT
#

Build 20200714.1 succeeded

Requested by

GitHub

Duration

00:02:34

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200714.2 succeeded

Requested by

GitHub

Duration

00:02:31

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: bug/980/fuzzy\-processing
ebon magnetBOT
#

Build 20200714.3 succeeded

Requested by

GitHub

Duration

00:02:37

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200714.4 succeeded

Requested by

GitHub

Duration

00:04:39

Build pipeline

Bot

oak estuaryBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#

@lemonsaurus I'll clarify some implementation details, let me know if it matches what you had in mind.

  • Roles/persons to ping are sent to the site using the api and stored in a new field.
  • Allow setting reminders for multiple roles/persons (or a combination of the two) in one go.

Questions:

  • Do we want to set a limit on the number of roles/persons to set a single reminder for?
  • Do we want to care about what roles we can set reminders for?
regal archBOT
#

Reminders for yourself or for other users should be restricted to Helpers+

Do you mean that normal users can't create reminders anymore? Only Helpers+ can create reminders?

My mistake, I thought reminders were already restricted to Helpers+. Seeing as they are not, I guess they should just stay the way they are.

Roles/persons to ping are sent to the site using the api and stored in a new field.
Yes, this will be necessary. Right now we're only storing the author in the d...

regal archBOT
regal archBOT
regal archBOT
#

the easiest approach would be to just remove the whole last user feature altogether and always require a member to be specified. More technical approach would be some sort of locking mechanism, but I'm not really keen to complicate this. This feature is absolutely not meant to be used for anything serious, so it feels like even if the DM gets delivered to the wrong person, it shouldn't really do any damage.

#

Perhaps some sort of a delay on the setting the user would be enough to give time for the person writing it to notice the change without influencing other things.
Are there any stats on how many dms the bot gets? If it's something relatively rare and the command is supposed to be used mostly for some shenanigans then the current approach ought to be fine. But if it's also supposed to be used sparingly then making the user a required argument shouldn't be that much of a problem for the peopl...

regal archBOT
ebon magnetBOT
#

Build 20200714.5 succeeded

Requested by

GitHub

Duration

00:02:47

Build pipeline

Bot

ebon magnetBOT
#

Build 20200714.7 succeeded

Requested by

GitHub

Duration

00:02:41

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#

Apparently, using formatting markdown inside of links causes issues on Discord's iOS client. What does work is wrapping the italics markdown around the link markdown:

While this makes sense in English, it may not behave the way you would expect. In Python, you should have _[complete instructions on both sides of the logical operator](https://docs.python.org/3/reference/expressions.html#boolean-operations)_.
ebon magnetBOT
#

Build 20200714.8 succeeded

Requested by

GitHub

Duration

00:02:27

Build pipeline

Bot

regal archBOT
#

Take a peek at c4e9060 and 6e48d66.

I added a method to download the file safely, but it currently error-level logs all exceptions. Additional clauses can be put there to reduce the log level of specific exceptions (maybe the 404? but in practice it really shouldn't happen unless someone deleted the msg manually as it's being relayed).

The latter commit then moves the attachment-handling logic to make_embed, I decided to handle it all there and return the file if available. Seems more...

regal archBOT
#

Okay I should not be testing late at night.
I got an error running tests.

FAIL: test_supports_multi_creation (pydis_site.apps.api.tests.test_users.CreationTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/kosa/Documents/code/python/PythonDiscord/test/site/pydis_site/apps/api/tests/test_users.py", line 91, in test_supports_multi_creation
    self.assertEqual(response.status_code, 201)
AssertionError: 400 !...
ebon magnetBOT
#

Build 20200714.9 succeeded

Requested by

GitHub

Duration

00:02:39

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200714.10 failed

Requested by

GitHub

Duration

00:00:56

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200714.11 failed

Requested by

GitHub

Duration

00:00:44

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200714.1 failed

Requested by

GitHub

Duration

00:00:53

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200714.2 failed

Requested by

GitHub

Duration

00:01:49

Build pipeline

Seasonal Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200714.3 succeeded

Requested by

GitHub

Duration

00:02:44

Build pipeline

Seasonal Bot

night lilyBOT
#
SeasonalBot

Connected!

regal archBOT
ebon magnetBOT
#

Build 20200714.1 failed

Requested by

GitHub

Duration

00:01:39

Build pipeline

Site

regal archBOT
#

Okay, I've made the required changes to handle the linting with GH Actions as well, and removed the Azure config completely.

The ability to trigger release on version bump, let's not do that after all. Using the GitHub GUI to do the releases is an absolutely acceptable way to release, in my opinion, and means a ton less complexity. As such, I've deleted the scripts folder and all its contents, since we'll no longer need that.

The new workflow for this repo should then be to simply cre...

ebon magnetBOT
#

Build 20200714.2 succeeded

Requested by

GitHub

Duration

00:02:33

Build pipeline

Site

regal archBOT
#
[python-discord/site] New branch created: remove\_django\_crispy\_bulma
ebon magnetBOT
#

Build 20200714.3 failed

Requested by

GitHub

Duration

00:01:48

Build pipeline

Site

regal archBOT
#

Description

Take optional user arguments for .8bitify (#247), .prideavatar (#209), .avatareasterify (#187) plus any other commands that I am missing, so that the avatars can be made of specific users rather than the message author

Since I created all 3 commands, I would like to work on this one too (since it shouldn't take long)

Would you like to implement this yourself?

  • [x] I'd like to implement this feature myself
  • [ ] Anyone can implement this feature
#

4775b17 Edit BadArgument error message - slushiegoose
9060c90 Create a filtering function to filter eval results - slushiegoose
63846d1 Call the filter eval command after receiving an... - slushiegoose
5f73f40 Fix missing hypen - slushiegoose
288c652 Add missing variable assignment to stop NameErr... - slushiegoose

north knotBOT
ebon magnetBOT
#

Build 20200714.12 succeeded

Requested by

GitHub

Duration

00:04:11

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200714.4 failed

Requested by

GitHub

Duration

00:01:48

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200714.5 succeeded

Requested by

GitHub

Duration

00:01:57

Build pipeline

Site

regal archBOT
#

We shouldn't be defining functions in the __init__.py file at all, it's an antipattern. I'm not suggesting that it needs to have a whole file just for itself, it'd be fine for it to share a file with other similar functions. paste.py would be okay, but even something more generic like services.py would be fine by me. Then we can say oh okay, here are helpers for interacting with external services.

But my primary gripe is just that I don't think anything like this should ever live ins...

ebon magnetBOT
#

Build 20200714.13 succeeded

Requested by

GitHub

Duration

00:02:41

Build pipeline

Bot

regal archBOT
#

oh shit, that last commit was supposed to be two commits, but anyway I've made the changes requested by @kosayoda and @Numerlor now:

  • It is no longer possible to use .reply outside the #dm-log channel.
  • .reply now requires a user to be specified for each call. This is to prevent situations where you would reply to the wrong person. It also has the added benefit of removing a bit of complexity (to do with caching)
ebon magnetBOT
#

Build 20200714.14 succeeded

Requested by

GitHub

Duration

00:02:25

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200714.15 succeeded

Requested by

GitHub

Duration

00:02:05

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: bug/info/1050/remove\-help\-reactions\-404
ebon magnetBOT
#

Build 20200715.1 succeeded

Requested by

GitHub

Duration

00:02:26

Build pipeline

Bot

regal archBOT
#

Sentry Issue: BOT-70

InvalidStateError: Result is not set.
(1 additional frame(s) were not displayed)
...
  File "discord/ext/commands/bot.py", line 731, in reload_extension
    self._remove_module_references(lib.__name__)
  File "discord/ext/commands/bot.py", line 559, in _remove_module_references
    self.remove_cog(cogname)
  File "discord/ext/commands/bot.py", line 545, in remov...
ebon magnetBOT
#

Build 20200715.2 failed

Requested by

GitHub

Duration

00:02:12

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200715.3 succeeded

Requested by

GitHub

Duration

00:02:30

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200715.4 succeeded

Requested by

GitHub

Duration

00:04:11

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200715.5 succeeded

Requested by

GitHub

Duration

00:02:30

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: bug/info/1050/remove\-help\-reactions\-404
north knotBOT
ebon magnetBOT
#

Build 20200715.6 succeeded

Requested by

GitHub

Duration

00:04:52

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200715.1 succeeded

Requested by

GitHub

Duration

00:01:03

Build pipeline

Seasonal Bot

regal archBOT
#
[python-discord/seasonalbot] branch deleted: statuscats
north knotBOT
regal archBOT
#
[python-discord/site] branch deleted: remove\_django\_crispy\_bulma
ebon magnetBOT
#

Build 20200715.2 succeeded

Requested by

GitHub

Duration

00:02:36

Build pipeline

Seasonal Bot

night lilyBOT
#
SeasonalBot

Connected!

north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200715.1 succeeded

Requested by

GitHub

Duration

00:04:09

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200715.2 succeeded

Requested by

GitHub

Duration

00:02:09

Build pipeline

Site

regal archBOT
#

Tasks aren't re-scheduled upon a restart, so they won't always exist. To avoid the warning, we can either add a simple check that the tasks exists before cancelling. Alternatively, we can cache the silenced channels in redis and re-schedule tasks when the bot restarts. A notification is supposed to be sent if there are active silenced channels during shutdown, but this mechanism is a victim to #1012.

I prefer the re-scheduling option. Does anyone else have thoughts on which way to go?

ebon magnetBOT
#

Build 20200715.7 succeeded

Requested by

GitHub

Duration

00:02:34

Build pipeline

Bot

regal archBOT
#

7ff8b2c Allow ordering watched users by oldest first - kosayoda
a6f6661 Pass argument as kwarg to preserve functionality - kosayoda
ac7ed93 Accept argument to order nominees by oldest first - kosayoda
01d2803 Add command to list nominees by oldest first - kosayoda
28fe47d Achieve feature parity with talentpool - kosayoda

#
[python-discord/bot] branch deleted: talentpool\-oldest
north knotBOT
ebon magnetBOT
#

Build 20200715.8 succeeded

Requested by

GitHub

Duration

00:04:56

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200715.9 succeeded

Requested by

GitHub

Duration

00:02:18

Build pipeline

Bot

#

Build 20200715.10 succeeded

Requested by

GitHub

Duration

00:02:24

Build pipeline

Bot

regal archBOT
#

cb5e361 Add the #dm_log ID to constants. - lemonsaurus
9042325 Refactor Duck Pond embed sender to be a util. - lemonsaurus
ef65033 Refactor python_news.py to use webhook util. - lemonsaurus
3fce243 Relay all DMs and embeds to #dm-log. - lemonsaurus
5007e73 Replace channel ID with webhook ID for dm_log. - lemonsaurus

#
[python-discord/bot] branch deleted: dm\_relay
north knotBOT
ebon magnetBOT
#

Build 20200715.11 succeeded

Requested by

GitHub

Duration

00:04:10

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: role\-reminders
regal archBOT
#
[python-discord/bot] New branch created: dm\_relay
#

This hotfix PR makes three minor changes - We restore user caching, add the user ID to the author name, and add some stats.

User caching

We previously had a feature to allow a !reply without specifying the target user. This was removed because we were afraid that the number of DMs would be so great that the risk of replying to the wrong user was high.

As it turns out, this traffic is much lower than anticipated and the risk of replying to the wrong user appears to be low. That, co...

ebon magnetBOT
#

Build 20200715.12 succeeded

Requested by

GitHub

Duration

00:02:00

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

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

Build 20200715.3 succeeded

Requested by

GitHub

Duration

00:01:12

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200715.13 failed

Requested by

GitHub

Duration

00:01:03

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200715.14 failed

Requested by

GitHub

Duration

00:01:02

Build pipeline

Bot

ebon magnetBOT
#

Build 20200715.15 succeeded

Requested by

GitHub

Duration

00:02:56

Build pipeline

Bot

regal archBOT
#
[python-discord/site] branch deleted: feat/deps/344/django\-3\.0
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200715.3 succeeded

Requested by

Leon Sandรธy

Duration

00:04:19

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200715.17 succeeded

Requested by

GitHub

Duration

00:02:38

Build pipeline

Bot

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

Build 20200715.18 succeeded

Requested by

Leon Sandรธy

Duration

00:05:02

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
#
[python-discord/site] New branch created: whitelist\_system
regal archBOT
#

This PR aims to close issue #1024 by implementing purging system that purges messages up until certain message specified by moderator.
The command input supports:

  • Message ID (Will only work if message is in the channel in which command was invoked)
  • ChannelID-MessageID (obtainable via shift-clicking on โ€œCopy IDโ€)
  • jump url to the message

However, the system of deletion is completely different from the original one, due to the fact that TextChannel.purge wouldn't otherwise support...

ebon magnetBOT
#

Build 20200715.19 failed

Requested by

GitHub

Duration

00:00:53

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: Senjan/clean\_message
ebon magnetBOT
#

Build 20200715.20 succeeded

Requested by

GitHub

Duration

00:02:18

Build pipeline

Bot

regal archBOT
#

Reason why it does single deletes is because you can't delete messages older than 14 days via bulk delete endpoint, I didn't include that edge case in the code as (at least to me) it appears unlikely for moderators to attempt and purge messages older than that.
That being said attempts of deleting the messages older than 14 days via delete_messages will raise following error:

discord.errors.HTTPException: 400 Bad Request (error code: 50034): You can only bulk delete messages th...
regal archBOT
#

If the current message is older than until_message, then the current message should not be appended and deleted, as it's too far back. Something like this, but maybe you can come up with something more elegant:

if message.created_at < until_message.created_at:
    break

messages.append(message)

if message.id == until_message.id:
    message_ids.append(message.id)
    break
#
[python-discord/django-crispy-bulma] branch deleted: actions\-release
regal archBOT
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200715.4 succeeded

Requested by

GitHub

Duration

00:04:10

Build pipeline

Site

ebon magnetBOT
#

Build 20200715.21 succeeded

Requested by

GitHub

Duration

00:02:18

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200715.22 succeeded

Requested by

GitHub

Duration

00:02:28

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: bug/980/fuzzy\-processing
north knotBOT
ebon magnetBOT
#

Build 20200715.23 succeeded

Requested by

GitHub

Duration

00:04:18

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200716.1 failed

Requested by

GitHub

Duration

00:01:33

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200716.1 succeeded

Requested by

GitHub

Duration

00:02:43

Build pipeline

Bot

#

Build 20200716.2 succeeded

Requested by

GitHub

Duration

00:02:12

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200716.2 succeeded

Requested by

GitHub

Duration

00:02:51

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200716.3 succeeded

Requested by

GitHub

Duration

00:02:43

Build pipeline

Bot

regal archBOT
#

This pull request introduces a new model, AllowList, and the prerequisite viewset, URL endpoint, migrations, serializer and tests.

The intention of this model is to store things that we will either whitelist or blacklist. For example, we'll be storing file formats, guild invite IDs, and other things that are currently in the bot config file, but that we want to be able to modify during runtime.

Eventually, we may set up automation where this table is synchronized against stuff like the ...

ebon magnetBOT
#

Build 20200716.3 failed

Requested by

GitHub

Duration

00:01:39

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200716.4 failed

Requested by

GitHub

Duration

00:01:51

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200716.4 succeeded

Requested by

GitHub

Duration

00:02:37

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200716.5 succeeded

Requested by

GitHub

Duration

00:04:41

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200716.6 succeeded

Requested by

GitHub

Duration

00:02:51

Build pipeline

Bot

regal archBOT
#

Reduced to debug in 6f5fb20, though I still don't think I fully understand why a 404 is in this case different to any other error.

Here's the way I see it: when fetching messages, a 404 is expected in the case of a racing coroutine trying to get its hands on an already relayed message. It signals a certain situation that must be handled differently. An error notification isn't desired, because a) the situation is expected, and b) the behaviour for handling it is defined.

When download...

regal archBOT
#

If you knew there's a 404, then what exactly would you do with that information? You can't bring back a deleted file. We shouldn't have high logging levels for errors which aren't actionable. I assumed a 404 was expected if a message was manually deleted. Turns out it's a 403, but the same point still applies. You could argue that it'd be better to detect the message delete and abort before trying to get the file, but this may end up being too over-engineered compared to simply ignoring an ex...

north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200716.7 succeeded

Requested by

Leon Sandรธy

Duration

00:04:34

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

If you knew there's a 404, then what exactly would you do with that information? You can't bring back a deleted file.

Yes, but it just wasn't clear to me how a 404 is different from any other exception, because the original message gets deleted regardless. So if it's a 404 we lose the file but don't get an alert, if it's a 500 we lose the file but get an alert.

So do you think we need to be ready for the situation where someone actions an incident and deletes it at the same time? I gu...

#

Things won't break catastrophically will they?

Depends, it's unfortunate. The thing is that the relay is pretty fast, unless it's downloading a massive file. You'd have to try to break it, it's extremely unlikely that it'd happen by accident. But if it does, then:

  • Attachment fails to download, we fallback on proxy_url
  • Let's delete, confirmation_task is scheduled
  • The call to message.delete fails with an unhandled 404
  • The confirmation_task is already running but isn...
ebon magnetBOT
#

Build 20200716.8 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200716.5 failed

Requested by

GitHub

Duration

00:02:10

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200716.6 failed

Requested by

GitHub

Duration

00:01:57

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200716.8 succeeded

Requested by

GitHub

Duration

00:02:23

Build pipeline

Site

regal archBOT
#
[python-discord/bot] New branch created: whitelist\_system
regal archBOT
#

I like this feature in theory, but I do worry the frequency of videos posted may be too high. I think this would be particularly problematic with tutorial videos. I question if they're really even worth posting - they're not something people would casually watch. Does anyone have ideas for YouTube channels that would fit this well? Some good topics may be conference talks, tips and tricks, Python community news (but in video format), and going over cool projects/demos created in Python. Hones...

#

What would we put in it. Do we want to let people scrape our site? I would say yes, if our infrastructure can handle the load (I don't foresee it being high). I think it'd be beneficial for people to be able to use our site if they're learning web-scraping. On the other hand, there are already websites made for this, so we don't necessarily have to take up that burden too.

ebon magnetBOT
#

Build 20200716.9 succeeded

Requested by

GitHub

Duration

00:02:41

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: kwzrd/incidents
#

780ed87 Incidents: add incidents module & new ext boile... - kwzrd
29ab6dc Incidents: add new emoji constants - kwzrd
0d3af0d Incidents: create Signal enum & link members wi... - kwzrd
f476776 Incidents: add #incidents-archive channel constant - kwzrd
5db3a82 Incidents: add #incidents-archive webhook constant - kwzrd

north knotBOT
ebon magnetBOT
#

Build 20200716.10 succeeded

Requested by

GitHub

Duration

00:05:22

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200717.1 succeeded

Requested by

GitHub

Duration

00:02:09

Build pipeline

Site

native joltBOT
#
[python-discord/flake8-annotations] New branch created: prerelease\-ci\-test
native joltBOT
#
[python-discord/flake8-annotations] branch deleted: prerelease\-ci\-test
regal archBOT
ebon magnetBOT
#

Build 20200717.1 failed

Requested by

GitHub

Duration

00:02:29

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200717.2 succeeded

Requested by

GitHub

Duration

00:02:13

Build pipeline

Bot

oak estuaryBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200718.2 succeeded

Requested by

GitHub

Duration

00:02:38

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200718.1 succeeded

Requested by

GitHub

Duration

00:01:07

Build pipeline

Django Simple Bulma

regal archBOT
regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200718.4 succeeded

Requested by

GitHub

Duration

00:02:42

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200718.5 succeeded

Requested by

GitHub

Duration

00:02:28

Build pipeline

Bot

regal archBOT
regal archBOT
#

Is there any compelling reason we'd still need to track the author? Can we just lump their ID in with the rest of the mentions?

Currently, the author field is a FK to a User. Getting all the reminders set by a particular User is trivial, and although we could filter by an index to the array, I don't think it's ideal.

More importantly, since I'm using an ArrayField to store the list of IDs, there's also no way to cascade delete reminders when the author leaves the server (assum...

regal archBOT
#

An allowed field doesn't make sense to me because it facilitates the simultaneous maintenance of both a blacklist and whitelist for the same type. In such case, if an item didn't exist in the database, then which state would it assume? Each type should have a default state (i.e. allowed or denied), and if an item of that type is present in the DB, then assume the opposite state. It can be up to the client to decide what that default state is, or store it in a separate table if you really ne...

ebon magnetBOT
#

Build 20200719.1 succeeded

Requested by

GitHub

Duration

00:02:14

Build pipeline

Site

ebon magnetBOT
#

Build 20200719.1 succeeded

Requested by

GitHub

Duration

00:02:49

Build pipeline

Bot

regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#

@MarkKoz

An allowed field doesn't make sense to me because it facilitates the simultaneous maintenance of both a blacklist and whitelist for the same type.

Some types need both a blacklist and a whitelist, for example the Guild Invite IDs. Here the idea is that some guild invites will be blacklisted and will never be permitted, some will be whitelisted and will always be permitted, and everything else will be permitted based on certain criteria (whether they are Partnered or Verified, ...

ebon magnetBOT
#

Build 20200719.2 succeeded

Requested by

GitHub

Duration

00:02:16

Build pipeline

Site

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200719.2 succeeded

Requested by

GitHub

Duration

00:02:43

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#

Up until now, we have managed various whitelists and blacklists via adding constants to our default-config.yml file. However, it has often been suggested that we should instead be managing these via a bot command, and storing them in the database.

Related issues:

ebon magnetBOT
#

Build 20200719.3 succeeded

Requested by

GitHub

Duration

00:02:37

Build pipeline

Bot

ebon magnetBOT
#

Build 20200719.3 succeeded

Requested by

GitHub

Duration

00:02:16

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200719.4 succeeded

Requested by

GitHub

Duration

00:02:47

Build pipeline

Site

regal archBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200720.1 succeeded

Requested by

GitHub

Duration

00:02:37

Build pipeline

Bot

#

Build 20200720.2 succeeded

Requested by

GitHub

Duration

00:02:34

Build pipeline

Bot

regal archBOT
#

281ffdf Added command&system to purge all messages up t... - Senjan21
ace60c4 Fix docstring and comments - Senjan21
b6abe9c Prevent deleting messages above the desired mes... - Senjan21
c3fb3bc Merge branch 'master' into Senjan/clean_message - Senjan21
fb6be07 Merge pull request #1055 from python-discord/Se... - MarkKoz

#
[python-discord/bot] branch deleted: Senjan/clean\_message
#

716699d Source: Created initial cog layout + setup func... - ks129
c71895c Source: Create converter for source object conv... - ks129
a4ad949 Source: Create get_source_link function that ... - ks129
6e923cb Source: Add cog loading to main.py - ks129
dfda0ab Source: Create build_embed function that buil... - ks129

north knotBOT
ebon magnetBOT
#

Build 20200720.3 succeeded

Requested by

GitHub

Duration

00:04:56

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200720.5 succeeded

Requested by

GitHub

Duration

00:03:12

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20200720.4 succeeded

Requested by

GitHub

Duration

00:05:09

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

10b17a5 Removed python formatting from returned codeblock - wookie184
e93fdaf Edited tests to reflect changes (removed py for... - wookie184
7263d74 Merge branch 'master' into remove-eval-py-forma... - Senjan21
aa7eff8 Merge pull request #1060 from wookie184/remove-... - Senjan21

north knotBOT
ebon magnetBOT
#

Build 20200720.6 succeeded

Requested by

GitHub

Duration

00:04:57

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
#
[python-discord/site] branch deleted: role\-reminders
ebon magnetBOT
#

Build 20200720.7 succeeded

Requested by

GitHub

Duration

00:02:25

Build pipeline

Bot

north knotBOT
regal archBOT
#

776b437 Remove duplicate reminder deletion. - kosayoda
9389543 Extract sending error embed to a separate method. - kosayoda
61459ed Add method to check if user is allowed to menti... - kosayoda
76b8e46 Add generator that converts IDs to Role or Memb... - kosayoda
da2849a Allow mentioning other users and roles in remin... - kosayoda

#
[python-discord/bot] branch deleted: role\-reminders
ebon magnetBOT
#

Build 20200720.1 succeeded

Requested by

GitHub

Duration

00:03:58

Build pipeline

Site

north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20200720.8 succeeded

Requested by

GitHub

Duration

00:05:04

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200721.1 succeeded

Requested by

Joseph Banks

Duration

00:04:52

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

@lemonsaurus I'm working on this and using API calls for infraction searches is proving to be concerning. It can result in a lot of API calls depending on the search query.

  • Fetched users would need to be cached somehow. This would be slightly awkward API, and, more importantly, it'd be more work to have to implement some custom caching logic.
  • If not cacheable (like for reason queries), API calls are done sequentially. asyncio.gather could be used, but I'm concerned about rate limits...
regal archBOT
#
[python-discord/bot] New branch created: feat/frontend/533/mod\-log\-names
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200721.2 failed

Requested by

GitHub

Duration

00:02:19

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200721.4 succeeded

Requested by

GitHub

Duration

00:02:29

Build pipeline

Bot

regal archBOT
#

According to the documentation, this doesn't raise NotFound. However, surely it would still fail if the member left the guild. You need to figure out what exactly it raises and only catch that. You may need to look at HTTPException.code if the status is not enough of an indicator.

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: bug/util/897/truncate\-charinfo
ebon magnetBOT
#

Build 20200721.5 succeeded

Requested by

GitHub

Duration

00:02:43

Build pipeline

Bot

regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200722.1 failed

Requested by

GitHub

Duration

00:02:19

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200722.2 succeeded

Requested by

GitHub

Duration

00:02:36

Build pipeline

Bot

ebon magnetBOT
#

Build 20200722.3 succeeded

Requested by

GitHub

Duration

00:02:43

Build pipeline

Bot

regal archBOT
#

7878286 Jam Tests: Created base test layout - ks129
6242fbd Jam Tests: Created tests for case when too smal... - ks129
a9122b7 Jam Tests: Created tests for removing duplicate... - ks129
ebaac59 Jam Tests: Created test for category creating w... - ks129
14d4eda Jam Tests: Added utils.get assert to category c... - ks129

north knotBOT
ebon magnetBOT
#

Build 20200722.4 succeeded

Requested by

GitHub

Duration

00:04:43

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#
[python-discord/bot] New branch created: bug/util/jams\-multi\-categories
#

Discord has a limit of 50 channels per category. Each team needs 2 channels (text and voice). This change creates a new category if all existing categories are full. It prioritises the category with the highest position. If the previously full category gets freed up, the new team will be placed in it, assuming the category is still higher than the more recent category.

Critical priority because we anticipate over 25 teams in the upcoming jam (less than a week away).

ebon magnetBOT
#

Build 20200722.5 succeeded

Requested by

GitHub

Duration

00:02:36

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200722.6 succeeded

Requested by

GitHub

Duration

00:02:44

Build pipeline

Bot

ebon magnetBOT
#

Build 20200723.1 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Bot

#

Build 20200723.3 succeeded

Requested by

GitHub

Duration

00:02:33

Build pipeline

Bot

#

Build 20200723.2 succeeded

Requested by

GitHub

Duration

00:02:45

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: bug/1036/empty\-embed\-fields
north knotBOT
#

Postgres backup completed!

regal archBOT
#
[python-discord/bot] New branch created: feat/backend/784/aggregate\-syncer\-errors
ebon magnetBOT
#

Build 20200723.4 succeeded

Requested by

GitHub

Duration

00:02:50

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200723.5 succeeded

Requested by

GitHub

Duration

00:02:45

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: bug/util/jams\-multi\-categories
north knotBOT
ebon magnetBOT
#

Build 20200723.6 succeeded

Requested by

GitHub

Duration

00:04:59

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200723.8 succeeded

Requested by

GitHub

Duration

00:02:39

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: bug/util/897/truncate\-charinfo
north knotBOT
ebon magnetBOT
#

Build 20200723.9 succeeded

Requested by

GitHub

Duration

00:05:04

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200723.10 succeeded

Requested by

GitHub

Duration

00:02:49

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200723.11 succeeded

Requested by

Joseph Banks

Duration

00:04:56

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200723.12 succeeded

Requested by

GitHub

Duration

00:02:42

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: bug/1036/empty\-embed\-fields
north knotBOT
ebon magnetBOT
#

Build 20200723.13 succeeded

Requested by

GitHub

Duration

00:04:28

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
regal archBOT
#

Gave it a try with !d not in and it showed this footnote's content. The URL was correct though.

Thanks for pointing this out, the code assumes that a signature is a dt tag and its description is in an associated dd tag, but looks like that's not the case everywhere.
I think reversing the logic and instead searching for the next non dt tag should be enough for the description instead of looking for a dd tag specifically.

regal archBOT
ebon magnetBOT
#

Build 20200723.1 succeeded

Requested by

GitHub

Duration

00:01:15

Build pipeline

Django Simple Bulma

regal archBOT
#

Intended more as a proposition

Only a handful of functions in sphinx are used by the bot code, specifically it's used for fetching inventories for the doc cog; but sphinx is a large package with the used code being a tiny portion of it.

Benefits

The benefits of removing it I can think of would be

  • The code could be changed to be fully async (currently uses requests ran in executors)
  • Can get rid of behaving as a sphinx app with mocks having to be created to work
  • No more bre...
north knotBOT
#

Postgres backup completed!

regal archBOT
#

So, I've always hated the plain messages, I won't deny there's a little bit of stylistic preference there. And yes, allowed_mentions solves this particular case - but it just seems more sane to me to put user input inside an embed, more future-proof. We don't know in which ways our members will be able to exploit our lack of sanitization in the future, but we can assume that sticking their input inside an embed will probably make it harder for them to break anything.

This was discussed b...

regal archBOT
ebon magnetBOT
#

Build 20200724.1 failed

Requested by

GitHub

Duration

00:01:07

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200724.2 failed

Requested by

GitHub

Duration

00:01:05

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200724.3 succeeded

Requested by

GitHub

Duration

00:05:04

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

I haven't put much thought about how this would need to be implemented, but got an idea that instead of caching soups of pages we request; we could parse all symbols on a page when it's requested and then cache the resulting markdown/embeds.
This would allow even quicker responses since no parsing would need to be done after the initial requests to the page.
Any thoughts if this would be worth doing over the current implementation? The main change would be the parsing moved to batches (som...

regal archBOT
#

Sentry Issue: BOT-7B

This may be related to the user choosing to not updated the cache when invoking the command, but it's odd that any response, even cached ones, would be missing this key; Django adds this to every model. It may have been a bad response (like, non 200) that was cached.

KeyError: 'inserted_at'
  File "discord/ext/commands/core.py", line 85, in wrapped
    ret = await...
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
regal archBOT
#

I did cache the parsed results too for a bit, but decided to remove it as I couldn't notice a difference and it added a tiny bit of complexity to the code.
I've been looking around the memory usage now and it looks like the bs4 soup parse trees take up more than I thought they would with caching, taking up around 100 MB of memory with 8 a bit thought out doc requests. Going with that trend, if more longer pages were found that could grow to around 1.5 GB or more with the current cache limit....

regal archBOT
#

The fix for the exception itself is fairly easy, only needing to use Timeout here which covers both ReadTimeouts and ConnectionTimeouts
https://github.com/python-discord/bot/blob/6bab215b45b5ad2d40b68459a70e7731af2eb7a2/bot/cogs/doc.py#L476-L482

Rescheduling does also sound like a good idea, instead of relying on someone to run a doc refresh, but how many times should we attempt requests? In case of a longer outage, trying it indefinitely feels like a waste. Maybe skipping retrying ...

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200727.1 failed

Requested by

GitHub

Duration

00:01:43

Build pipeline

Site

ebon magnetBOT
#

Build 20200727.1 failed

Requested by

GitHub

Duration

00:01:52

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200727.2 succeeded

Requested by

GitHub

Duration

00:04:48

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#
[python-discord/bot] New branch created: fix/poll
ebon magnetBOT
#

Build 20200728.1 succeeded

Requested by

GitHub

Duration

00:05:12

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200728.2 failed

Requested by

GitHub

Duration

00:01:17

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200728.3 succeeded

Requested by

GitHub

Duration

00:02:40

Build pipeline

Bot

regal archBOT
#

Hello Everyone!
I am quite new to programming and for my project I have to perform Propensity Score Matching with pymatch between some companies (Default and not), matching them according to 3 differrent variables. My code works well when I have samples of default companies larger than 20, while when I have to match fewer treated companies, I get the error attached below: Fitting Models on Balanced Samples: 4\550Error: Perfect separation detected, results not available. (or similar ones).
...

regal archBOT