#dev-log

1 messages ยท Page 37 of 1

ebon magnetBOT
#

Build 20191019.4 succeeded

Requested by

GitHub

Duration

00:02:19

Build pipeline

Site

regal archBOT
#

What's your reason for 88 here? Is it based on existing URLs Discord generates? If so, this means that this may break in the future: snowflake IDs are integer representations of 64-bit numbers. In base10 form, they're currently one digit shorter than they could theoretically become. I'd rather have us have some margin here. (Although I haven't computed if they will get larger realistically given the time frame we live in.)

regal archBOT
#
[python-discord/site] New branch created: admin\-api\-pages\-improvements
regal archBOT
#

I've added some QOL adjustments to the admin pages by defining ModelAdmin objects for most of the API section model:

Message Deletion

Deleted Messages can now be searched by:

  • message content and id
  • author name and id
  • actor name and id

Fields have been made read-only, as they're logs, not a setting to be changed. This also speeds up load time as there's no user dropboxes to populate.

The log view on the staff subdomain is linked now in both the context page and th...

ebon magnetBOT
#

Build 20191019.5 failed

Requested by

GitHub

Duration

00:01:50

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191019.6 failed

Requested by

GitHub

Duration

00:01:43

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191019.7 succeeded

Requested by

GitHub

Duration

00:01:59

Build pipeline

Site

regal archBOT
#

A possible idea for having is_staff applied correctly is to apply it at user_logged_in and adding model methods to Role and User:

Role

class Role(ModelReprMixin, models.Model):
    ...
    staff_roles = ("Owners", "Admins", "Moderators")
    ...
    @property
    def is_staff(self):
        return self.name in self.staff_roles

User

