#dev-log
1 messages ยท Page 37 of 1
Build 20191019.4 succeeded
Requested by
GitHub
Duration
00:02:19
Build pipeline
Site
Is there a specific reason for not using an URLField here? Using an URLField will mean that URLs in requests will automatically validated by the URLValidator. Seems like a useful addition to make sure the data we receive is valid.
Why don't we use an empty string as the value for existing entries? I think that would make the logic at the side of the bot more beautiful:
if jump_url:
# We know we have a jump_url
instead of
if jump_url != "invalid":
# Do something
field=models.CharField(default='', help_text='The jump url to the message that created the reminder', max_length=88),
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.)
Hi @vemel,
Thank you for your pull request, but we're currently not looking to add this to our repository.
As a side note, your tool seems to have missed a number of methods in our classes. I haven't checked thoroughly, but it may be related to the use of decorators.
Kind regards,
Ves
From my calculations the first bit will be 1 when we will reach the year 71745, so I think we are pretty safe :) but do you still want to me to add a little margin of something like 2 characters?
Yeah, that probably doesn't really matter then. (Although I think it's the year 54525, since it's not the last bit, but another digit in base10, but same thing.)
[python-discord/site] New branch created: admin\-api\-pages\-improvements
6ab05d3 Set default example.com dev site to pythondisco... - scragly
e2956b8 Set newest-first sorting for message deletion m... - scragly
f590d2b Add message log links, improved formatting to m... - scragly
618610f Order roles by positioning, add filters and sea... - scragly
0021d4a Improve infractions admin list and page, add se... - scragly
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...
Build 20191019.5 failed
Requested by
GitHub
Duration
00:01:50
Build pipeline
Site
Build 20191019.6 failed
Requested by
GitHub
Duration
00:01:43
Build pipeline
Site
Build 20191019.7 succeeded
Requested by
GitHub
Duration
00:01:59
Build pipeline
Site
Thank you for your feedback.
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...
I don't see a reason mods would need to be exempt from the whitelist. If we decide otherwise in the future, it should be fairly straightforward to add a check for staff and apply a separate or additional whitelist.
Build 20191020.1 succeeded
Requested by
GitHub
Duration
00:01:39
Build pipeline
Bot
0fc5a12 Create barebones Antimalware cog and config - d... - bendiller
b7afb79 Implement message deletion - bendiller
feb08b2 Fix Constants.AntiMalware.whitelist type - bendiller
003f8fe Improve code readability and docstring - bendiller
d9b4f39 Improve code readability and provide early exit... - bendiller
Build 20191020.2 succeeded
Requested by
GitHub
Duration
00:03:20
Build pipeline
Bot
Connected!
Postgres backup completed!
This looks sound, but I'd like to request that you add one additional channel to this list (and to the config).
The channel is called #admin-spam and has the ID 563594791770914816.
Also, please confirm whether you've tested this or not.
This docstring needs to be updated to reflect the new check.
This doesn't pass lint. Please address.
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.
@kraktus any ETA on when you can add the requested changes from @sco1? We can't merge until that's done.
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.
Perhaps this method might take the amount as a parameter and default to 5? Would be more future-proof and generic.
Overall pretty good stuff. How thoroughly has this been tested?
"""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, notReturns 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
timeparameter works, for example, seems like useful API documentation, and in my opinion you should spend a few more lines...
These requested changes depend on the comments I left for python-discord/site#288.
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...
Failing lint.
./bot/cogs/reddit.py:120:1: W293 blank line contains whitespace
Build 20191020.3 succeeded
Requested by
GitHub
Duration
00:01:37
Build pipeline
Bot
Note taken on the force pushes, thanks and sorry.
I have tested the webhooks by running with no sleeping, although have not set them working for a week or so. Am happy to do that if you'd like.
The commands are working fine.
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...
SocialAccounts don't key Django Users by username - the primary key is an ID
Security issue then aside, since we're clear that won't occur thankfully, the username is a unique constraint still so yeah, I guess it'll just raise an exception and fail to create an auth user entirely. Wonder how that looks when it breaks.
As discussed on Discord, we currently have tests for each app placed within the app's directory - but this leaves us without a clean place to test things like utils, which aren't unique to the app.
Instead, all tests should be moved to pydis_site/tests, with a subfolder for each app - much like we did with the templates and static files.
roles should be able to have is_staff toggled in the Django Admin.
Sounds like a good idea to me. Just means it'll have to be added as a new column, but I'm sure that's fine.
Wonder how that looks when it breaks.
Allauth doesn't seem to have any handling of it, so I suspect users would be prevented with a nasty error 500 page.
Just means it'll have to be added as a new column, but I'm sure that's fine.
:vulcan_salute:
While I haven't found the time to do a really deep dive into every single one of the 40+ files in this PR, the overall quality of this PR is absolutely excellent. Clever solutions, succinct Python and clean solutions all around.
Provided that this has been tested properly, I think we should get it merged.
this section is a little needlessly newliney
this could probably do with a comment, it looks a bit arcane. had to do a double take.
[python-discord/site] New branch created: home\-content
9e588d2 Add bulma content class to home page content fo... - scragly
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:
, as well as some additions (GitHub account linking, user settings pages, user deletion).
Please see the tracking issue above for more information and discussion on this PR.
Build 20191020.2 failed
Requested by
GitHub
Duration
00:01:53
Build pipeline
Site
Build 20191020.3 failed
Requested by
GitHub
Duration
00:01:54
Build pipeline
Site
Build 20191020.4 failed
Requested by
GitHub
Duration
00:01:56
Build pipeline
Site
OK, as far as I can see, all of the extra stuff not specifically in my TODO list in the first comment should now be present in the PR.
Build 20191020.4 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
Connected!
Build 20191020.5 succeeded
Requested by
Leon Sandรธy
Duration
00:03:30
Build pipeline
Bot
Improves the docs command by:
- [X] Resolving symbol name conflicts
- [X] Auto deleting commands that didn't find anything
- [ ] Improving output for docs of modules
closes: #538
Build 20191020.6 succeeded
Requested by
GitHub
Duration
00:01:37
Build pipeline
Bot
Not sure about using a classmethod or a static method.
Build 20191020.7 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
Naming it Action would be nicer, or at the least just LogInfo (but really the former is a lot better IMO).
Since the values are just tuples, I think it is worth mentioning what each element of the tuple is for. An alternative would be to use namedtuples but perhaps that's overkill.
Hmm... having second thoughts on the action type inference. I feel like since either way a second parameter (enabled boolean at the moment) is needed in addition to days, that second parameter may as well just be the enum rather than a boolean to avoid the inference. What do you think?
let's pin django to ~=2.2.0 then.
[python-discord/django-simple-bulma] branch deleted: update\-dependency\-pinning
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
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 ...
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.
[python-discord/site] New branch created: update\-dependency\-pinning
Closing to change source branch
[python-discord/site] branch deleted: update\-flake8\-annotations
Updated version of #263, this PR updates some of our dependency pinning
flake8-annotationsv1.1 was recently released, which includes a fix for incorrect parsing of nested functions. No additional linting necessary.flake8-bandithas been unpinned from v1.0.2 & brought back up to current. The issue that forced the earlier downgrade has been resolved upstream inbandit.- Per staff consensus, Django has now been more narro...
Build 20191020.5 succeeded
Requested by
GitHub
Duration
00:02:02
Build pipeline
Site
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
test PR please ignore
[python-discord/django-simple-bulma] branch deleted: test\-branch
Build 20191020.3 failed
Requested by
GitHub
Duration
00:01:26
Build pipeline
Django Simple Bulma
any reason signature_buffer is not a list comp?
https://github.com/python-discord/bot/blob/f194df838c623d3c1b68809230f396a7241508b1/bot/cogs/doc.py#L210-L219
As per discussion in #meta in regards to the Code of Conduct page.
Build 20191020.6 succeeded
Requested by
GitHub
Duration
00:01:59
Build pipeline
Site
This looks good to me, I'm about 90% sure this'll work, but it needs to be tested. If you're able to test it yourself, would you mind dropping a screenshot? Otherwise, I'll try to test when I have time.
@gdude2002 Tried to test it, but I can't get Docker to work right on my machine. Sorry! ๐ฌ
I wasn't able to test it and need some help with that.
Hmm, I think that's a good idea, it is better to be explicit and pass in an Action.Enabled / Action.Disabled or Action.Updated instead of simple boolean, so an Enum will do wonder here.
To be clear, I acknowledge this is out of scope of the issue you are addressing but it would be a welcome addition if you wish to do it @kraktus.
@kraktus Can you please address this?
@atmishra If you need help don't hesitate to leave your question in the #meta channel on Discord.
That's a great idea! After inspecting closely, I've renamed it to Action and use it not for send_log_info() but for _defcon_action() and other actions as well, it should be more consistently now.
Build 20191021.1 succeeded
Requested by
GitHub
Duration
00:01:44
Build pipeline
Bot
Why not just pass the enum object instead of using its name? Then you won't even need the get_info for anything.
That's very true lol, I still am too tunnel vision into what each functions are doing. That's a great call!
Postgres backup completed!
Build 20191021.2 succeeded
Requested by
GitHub
Duration
00:01:36
Build pipeline
Bot
This docstring is no longer accurate. It can probably just be removed altogether.
This docstring is no longer accurate. It can probably just be removed altogether.
I'll update their docstring accordingly.
Do you think it's valuable to still keep it? I feel that since it's an enum and the argument is type hinted, one can just look at the definition of the enum to see what the values can be. Before it was just str and that was understandably vague so this docstring made sense at the time.
At the time, yes, since it can be any string, it is valuable to know what specific string one needs to pass into the functions. Now via type hinting I do not think we'll need to keep this anymore, we would only have one Action Enum now, if anything we can just add more to it like an Interface.
Build 20191021.3 succeeded
Requested by
GitHub
Duration
00:01:39
Build pipeline
Bot
Fixes a small issue with the formatting. It was displaying the hours, minutes, and seconds as well.
f"{Emojis.defcon_updated} DEFCON days updated; accounts must be {self.days.days} "
If you feel like it you could also make the message show singular "day" when it's 1 day.
That's a nice spot. I'll also make it a QoL change now and make it day when it's 1 day.
Build 20191021.4 succeeded
Requested by
GitHub
Duration
00:01:41
Build pipeline
Bot
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...
I'm not a fan of the numbering, as it's not really useful (it has the times already present) and only serves to prevent alignment of the mentions, making it slightly uglier.
I think the footer should also still be an actual footer to keep it separated from the main output and to keep the text size slightly smaller.
I agree with Scragly. I don't think your proposal is an improvement on the proposal in the original issue, so I'd like to see it changed to what the original proposal was. No numbers, text in footer.
@bsoyka DM'd me last night to say they were having trouble setting up Docker and the site, so I'm testing it now.
It might be worth noting that the wiki is also forcibly limiting the slug for wiki pages to 50 chars - although that's not the entire url, it's just the slug for that specific article.
Here's how it looks.

okay, Thanks for the chance, I am not able to get the correct line numbers from help file :( . Marking this invalid.
.+? matches any character (except for line terminators)
but discord allows you to use new-line in spoiler tags.
e731db9 Update spoiler regex to support multi-line spoi... - AnonGuy
Thanks for the heads up, I've updated the pattern to support multi-line spoilers.
Build 20191021.5 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
do we want to match
n||F||o||U||t||C||h||K||i||Y||n||O||g||U||
@MarkKoz a ```py
try:
except:``` Would be sufficient or should I use the error_handler?
I am sorry but I didn't quite understand how to simplify time-related, because time delta object does not have a hour attribute.
Build 20191021.6 succeeded
Requested by
GitHub
Duration
00:01:45
Build pipeline
Bot
Build 20191021.7 succeeded
Requested by
GitHub
Duration
00:01:40
Build pipeline
Bot
Updated the doc-string. I am not familiar with terminology yet so, not sure if doc-string makes much sense.
Build 20191021.9 failed
Requested by
GitHub
Duration
00:01:23
Build pipeline
Bot
@MarkKoz Thanks! Will post my queries there.
Connected!
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
Build 20191021.1 succeeded
Requested by
GitHub
Duration
00:02:06
Build pipeline
Site
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
[python-discord/branding] New branch created: \#29\-blank\-banner
Hi, as asked in #29, here is a social banner without any text on it.
Any particular reason why a new PR was made for this instead of using #30?
[python-discord/branding] New comment on pull request #30: Add social banners without any background
Oh, okay I'm so sorry, I don't know why I had so much trouble understanding this. I preferred to open another PR: #32 (I invalided this one)
[python-discord/branding] branch deleted: \#029\-blank\-banners
Because I preferred to start a new PR instead of just resting the history of the old one.
[python-discord/bot] New comment on issue #540: Don't show infraction total outside staff channels\.
Hi, I would like to work on this please.
[python-discord/bot] New branch created: \#540\-dont\-show\-infraction\-total
Hi, this PR hide the total number of infractions when one is being delivered outside of staff channels.
This PR closes #540
Build 20191021.13 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
Oh, that's annoying. Well never mind then.
This check isn't necessary because when slicing, any end index greater than the end will just return the entire list. So it could be:
for inactive, channel in sorted_channels[:3]:
...
I tested this manually by calling the !infractions command. I found an issue, in_channel_check just takes a single channel and I am trying to pass a list of channels to it in my PR. Should I modify the in_channel_check implementation to support list of channels or just loop over different channels and call this method for each of them?
Preferably modify in_channel_check. There are also unit tests for this that would need to be adjusted/added. Also there is no need for a loop because the in operator can be used.
Hi, I would like to work on this please.
Build 20191021.2 succeeded
Requested by
GitHub
Duration
00:02:18
Build pipeline
Site
This is still in active discussion and we're not yet decided if this is something we're going to do.
As a note for future @ju-sh, it's best to wait for a reply and to be assigned by an org member before going ahead with any PRs.
As explained in #290, this PR is a bit premature so will be marked as invalid and closed for now until internal discussion has finished.
Sorry, that's my bad. I was given the go-ahead to apply the good first issue label before a discussion prompt came up, and I forgot to apply the discussion label at that point.
Build 20191021.14 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
Needs some further testing and going to take a look if I can implement #381 here
Connected!
<@&267628507062992896> WARNING: Unable to get DEFCON settings!
Connected!
<@&267628507062992896> WARNING: Unable to get DEFCON settings!
Build 20191022.1 succeeded
Requested by
GitHub
Duration
00:03:58
Build pipeline
Site
Code readability...
Thanks :)
The link is not broken, the website is currently down and will be back up soon.
Build 20191022.1 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
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.
Postgres backup completed!
I'd like to work on this, since I personally use this more often than not. Unless you are working on it with other plans like bringing 3.8 to snekbox @MarkKoz
It's been 7 days since the issue was raised, so I'd like to work on this
You can go for it. My plans are only concerned with CI.
linked to https://github.com/python-discord/bot/issues/364, assigning both to @Akarys42
Looks like a reasonable approach.
I had this assigned and was working on this, you can have it though.
Ah no no, it has been quite a while and so I thought no one has taken it, @kosayoda
If you are already on it please dont mind me
Build 20191022.2 failed
Requested by
GitHub
Duration
00:02:05
Build pipeline
Site
On another project I'm working on, I've found out that the appropriate trigger is ```yml
on:
release:
types: [publish]
instead of created.
6cc062d Implement account deletion at /accounts/delete - gdude2002
[python-discord/site] branch deleted: home\-content
Build 20191022.5 failed
Requested by
GitHub
Duration
00:01:52
Build pipeline
Site
Build 20191022.3 succeeded
Requested by
GitHub
Duration
00:04:14
Build pipeline
Site
604e3c0 Prevent user signup when they've never joined+v... - gdude2002
[python-discord/site] New branch created: \#222\-offensive\-msg\-autodeletion
34a43d1 Create an OffensiveMessage model - Akarys42
Build 20191022.6 failed
Requested by
GitHub
Duration
00:02:03
Build pipeline
Site
Works as intended. Good job.
[python-discord/bot] branch deleted: \#540\-dont\-show\-infraction\-total
3892a5f Full test coverage, better redirect testing - gdude2002
Build 20191022.2 succeeded
Requested by
GitHub
Duration
00:03:22
Build pipeline
Bot
Connected!
Build 20191022.7 succeeded
Requested by
GitHub
Duration
00:02:01
Build pipeline
Site
Build 20191022.3 succeeded
Requested by
GitHub
Duration
00:01:27
Build pipeline
Bot
I have done the changes required. I also did manual testing and this works as expected.
[python-discord/site] New branch created: constant\-debug\-secret\-key
a6313b8 Set SECRET_KEY to constant in debug mode - SebastiaanZ
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.
Build 20191022.8 succeeded
Requested by
GitHub
Duration
00:01:57
Build pipeline
Site
Good fix, this has annoyed me too.
[python-discord/site] branch deleted: constant\-debug\-secret\-key
Build 20191022.9 succeeded
Requested by
GitHub
Duration
00:04:02
Build pipeline
Site
[python-discord/branding] New branch created: superstar\_icons
Sparkles were left but commented out because they are not legible at the low resolutions (20x20) at which these icons are displayed


According to illustrator, the star is not centred (black is centre, white is current):

However, I generated the star using mathematics and it should be centred around the origin (and I transformed it by 64 units, which is half of 128, the size of the viewbox).

I like your centered better.
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.
Build 20191022.4 failed
Requested by
GitHub
Duration
00:01:23
Build pipeline
Bot
Build 20191022.10 succeeded
Requested by
GitHub
Duration
00:02:05
Build pipeline
Site
Build 20191022.11 succeeded
Requested by
GitHub
Duration
00:02:04
Build pipeline
Site
Sorry I was on mobile at the time of commenting and wasn't aware it was already assigned.
Build 20191023.1 failed
Requested by
GitHub
Duration
00:01:48
Build pipeline
Site
ebc3a8a Full coverage and finish cleanup - gdude2002
I believe this PR is ready for review! Here's some media I've been posting on Discord.
Account settings modal:

Account deletion page:

Build 20191023.3 succeeded
Requested by
GitHub
Duration
00:02:00
Build pipeline
Site
Postgres backup completed!
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...
Build 20191023.1 succeeded
Requested by
GitHub
Duration
00:01:55
Build pipeline
Bot
[python-discord/bot] New branch created: \#\#\#\-filtering\-devtest
fae8607 Use standart filter conditions even if DEBUG_MO... - Akarys42
Hi, the old method filtered only in #dev-test if DEBUG_MODE was on but this channel no longer exists.
Build 20191023.2 succeeded
Requested by
GitHub
Duration
00:01:42
Build pipeline
Bot
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...
Persist whatever flag this needs across bot resets.
Build 20191024.1 succeeded
Requested by
GitHub
Duration
00:01:30
Build pipeline
Bot
Build 20191024.2 succeeded
Requested by
GitHub
Duration
00:01:33
Build pipeline
Bot
Build 20191024.3 succeeded
Requested by
GitHub
Duration
00:03:19
Build pipeline
Bot
Connected!
It might resolve to bool(match) == True, but it's not returning that so the type annotation is incorrect.
Postgres backup completed!
Build 20191024.4 succeeded
Requested by
GitHub
Duration
00:01:43
Build pipeline
Bot
Looking at the fuzzy search, have you considered the built-in difflib module?
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
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...
Write unit tests for bot/cogs/alias.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **ple...
Write unit tests for bot/cogs/antimalware.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this ...
[site] Branch \#222\-offensive\-msg\-autodeletion was force-pushed to `eb17db9`
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...
[site] Branch \#222\-offensive\-msg\-autodeletion was force-pushed to `731a3ca`
Small change (which others may disagree with). Everything else is in order.
I think it'd look better if it was not bold:


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...
Write unit tests for bot/cogs/moderation/__init__.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to wor...
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...
The link that redirects to the issues is broken. The link directs you to a Gitlab page that does not exist.
https://gitlab.com/python-discord/projects/site/issues
It is necessary to replace the link or delete it if the repository is no longer hosted on GitLab
Looking at the fuzzy search, have you considered the built-in
difflibmodule?
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)),...
Postgres backup completed!
Build 20191025.1 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
BTW it would be nice to load:
bot.load_extension("bot.cogs.doc")
bot.load_extension("bot.cogs.verification")
Even in DEBUG_MODE
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
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.
[python-discord/bot] New branch created: \#364\-offensive\-msg\-autodeletion
9b8d688 Autodelete offensive messages after one week. - Akarys42
[python-discord/bot] Issue opened: #558 Write unit tests for \`bot/cogs/moderation/infractions\.py\`
Write unit tests for bot/cogs/moderation/infractions.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want ...
Write unit tests for bot/cogs/moderation/management.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to...
Write unit tests for bot/cogs/moderation/modlog.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on...
Write unit tests for bot/cogs/moderation/superstarify.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you wan...
Write unit tests for bot/cogs/moderation/utils.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on t...
Write unit tests for bot/cogs/sync/__init__.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this is...
Write unit tests for bot/cogs/sync/cog.py. There are already some existing tests for this file, which constitute a 36% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch coverage](https:...
Write unit tests for bot/cogs/sync/syncers.py. There are already some existing tests for this file, which constitute a 57% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch coverage...
Write unit tests for bot/cogs/watchchannels/__init__.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want ...
Write unit tests for bot/cogs/watchchannels/bigbrother.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you w...
Write unit tests for bot/cogs/watchchannels/talentpool.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you w...
Write unit tests for bot/cogs/watchchannels/watchchannel.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If y...
Write unit tests for bot/cogs/antispam.py. There are already some existing tests for this file, which constitute a 29% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch cover...
Write unit tests for bot/cogs/bot.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please make s...
Write unit tests for bot/cogs/clean.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ma...
Write unit tests for bot/cogs/defcon.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ...
Write unit tests for bot/cogs/doc.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please make s...
Write unit tests for bot/cogs/error_handler.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this is...
Write unit tests for bot/cogs/extensions.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, *...
Write unit tests for bot/cogs/filtering.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **p...
Write unit tests for bot/cogs/help.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please make...
Write unit tests for bot/cogs/information.py. There are already some existing tests for this file, which constitute a 51% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [bra...
Write unit tests for bot/cogs/jams.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please make...
Write unit tests for bot/cogs/logging.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **pleas...
Write unit tests for bot/cogs/off_topic_names.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on thi...
Write unit tests for bot/cogs/reddit.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ...
Write unit tests for bot/cogs/reminders.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **p...
Write unit tests for bot/cogs/site.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please make...
Write unit tests for bot/cogs/snekbox.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **pleas...
Write unit tests for bot/cogs/token_remover.py. There are already some existing tests for this file, which constitute a 29% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100...
Write unit tests for bot/rules/burst_shared.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this is...
Write unit tests for bot/rules/chars.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ...
Write unit tests for bot/rules/discord_emojis.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on thi...
Write unit tests for bot/rules/duplicates.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue,...
Write unit tests for bot/rules/links.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ...
Write unit tests for bot/rules/mentions.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **p...
Write unit tests for bot/rules/newlines.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **p...
Write unit tests for bot/rules/role_mentions.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this ...
Write unit tests for bot/utils/__init__.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **p...
Write unit tests for bot/utils/checks.py. There are already some existing tests for this file, which constitute a 73% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch coverage...
Write unit tests for bot/utils/messages.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **p...
Write unit tests for bot/utils/scheduling.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue,...
Write unit tests for bot/utils/time.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ma...
Write unit tests for bot/__init__.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please make s...
Write unit tests for bot/__main__.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please make s...
Write unit tests for bot/api.py. There are already some existing tests for this file, which constitute a 55% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch coverage](https://coverage.readthed...
Write unit tests for bot/constants.py. There are already some existing tests for this file, which constitute a 94% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch coverage](https:/...
Write unit tests for bot/converters.py. There are already some existing tests for this file, which constitute a 72% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch coverage](http...
Write unit tests for bot/decorators.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ma...
Write unit tests for bot/interpreter.py.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% branch coverage for this file, but if you think that is not possible, please discuss that in this issue.
Additional information
If you want to work on this issue, **please ...
Write unit tests for bot/pagination.py. There are already some existing tests for this file, which constitute a 16% branch coverage. Feel free to review the existing tests to see if they need improvement.
Implementation details
Please make sure to read the general information in the meta issue and the testing README. We are aiming for a 100% [branch coverage](http...
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.
Hi, this PR add a new offensive message model needed for python-discord/bot#617.
This PR closes #222.
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
Hi, I would like to work on it please.
This should go after the next logic block to remove the possibility that we send a message to the API that the filter has already deleted.
Let's use something like "schedule_deletion" for these flags instead.
This would be better in the bot's config
It would be preferred if the new functionality utilized the tasks extension rather than manually implementing the loop
Oh sorry that's PyCharm autoformating
Build 20191025.3 succeeded
Requested by
GitHub
Duration
00:01:39
Build pipeline
Bot
[python-discord/bot] branch deleted: show\-trigger\-word
d26eba1 Show matched word and location in watchlist embed - kosayoda
7120ae0 Rename triggered to match - kosayoda
39e52f5 Create STAFF_CHANNELS constant - Akarys42
2bff275 Show total infraction count only in staff channels - Akarys42
fd48fa5 Merge pull request #547 from python-discord/#54... - LordHemlock
Build 20191025.5 succeeded
Requested by
GitHub
Duration
00:01:41
Build pipeline
Bot
Build 20191025.4 succeeded
Requested by
GitHub
Duration
00:03:47
Build pipeline
Bot
Connected!
Build 20191025.6 succeeded
Requested by
GitHub
Duration
00:03:40
Build pipeline
Bot
Connected!
Build 20191025.7 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
This looks sound, but I'd like to request that you add one additional channel to this list (and to the config).
The channel is called #admin-spam and has the ID 563594791770914816.
Also, please confirm whether you've tested this or not.
Build 20191025.8 succeeded
Requested by
GitHub
Duration
00:03:35
Build pipeline
Bot
Connected!
Build 20191025.9 succeeded
Requested by
GitHub
Duration
00:01:43
Build pipeline
Bot
Connected!
Build 20191025.10 succeeded
Requested by
GitHub
Duration
00:03:53
Build pipeline
Bot
9e588d2 Add bulma content class to home page content fo... - scragly
bf5b527 blank commit to trigger deployment - fiskenslakt
9e8c5dd Add bulma content class to home page content fo... - scragly
a6313b8 Set SECRET_KEY to constant in debug mode - SebastiaanZ
0f23ba2 Merge pull request #297 from python-discord/con... - MarkKoz
Build 20191025.2 succeeded
Requested by
GitHub
Duration
00:02:02
Build pipeline
Site
71b4084 Add a jump-url field in the reminder model - Akarys42
2d20f4a Add max_lengh for reminder.jump_url - Akarys42
8ea0a1d Change reminder.jump_url field to URLField - Akarys42
b4bdf50 Add migrations for the reminder model - Akarys42
5fd289c Merge branch 'master' into bot#466-reminder-jum... - SebastiaanZ
[python-discord/site] branch deleted: bot\#466\-reminder\-jump\_url
Unless I'm missing it, it looks like this functionality was removed with the watchchannel rewrite.
When this gets added back in, I'd like to propose that a user is only unwatched for permanent bans & keeps their watch in place if they're tempbanned.
Build 20191025.3 succeeded
Requested by
GitHub
Duration
00:04:08
Build pipeline
Site
Since other pull requests with migrations for the api app have since been merged, care should be taken when merging this. I'll resolve the created conflicts later, since it involves a bit more for this PR. In the mean time, reviews are still welcome.
Build 20191025.11 succeeded
Requested by
GitHub
Duration
00:01:46
Build pipeline
Bot
Build 20191025.12 succeeded
Requested by
GitHub
Duration
00:03:37
Build pipeline
Bot
Connected!
Is there a way to make certain fields optional in the Admin back-end? If you, say, edit a note infraction, you won't be able to save your changes unless you set an expiry date.

I think that would be an improvement as well.
Build 20191025.4 succeeded
Requested by
GitHub
Duration
00:02:06
Build pipeline
Site
Build 20191025.5 succeeded
Requested by
GitHub
Duration
00:04:07
Build pipeline
Site
This will conflict with the already merged reminder jump_url migration.
I think it would also be a good idea to add the model to the admin back-end, so we can inspect it if needed.
Does this route take any parameters or are we always returning all the entries in the database?
Are you planning to use this endpoint to delete the entries after the corresponding messages have been successfully removed from the guild? I don't think I've seen it in use in the bot PR, but I've only taken a cursory view at that one. If we're not going to use it, I don't think we should expose a delete method.
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.
Build 20191025.13 succeeded
Requested by
GitHub
Duration
00:01:34
Build pipeline
Bot
Connected!
Build 20191025.14 succeeded
Requested by
GitHub
Duration
00:03:22
Build pipeline
Bot
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
[python-discord/bot] New branch created: schedule\-superstarify
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
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...
Build 20191026.1 succeeded
Requested by
GitHub
Duration
00:01:31
Build pipeline
Bot
Assigning @Akarys42 - If you have any question, don't hesitate to post yours in the dev channel.
[python-discord/bot] New branch created: moderation\-logging
1beb068 Add logging for moderation functions - MarkKoz
#618 must be merged first.
The moderation modules were a bit bare in the logging. Most of the new logging is trace logging, but there are some debugs and warnings too.
Build 20191026.2 succeeded
Requested by
GitHub
Duration
00:01:36
Build pipeline
Bot
Build 20191026.1 succeeded
Requested by
GitHub
Duration
00:01:55
Build pipeline
Site
Build 20191026.2 succeeded
Requested by
GitHub
Duration
00:04:09
Build pipeline
Site
Postgres backup completed!
6334fd1 Fix type error in the future date validator - Akarys42
c727d4c Add the offensive message model to the admin panel - Akarys42
e19d310 Change docs to use datetime.datetime instead of... - Akarys42
981ae74 Delete unnecessary search filter - Akarys42
5799288 Write tests for the offensive message model. - Akarys42
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
Build 20191026.5 succeeded
Requested by
GitHub
Duration
00:01:37
Build pipeline
Bot
With the new custom filters, we should be able to monitor them as we do messages for blocked words and other mischiefs.
[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...
Build 20191027.1 failed
Requested by
GitHub
Duration
00:01:15
Build pipeline
Bot
Build 20191027.2 failed
Requested by
GitHub
Duration
00:01:20
Build pipeline
Bot
Build 20191027.3 failed
Requested by
GitHub
Duration
00:01:19
Build pipeline
Bot
"""Load the duck pond cog."""
Why was this moved?
kaizen. It was in a stupid place, and belongs with the other classes.
Build 20191027.5 succeeded
Requested by
GitHub
Duration
00:01:31
Build pipeline
Bot
I would have merged this into the previous if statement.
Is this necessary? It should be able to retrieve exception info on its own since it's in an exception handler.
I don't see a reason to make it an instance attribute. Using the module-level attribute has worked fine for all other cogs.
Postgres backup completed!
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:
- Go to
/admin/api/tag/f-strings/change/on production site and copy the JSON content inside the embed field. - Go to
/admin/api/tag/on your local development site and create a new tag with theADD TAG +button - Enter a title for the tag
- Paste in the copied JSON into the embed field
- Click the `Sa...
This, as well as the other reaction_list options for the two helpers comes from an on_reaction_clear handler that I have removed because it wasn't really working, just FYI. They did serve a purpose, but they don't anymore. Good spot.
I'm not exactly sure what you're saying. I lifted this approach from the watch_channels implementation, which we're using for bigbrother and talent pool, so I assumed it had been vetted, but honestly I'm not really sure if this is necessary.
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.)
This probably comes from the watch channels module as well. The reason it was used there is to make sure logging messages emitted from the base class are logged with the __name__ of the module implementing the ABC, not the module containing the ABC itself.
Okay, cool. I will change those then. Thanks @SebastiaanZ
5162222 Addressing review by Mark. - lemonsaurus
08d0c46 Adding kosas additional ducks to default-config - lemonsaurus
77429f7 Merge branch 'duck_pond' of github.com:python-d... - lemonsaurus
All review comments are addressed, but I guess I should probably write tests for this feature, so don't merge it yet.
Build 20191027.6 failed
Requested by
GitHub
Duration
00:01:20
Build pipeline
Bot
Hi, the antispam cog call .history() every time a new message is posted on the server, which isn't ideal. We can use some form of caching, while using .history() as a fallback.
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

"""Check that the deletion emoji is reacted by the appropriate user."""
Build 20191028.2 failed
Requested by
GitHub
Duration
00:01:13
Build pipeline
Bot
Build 20191028.3 succeeded
Requested by
GitHub
Duration
00:01:40
Build pipeline
Bot
The previous feature for chaining multiple words passed to !otn a did so outside of the OffTopicName converter, resulting in a valid input like !otn a is python 2 dead yet rejected due to is being less than 3 characters long.
This fix amends that by chaining the words in the converter itself.
Build 20191028.4 succeeded
Requested by
GitHub
Duration
00:01:29
Build pipeline
Bot
Postgres backup completed!
How useful is the โ functionality really? I guess it can stop other people from messing with the pagination? I just don't see that get used much and it may be confusing being seen together with a trash can.
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...
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...
I started on the tests, will try to finish them later tonight.
Hey @ilysia,
Some other things related to the !user command have come up for which I'm implementing a fix. Since this issue hasn't seen any activity in three weeks, I'm going to include these requested features in that PR and unassign you from this issue.
Build 20191028.1 succeeded
Requested by
GitHub
Duration
00:02:16
Build pipeline
Site
Build 20191028.2 succeeded
Requested by
GitHub
Duration
00:02:00
Build pipeline
Site
Build 20191028.3 succeeded
Requested by
Leon Sandรธy
Duration
00:04:46
Build pipeline
Site
[python-discord/bot] New branch created: unittest\-helpers\-proper\-child\-mock
c5d0eb4 Change generation of child mocks - SebastiaanZ
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...
Build 20191028.5 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
[python-discord/bot] New branch created: \#549\-show\-attachments\-staff
54aa8a2 Send attachments to the db - Akarys42
[python-discord/site] New branch created: bot\#549\-show\-attachments\-staff
Hi, this PR show the attachments along with the original message in staff logs (https://staff.pythondiscord.com/bot/logs/...). python-discord/bot### need to be merged after this one for the feature to work.
This PR closes python-discord/bot#549
Before

After
? I can imagine Discord not keeping attachments around if they're attached to a message anymore.
No discord does not keep them for very long, but I don't think we can do
something against it, because of privacy.
I've just tested it and the attachments are basically inaccessible as soon as the message gets deleted. That means I don't really see the point in adding the URLs to the database. I did not consider that the other day when I commented on the issue, but I don't think this is a suitable solution.
Actually that depend on discord decide to react, the proxy_url isn't
disabled immediately in most of the cases
I'm not a lawyer, but I looked through discord's privacy policy and it seem
like we can save the images as long as we "use such information only to
provide the SDK/API functionality within their applications and/or
services.".
Previously restricted for the staff. This change was suggested due its possible usefulness for regular users.
Build 20191028.7 failed
Requested by
GitHub
Duration
00:01:18
Build pipeline
Bot
Build 20191029.1 succeeded
Requested by
GitHub
Duration
00:01:29
Build pipeline
Bot
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:
- 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.
- Show what changed
- It is more valuable to know what changed after the edit rather than the full content before a...
Add some unit tests to validate behavior in bot/rules/newlines.py.
This covers both overall newline exceeding behavior, as well as
messages containing consecutive newlines within each message.
This test suite mimicks existing tests for attachment rules, as their
requirements are very similar.
Addresses: #602
Build 20191029.2 succeeded
Requested by
GitHub
Duration
00:01:51
Build pipeline
Bot
Took at shot at this! Hopefully this is what you guys were looking for.
Would like to attempt to tackle this unit test, if possible!
Postgres backup completed!
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.
1a1ef44 Enhance Reddit webhook embeds - SebastiaanZ
[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
authorfield of the webhook. -
Stylized the meta-data line by replacing text with emoji-based icons for upvotes, comments, and user.
The emojis were...
Yes I do believe this PR is good.
Build 20191029.3 succeeded
Requested by
GitHub
Duration
00:01:55
Build pipeline
Bot
Build 20191029.4 succeeded
Requested by
GitHub
Duration
00:03:38
Build pipeline
Bot
Connected!
Connected!
Build 20191029.5 succeeded
Requested by
GitHub
Duration
00:03:46
Build pipeline
Bot
Hi guys,
The site has been running Python 3 for a while now:

@sco1 are you willing to reconsider adding it to the learning resources list?
(Just let me know if any of you need a free membership to test out all the lessons. I run the site.)
By the way, the site has a bunch of free challenges now (https://pythonprinciples.com/challenges/), so perhaps setting `"payment": "opt...
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 ...
Hmm, how about reuploading the attachments to the mod log, then use that link instead? That way we can access it much later as well, and discord will maintain it.
@SebastiaanZ said some mods wouldnโt want all the attachments to appear in mod-log or mod-alert, because that take too much place (tbh I kind of agree with them), this is why I suggested to create a special bot-only channel.
Hello, welcome back!
Iโll make a note for folks to check it out again and weโll go from there!
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...
Postgres backup completed!
Build 20191030.1 succeeded
Requested by
GitHub
Duration
00:01:31
Build pipeline
Bot
Connected!
Build 20191030.2 succeeded
Requested by
GitHub
Duration
00:03:34
Build pipeline
Bot
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.
Hi @scragly did my first contribution to python-discord/bot and my PR got merged. I want to continue contributing, can I take this now?
I think it's OK if you also update the attachment tests in this PR.
Build 20191030.3 succeeded
Requested by
GitHub
Duration
00:01:39
Build pipeline
Bot
Build 20191030.4 succeeded
Requested by
GitHub
Duration
00:01:36
Build pipeline
Bot
6b3063c Test pipeline test & cov simplification - sco1
[python-discord/flake8-annotations] New branch created: azure\-test
[python-discord/flake8-annotations] branch deleted: azure\-test
Postgres backup completed!
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...
Don't you just hate it when someone comes in and throws PEP-8 at you when the code wasn't even written for this PR?
Anyway, looks good, works well, some minor changes to kaizen the code into following the naming conventions laid out in PEP-8.
bed913e Re-post attachments - Akarys42
[python-discord/bot] New branch created: \#549\-show\-attachments\-in\-log
[python-discord/bot] branch deleted: \#549\-show\-attachments\-in\-log
Build 20191031.1 succeeded
Requested by
GitHub
Duration
00:02:14
Build pipeline
Site
Build 20191031.1 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
@ikuyarihS @SebastiaanZ I added the re-post of the attachment. I left the ID of mod-log as a placeholder here in the config file so you can change it when you'll have decided where you want them.
Hi, I would like to work on this please
e9f5bb5 Enhance the output of the user command - SebastiaanZ
[python-discord/bot] New branch created: user\-command\-enhancements
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...
Build 20191031.2 succeeded
Requested by
GitHub
Duration
00:01:46
Build pipeline
Bot
@MarkKoz I honestly think that's out of reach for me, because I don't understand all the Api-related code of the repo and I've no idea where to begin to implement the requested function in utils.py.
Per the linked upstream issue, 3.8 is being deployed incrementally, so this is unblocked-ish & will be added to the v1.1.1 pipeline
Opening this up for review.
Testing passes locally & Python 3.8 support in CI will be here soon<sup>TM</sup>.
this is smart as hell. nice work.
a54d978 Make newlines visible in deleted messages - SebastiaanZ
[python-discord/site] New branch created: deleted\-messages\-visible\-line\-endings
This pull requests makes the newlines in deleted messages visible using the โต symbol. This should make it easier to correctly judge the deleted messages that show up in our deleted messages front-end.
Screenshot

In addition, I've kaizened the colour filter that translates integer representations of colours to their RGB hex-value. The Discord dark th...
Build 20191031.2 succeeded
Requested by
GitHub
Duration
00:02:01
Build pipeline
Site
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
Build 20191031.3 succeeded
Requested by
GitHub
Duration
00:01:39
Build pipeline
Bot
Build 20191031.4 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
Build 20191031.5 succeeded
Requested by
GitHub
Duration
00:03:29
Build pipeline
Bot
Connected!
Build 20191031.6 succeeded
Requested by
GitHub
Duration
00:01:39
Build pipeline
Bot
405bfbd Moderation: use trailing _ instead of leading f... - MarkKoz
@SebastiaanZ Sorry if this is a bit confusing, but I've addressed this in #618 because it turned out to be easier for me to do it that way.
Build 20191031.7 succeeded
Requested by
GitHub
Duration
00:01:36
Build pipeline
Bot
@kraktus Are you still interested in trying? We can help you through it on Discord as needed. For starters, you could take a look at other code in the bot to see how requests to the API are made.
I would be happy to do this one.
Making a quick fix for this now.
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 ...
Build 20191101.1 succeeded
Requested by
GitHub
Duration
00:01:41
Build pipeline
Bot
Postgres backup completed!
I'm not too sure about that too, there would be cases where you'd not want the emojis there but still want to read the message.
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 15409531should whitelist a guild invite for posting on our server. Currently this is managed in theguild_invite_whitelistsection in default-config.yml!whitelist format .ipybnshould 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.ymlon the bot repo. We don't wanna have to add these manually. - Lastly, create API endpoints with all CRUD actions.
d1b35be Write tests for bot.utils. - jchristgit
[python-discord/bot] New branch created: bot\-utils\-init\-tests
Build 20191101.2 succeeded
Requested by
GitHub
Duration
00:01:37
Build pipeline
Bot
In response to #600.
Provides 100% coverage. I will welcome any feedback.
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
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
@jchristgit any reason 7d2b78483a1df2f7b0fe9b43834410a5df8c5e48 uses textwrap.shorten?
Want to get up to 3 signatures for cases where they exist but that collapses all the newlines
I don't understand how this case passes the filter if the config has max set to 2 rather than 3.
Never mind, it's because messages_with_links > 1
The case can be annotated with an inline comment, do you think that would be helpful?
Yes that would actually be nice. There's also a similar situation with line 41 so perhaps move them together and put a comment above.
[python-discord/bot] New branch created: zen\-command
Build 20191102.1 succeeded
Requested by
GitHub
Duration
00:01:37
Build pipeline
Bot
Should assertNotIn after popping.
I don't see where in here the key is accessed using a different-cased version. All access is done through the same variable.
Build 20191102.2 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
I annotated them separately as I intended the last one to test that the filter will only count links from the latest author. Let me know if you think another way would be better.
Then I think it's better to make that last case have only 2 links per message so it has more focus and less points of failure.
I agree, this is a good point. Adjusted in latest commit.
Build 20191102.3 succeeded
Requested by
GitHub
Duration
00:01:43
Build pipeline
Bot
Postgres backup completed!
If someone supplied --5 as the search_value, the check will pass but the int() will fail.
>>> "--5".lstrip("-").isdigit()
True
>>> int("--5")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '--5'
Would it be better to give the range of valid indices here as well?
This actually returns discord.Message, so the return value for the typehint is incorrect.
Build 20191102.4 succeeded
Requested by
GitHub
Duration
00:01:31
Build pipeline
Bot
Build 20191102.5 succeeded
Requested by
GitHub
Duration
00:01:32
Build pipeline
Bot
Build 20191102.6 succeeded
Requested by
GitHub
Duration
00:01:37
Build pipeline
Bot
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...
Abstract
Start logging whenever a user changes their voice state to a new channel #voice-log. Depends on issue: #161 being actioned.
Specification
The format of this log has not yet been discussed, and thus is largely up to the person who implements this feature. I suggest taking the format of the logs in `...
Build 20191103.1 succeeded
Requested by
GitHub
Duration
00:03:27
Build pipeline
Bot
Connected!
Is it possible to make discord.py do the conversion for you? Something like search_value: typing.Union[int, str, None] perhaps. Or you could make a custom converter and validate the index range inside it too.
Raise a BadArgument with a message instead and let the error handler cog take care of the rest.
Build 20191103.2 succeeded
Requested by
GitHub
Duration
00:01:39
Build pipeline
Bot
Okay I ran out of time for reviewing this now so more to come, good work though
According to your docstring, The description is a string that should appear at the top of every page..
Is this not what prefix does? From the documentation of LinePaginator:
* prefix: `str`
The prefix inserted to every page. e.g. three backticks.
Having getattr(n, "category", None) ... if hasattr(n, "category") seems redundant to me.
choices.update(n.category for n in self.context.bot.cogs if hasattr(n, "category"))
See my other comment about consistent deletion reactions.
Postgres backup completed!
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...
Build 20191103.3 succeeded
Requested by
GitHub
Duration
00:01:43
Build pipeline
Bot
Unfortunately I won't have time, and after 7 commits didn't progress at all on the objective, I'm closing this PR.
Related to #620, we must moderate the new custom statuses, but they don't appear when we issue a !user command. These should be included to form part of the channel record for moderation purposes.
appy aperture is working on this
appy aperture is working on this
can confirm
There's currently a PR that changes quite a bit in regards to the !user command, so we may want to determine a merge order to avoid conflicts. See #637.
See also python-discord/organisation#157 - consensus was "we moderate these when we see them"
Should this be closed as per python-discord/organisation#157? As per lemon,
staff meeting consensus is that we can moderate these when we see them, but that we don't implement any filtering or alert systems targeting the status messages
0572b18 Show custom statuses in !user output - AnonGuy
[python-discord/bot] New branch created: user\-status\-summary
Build 20191103.4 succeeded
Requested by
GitHub
Duration
00:01:46
Build pipeline
Bot
@SebastiaanZ I just merged the two branches locally, and there don't seem to be any merge conflicts.
That being said, it might be wise to merge #648 first, since the PR's pretty much done and the diff's fairly small.
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
Build 20191103.7 succeeded
Requested by
GitHub
Duration
00:03:35
Build pipeline
Bot
Connected!
Some issues that I'm aware of but don't know if they should be looked into further:
Build 20191103.8 succeeded
Requested by
GitHub
Duration
00:01:33
Build pipeline
Bot
4a5165a Remove redirection on rules command - manusaurio
eee3d54 Use timedelta to correctly calculate next midnight - Dan Herrera
532cd73 Merge pull request #638 from loksonarius/fix-re... - MarkKoz
a982162 Merge branch 'master' into master - sco1
c1f1501 Merge pull request #631 from manusaurio/master - sco1
Build 20191103.9 succeeded
Requested by
GitHub
Duration
00:01:37
Build pipeline
Bot
Build 20191103.10 succeeded
Requested by
GitHub
Duration
00:03:24
Build pipeline
Bot
Connected!
Build 20191103.1 succeeded
Requested by
GitHub
Duration
00:02:09
Build pipeline
Site
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
Build 20191103.2 succeeded
Requested by
GitHub
Duration
00:04:08
Build pipeline
Site
Build 20191103.11 succeeded
Requested by
GitHub
Duration
00:01:47
Build pipeline
Bot
Build 20191103.12 failed
Requested by
GitHub
Duration
00:01:31
Build pipeline
Bot
We do automatic reactions removal after a certain period of time iirc, so won't the โ be redundant in that case? I can see the confusion between โ and :trashcan: since both are used to remove.
Build 20191104.1 succeeded
Requested by
GitHub
Duration
00:01:30
Build pipeline
Bot
Build 20191104.2 succeeded
Requested by
GitHub
Duration
00:03:30
Build pipeline
Bot
Connected!
Build 20191104.3 succeeded
Requested by
GitHub
Duration
00:03:33
Build pipeline
Bot
Connected!
Build 20191104.4 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
Connected!
Build 20191104.5 succeeded
Requested by
GitHub
Duration
00:03:23
Build pipeline
Bot
Postgres backup completed!
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...
Build 20191104.6 succeeded
Requested by
GitHub
Duration
00:01:46
Build pipeline
Bot
Build 20191104.7 succeeded
Requested by
GitHub
Duration
00:01:41
Build pipeline
Bot
While this is functional, it's really opaque and pretty fragile.
It would be a better idea to go with what you suggested in #dev-contrib this morning and not implement our proxy user essentially identically in two different places (1, 2) and instead create a proper object that can be shared & utilized b...
Build 20191105.1 succeeded
Requested by
GitHub
Duration
00:01:36
Build pipeline
Bot
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
Connected!
Build 20191105.2 succeeded
Requested by
GitHub
Duration
00:03:36
Build pipeline
Bot
Build 20191105.3 succeeded
Requested by
GitHub
Duration
00:01:34
Build pipeline
Bot
Build 20191105.4 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
Build 20191105.5 succeeded
Requested by
GitHub
Duration
00:01:51
Build pipeline
Bot
Postgres backup completed!
Did we decide on an approach for this? Bot-side or server-side? I kinda like the idea of shipping a query off to the API and having postgres do its thing.
Given #388 it's better to keep it client-side as it would eventually have to be client-side anyway. However, that issue is stale so I don't know if we still want to do that. If not, then I agree with doing it on the server-side.
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:
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...
Where should the new object be defined?
In one of the places where it's now, or in bot/utils as a new module?
https://cdn.discordapp.com/attachments/635950537262759947/641296190545068056/unknown.png
logged in from pydis.com
pythondiscord.com seems to work
Build 20191105.6 succeeded
Requested by
GitHub
Duration
00:01:47
Build pipeline
Bot
This probably should never work for the sake of simplicity. pydis.com and friends should most likely redirect to pythondiscord.com and friends, or vice-versa, otherwise you're going to have two entirely separate sets of cookies.
Build 20191105.7 succeeded
Requested by
GitHub
Duration
00:01:35
Build pipeline
Bot
Style should be like:
new = (
"hello"
"world"
)
Can be merged with previous line to elif.
Thank you, I will definitely stick to this style for more consistency.
That's a great call, I forgot about it after I removed the else of the if
8096782 Merged else and its single if, changed styl... - ikuyarihS
Build 20191106.1 succeeded
Requested by
GitHub
Duration
00:01:38
Build pipeline
Bot
Postgres backup completed!
Tbh, having pydis.com 301 to pythondiscord.com is not just a good fix for this, but it also makes our website setup more simple and has been something @lemonsaurus suggested when I was touching things last, so I'd consider that a suitable fix and worth doing sooner than later.
That's a good point; I'd forgotten about that. Let's ask our tag master, @fiskenslakt, what his current opinion on the matter is to make sure we get this thing moving again.
Connected!
Connected!
<@&267628507062992896> WARNING: Unable to get DEFCON settings!
Connected!
[python-discord/bot] New branch created: Hemlock/newline\_alternative
Hi, the !free command doesn't ping the user like it is supposed to do if the user parameter is provided, because the ping is inside the embed. The mention needs to be moved outside of the embed.
Is it meant to ping the user? It's often already invoked with a user mention, so that may lead to double pings being issued.