class User(ModelReprMixin, models.Model):
    ...
    @property
    def is_staff(self):
        return any(r.is_staf...
#

While SocialAccounts are identified as unique by their provider connection UUID, the Auth User that's mapped to the user attribute of it is the actual login user with the groups, permissions, etc, and is limited to username being unique. Due to this, we will need to consider ensuring either the username#disc is assigned instead, or the discord user id, as usernames in discord are not unique and will cause issues when a second person logs in with the same username, potentially granting a sta...

regal archBOT
ebon magnetBOT
#

Build 20191020.1 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20191020.2 succeeded

Requested by

GitHub

Duration

00:03:20

Build pipeline

Bot

oak estuaryBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#

Returning only the file name for the help command seems like a cheap solution. I think that this is solvable without hardcoding any of the replies. Given how stale this pull request is and how many unaddressed reviews are in it, I'm tempted to just give this task to someone else if you can't come up with an agnostic solution.

#

Minor note, @mathsman5133 -- force pushing to a branch after reviews have started makes the pull request history difficult to read. I'm missing valuable context here about which changes you made in response to previous reviews, because those changes are all aggregated at the bottom.

Please try to avoid force pushing after you've posted your pull request, although force pushing before you open it is fine.

regal archBOT
#
        """Get the top 5 posts for a subreddit within a specified timeframe."""

Couple of things here:

  • Use imperative mood in docstrings, e.g. Return an embed, not Returns an embed.
  • Don't describe the return type, explain what the method does. We have return type annotations to explain what it returns.
  • Be specific. Explaining how the time parameter works, for example, seems like useful API documentation, and in my opinion you should spend a few more lines...
#

I'd like this condition to be simplified, but it depends on the commends I've left for python-discord/site#288. Since bot will need to be merged before siteยน, the best option for that would be:

if reminder.get("jump_url"):
    # Do something if a jump_url is present

Using .get means we will get a default value (a falsy None in this case) when "jump_url" is not yet present in the response we get from site, an falsy empty string for historical reminders, and a truth...

ebon magnetBOT
#

Build 20191020.3 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
regal archBOT
#

Thanks for the responses!

A possible idea for having is_staff applied correctly is to apply it at user_logged_in and adding model methods to Role and User...

I quite like this approach, but I think for the sake of keeping things configurable, roles should be able to have is_staff toggled in the Django Admin.

While SocialAccounts are identified as unique by their provider connection UUID, the Auth User that's mapped to the user attribute of it is the actual login user with the g...

regal archBOT
regal archBOT
regal archBOT
#
[python-discord/site] New branch created: home\-content
#

Bulma does a lot of css normalisation in order to keep cross-browser consistency. One of these by default is to remove any padding and margins from the paragraph tag (<p></p>).

It does have though a content class that's suitable for plain html text content which applies it's own consistent test styling, including an appropriate paragraph padding, so I've added this into the element where the front page text is.

Before:
![image](https://user-images.githubusercontent.com/29337040/...

ebon magnetBOT
#

Build 20191020.1 succeeded

Requested by

GitHub

Duration

00:02:03

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191020.2 failed

Requested by

GitHub

Duration

00:01:53

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191020.3 failed

Requested by

GitHub

Duration

00:01:54

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191020.4 failed

Requested by

GitHub

Duration

00:01:56

Build pipeline

Site

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191020.4 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: unittest\-migration
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191020.5 succeeded

Requested by

Leon Sandรธy

Duration

00:03:30

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191020.6 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191020.7 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
#
[python-discord/django-simple-bulma] branch deleted: update\-dependency\-pinning
ebon magnetBOT
#

Build 20191020.1 succeeded

Requested by

Leon Sandรธy

Duration

00:01:59

Build pipeline

Django Simple Bulma

#

Build 20191020.1 succeeded

Requested by

Leon Sandรธy

Duration

00:01:50

Build pipeline

Django Crispy Bulma

#

Build 20191020.2 succeeded

Requested by

Leon Sandรธy

Duration

00:01:56

Build pipeline

Django Simple Bulma

regal archBOT
#

Hi, thanks, I saw them, but they were for development/extra packages. My change was for a primary dependency.

The problem is this: if every library had hard-pinned dependencies nobody would be able to install anything because of package conflicts during install.

I might be wrong, but to my knowledge it is best practice to hard-pin project dependencies, but soft-pin library dependencies (I consider django-crispy-bulma to be a library).

It's basically a tradeoff, too rigid is bad, too ...

regal archBOT
#

This would make it more flexible and only slightly less "secure", because django-crispy-forms seems to follow semver versioning.

We can't rely on "seems to." We are not firmly opposed to making adjustments to the dependency pinning, but would like to have a discussion about it first rather than cold-PRing something with an unkown effect on the maintenance burden of our package.

regal archBOT
#
[python-discord/site] New branch created: update\-dependency\-pinning
#
[python-discord/site] branch deleted: update\-flake8\-annotations
#

Updated version of #263, this PR updates some of our dependency pinning

  • flake8-annotations v1.1 was recently released, which includes a fix for incorrect parsing of nested functions. No additional linting necessary.
  • flake8-bandit has been unpinned from v1.0.2 & brought back up to current. The issue that forced the earlier downgrade has been resolved upstream in bandit.
  • Per staff consensus, Django has now been more narro...
ebon magnetBOT
#

Build 20191020.5 succeeded

Requested by

GitHub

Duration

00:02:02

Build pipeline

Site

regal archBOT
#

FWIW I do find it odd that it's being pinned to a patch version. I would have thought ~=1.7.2 is at least fine. Granted, there are exceptions to this - depends on the versioning scheme of the library.

If we were to evaluate that this dependency does not have breaking changes in minor versions (i.e. does follow semver), then doing >=1.7.2,<2 would be fine. Otherwise, we would have to periodically manually check the latest minor release and bump the pinned version.

#
[python-discord/django-simple-bulma] New branch created: test\-branch
#
[python-discord/django-simple-bulma] branch deleted: test\-branch
ebon magnetBOT
#

Build 20191020.3 failed

Requested by

GitHub

Duration

00:01:26

Build pipeline

Django Simple Bulma

ebon magnetBOT
#

Build 20191020.6 succeeded

Requested by

GitHub

Duration

00:01:59

Build pipeline

Site

regal archBOT
regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191021.1 succeeded

Requested by

GitHub

Duration

00:01:44

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20191021.2 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191021.3 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191021.4 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
#

Well, the approach looks sound but we do need it tested before we can merge this.

I also ask myself how this will affect pages with unreasonably long names. Will it take up the entire page or do weird stuff like give us horizontal scrollbars?

I also wonder whether a better solution might've been smarter truncation instead of no truncation at all. For example, are breadcrumbs really worth having if there's only one level? Would the truncation perhaps look better if it didn't cut off in...

ebon magnetBOT
#

Build 20191021.5 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191021.6 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Bot

ebon magnetBOT
#

Build 20191021.7 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

ebon magnetBOT
#

Build 20191021.9 failed

Requested by

GitHub

Duration

00:01:23

Build pipeline

Bot

regal archBOT
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191021.8 succeeded

Requested by

GitHub

Duration

00:03:26

Build pipeline

Bot

#

Build 20191021.10 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191021.1 succeeded

Requested by

GitHub

Duration

00:02:06

Build pipeline

Site

ebon magnetBOT
#

Build 20191021.11 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

#

Build 20191021.12 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
#
[python-discord/branding] New branch created: \#29\-blank\-banner
#
[python-discord/branding] branch deleted: \#029\-blank\-banners
regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: \#540\-dont\-show\-infraction\-total
ebon magnetBOT
#

Build 20191021.13 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191021.2 succeeded

Requested by

GitHub

Duration

00:02:18

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191021.14 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
oak estuaryBOT
#

<@&267628507062992896> WARNING: Unable to get DEFCON settings!

#

<@&267628507062992896> WARNING: Unable to get DEFCON settings!

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20191022.1 succeeded

Requested by

GitHub

Duration

00:03:58

Build pipeline

Site

ebon magnetBOT
#

Build 20191022.1 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
#

Hello, and thank you for the PR.

However, in the spirit of Hacktoberfest, we are not accepting PR's with one-liners that do not have an open issue. Therefore, I will be closing and marking the PR as invalid.

We have as of right now, 62 issues open in this repository, which is plenty to go around. You are free to comment on one you would like to work on, and contribute to the repository that way. If you have any questions, feel free to ask in #meta in our Discord Server.

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191022.2 failed

Requested by

GitHub

Duration

00:02:05

Build pipeline

Site

native joltBOT
regal archBOT
#
[python-discord/site] branch deleted: home\-content
ebon magnetBOT
#

Build 20191022.5 failed

Requested by

GitHub

Duration

00:01:52

Build pipeline

Site

north knotBOT
ebon magnetBOT
#

Build 20191022.3 succeeded

Requested by

GitHub

Duration

00:04:14

Build pipeline

Site

regal archBOT
#
[python-discord/site] New branch created: \#222\-offensive\-msg\-autodeletion
ebon magnetBOT
#

Build 20191022.6 failed

Requested by

GitHub

Duration

00:02:03

Build pipeline

Site

regal archBOT
#
[python-discord/bot] branch deleted: \#540\-dont\-show\-infraction\-total
north knotBOT
ebon magnetBOT
#

Build 20191022.2 succeeded

Requested by

GitHub

Duration

00:03:22

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20191022.7 succeeded

Requested by

GitHub

Duration

00:02:01

Build pipeline

Site

ebon magnetBOT
#

Build 20191022.3 succeeded

Requested by

GitHub

Duration

00:01:27

Build pipeline

Bot

regal archBOT
#
[python-discord/site] New branch created: constant\-debug\-secret\-key
#

The SECRET_KEY in debug mode was auto-generated each time the config file was loaded. This had the unwanted side-effect of requiring testers to login again after every change they made, since the auto-reloading process would also create a new SECRET_KEY.

This commit resolves that by turning it into a constant. Since having a constant "secret" results in the linting error S105, I have added a specific noqa ignore for that to avoid having to add an otherwise useless environment variable.

ebon magnetBOT
#

Build 20191022.8 succeeded

Requested by

GitHub

Duration

00:01:57

Build pipeline

Site

regal archBOT
#
[python-discord/site] branch deleted: constant\-debug\-secret\-key
north knotBOT
ebon magnetBOT
#

Build 20191022.9 succeeded

Requested by

GitHub

Duration

00:04:02

Build pipeline

Site

regal archBOT
#
[python-discord/branding] New branch created: superstar\_icons
regal archBOT
#

Hey, sorry about the massive delay, but I finally got around to merging the 2 additional animated snakes for the off-season logo. I made these 4 months ago!

This is in response to #19, and a continuation of #20.

The file structure remains consistent, the animations are available in 1024x1024, 512x512, 256x256 and 64x64 resolution. The {name}.gif is always 1024, the other sizes are annotated in the filenames.

ebon magnetBOT
#

Build 20191022.4 failed

Requested by

GitHub

Duration

00:01:23

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191022.10 succeeded

Requested by

GitHub

Duration

00:02:05

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191022.11 succeeded

Requested by

GitHub

Duration

00:02:04

Build pipeline

Site

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191023.1 failed

Requested by

GitHub

Duration

00:01:48

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191023.3 succeeded

Requested by

GitHub

Duration

00:02:00

Build pipeline

Site

north knotBOT
#

Postgres backup completed!

regal archBOT
#

There was a mute issued to an user after posting 5 message with 5 attachments. The bot issued a mute and treated accordingly against message spamming behaviour, however in this case there are two problems:

  • They were messages with empty message contents, only attachments.
  • The attachments were completely deleted, and there is no way to know what they were.

The log of the case looks like this

Deleted by: Python#4329
Date: Oct. 23, 2019, 6:54 a.m.
Aฬทkฬดaฬดsฬตhฬถ#4646Oct. 23, 2019...
ebon magnetBOT
#

Build 20191023.1 succeeded

Requested by

GitHub

Duration

00:01:55

Build pipeline

Bot

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

Build 20191023.2 succeeded

Requested by

GitHub

Duration

00:01:42

Build pipeline

Bot

regal archBOT
#

Occasionally a single user will very frequently cause false positive watchlist triggers, which results in constant moderator pings. This can for example happen if pasted code contains identifiers from a different language that happens to be homonymous with a watchlist word (the Danish word "fag" translates to "subject" in English). It would be nice if it was possible to temporarily disable the watchlist for a particular user and a particular word. I'm imagining a command that takes a watchlis...

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191024.1 succeeded

Requested by

GitHub

Duration

00:01:30

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191024.2 succeeded

Requested by

GitHub

Duration

00:01:33

Build pipeline

Bot

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

Build 20191024.3 succeeded

Requested by

GitHub

Duration

00:03:19

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20191024.4 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

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

Build 20191024.5 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

#

Build 20191024.6 succeeded

Requested by

GitHub

Duration

00:01:44

Build pipeline

Bot

regal archBOT
#

This issue is work in progress

I'm currently in the process of adding individual issues for individual files. I'll update this issue as I create these issues.


The unit test branch coverage of our bot is currently 20% (30% including the test files). We would like to increase the test coverage of our bot to make one of our community's most essential tools more resilient to breakage. This meta issue contains information general information for this project and keeps track of the...

regal archBOT
regal archBOT
#

For anyone that plans to work on this, I want to add that if you find something to be difficult to write tests for, consider how testable that code currently is. Ultimately, some things may need to just get restructured or rewritten in order to facilitate testing. This is especially true of monolithic functions - they could get split into smaller units. I think it can be quite easy to end up writing tests that are not really testing small enough units, so I want to emphasise that should be pa...

regal archBOT
regal archBOT
#

We actually discussed if it'd be better to do the fuzzy search server-side on the API. I haven't looked into it deeply but here are some relevant links:

https://docs.djangoproject.com/en/2.2/ref/contrib/postgres/search/
https://github.com/vsemionov/django-rest-fuzzysearch

I'm not sure if it'd be better to do it server or client side. I think that if there is room for fuzzy search to be used in the future with other endpoints (new or existing), then it should be server side. Another fac...

regal archBOT
regal archBOT
#

The command lets people link their github to their discord. For example I wanted to see Icemans (Rohan's) PR's but couldn't remember his Github. If this command existed then I could just do .github @icemanjr and it would return his github username.

Additional information

You would have a database (perhapse JSON) to store discord handle and github name pairs.

The included commands would be:

.github link [GitHub Name] - Links the invoking users account name to their Discord nam...

regal archBOT
regal archBOT
#

Looking at the fuzzy search, have you considered the built-in difflib module?

I've taken a look at it, it proves to be quite useful to get the differences in before and after in the on_message_edit event. I've looked at its SequenceMatcher, it provides similar result to fuzzywuzzy

...
s = difflib.SequenceMatcher(lambda x: x in ' -', search, target)
return (
    found / len(_search) * 100,
    ('fuzzy', fuzz.ratio(search, target), fuzz.partial_ratio(search, target)),...
north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20191025.1 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
regal archBOT
#

The docs cog does some larger requests when the database is set up so don't think it'd be that great of an idea to put useless load on the providers

It's not that much of an issue for a bot used in testing, since it won't have any entries in the database unless you add them during testing. The providers are not hard-coded, so calls won't be made unless they are added to the database.

regal archBOT
#
[python-discord/bot] New branch created: \#364\-offensive\-msg\-autodeletion
regal archBOT
regal archBOT
regal archBOT
#

Hi, this PR add a background deletion task of offensive messages. python-discord/site### need to be merged first.

This PR closes #364.

Implementation details

  • If the filter cog filter a message that's considered as offensive, the cog create a new offensive message object in the site db with a delete_date of one week after it was sent.
  • A background task run every day, pull up a list of message to delete, find them back, and delete them.
ebon magnetBOT
#

Build 20191025.2 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

#

Build 20191025.1 succeeded

Requested by

GitHub

Duration

00:02:02

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191025.3 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
#

d26eba1 Show matched word and location in watchlist embed - kosayoda
7120ae0 Rename triggered to match - kosayoda
7ad9b1b Fix incorrect type hint for return value - kosayoda
2b1c18e Merge branch 'master' into show-trigger-word - sco1
4b6a176 Merge pull request #529 from python-discord/sho... - sco1

#
[python-discord/bot] branch deleted: show\-trigger\-word
ebon magnetBOT
#

Build 20191025.5 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

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

Build 20191025.4 succeeded

Requested by

GitHub

Duration

00:03:47

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20191025.6 succeeded

Requested by

GitHub

Duration

00:03:40

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20191025.7 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
#

a7e1d55 Add moderation channels check to cog_check - atmishra
fe514ab Add missing channels to the config - atmishra
d16fd99 Add #admin-spam channel to moderation channels ... - atmishra
b17b6e3 Fix typo in channel name - atmishra
1dc08b8 Modify in_channel_check to accept list of channels - atmishra

north knotBOT
ebon magnetBOT
#

Build 20191025.8 succeeded

Requested by

GitHub

Duration

00:03:35

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20191025.9 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

regal archBOT
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191025.10 succeeded

Requested by

GitHub

Duration

00:03:53

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191025.2 succeeded

Requested by

GitHub

Duration

00:02:02

Build pipeline

Site

regal archBOT
#
[python-discord/site] branch deleted: bot\#466\-reminder\-jump\_url
north knotBOT
ebon magnetBOT
#

Build 20191025.3 succeeded

Requested by

GitHub

Duration

00:04:08

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191025.11 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20191025.12 succeeded

Requested by

GitHub

Duration

00:03:37

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20191025.4 succeeded

Requested by

GitHub

Duration

00:02:06

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191025.5 succeeded

Requested by

GitHub

Duration

00:04:07

Build pipeline

Site

north knotBOT
regal archBOT
#

I know the original issue spelled out daily, but we already have a base class (Scheduler) that allows us to schedule "something" at a time point in the future. We already use it for infractions and reminders, so I'd rather have this feature use that as well, to avoid having all kinds of different "scheduler"-like logic around the bot. Using a single tried and tested method makes the most sense to me.

ebon magnetBOT
#

Build 20191025.13 succeeded

Requested by

GitHub

Duration

00:01:34

Build pipeline

Bot

regal archBOT
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191025.14 succeeded

Requested by

GitHub

Duration

00:03:22

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191025.15 succeeded

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

#

Build 20191025.6 succeeded

Requested by

GitHub

Duration

00:02:00

Build pipeline

Site

regal archBOT
#
[python-discord/bot] New branch created: schedule\-superstarify
#

Fixes #472.

A new class InfractionScheduler was created and most of the meat of the infractions cog (utility functions for applying/pardoning) was moved there. Superstarify now partially makes use of those functions too, but not fully so that things such as the embed sent when a superstar is applied is retained.

Superstar icons for the mod log were added.

Being consistent with mute infractions, users will not be DM'd about a re-applied superstar infraction when they re-join the ser...

ebon magnetBOT
#

Build 20191026.1 succeeded

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

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

Build 20191026.2 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

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

Build 20191026.1 succeeded

Requested by

GitHub

Duration

00:01:55

Build pipeline

Site

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

Build 20191026.2 succeeded

Requested by

GitHub

Duration

00:04:09

Build pipeline

Site

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20191026.3 succeeded

Requested by

GitHub

Duration

00:02:08

Build pipeline

Site

#

Build 20191026.3 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

#

Build 20191026.4 failed

Requested by

GitHub

Duration

00:01:15

Build pipeline

Bot

ebon magnetBOT
#

Build 20191026.5 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: duck\_pond
#

This cog will listen for duck reactions on any message, and then:

  • If the reaction was added by a staff member
  • and the reaction was a duck
  • and the message has not already been added to the #duck-pond

It will add the message to the #duck-pond channel and then add a green checkbox to the original message to indicate that the message has been ponded. Once this checkmark has been added, the message will not be processed in the future. If the checkmark is removed and there are more...

ebon magnetBOT
#

Build 20191027.1 failed

Requested by

GitHub

Duration

00:01:15

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191027.2 failed

Requested by

GitHub

Duration

00:01:20

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191027.3 failed

Requested by

GitHub

Duration

00:01:19

Build pipeline

Bot

ebon magnetBOT
#

Build 20191027.5 succeeded

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

regal archBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

I'm in the middle of thoroughly testing this branch as I populate my local database, and I've run into an odd bug. Please tell me if you can reproduce it.

Steps to reproduce:

  1. Go to /admin/api/tag/f-strings/change/ on production site and copy the JSON content inside the embed field.
  2. Go to /admin/api/tag/ on your local development site and create a new tag with the ADD TAG + button
  3. Enter a title for the tag
  4. Paste in the copied JSON into the embed field
  5. Click the `Sa...
regal archBOT
#

It's not necessary, that's my mistake. log.exception only needs exc_info if you're logging outside of the exception handling context. Other logging methods do not log the traceback by default, but still support his kwarg to enable it. (I think the whole point of log.exception is to log an error-level message that automatically includes the relevant traceback info.)

regal archBOT
ebon magnetBOT
#

Build 20191027.6 failed

Requested by

GitHub

Duration

00:01:20

Build pipeline

Bot

regal archBOT
regal archBOT
#

The deleted messages front-end currently doesn't display newlines if they're consecutive, i.e., if the lines are otherwise empty ("\n\n\n\n\n\n\n\n\n"). This makes it difficult to interpret what actually happened in chat. A good solution to this would be to make newlines character visible using the โ†ต character, printed in a light gray color (similar to how IDEs do it).

before
![2019-10-27_18-30](https://user-images.githubusercontent.com/33516116/67638694-d53a1c80-f8e7-11e9-9971-d0...

regal archBOT
#

Yes, the duplicates rule was the one that triggered here.

I don't think @ikuyarihS intention is to stop antispam from triggering, but rather to make sure we still get the information: What kind of attachments were deleted? I think we could just relay them to the mod-alerts channel to retain them, regardless of the rule that deleted the attachment. I'm not that concerned about a couple of additional messages in that channel, since it's not a "conversation" channel. (Other mods may, thou...

regal archBOT
regal archBOT
regal archBOT
#

I will try to help with this.

I'm cloning the repo for the first time so it will take me some time to familiarize myself with how things are done. Should I comment under specific issues and wait to get assigned, or should I just assign myself? I believe I do have the permissions, just not sure whether it's ok to do it without getting someone's approval first.

#

Self-assigning is a thing we should probably discuss a bit more amongst core developers to see what is best to do consistently in future and to use as a guideline for future contributors. For now, just leave a comment and leave the assigning to a core developer though to be safe.

I don't think you would, but try avoid taking on more than one issue at the same time if you feel tempted. Just comment on one, double checking that nobody is assigned yet beforehand, and then go crazy with that u...

regal archBOT
regal archBOT
#

Closes: #297 and #514

Currently, we use a red X for both message/embed deletion and reaction removal. Certain members are hence confused about the meaning of the reaction.

The PR adds a new emoji, :trashcan: for deletion of embed or message.
For regular pagination, the red X clears the reactions added by the bot, while the trashcan deletes the embed. The help cog has similar functionality.
![image](https://user-images.githubusercontent.com/41782385/67648789-a8cae280-f971-11e9-8...

ebon magnetBOT
#

Build 20191028.1 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

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

Build 20191028.2 failed

Requested by

GitHub

Duration

00:01:13

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191028.3 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191028.4 succeeded

Requested by

GitHub

Duration

00:01:29

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: unittest\-utils
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

For example, trying to ban a user (via ID) who has never joined the server before will currently error out because the syncer never got a chance to create the user in the database. Therefore, the user will have to be manually created with in_guild=False after their details are fetched with fetch_user.

I think this can all be done inside proxy_user (if it's turned into a Converter subclass so it can be async), but not sure.

#

Sorry for taking so long to get back to you.

It is not adequate to simply log the exception and proceed because the object will still be None. Furthermore, the way nicknames are currently being fetched may raise AttributeError because the user or actor could be a discord.User instead of discord.Member at those points.

That being said, I've actually remembered that the infractions API has ["extended" endpoints](https://github.com/python-discord/site/blob/684da6fc669b8b13f14c6...

regal archBOT
#

The !user command has a special parameter, hidden, to make sure that the number of hidden infractions, like notes, is included in the output for moderation purposes. However, in the current implementation will not add the number hidden infractions to the number of "non-hidden" infractions, but rather only include the count of hidden infractions. This defeats the purpose, since we use the command to get a quick overview of the member, including the total number of infractions they've rec...

regal archBOT
ebon magnetBOT
#

Build 20191028.1 succeeded

Requested by

GitHub

Duration

00:02:16

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191028.2 succeeded

Requested by

GitHub

Duration

00:02:00

Build pipeline

Site

regal archBOT
#
[python-discord/site] branch deleted: update\-dependency\-pinning
north knotBOT
ebon magnetBOT
#

Build 20191028.3 succeeded

Requested by

Leon Sandรธy

Duration

00:04:46

Build pipeline

Site

regal archBOT
#
[python-discord/bot] New branch created: unittest\-helpers\-proper\-child\-mock
#

We previously used an override of the __new__ method to prevent our custom mock types from instantiating their children with their own type instead of a general mock type like MagicMock or Mock.

As it turns out, the Python documentation suggests another method of doing this that does not involve overriding __new__. This commit implements this new method to make sure we're using the idiomatic way of handling this.

The suggested method is overriding the _get_child_mock method in...

ebon magnetBOT
#

Build 20191028.5 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: \#549\-show\-attachments\-staff
#
[python-discord/site] New branch created: bot\#549\-show\-attachments\-staff
ebon magnetBOT
#

Build 20191028.6 succeeded

Requested by

GitHub

Duration

00:01:58

Build pipeline

Bot

#

Build 20191028.4 failed

Requested by

GitHub

Duration

00:02:21

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191028.5 succeeded

Requested by

GitHub

Duration

00:02:08

Build pipeline

Site

regal archBOT
regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191028.7 failed

Requested by

GitHub

Duration

00:01:18

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191029.1 succeeded

Requested by

GitHub

Duration

00:01:29

Build pipeline

Bot

regal archBOT
#

Right now, for each message edited, both before & after edited message are posted as embed, separately, in full .content

Some suggestions to make this better:

  1. Merge both embeds and use a jump link to the after edited message
    • Since the message is not yet deleted, it is still in the server, so getting the full content of the message is just a click away.
  2. Show what changed
    • It is more valuable to know what changed after the edit rather than the full content before a...
ebon magnetBOT
#

Build 20191029.2 succeeded

Requested by

GitHub

Duration

00:01:51

Build pipeline

Bot

regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#

The links in the Reddit relay embeds are not displayed properly on Mobile. This is caused by the same issue we've seen with tags: If the markdown for bold text is applied inside of the link markdown ([**bold inside**](link)), Discord will render it incorrectly on Android clients. If the bold markdown is applied around the link markdown (**[bold outside](link)**), it will be displayed as expected.

regal archBOT
#
[python-discord/bot] New branch created: reddit\-webhook\-embed\-enhancements
#

I have made some visual changes to the embed generated for the Reddit webhook. The changes I've made boil down to:

  • Moved bold markdown to outside of the link markdown to prevent breakage on Android.

  • Removed redundant mentions of the subreddit from the embed description, since the name of the subreddit is already displayed in the author field of the webhook.

  • Stylized the meta-data line by replacing text with emoji-based icons for upvotes, comments, and user.

The emojis were...

ebon magnetBOT
#

Build 20191029.3 succeeded

Requested by

GitHub

Duration

00:01:55

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: reddit\-webhook\-embed\-enhancements
north knotBOT
ebon magnetBOT
#

Build 20191029.4 succeeded

Requested by

GitHub

Duration

00:03:38

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191029.5 succeeded

Requested by

GitHub

Duration

00:03:46

Build pipeline

Bot

regal archBOT
#

I did more research and here is what I found (again, Iโ€™m not a lawyer).

Discord developer ToS

2.1 API or SDK licence

Subject to the terms and conditions of this Agreement, Discord grants you a limited, non-exclusive, revocable, non-transferable license to access and use the API or SDK solely to as necessary to (i) develop, test, display and execute your Applications with the API or SDK functionality included; and (ii) distribute to ...

regal archBOT
regal archBOT
#

The test cases can be hard to read. I think their complexity can be reduced assuming all messages have the same author:

  • Don't separate the last and recent messages. Use a single tuple and assume in the test that index 0 (can be any index, really, as long as it's consistent) will always be the last message.
  • Don't separate messages and relevant messages. Since all messages have the same author, the relevant messages will be equal to the recent messages. Thus, see above point.

That be...

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20191030.1 succeeded

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: otn\-a\-fix
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191030.2 succeeded

Requested by

GitHub

Duration

00:03:34

Build pipeline

Bot

regal archBOT
#

Thanks for looking this over and providing feedback! Agreed that we could clarify the tests, and that we don't really test the case where the authors are different. Will take a look at updating these.

On a side note, I think it's probably worth testing the different user case as well in test_attachments.py - can update that as well if you want, though not sure if that should go into this PR or another one.

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191030.3 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191030.4 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

native joltBOT
native joltBOT
#
[python-discord/flake8-annotations] New branch created: azure\-test
#
[python-discord/flake8-annotations] branch deleted: azure\-test
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

Hi, the last day of the month, the reddit cog return this traceback

Traceback (most recent call last):
  File "...\lib\site-packages\discord\ext\tasks\__init__.py", line 68, in _loop
    await self.coro(*args, **kwargs)
  File "...\bot\bot\cogs\reddit.py", line 133, in auto_poster_loop
    midnight_tomorrow = now.replace(day=now.day + 1, hour=0, minute=0, second=0)
ValueError: day is out of range for month

The cog should use a [datetime.timedelta](https://docs.python.org/3...

#

Edit: I just realized that these were just copied from the original code. I guess I missed it during my review of your moderation changes.

I take it you're using the underscore to avoid conflict with the built-in id? PEP-8 states that you should use a trailing underscore for that; the leading underscore is used to "hint" internal use:

  • _single_leading_underscore: weak "internal use" indicator. E.g. from M im...
regal archBOT
#
[python-discord/bot] New branch created: \#549\-show\-attachments\-in\-log
#
[python-discord/bot] branch deleted: \#549\-show\-attachments\-in\-log
ebon magnetBOT
#

Build 20191031.1 succeeded

Requested by

GitHub

Duration

00:02:14

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191031.1 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: user\-command\-enhancements
regal archBOT
#

This pull requests depends on the enhancements of tests.helpers in PR #629 and should only be merged after that one has been merged.


Abstract

This pull request introduces several changes to the output of the !user command for moderation staff. The output for regular users has not changed. In addition, the code has been refactored to allow for easier unit tests and has been fully tested.

Changes

  • When issued in a moderation channel, the infraction count of the u...
ebon magnetBOT
#

Build 20191031.2 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

regal archBOT
native joltBOT
regal archBOT
#
[python-discord/site] New branch created: deleted\-messages\-visible\-line\-endings
ebon magnetBOT
#

Build 20191031.2 succeeded

Requested by

GitHub

Duration

00:02:01

Build pipeline

Site

regal archBOT
#

c5d0eb4 Change generation of child mocks - SebastiaanZ
618ba6a Enhance custom mock helpers - SebastiaanZ
586ae18 Update docstring and remove redundant attribute - SebastiaanZ
7485271 Merge branch 'master' into unittest-helpers-pro... - MarkKoz
35648fd Merge pull request #629 from python-discord/uni... - MarkKoz

ebon magnetBOT
#

Build 20191031.3 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: unittest\-helpers\-proper\-child\-mock
ebon magnetBOT
#

Build 20191031.4 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20191031.5 succeeded

Requested by

GitHub

Duration

00:03:29

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20191031.6 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191031.7 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
regal archBOT
#

Based this PR on issue #636
I'm pretty new to this project, so I made the change pretty straight forward, but looking around, I found the following function in bot/utils/time.py:

# Hey, this could actually be used in the off_topic_names and reddit cogs :)
async def wait_until(time: datetime.datetime, start: Optional[datetime.datetime] = None) -> None:
    """
    Wait until a given time.

    :param time: A datetime.datetime object to wait until.
    :param start: The ...
ebon magnetBOT
#

Build 20191101.1 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

The bot should be able to whitelist stuff from our filters with a command.

This should probably be a command group that allows whitelisting of several different things that we're currently configuring in default-config.yml.

  • !whitelist guild 15409531 should whitelist a guild invite for posting on our server. Currently this is managed in the guild_invite_whitelist section in default-config.yml
  • !whitelist format .ipybn should whitelist a format from the anti-malware filter. Curr...
#

This is part 2 of https://github.com/python-discord/bot/issues/639

In order to manage whitelist items via a command, we will need to store them in our database.

  • Create models for the whitelist items
  • Create a migration that adds these models, and also automatically adds the currently whitelisted items, which you can find in default-config.yml on the bot repo. We don't wanna have to add these manually.
  • Lastly, create API endpoints with all CRUD actions.
native joltBOT
ebon magnetBOT
#

Build 20191101.2 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191101.3 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

#

Build 20191101.4 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
#

it would be nice to be able to get specific parts of the zen of python from a command. for example,

!zen 13 would retrieve the fourteenth line (because we index from zero, obviously).

!zen namespaces would search for the string "namespaces", and produce the line which matches best.

!zen without any arguments would still produce the entire thing in the same way that the zen tag does.

i think this is reasonably simple, and could come in handy from time to time. :D

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

Build 20191102.1 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191102.2 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191102.3 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191102.4 succeeded

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

ebon magnetBOT
#

Build 20191102.5 succeeded

Requested by

GitHub

Duration

00:01:32

Build pipeline

Bot

ebon magnetBOT
#

Build 20191102.6 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
#

Abstract

The !mute command currently removes voice channel permissions, but does not kick the user from a voice channel they may already be in. Have the !mute command check if the user is currently in a voice channel, and if so, kick them from that channel.

Specification

  • The API call for checking whether a user is currently in a voice channel can be found here. The attribute from the `discord.VoiceS...
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20191103.1 succeeded

Requested by

GitHub

Duration

00:03:27

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20191103.2 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#
[python-discord/bot] New branch created: message\-edit\-hyperlink
regal archBOT
#

Closes #632

Example:

Message used in this case:

Before edit:

There's clearly an easier way to handle this particular data by not using a relational db, but with how much of it does work with one, I'm having trouble judging if that solution is fine, or needs other handling.

After edit:

`There's clearly an easier way to handle this data by not using a relational db, but with how much of it does work extremely well with one, I'm having trouble judging if that solution i...

ebon magnetBOT
#

Build 20191103.3 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: user\-status\-summary
ebon magnetBOT
#

Build 20191103.4 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191103.5 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

#

Build 20191103.6 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20191103.7 succeeded

Requested by

GitHub

Duration

00:03:35

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20191103.8 succeeded

Requested by

GitHub

Duration

00:01:33

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191103.9 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: bot\-utils\-init\-tests
north knotBOT
ebon magnetBOT
#

Build 20191103.10 succeeded

Requested by

GitHub

Duration

00:03:24

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20191103.1 succeeded

Requested by

GitHub

Duration

00:02:09

Build pipeline

Site

regal archBOT
#

ec2ae9d Add validation rules to Infraction serializer - SebastiaanZ
cf1a075 Migrate undesirable active infraction to inactive - SebastiaanZ
0d383cb Prevent double active infractions with constraint - SebastiaanZ
6670a3b Merge branch 'master' into active-infractions-v... - SebastiaanZ
e415428 Solve migration conflict by renaming migrations - SebastiaanZ

#
[python-discord/site] branch deleted: active\-infractions\-validation
north knotBOT
ebon magnetBOT
#

Build 20191103.2 succeeded

Requested by

GitHub

Duration

00:04:08

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20191103.11 succeeded

Requested by

GitHub

Duration

00:01:47

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191103.12 failed

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] branch deleted: user\-status\-summary
ebon magnetBOT
#

Build 20191104.1 succeeded

Requested by

GitHub

Duration

00:01:30

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20191104.2 succeeded

Requested by

GitHub

Duration

00:03:30

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20191104.3 succeeded

Requested by

GitHub

Duration

00:03:33

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20191104.4 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: user\-command\-enhancements
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191104.5 succeeded

Requested by

GitHub

Duration

00:03:23

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
#

When a user issues a command that does not exist, we fall back to trying to match it as a tag name. This means that a message containing !f-strings, which is not a command in itself, will result in the bot sending the contents of the f-strings tag. This is a great feature, but it currently does not respect the DM-restriction we've put in place: Members should only be able to issue commands in public channels, not a DM conversation with the bot.

The [current code responsible for the tag...

ebon magnetBOT
#

Build 20191104.6 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Bot

ebon magnetBOT
#

Build 20191104.7 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20191105.1 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

regal archBOT
#

1c0310c Moderation: create a class to handle scheduling... - MarkKoz
832c712 InfractionScheduler: delegate type-specific par... - MarkKoz
c1ab8ec Superstarify: add icons to constants and config - MarkKoz
6ba259a InfractionScheduler: use fetched user for notif... - MarkKoz
3cf0dbf Superstarify: schedule infractions by subclassi... - MarkKoz

#
[python-discord/bot] branch deleted: schedule\-superstarify
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20191105.2 succeeded

Requested by

GitHub

Duration

00:03:36

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191105.3 succeeded

Requested by

GitHub

Duration

00:01:34

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191105.4 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191105.5 succeeded

Requested by

GitHub

Duration

00:01:51

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
regal archBOT
#

There are several reasons for why the API could return a 400 response; I think would be a good idea to assert that you're getting the appropriate response here by also asserting the message the API returns. See this infraction test, for an example:

https://github.com/python-discord/site/blob/8cc1f03297598629b27fb0b1adab82160505e879/pydis_site/apps/api/tests/test_infractions.py#L215-L218

This also holds for the other test methods, but I think you get the idea.

#

I don't think it's necessary to include a merge migration, since the diverging migration paths are not actually a part of master yet. To keep a clean history, I would just make sure that your migration nicely follows the current migrations we have. (In other words, this is only necessary for your local set-up since other branches have been merged in the mean time; I think it's better to clean up the local migration history instead of making it more complex.)

#

Is there ever a case where we use PUT or PATCH methods to update the entries in the table? I don't see it mentioned in the docstring and there are no tests for those methods in test_offensive_message, but you did include the UpdateModelMixin here, which will implement these (partial/full) update methods for existing entries.

This is related to the next comment as well, but I don't really see a use-case f...

regal archBOT
ebon magnetBOT
#

Build 20191105.6 succeeded

Requested by

GitHub

Duration

00:01:47

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20191105.7 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

ebon magnetBOT
#

Build 20191106.1 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
oak estuaryBOT
#

<@&267628507062992896> WARNING: Unable to get DEFCON settings!

oak estuaryBOT
regal archBOT
#
[python-discord/bot] New branch created: sauce
regal archBOT
#
[python-discord/bot] New branch created: Hemlock/newline\_alternative