#dev-log
1 messages ยท Page 64 of 1
Why are we tracking only one channel? I think having multiple samples would be worth it, like we often have #ot0 in slowmode.
Maybe we should track all channels?
We cab use the Open Trivia DB api to get quesitions instead, this would be a much better way and we won't need to add the trivia question manually.
Example: https://opentdb.com/api.php?amount=5&category=18&difficulty=medium&type=multiple
Note on using the Open Trivia api:
The site indicates that the questions are licensed under CC BY-SA 4.0, which stipulates we:
Attribution โ You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
More stipulations apply if we modify the questions, view CC website for more details.
Everything looks in order.
That was the plan, but channels can change names (especially ot), while having it by id would be pretty annoying, and we don't really need other channels for what this is intended for, so I agreed with @jb3 to limit it to just pygen.
I don't know how it looks on the moderation front for slowmode, but maybe discordpy would also be nice here. Dynamic tracking doesn't sound too good for channels that get a sm set rarely
We could have a mapping of usually slowmode-ed channel IDs to human readable name, and use that before submitting the stats.
I guess I could add dpy and ot0 in case it's needed in the future. It's not super important to me though.
Instead of restricting it to just python general and manually adding it in future for other channels, why not create a list like !otn, and the moderators can add channels to the list and remove it.
This would make this unnecessary complex. But I still think discord.py channel should be added at least.
Connected!
These should use relative units. See commonStyles.tsx for a rough idea of how px map to rems, etc.
export default function ErrorMessage(props: ErrorMessageProps): JSX.Element | null {
Why was this added? Eslint isn't flagging anything without for me. You also don't enable this rule again anywhere. Could we also try to stick these as close as possible, or even inline with the function they affect to convey intent? (See line 49 for example).
See comment on relative units.
I'd say this looks good now.
We need to rename this cog to Spooky Name Rate for two major reasons :
- "Spook" is an ancient racist term to mock black people
- "Spooky" makes more sense in this context than "Spook"
Keep up the good work!
Mainly just the use of temporary lists, that could be generators or have it's values calculated on the fly.
Initial reviewing on looking through the code briefly. Not tested yet.
Connected!
Connected!
Connected!
8d3469e Use relative units - ks129
560b4be Merge branch 'forms-submitting' of https://gith... - ks129
Connected!
Connected!
[python-discord/branding] New branch created: badge
This is what the badge looks like at a larger scale:

However, it will mostly be used at a smaller scale โ for example in GitHub repos as a badge. Furthermore, it can be used on both light and dark backgrounds.
Currently the .wiki command only gives the titles of the options and no description of the topics, so it would be good, if it would a show paginated messaeg containing each topic in the following embed format (Top 10 results)
Title.
50 character summary of the topic.
Thumbnail of that wikipedia link.
Would you like to implement this yourself?
- [x] I'd like to implement this feature myself
- [ ] Anyone can implement this feature
How about the have the first-page show all the titles(like the current implementation) and then pagination to show each title with some description and image if possible?
1109741 Bump @testing-library/user-event from 12.6.0 to... - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/testing\-library/user\-event\-12\.6\.2
Bumps @testing-library/user-event from 12.6.0 to 12.6.2.
Release notes
Sourced from @testing-library/user-event's releases.
v12.6.2
12.6.2 (2021-01-21)
Bug Fixes
upload: accept File or File[] #529 (#530) (390013e)
v12.6.1
12.6.1 (2021-01-21)
Bug Fixes
selectOptions (#543) (6a02a14), closes #542
Commits
390013e fix(upload): accept File or File[] #529 (#530)
6a02a14 fix: selectOptions (#543)
6c21e1f docs: add nickmccurdy as a contributo...
bb575e1 Bump @sentry/react from 6.0.0 to 6.0.1 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.1
[python-discord/forms-frontend] Pull request opened: #101 Bump @sentry/react from 6\.0\.0 to 6\.0\.1
Bumps @sentry/react from 6.0.0 to 6.0.1.
Release notes
Sourced from @sentry/react's releases.
6.0.1
[vue] fix: Make sure that error is present before logging it in Vue (#3183)
[serverless] fix: Fix issue when /dist didn't exist before building (#3190)
Changelog
Sourced from @sentry/react's changelog.
6.0.1
[vue] fix: Make sure that error is present before logging it in Vue (#3183)
[serverless] fix: Fix issue when /dist didn't exist be...
I think one of our concerns of Open Trivia DB was that anyone could add questions and that would affect the quality of the questions. I am not sure if there is any moderation that goes into actually adding the questions tho.
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.1
If a conversion is tried on a non-existing infraction, it should be gracefully handled instead of throwing a 404 exception.
Sentry Issue: BOT-M2
ResponseCodeError: Status: 404 Response: {'detail': 'Not found.'}
File "bot/api.py", line 67, in maybe_raise_for_status
raise ResponseCodeError(response=response, response_json=response_json)
File "bot/api.py", line 75, in request
await...
[forms-frontend] Branch dependabot/npm\_and\_yarn/testing\-library/user\-event\-12\.6\.2 was force-pushed to `c3feec7`
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/testing\-library/user\-event\-12\.6\.2
As far as I can see, defaulting to ctx.author won't break anything, the features using the paginator should still work correctly.
We would run into an issue with entries that haven't been created yet. The only way of solving this that I can think about would be to the global configuration as the raw YAML structure, and then have each entry fold its own path and store it locally, which can be a bit of a hassle.
23cc03a Add the !REF constructor - Akarys42
4fa507c Merge branch 'ref-constructor' into package-dev... - Akarys42
93723fa Make use of a new ConfigurationError exception - Akarys42
8706816 Rename __defined_entries to __defined_attributes - Akarys42
c546f28 Fix the logic of _check_undefined_entries - Akarys42
Can we even set custom emojis in embed titles? I'm not sure if that's even possible.
Actions python-discord/organisation#318
We should make a message listener that would send a link to an issue when the message contains repo#number. Here is an example:

Specifications
- The bot should match the regex
.+?#\d+outside of a codeblock. - If the repo or the issue can't be found, nothing should happen.
- This feature should be limited to the `python-disco...
Can we even set custom emojis in embed titles? I'm not sure if that's even possible.
We'd have to add it to the badges display below, which is probably fine because a bot shouldn't have any other badges.
[python-discord/bot] New branch created: update\-badges
Some small changes with the README badges:
- Use the new Python Discord change
- Use the vanity URL
- Use a static license badge as the current one is broken
The pydis github badge is a bit too small but I suppose that should be fixed at the branding end.
Just making sure it's intentional, should the site badge be removed?
b3ad47a Feature: suggest command usage for misspelt com... - F4zii
adfb87e Merge branch 'master' into feat/F4zi/CommandSug... - Akarys42
dfe9dd8 Seperated tags.get_command into a function and ... - F4zii
eb01f3f Feature: suggest command usage for misspelt com... - F4zii
777088b Merge branches 'feat/F4zi/CommandSuggestion' an... - F4zii
[python-discord/bot] branch deleted: update\-badges
Connected!
4dad590 HelpChannels: use a more accurate lock for mess... - MarkKoz
025edaa HelpChannels: await init task at the start of e... - MarkKoz
0d330d7 HelpChannels: prevent user from claiming multip... - MarkKoz
e281bb4 HelpChannels: move function to the channel module - MarkKoz
4697374 HelpChannels: refactor stat tracking - MarkKoz
[python-discord/bot] branch deleted: bug/help/1341/race\-conditions
Connected!
Connected!
587b9c0 Remove trailing whitespaces from the README - Akarys42
Currently, when the bot is starting up, it will think that we changed the branding assets due to its lack of data, and change the server icon. This can be solved by adding a call to self.refresh() in this function
I created an account while checking it out yesterday, and submitted a question. The questions get added after a manual review. That being said, I did have a look over the existing questions, and it seemed the moderation on them was quite lax, provided they put in some effort.
can you mention the file path where i have to make changes?
This tag would provide info for users which are not voice-verified, so that they can easily be directed toward the appropriate channel.
Thanks for the PR! I am not sure about the tag name though. I think it is better to call it voice-verification and rely on fuzzy matching to support voice.
Abstract
We had some issues that caused an outage, where someone would search the infractions for single characters, which resulted in an OOM after some time. We need to limit the number of infractions returned by the API
Proposed Implementation
Add a LimitOffsetPagination to the viewset in site/pydis_site/apps/api/viewsets/bot/infraction.py, limiting the output to 50 infractions.
Note ...
Hi. I am a beginner and would like to contribute to this project. I am not sure if I fully understood the issue, but it sounds interesting. If you can guide me and provide me with some details I can try to solve the issue. So far, I have looked over the LimitOffsetPagination class and a way to implement it. :)
Hello @ShrillShrestha, sure thing! If you have any question, feel free to ask in the #dev-contrib channel in our Discord server, near the bottom of the list.
Everyone is now able to take this issue. I don't have enough time to test every command and feature to ensure they are working after dependency upgrades.
@Akarys42, I was able to run the site in the localhost. Can you tell me how I can reproduce the bug?
What's your Discord username @ShrillShrestha ? I think it is better if we can talk in the server.
This doesn't seem right. hasattr shouldn't raise an error for just trying to check if an attribute exists. The reason is likely because you're raising a custom exception instead of AttributeError, which is what hasattr's implementation expects to catch. I believe I suggested previously that this exception should also subclass AttributeError.
On second thought, it's better to ignore non-mapping nodes under the root; nodes elsewhere may hold references to such nodes. In any case their presence isn't an inconvenience to the parser.
I don't believe the paginator is inherently restricted to guilds. Therefore, this event may get a User which doesn't have roles.
@rijusougata13 the tag handling and command suggestion starts here, but you should do some digging, see how the cooldown on tags work, see what's causing the bug. Once you understand how it works, the fix should be fairly simple.
If you want to take this on let me know and I'll assign it to you.
Seems like something we can go for
Will it send all the issues/prs contained in the message or only the first one.
For example:
Hey folks, can you please check bot#1341 and meta#444
So basically my question is whether it will send both the issues or only the first one?
154a0b1 jwt.encode returns a string, not a bytestring. - kosayoda
6307d92 Merge pull request #50 from python-discord/jwt-fix - jb3
014e4e9 Add question model required field documentation... - ks129
6d0324e Use $in operator for non-admin filtering to all... - ks129
b354f5f Re-order build args in Dockerfile - jb3
Relevant Issues
Closes #566
Still Need to add the check for the message is not contained in discord codeblock.
Screenshots


Additional Details
Did you:
- [x] Join the [**Pyt...
Did this get left in while testing the CSS? It's showing the post-submission page on form view by default.
Description
A command such as .http dogs would be implemented to visually show what different status codes are, with dogs.
Reasoning
Another fun way to learn status codes or refer them. And for non-cat people and dog lover โค๏ธ .
Proposed Implementation
- Make a group named
httpwhich would containcatanddognested commands. - Since dogs have some comes missing, we will use
aiohttpandregexto get the status codes usingcommands.taskwhich will run every 2 ...
Right now, discord converts twitter links when applying the standard twitter embed treatment. Our check for rich embeds determines whether an embed is autogenerated or not by checking if the embed link is present within the source message here https://github.com/python-discord/bot/blob/fa02180246e6cf1245d5705b36a2056ed449ef6b/bot/exts/filters/filtering.py#L520, but this does not account for discords transformation of mobile.twitter.com links to twitter.com links, and thus a message with mobil...
I've noticed some people use the doc command like tags where the argument is followed by a message !d symbol <message>, do you think it'd be worth trying the first part of the argument as a fallback in case we get a symbol with a space and the initial lookup fails?
Connected!
@davisschenk Are you planning to continue this?
Missing a space before VS.
I'm testing the default values locally, but they raise conversion errors. Do they work for you?
Bumping some still open comments, and a bug. I'll leave a more complete review after they've been addressed.
See note above about default value.
@AtieP Poking. Will you be doing the requested changes in the future?
Since dogs have some comes missing, we will use
aiohttpandregexto get the status codes usingcommands.taskwhich will run every 2 hours probably.
Not sure how necessary this is since we can use the http module to see if the codes exist.
Besides that, I'd like to see this get implemented.
Connected!
ee82925 Put a space after the colons for #562 trivia. - Xithrius
Due to inactivity, I will now be taking over this PR.
Connected!
Getting a comic:

Getting a random comic:

Getting the latest comic:

How about setting a soft_red colour to this embed, if the retrieving fails?
Good idea! I'll add that.
@HassanAbouelela Mentioned all requested changes!
(and fixed another bug - there was no message when the user Drew)
Getting a comic:

Getting a random comic:

Getting the latest comic:

Interactive comics:
 -> None:
This is just me being pointlessly nitpicky, especially since the comic number needs to be str to include in the url (though f-string will handle that.)
Feel free to ignore this comment. Everything else LGTM.
I actually had this in my code before, but decided against it.
There's no reason for the comic parameter to explicitly be an integer.
Small comment, but I approve.
Not sure if this empty line is required.
The empty line is not required. I can remove it if you think I should.
Can we put a random title from NEGATIVE_REPLIES in constants.py here?
(Unless your intention is to display the invalid comic inputted.)
My intent is to display the invalid comic input.
Thanks for the clarification :sweat_smile:
Yes, I don't like empty line between if block and else block.
I think showing comic input is good idea.

Connected!
@DhruvDuseja are you planning to continue this PR?
Connected!
Connected!
@Anubhav1603 will you be continuing this PR?
I think having this set to something lower like 30s for the timeout should be better as this is not a game where we would spend a lot of time thinking
GitHub Actions run 507501722 succeeded.
GitHub Actions run 507503951 succeeded.
GitHub Actions run 507503258 succeeded.
Connected!
Currently, we only create an embed when a message is deleted through a single deletion event. Bulk deletions are ignored, which cause messages cleared by a purge-ban to not appear here, which is pretty problematic.
Note that the !clean command does trigger a bulk deletion, but we don't want it to appear in the change-log since we already have another logging method for them. We need to come up with a system to ignore those.
46ff694 Make sure that the paginator doesn't choke on DMs - Akarys42
1bd6cf2 Merge branch 'trashcan-mods' of github.com:pyth... - Akarys42
That's a good point. Fixed in 46ff6949 !
Connected!
@DhruvDuseja are you planning to continue this PR?
Not at the moment. I am tied up with some other stuff to do right now but if it's still open in the future, I don't mind putting some time into it then.
@DhruvDuseja are you planning to continue this PR?
Not at the moment. I am tied up with some other stuff to do right now but if it's still open in the future, I don't mind putting some time into it then.
Connected!
GitHub Actions run 507686323 succeeded.
GitHub Actions run 507688366 succeeded.
GitHub Actions run 507687709 succeeded.
It's so that it matches <part of the URL>/ for all parts of the path except the last, in which case it matches <part of the URL> only. I also do this in the GitHub regex. Is this part unnecessary?
Currently, commands such as !embed or !rule can seem untargeted when sent in channels. To solve this I propose mentioning the username or even pinging the user.
There are multiple ideas I have how we could go about this:
- make the user an optional argument. By far the most obvious and simple choice.
!paste 12345667or!paste @usernamebut the issue is that this could ping the user twice - additionally or alternatively get the user from a reply, so you can reply with
!paste(an...
Connected!
Is anyone working on this?
It appears @ShrillShrestha seemed to be interested above, but removed their assignment.
@ShrillShrestha do you still want to work on this issue?
@jb3, I tried doing it, but couldn't figure it out. @kunal097 you can take this.
Appreciate the response, go for it @kunal097!
user.id == ctx.author.id,
Currently it only checks if the reaction is made by the bot or not, if we simply change it to check whether it was made by the author then it would also restrict other users from controlling a personโs command.
Removed self.interpreter from internal cog, and deleted the interpreter helper as it was not being used anywhere and it was basically dead code.
GitHub Actions run 508501897 failed.
GitHub Actions run 508505001 failed.
GitHub Actions run 508508641 succeeded.
if not isinstance(sentence, str):
Why is there a change in the bot/utils/pagination.py ? Wasn't that a part of the #555
e6c40a7 Bump @swc/core from 1.2.45 to 1.2.46 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/swc/core\-1\.2\.46
Bumps @swc/core from 1.2.45 to 1.2.46.
Commits
5c3a0b5 v1.2.46: Prevent regression. (#1356)
e40aca9 v1.2.46 (#1354)
acb4f1a Bump versions
b7ae896 fix(es): Fix bugs (#1353)
d4df2ce fix(es): Fix bugs (#1347)
6a1c3da fix(bundler): Fix bugs (#1346)
0469e3a fix(es): Move and rename JscTarget (#1343)
17f17e8 fix(bundler): Fix bugs (#1342)
ddc9492 fix(es/transforms): Handle enum in namespaces (#1340)
613a5a4 fix(es): Fixes for the type checker (#1331)
Addition...
7bd8a3b Bump webpack from 5.16.0 to 5.17.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/webpack\-5\.17\.0
Bumps webpack from 5.16.0 to 5.17.0.
Release notes
Sourced from webpack's releases.
v5.17.0
Features
add experimental lazy compilation via experiments.lazyCompilation: true for web and node targets
compiles entrypoints and import()s only when they are accessed
More details see: webpack/webpack#12469
Known issues: webpack-dev-server/webpack serve opening an entrypoint for the first time, sometimes need a manual refresh.
move some javascript parsing r...
We can't use the regular onblur handler here, at least not in it's current implementation. The select does not keep focus only with the parent element, but with the children too. This is fine for mouse navigation, as losing focus would mean you've closed the menu. It does not work for keyboard navigation however, as switching between each of the options defocuses the root element.
One possible workaround would be to check if the active document element is contained within the parent element...
You don't need the line break here. It is used on the main form page to seperate between both buttons. You can also move the seperator styles back to its original location as it's only used in one pplace.
TS throws up a warning here, as DivElements do not have a value property. One possible strategy would be to implement two handlers, as is done with the other handlers in this file, and having one common entry point to assist in type hinting.
"commands such as !embed" do you mean paste?
Good work. Since we merged #1166, we have a is_staff_channel helper function at bot/bot/utils/channel.py. We should use that instead now. Thanks!
@kosayoda hmm looking at this again I may have misunderstood this issue.
Your function checks whether the channel invisible to non-staff, while here it checks whether it's visible to helpers (including public channels)
@kosayoda hmm looking at this again I may have misunderstood this issue.
Your function checks whether the channel is invisible to non-staff, while here it checks whether it's visible to helpers (including public channels)
Yep, we canโt use the current implementation here. Maybe we could support passing a custom role list to is_staff_channel? I think this PR is fine though.
Ah, that's my bad then.
Yeah there's no reason to over-complicate the existing function
Connected!
Connected!
return default_overwrites.view_channel is None or helper_overwrites.view_channel is True
The default value of a permission overwrite for a channel is None.
Regular channels:
helper_overwrites = None
default_overwrites = None
Staff channels:
helper_overwrites = True
default_overwrites = False
Mod+ channels:
helper_o...
Oh, I knew this but I didn't know how the permissions were set up in the channels - and I wrote it this way based on what [Scaleious told me in dev-contrib] (#dev-contrib message)
Hi,
I think the limit should a bit higher than that, like a hundred. We might hit 50 on a few very rare occasions, and I'd rather have some breathing room. The goal is to just not OOM.
Relevant Issues
closes #530
Description
Migrate the reddit cog from Bot to sir-lancebot with added pagination when the reddit command is used.
Screenshots


.
I'm not sure what you mean by codebas...
3c4c913 Bump @sentry/react from 6.0.1 to 6.0.2 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.2
[python-discord/forms-frontend] Pull request opened: #104 Bump @sentry/react from 6\.0\.1 to 6\.0\.2
Bumps @sentry/react from 6.0.1 to 6.0.2.
Release notes
Sourced from @sentry/react's releases.
6.0.2
[browser] fix: Disable session tracking in non-browser environments (#3194)
Changelog
Sourced from @sentry/react's changelog.
6.0.2
[browser] fix: Disable session tracking in non-browser environments (#3194)
Commits
6d7700c release: 6.0.2
0990173 ci: Disable browserstuck until we fix the tests (#3199)
e7e9199 Prettier likes semicol...
10de122 Bump @typescript-eslint/eslint-plugin from 4.14... - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.1
Bumps @typescript-eslint/eslint-plugin from 4.14.0 to 4.14.1.
Release notes
Sourced from @typescript-eslint/eslint-plugin's releases.
v4.14.1
4.14.1 (2021-01-25)
Bug Fixes
eslint-plugin: [sort-type-union-intersection-members] consider void as a nullish (#2944) (a241b25), closes #2940
scope-manager: fix incorrect handling of class decorators and class method default params (#2943) (e1eac83), closes #2...
5bb9300 Bump @typescript-eslint/parser from 4.14.0 to 4... - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/typescript\-eslint/parser\-4\.14\.1
Bumps @typescript-eslint/parser from 4.14.0 to 4.14.1.
Release notes
Sourced from @typescript-eslint/parser's releases.
v4.14.1
4.14.1 (2021-01-25)
Bug Fixes
eslint-plugin: [sort-type-union-intersection-members] consider void as a nullish (#2944) (a241b25), closes #2940
scope-manager: fix incorrect handling of class decorators and class method default params (#2943) (e1eac83), closes #2941 #2942 #2751
C...
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.2
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/typescript\-eslint/parser\-4\.14\.1
[forms-frontend] Branch dependabot/npm\_and\_yarn/webpack\-5\.17\.0 was force-pushed to `13b2fe6`
[forms-frontend] Branch dependabot/npm\_and\_yarn/swc/core\-1\.2\.46 was force-pushed to `679479e`
[forms-frontend] Branch dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.1 was force-pushed to `ac45760`
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.1
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-5\.17\.0
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/swc/core\-1\.2\.46
[python-discord/forms-frontend] New branch created: repo\-cleanup
This PR does some housekeeping for the repository. If any changes are unwanted, or unnecessary, I'm happy to revert them. The changes can be broken down into three categories:
Code Cleanup
Addition, removal, or modification of components that affect the functionality of the application.
- [x] Remove Unused Resources (Renovate config, react logo svg).
- [x] Cleans up minor warnings or errors.
- [x] Adds apple touch icon.
Contributing Workflow
Changes related to the experience ...
@Akarys42 The PR is ready for review.
I think at this point all these regex strings should be compiled as constants and put into a tuple so this can be iterated over easily instead of having many or statements.
Also, what are these regexes for? Couldnโt just just one smarter regex?
Well ig the doc string is self-explanatory, they are for checking if the <repo>#<issue> part of a message are in code-blocks or not.
Couldn't find a smarter way ๐
What's the difference between seeing if they're in a code block or not?
I'm guessing if the issue/pr is within a code block, this new event won't get triggered?
Yes it won't get triggered, as it was said in the issue, not to trigger this event if it in a codeblock.
Thanks for your PR! I havenโt reviewed the functionality yet, but here is what I could find so far.
Using an enum for those results would be better, it would avoid having to change the string in many places if we want do want to change it.
I think we can combine everything into something like
"(```\n?([\s\S]*)?\n?```)|(`([\s\S]*)?`)"
I kept the organisation name default since you had told that it would be restricted to python-discord repositories only.
Yes, the default should be python-discord, but we still want to support overriding.
8931464 Reorganizes Config - HassanAbouelela
05ab7f4 Reorganizes constants.py - HassanAbouelela
2eb51b6 Merge remote-tracking branch 'origin/master' in... - Xithrius
212d065 Merge pull request #1380 from HassanAbouelela/a... - Xithrius
Connected!
Connected!
Using something like !paste @user will work with the current setup. You can even use the new replies to add context to your tag. Iโm not sure if having another ping from the bot which would be just under the command invocation is a good idea.
When a Discord outage occurs, we have a tons of error due to some DiscordServerErrors all around the codebase, due to Discord itself returning some 500s. We shouldnโt create a Sentry issue when receiving those.
[python-discord/bot] branch deleted: mbaruh/menu
@Akarys42 while its trues that you can ping in the command, I still see people ignore and be confused who the bot command was meant for. But I agree, double pings should definitely be considered.
b3ad47a Feature: suggest command usage for misspelt com... - F4zii
adfb87e Merge branch 'master' into feat/F4zi/CommandSug... - Akarys42
dfe9dd8 Seperated tags.get_command into a function and ... - F4zii
eb01f3f Feature: suggest command usage for misspelt com... - F4zii
777088b Merge branches 'feat/F4zi/CommandSuggestion' an... - F4zii
Ignore the review request, it's a byproduct of updating the pr
f23c2e7 Make the cog update even if write to DB fails - mbaruh
f2c8e29 Moved self.enabled update to _defcon_action - mbaruh
76574ad Moved channel topic change to _defcon_action - mbaruh
e394943 Added cog unloader to cancel notifier - mbaruh
2012182 Merge branch 'mbaruh/defcon' of https://github.... - mbaruh
This can be reviewed now
Description
Make fake redis an environment variable (like it is in sir-lancebot), and possibly have the default fake redis value be true.
Reasoning
A lot of developers try to start the project, just to be met with a long traceback ending with:
socket.gaierror: [Errno 11004] getaddrinfo failed
It is unclear that the cause here is a lack of a redis setup, and the main indicator that it is, is to look further up in the traceback to find the call to start redis, then to put two a...
49acd71 Cleans Up Favicons - HassanAbouelela
1ba688b Updates Short Name - HassanAbouelela
Add Default Pagination class LimitOffsetPagination with Page Size 100 in GET Infraction
Thanks! The dimensions and vectorisation work, and I think you arrived at something pretty nice.
The only thing I'd like to see changed is the mouth color. I see that you are already using a slightly darker color for it, but it would be nice to make it even darker, in order to bring som contrast. I've personally used #422C01 before, but you can check out what precise colors you think fit and have a look at older lemojis as reference.
@Xithrius @Akarys42 Mentioned all the requested changes!
d0103dc Bump webpack from 5.17.0 to 5.18.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/webpack\-5\.18\.0
Bumps webpack from 5.17.0 to 5.18.0.
Release notes
Sourced from webpack's releases.
v5.18.0
Internals
refactor hashing to move the responsibility of hashing module exports info and referenced modules from Dependencies to the Module
Hashing in Dependencies can be much cheaper now (could improve performance when many dependencies are used that point to the same module, like many references to React.createElement)
Fixes bugs where Dependencies forgot to ...
GitHub Actions run 514402621 failed.
GitHub Actions run 514406628 succeeded.
GitHub Actions run 514407179 succeeded.
Description
This is just like tldr pages. It is a really good resource and I use them regularly either when trying to help others or wanna look up something.
Screenshots

Proposed Implementation
- https://cht.sh/
- It supports a number of languages, so we can default it to python.
Would you like to implement this ...
When passing a non-existing ID to !infraction edit or append, such as a string, the bot will throw a ConversionError: (, ResponseCodeError()). This should be properly handled.
Hello, thank you for your contribution! There are a couple of things that needs to be reverted.
This doesnโt conform with the style used in the repository, can you please revert it?
We donโt want to use pagination everywhere, only in the infraction route. Can you please revert this change? This also cause some tests to fail.
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-5\.18\.0
Connected!
Changes have been done as discussed. Please review the changes.
Minor note here: I think this would look better without the space, and using three dot ellipsis.
player_active is a member object with no user property, which causes an error. Does this work for you?
To make the function more versatile, you can remove the winner and loser parameters, and instead take a single message prameter. The caller can be responsible for creating the message.
It would never be the AI, since this is for taking reactions.
Yup, and members don't have a user property, hence: error while using the feature.
This closes #1375.
Catches the response code error and handles by raising a bad argument error
These would be handled by the error_handler, I donโt see the need of it here. (The unknown error caught)
Wouldnโt this create a infinite loop if the the rhyming sentence is never found?
I guess the number should be added to class variables. (self.near_rhyme_min_score)
Few other comments. Hopefully am done now.
Method _get_unit_count can be a static method.
Expected type 'None', got 'set' instead
Is anyone reviewing the changes?
Donโt worry, we are going to review it. Week-days are a pretty busy time
for me, Iโll make sure to review this this weekend.
Create a .md file in /tags with the following content inside:
f = discord.File("some_file_path", filename="image.png")
e = discord.Embed()
e.set_image(url="attachment://image.png")
await messagable.send(file=f, embed=e)
# Note that the filename in the File constructor and the filename in the URL must match.
Docs: https://discordpy.readthedocs.io/en/latest/faq.html#how-do-i-use-a-local-image-...
Thank you, Actually this is my first contribution so I'm pretty excited.
[python-discord/bot] branch deleted: trashcan\-mods
5e93396 Add an allow_moderation_roles argument to the w... - Akarys42
eb78b9c Restrict paginator usage to the author and mode... - Akarys42
c3c869c Merge branch 'master' into trashcan-mods - Xithrius
46ff694 Make sure that the paginator doesn't choke on DMs - Akarys42
1bd6cf2 Merge branch 'trashcan-mods' of github.com:pyth... - Akarys42
Connected!
@sebkuip are you planning on finishing this?
@jb3 you have experience with workspaces, right?
Do you think you could do this, or link any useful documentation for someone to pick this PR up?
Very rough experience! Probably not enough to be able to complete this fully though sadly, at least not in the immediate future.
On 29 Jan 2021, at 21:48, Xithrius notifications@github.com wrote:
@jb3 https://github.com/jb3 you have experience with workspaces, right?
Do you think you could do this, or link any useful documentation for someone to pick this PR up?
โ
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <h...
@sebkuip are you planning on finishing this?
Ah I did forget a bit about it after a few school projects. Should have more time in the upcoming week so Iโll see if I can get back at it with a fresh mind
Alright cool, thanks for the speedy reply.
I feel like this command would more likely belong to the Sir-Lancebot repository. What are your thoughts?
Currently being worked on in #1338.
The error handler should eventually get the ability to handle the inner error of ResponseCodeError, which would be ConversionError.
there are some things I would like you to address.
would self.repos not work perfectly fine here?
self.repo_regex = "|".join(self.repos)
This url is more generic than just pydis, so I say we either put the python-discord part here, or rename the variable to something more generic
this could be better written using not
if not self.check_in_block(message, " ".join([*repo_issue])):
Following discussions in #dev-contrib I moved this handling into error_handler.py. I copied a similar pattern to what was above, which should allow us to handle different types of inner errors from ConversionError in future as needed. Please let me know if this wasn't the expected implemention.
I'm pretty sure this is what was wanted in implementation, thanks for the quick change!
If I understand correctly, you overwrote the list method just to customise the response. Specifically, you want to only return the raw data from the paginated response and not any of the pagination metadata. If that's the case, a better way is to create a custom paginator which overwrites get_paginated_response. This approach achieves the same result with less redundant code since it can rely on the `l...
My only concern is that it sorta duplicates the check on line 78, but that's from CommandInvokeError. I guess the comment on 95 should be changed to remove ConversionError too, looking at it again.
I do agree that it does seem to be a little duplicated, but there's nothing really we can do about it to my knowledge since they're two different outer errors.
Yes, that comment should be updated.
# MaxConcurrencyReached, ExtensionError
Connected!
Sorry for getting back to you a bit late. I still don't understand what you mean. I thought you meant that it avoids matching a trailing slash in the path, but the regex still matches it. Here is a real example:
https://gitlab.com/gitlab-org/gitlab/-/blob/master/scripts/create_postgres_user.sh/#L3-4
Furthermore, GitLab resolves that URL just fine in my browser (though maybe it's cause my browser is silently stripping it). If the trailing slash is really a problem when you need...
Yeah, sounds like a good idea. I can't imagine symbols with spaces being too common anyway.
it also looks like if you try to get the info of a verified bot, it will cause an error. This is because we don't have an emoji for the badge_verified_bot emoji. Here's an image I pulled off discord for it

In #1388 I added a new block for handling a ConversionError. I was thinking just adding a handler for OverflowError to this block. The question I have is, what would we want to displayu to the user? Something similar to how BrandingError is handled might be good. It would look like this:

I am wondering if its worth overwriting the message content while I'm here, so its no...
It already has the python-discord part.
Ah! I will change it to
if ctx.channel.category not in WHITELISTED_CATEGORIES and ctx.channel not in WHITELISTED_CHANNELS:
return
Can you please add it to the mod-meta (775412552795947058) and mod-tools (775413915391098921) channels as well?
Yes, the sole purpose to override this method is to maintain the old response.
If the response has been changed then any other services which is using the older response will break. So before updating the response we'll need to update those services as well.
Oops, I just misunderstood what my regex did. You're right - the /{0,1} is unnecessary because the trailing slash is already matched in the preceding regex. I tested it and the slash isn't a problem when I fetch the content
The other, possibly better, approach is to add OverflowError to the except block at bot/converters.py:353. This way it'll behave the same as a ValueError:

I feel like this command would more likely belong to the Sir-Lancebot repository. What are your thoughts?
Hmm, i thought it would belong here since it is a python related.
This project is more of a utility bot, offering tools to moderate, interact, and manage the community. It does have a few "fun" utilities (under the exts/fun folder for example), but mostly all tools are for running the server.
Part of sir-lancebot's job, on the other hand, is to contain most of the useful utilities and fun aspects of the bots.
Can you please add it to the mod-meta (775412552795947058) and mod-tools (775413915391098921) channels as well?
Alright! Will do that Zig.
Description
This is just like tldr pages. It is a really good resource and I use them regularly either when trying to help others or wanna look up something.
Screenshots

Proposed Implementation
- https://cht.sh/
- It supports a number of languages, so we can default it to python.
Would you like to implement this ...
unfork ๐ด
45d4756 Add support for bulk deletion - Akarys42
This PR adds an event handler for raw bulk deletions in order to also mark messages deleted this way.
looks good, let's give it a whirl.
akarys enabled cheat codes :shipit:
Connected!
Connected!
Connected!
Connected!
Running the code reveals errors:
https://gitlab.com/gitlab-org/gitlab/-/blob/master/scripts/create_postgres_user.sh#L3-5 leads to
2021-01-30 12:12:37 | bot.exts.info.code_snippets | ERROR | Failed to fetch code snippet from https://api.github.com/repos/gitlab-org/gitlab/branches. HTTP Status: 404. Message: 404, message='Not Found', url=URL('https://api.github.com/repos/gitlab-org/gitlab/branches').
2021-01-30 12:12:37 | bot.exts.info.code_snippets | ERROR | Failed to fetch code s...
They'd have to be updated anyway unless it is decided that providing more than the 100 most recent infractions for any query is unnecessary.
Truncating might be a bit tricky when there are multiple snippet links in a single message. Do you think I should do something like truncate all code blocks by ceil((len(message) - 2000) / (number of code blocks)) chars if needed? Also, what about the number of lines allowed per message?
I prefer the latter solution, it is more consistent with the rest of the code base.
I imagine that trying to evenly distribute truncation would result in all code blocks being too heavily truncated to still be meaningful. A simpler strategy of truncating the first blocks and omitting the rest sounds fine.
Line limit should still apply to the final line count and will truncate at line boundaries. The limit could be raised to 20. Make sure you don't include "bare" file paths that lack code blocks because they got truncated. In other words, if there isn't enough space for th...
Closes #1225.
Excepting ValueError catches dates that would go above the year 9999, but very large numbers can also cause an OverflowError to be thrown. This deals with both in the same way.
@Shivansh-007 I'd like to see this get implemented. Would you like to work on it?
@rijusougata13 Are you still interested in working on this issue?
Relevant Issues
Description
HTTP status dogs doesn't the following codes: [101, 102, 421, 511, 499, 599, 415].
I have made a group for cat and dog status codes and dog status code is just duplicate to that of the cat just it adds another check by checking the response status after requesting the url.
Screenshots


Error Embed
![Sc...
Only two things I think we should do for this PR. The could do's are optional if you feel like implementing them :)
Should do: I think its worth linking to the issue in cheat.sh here as a comment. With the hopes that one day it will be fixed and we can change this implementation :)
https://github.com/chubin/cheat.sh/issues/198
Could do: title and description can all be set within the Embed constructer. Taking a look around other places in this bot, that seems to be the preferred method. See bot/exts/easter/egghead_quiz.py:90 for an example.
Could do: rename the cog to CheatSheet or CheatSh to be more explicit.
I think we should rename the cog. The two could do's are optional, if you feel like implementing them. If not, they can be raised as separate issues :)
Could do: raise NotImplementedError instead, and handle it separately from ValueError. This way we inform user if the code doesn't exist at all, or if its just not been implemented by httpstatusdogs.com
Should do: Rename the cog, now that it does more than just cats.
Could do: http.cat raises a 404 on some status codes that HTTPStatus says is a valid code, so we could handle those in a similar way to what you have done for the dog command.
Why is there a change in the
bot/utils/pagination.py? Wasn't that a part of the #555
My mistake. I made another PR, but I accidentally did it on my master branch. I am on a feature branch on my local repository, and it brought the changes in the master branch over. Is there a way to separate the feature branch from the master branch?
I don't get what you mean by this.
I am not sure what you mean here.
Currently, using async_timeout. Once the time runs out, it will just return an error, and it will not try again. This is not the most effective way of dealing with it. It is one of the things that needs a more effective way.
No what i mean is:
-> users sends requests for poem
-> gets RhymingSentenceNotFound
-> tries again for with the scheme
-> gets RhymingSentenceNotFound
... This would be a infinite loop
Is this absolutely necessary? I prefer specifying the types in the imports so that I don't have to add t. in the code.
Is this an error message?
Ah I see, I was just afraid that the if-statement will hide errors that are not RhymingSentenceNotFound. So the code snippet showed above will ensure that errors don't go hidden?
I know, but it won't go on forever as the timeout will kill the loop if it goes on beyond a certain number of seconds.
Closes #1373.
By changing this to True the if statement in bot.error_handler.py:163 passes, and we don't suggest a similar tag.
I couldn't find anywhere in the code base that relies on this function returning False in the case of a cooldown, so I don't think this will have any side effects.
If we need to differentiate between not found, on cooldown and succes...
[python-discord/bot] New branch created: ui
No, it is a warning which came on pycharm.
No it is not, but yeah it is a "Could do".
Could do: Make successfully found cheat sheets also output in embeds. This would remove the need for the isEmbed var, and may make the output look better?
Embeds have a limit on number of characters on a single line hence the code block will break. This is why i didn't add it in a embed.
We do otherwise the content we receive is contains all this escape codes and stuff, I had tried it (sometime ago) so just directly used this right now.
Closes #1391.
By returning True within this command, the fuzzy search in error_handler.py is not hit.
As the tag_get function deals with cooldowns internally, we can reserve False for when a tag is not found.
Huh, that's weird. Looking at their source it should behave the exact same way.
If this works, and without it, it doesn't then leave it here :)
Ahh yes, we have a line paginator which would be useful here. But it hasn't been ported over from the other bot yet. See https://github.com/python-discord/sir-lancebot/pull/555
Sorry for the history added, since I left the project for a bit I was about 190 commits on master behind and had to rebase.
fwiw, this is because the self.bot.http_session is a aiohttp.ClientSession() so the user agent is Python/3.8 aiohttp/3.7.3
Why is there a change in the
bot/utils/pagination.py? Wasn't that a part of the #555My mistake. I made another PR, but I accidentally did it on my master branch. I am on a feature branch on my local repository, and it brought the changes in the master branch over. Is there a way to separate the feature branch from the master branch?
Just remove it manually is the only solution I can think of run (since u had many important commits)
Issues trying to resolve conflicts with master, going to close this. Make a new branch and new PR to hopefully fix this.
From personal experience I have seen people struggle when just starting out with JSON due to having an invalid JSON form error. This was caused by an empty JSON file. This tag will help explain what is wrong in a normalised fashion.
This is the continuation of https://github.com/python-discord/bot/pull/1338
I think it's important to appreciate we're not talking about a true "leveling system" like you see in many other bots, with reputation and very visible "level" embeds. In fact, the core of the system is about having two tiers:
- A "new member" membership type, where some permissions are restricted to prevent accounts that just joined from spamming, raiding, or otherwise abusing our community in ways we don't want to see.
- A "regular member" membership type, which grants you those permiss...
What permissions would we include in this new membership level though? Originally it was designed to re-allow images in pygen, but I think it would be fair to say that it is a fast enough scrolling channel without images, and with those, it would be even worst.
I don't have a clear answer to that, but I was mainly reading the previous responses and wanted to make sure that this issue is not about having various reputation/status levels, if we even decide to do it.
I'm not sure we need such a system at the moment, but there may be areas to consider:
- Restrict new joins from posting images more broadly than just the pygen image ban.
- Disable external reactions/emojis for new joins everywhere
- Unify the voice verification with the "new mem...
My PR into cheat.sh was merged (https://github.com/chubin/cheat.sh/pull/280), so you shouldn't have to overwrite the headers now :). See #dev-contrib message
That is contingent on what moderators decide they need. You'll have to wait for a response from them.
Besides one small change, looks pretty good to me.
If repo_issue is an iterable, couldn't we just do this instead?
if not self.check_in_block(message, " ".join(repo_issue)):
GitHub Actions run 526205948 succeeded.
GitHub Actions run 526219402 succeeded.
GitHub Actions run 526223834 succeeded.
I understand this check is to prevent overwriting values that came from the config file. However, it got me thinking about a case in which classes have a conflicting custom path for an attribute. Should it be left up to the subclasses to check and handle such conflicts?
I don't see the benefit in storing this as an attribute. It could be determined and used directly in _check_undefined_entries, right?
Shouldn't this also be using custom paths for each attribute?
9b62d84 Add ability to automatically send issues if mat... - Shivansh-007
93b7d8e Merge branch 'master' into feature/link_issues - Shivansh-007
fbe073c Add in codeblock check - Shivansh-007
f87b3e9 Merge branch 'feature/link_issues' of https://g... - Shivansh-007
2dcdec0 Remove debug code and add docstrings. - Shivansh-007
Connected!
I'd much prefer you pass the list of emojis down to each function than to set it as a global here.
175e50a Bump @sentry/react from 6.0.2 to 6.0.3 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.3
[python-discord/forms-frontend] Pull request opened: #109 Bump @sentry/react from 6\.0\.2 to 6\.0\.3
Bumps @sentry/react from 6.0.2 to 6.0.3.
Release notes
Sourced from @sentry/react's releases.
6.0.3
[tracing] ref: feat(tracing): Add context update methods to Span and Transaction (#3192)
[node] ref: Make ExpressRequest not extend http.IncomingMessage anymore (#3211)
[browser] deps: Allow for LocalForage >=1.8.1 (#3205)
[ember] fix(ember): Fix location url for 'hash' location type (#3195)
[ember] fix(ember): Fix Ember to work with Embro...
ccaa443 Bump eslint from 7.18.0 to 7.19.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/eslint\-7\.19\.0
Bumps eslint from 7.18.0 to 7.19.0.
Release notes
Sourced from eslint's releases.
v7.19.0
ce7f061 Update: add shadowed variable loc to message in no-shadow (fixes #13646) (#13841) (t-mangoe)
c60e23f Update: fix let logic in for-in and for-of loops in no-extra-parens (#14011) (Milos Djermanovic)
d76e8f6 Fix: no-useless-rename invalid autofix with parenthesized identifiers (#14032) (Milos Djermanovic)
5800d92 Docs: Clarify stylistic rule update policy (#14...
ba53ddb Bump workbox-webpack-plugin from 6.0.2 to 6.1.0 - dependabot[bot]
Bumps workbox-webpack-plugin from 6.0.2 to 6.1.0.
Release notes
Sourced from workbox-webpack-plugin's releases.
Workbox v6.1.0 includes a number of new features, as well as an important fix for a bug that could have affected workbox-precaching behavior in earlier v6 releases.
๐ What's New?
setCatchHandler for individual Routes
The setCatchHandler() method on a Router allows you to configure "fallback" logic if any handler invoked by that ...
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/workbox\-webpack\-plugin\-6\.1\.0
2fcbd9e Bump @swc/core from 1.2.46 to 1.2.47 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/swc/core\-1\.2\.47
Bumps @swc/core from 1.2.46 to 1.2.47.
Commits
0d130f8 fix(bundler): Prevent hanging (#1369)
af25a88 fix(swc): Fix bugs for v1.2.47 (#1368)
ca417e9 feat(node-swc): Support windows ia32 arch (#1367)
4155822 Fix span of arrow expression with type params (#1365)
767f21e fix(bundler): Fix pass ordering (#1363)
78e79a7 feat(es/transforms/typescript): Strip out type-only namespaces (#1361)
93a1914 fix(es): Fixes for type checker (#1359)
947161b fix(bundler): ...
28e0033 Bump webpack from 5.18.0 to 5.19.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/webpack\-5\.19\.0
Bumps webpack from 5.18.0 to 5.19.0.
Release notes
Sourced from webpack's releases.
v5.19.0
Features
allow to set chunk name for exposes for ModuleFederationPlugin
Bugfixes
add a missing simicolon in runtime code
improve consistency of top level await with other implementations and the spec
make options for ProgressPlugin optional in typings
Performance
try to avoid unnecessary allocations
Commits
3f7573c 5.19.0
e66cd2f fix merge issue
827c52e...
set them as class variables instead?
Yeah, that seems like a good solution.
Connected!
Just 1 change outstanding. I've tested the rest of this locally and it seems good to me! Nice job :)
Must do: Add an except block for this raised error, like you have for dogs
While true, this statement may be unnecessarily technical for some subset of the intended audience, who already know that their JSON isn't working. The line that follows it will probably be enough.
An object is the dict-like structure that you can have in a JSON, yes? I think it would be easier for most of the intended readers to describe the valid structures in terms of their Python analogues, since the goal isn't to teach anyone anything about JSONs beyond how to debug this error.
Does this mean that the JSON in this code example, if saved exactly as-is in a .json file, would be valid because it has the extra line? That's my takeaway but that seems to conflict with what else is conveyed in this message.
Could do: Get the command prefix from constants.Client.prefix rather than hard coding it. If you decide to do this, please do it throughout the file, rather than just this line.
This is purely optional, as I don't think there are plans to change lancebot's prefix on the python server any time soon. It only really impacts us as the dev team :)
Just 1 optional change. I've tested these changes locally and they work nicely! This should definitely help us out in the help channels, good job! :)
I meant to approve this, as the only change outstanding is optional.
You might be looking at an old commit. In the latest one they are removed. It's purely list and object now.
JSON data must not be completely empty. It is recommended to have at least one of the following in your json:
No need to use a list when there are only two items. Furthermore, I don't like using the term "recommend" here. I suggest rephrasing it as "You probably want to use an object or an array."
The first sentence would likely get removed anyway based on my other suggestions, but just in case...
To resolve this issue, create one of the above values in your JSON. It is very common to use `{}` to make an object, which is similar to a dictionary in python.
That extra white line between the brackets is removed.
As stated earlier when it's COMPLETELY empty (like when it's just created) it's invalid. But this makes it have at least SOME content to make it valid.
Mayb there is a better way to word it? or maybe an extra note to add?
Outdated. Has more info on the description below it now.
In the current text below it, says it's common to use {} to make an object, which is similar to a dictionary in python. Should I move this line up?
GitHub Actions run 528444397 succeeded.
GitHub Actions run 528448114 succeeded.
GitHub Actions run 528454059 succeeded.
I would suggest wording more along these lines:
When creating a new JSON file you might run into the following error:
`JSONDecodeError: Expecting value: line 1 column 1 (char 0)`
This means that your `.json` *file* is completely empty, but it still needs to represent some kind of data, even if it's an empty container.
To solve the error, simply change the file to read `{}`. This will save an empty "object", which is very similar to what a dict is in Python. To learn more abou...
When you input 101 for the dog status codes, what does it output? A 404?
I think everything here can go on one line
You should probably have the URL as a constant and then format it within the async with block, as such:
async with self.bot.http_session.get(URL.format(quote_plus(" ".join(search_terms))) as response:
Make all of these constants.
[python-discord/branding] New branch created: valentines\-banner
The colour for the logo was not correct. I changed it to be the same as the avatar. Unfortunately the animated logo also uses the wrong colour, but I don't know how to easily fix that. The banner was exported from the SVG template I made a while ago, except for the hearts which were copied from the original banner.
The background is e062ca but should be d974bf
The shadow is b04a9c but should be ad5c98
The upper snake is ffccff but should be ffcbf4
It's not as simple as changing the colour palette for the GIF because there are slightly different shades of the colours used at the edges of shapes to blend layers together. This is what it looks like with this approach:

...
Connected!
When you input 101 for the dog status codes, what does it output? A 404?

Sorry, what I mean is when requesting from the url for a 101, what does it return?
Sorry, what I mean is when requesting from the url for a 101, what does it return?
My bad, any code that hasn't been implemented redirects to https://httpstatusdogs.com/404-not-found which is a page with a 404 image, but a bunch of other content. This is the case for 101, but also 999 as example.
I see, thank you for this information.
@ChrisLovering Mentioned the requested changes!
@Xithrius @ChrisLovering Requested changes mentioned!
I'd prefer if you call this everyone_role to better match the python-bot constants. Could you also remove the developer role from the list?
For the category check, you don't really have to fetch all the channels. You can instead check if ctx.channel.id == Categories.help_in_use
ae01b9d Bump @sentry/react from 6.0.2 to 6.0.4 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.4
[python-discord/forms-frontend] Pull request opened: #114 Bump @sentry/react from 6\.0\.2 to 6\.0\.4
Bumps @sentry/react from 6.0.2 to 6.0.4.
Release notes
Sourced from @sentry/react's releases.
6.0.4
[browser] fix: Don't break when function call context is undefined (#3222)
[tracing] fix: Set default sampling context data where startTransaction is called (#3210)
[tracing] fix: Remove stray sampling data tags (#3197)
[tracing] fix: Clear activeTransaction from the scope and always start idle timers (#3215)
[angular] ref: Add Angular 11 to ...
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.3
Connected!
hi, im hoping to start this as my first open source project, can i get it assigned to me?
Hey, thanks for your interest. I've assigned the issue to you. Be sure to check out the contributing guide on the website to learn how to setup the bot, and the CONTRIBUTING guide here to see the rules we expect you to follow.
If you have any questions, feel free to ask in the dev-contrib channel.
Description
Adding command such as int eval to Sir Lancebot
Reasoning
It often might be useful to have some form of evaluation command to debug certain things that can't necessarily be debug-able via logging or other methods
Proposed Implementation
Implementation could simply be porting the Internal cog of Python bot.
Would you like to implement this yourself?
- [ ] I'd ...
We have quite a few watchlist triggers, such as regexes and domains which will ping the moderators when someone post a message matching our denylist.
One of the issue we are currently facing is that it can be hard to know why we watch that particular word or domain. We already allow adding reasons when adding filters to our denylist, but we donโt display them when pinging the mods. We should totally do that!
7432f58 Add tag on float imprecision - wookie184
[python-discord/bot] New branch created: wookie184\-floats\-tag
Adds a tag on float imprecision

There seems to be a issue with the ImagePaginator
Page 3/6

Page 2/6

Issue
The image seems to stay there and isn't being removed on moving to the next page, there isn't any another `ImagePagin...
Connected!
After thinking about it more I've decided it's probably not worth the added complexity, the symbols pages of symbols I used when testing seem to be mostly fine and the whole text is always a few clicks away.
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.4
[forms-frontend] Branch dependabot/npm\_and\_yarn/swc/core\-1\.2\.47 was force-pushed to `5e5c21e`
b56c80e Bump webpack from 5.18.0 to 5.20.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/webpack\-5\.20\.0
Bumps webpack from 5.18.0 to 5.20.0.
Release notes
Sourced from webpack's releases.
v5.20.0
Features
add experiments.lazyCompilation.imports to disable lazy compilation of import()s
add experiments.lazyCompilation.test to allow custom selection of modules that should be lazy compiled
When using profile: true resp. --profile webpack will now print a summary of expensive modules or loaders
Bugfixes
fix that experiments.lazyCompilation.client now works ...
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-5\.19\.0
9ba93bc Bump @testing-library/react from 11.2.3 to 11.2.5 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/testing\-library/react\-11\.2\.5
Bumps @testing-library/react from 11.2.3 to 11.2.5.
Release notes
Sourced from @testing-library/react's releases.
v11.2.5
11.2.5 (2021-02-02)
Bug Fixes
render: add default type for Queries parameter (#871) (5576e6f)
v11.2.4
11.2.4 (2021-02-02)
Bug Fixes
render: Default to HTMLElement in returned container (#868) (81c2de9)
Commits
cbe020a docs: add solufa as a contributor (#872)
5576e6f fix(render): add default type for Quer...
it's going to be a long night
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/swc/core\-1\.2\.47
3b75a22 Revert "Updates License year" - HassanAbouelela
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/workbox\-webpack\-plugin\-6\.1\.0
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/eslint\-7\.19\.0
[python-discord/forms-frontend] branch deleted: repo\-cleanup
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/testing\-library/react\-11\.2\.5
[forms-frontend] Branch dependabot/npm\_and\_yarn/webpack\-5\.20\.0 was force-pushed to `09ae236`
b0a522d Bump @typescript-eslint/parser from 4.14.1 to 4... - dependabot[bot]
Bumps @typescript-eslint/parser from 4.14.1 to 4.14.2.
Release notes
Sourced from @typescript-eslint/parser's releases.
v4.14.2
4.14.2 (2021-02-01)
Bug Fixes
eslint-plugin: [consistent-type-imports] incorrect handling of computed property type signatures (#2990) (58f2655), closes #2989
scope-manager: correctly reference generic parameters when decorator metadata is enabled (#2975) (7695ef3), closes #2972
...
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/typescript\-eslint/parser\-4\.14\.2
fbc7fb9 Bump @typescript-eslint/eslint-plugin from 4.14... - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.2
Bumps @typescript-eslint/eslint-plugin from 4.14.1 to 4.14.2.
Release notes
Sourced from @typescript-eslint/eslint-plugin's releases.
v4.14.2
4.14.2 (2021-02-01)
Bug Fixes
eslint-plugin: [consistent-type-imports] incorrect handling of computed property type signatures (#2990) (58f2655), closes #2989
scope-manager: correctly reference generic parameters when decorator metadata is enabled (#2975) (7695...
922cee7 Bump @testing-library/user-event from 12.6.2 to... - dependabot[bot]
Bumps @testing-library/user-event from 12.6.2 to 12.6.3.
Release notes
Sourced from @testing-library/user-event's releases.
v12.6.3
12.6.3 (2021-02-01)
Bug Fixes
add isInstanceOfElement helper (#552) (b4330c4)
Commits
b4330c4 fix: add isInstanceOfElement helper (#552)
See full diff in compare view
[
Notes
now you can use webpack.config.mjs and webpack.config.js with { "type": "module" } in package.json
you can avoid using the cross-env package:
Before:
{
"scripts": {
"build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
}
}
Now (you ca...
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.2
[forms-frontend] Branch dependabot/npm\_and\_yarn/webpack\-5\.20\.0 was force-pushed to `b1a5eb7`
[forms-frontend] Branch dependabot/npm\_and\_yarn/typescript\-eslint/parser\-4\.14\.2 was force-pushed to `ac3df81`
[forms-frontend] Branch dependabot/npm\_and\_yarn/testing\-library/user\-event\-12\.6\.3 was force-pushed to `0052dc0`
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-5\.20\.0
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/testing\-library/user\-event\-12\.6\.3
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/typescript\-eslint/parser\-4\.14\.2
[forms-frontend] Branch dependabot/npm\_and\_yarn/webpack\-cli\-4\.5\.0 was force-pushed to `57c6473`
[forms-frontend] Branch dependabot/npm\_and\_yarn/webpack\-cli\-4\.5\.0 was force-pushed to `cca56e3`
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-cli\-4\.5\.0
This all looks good, and works locally.
One thing I'd note for development is maybe the usage of the script/protoc.sh and a note about how the config parsing actually works/should be modified.
Other than that, thumbs up from me!
I think it's fine, but maybe we should make it fall back to fakeredis if there's no redis? and log a warning if redis was desired.
Regardless of the approach, making the error more meaningful is desirable.
One thing I'd note for development is maybe the usage of the script/protoc.sh
I plan to replace the script with on written in Python when I do #73. I'll document things better at that point.
and a note about how the config parsing actually works/should be modified.
Good point. I should document the config format, which is really just linking to the nsjail readme and maybe the protobuf file.
1ca4938 Add protobuf as a dependency - MarkKoz
90f0359 Compile the NsJail config protobuf into Python ... - MarkKoz
0f67e36 Read the nsjail config into a protobuf Message ... - MarkKoz
8528ab0 Read cgroup values from the config file - MarkKoz
6e88211 Read the Python path and args from the config file - MarkKoz
[python-discord/snekbox] branch deleted: feat/nsjail/74/config
Can we also give an example where there are represented exactly:
# This is because 0.125 is precisely 1/8, or 1/(2^3)
>>> format(0.125, '.25f')
'0.1250000000000000000000000'
Then the math.isclose() for Floats Equality Testing:
>>> x = 0.1 + 0.1 + 0.1
>>> y = 0.3
>>> x == y
False
>>> from math import isclose
>>> x = 0.0000001
>>> y = 0.0000002
>>>
>>> a = 123456789.01
>>> b = 123456789.02
>>>
>>> print('x = y:', isclose(x, y, abs_tol=0.0001, rel_tol=0.01)...
bd22b8a Bump @types/react from 17.0.0 to 17.0.1 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/types/react\-17\.0\.1
87012d5 Bump starlette from 0.14.1 to 0.14.2 - dependabot[bot]
[python-discord/forms-backend] New branch created: dependabot/pip/starlette\-0\.14\.2
Bumps starlette from 0.14.1 to 0.14.2.
Release notes
Sourced from starlette's releases.
Version 0.14.2
Fixed
Fixed ServerErrorMiddleware compatibility with Python 3.9.1/3.8.7 when debug mode is enabled - #1132.
Fixed unclosed socket ResourceWarnings when using the TestClient with WebSocket endpoints - #1132.
Improved detection of async endpoints wrapped in functools.partial on Python 3.8+ - #1106.
Changelog
Sourced from starlette's changelog.
0.1...
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/types/react\-17\.0\.1
The tag is already fairly long, and our aim is to try and keep them fairly short so i've only put in what I think is most important, and linked to other things. Regarding your three points:
- it's explained at the start of the first link, https://docs.python.org/3/tutorial/floatingpoint.html, much more clearly then I could if I tried to fit it in.
- I think the tag would be too big with this explained properly, although I think it could help to add a line like `You can also check if two...
The tag is already fairly long, and our aim is to try and keep them fairly short so i've only put in what I think is most important, and linked to other things. Regarding your three points:
- it's explained at the start of the first link, https://docs.python.org/3/tutorial/floatingpoint.html, much more clearly then I could if I tried to fit it in.
- I think the tag would be too big with this explained properly, although I think it could help to add a line like `You can also chec...
9c1e5fd Mention math.isclose and add an example - wookie184
Updated, now looks like this

This user was removed from our community.
Another person will be assigned to take over this code soon.
Thanks! Looks Good To Me!
[python-discord/bot] branch deleted: wookie184\-floats\-tag
This user was removed from our community.
Another person will be assigned to take over this code soon, but in a new PR.
Connected!
Greetings, human @ChiliPy.
I approve of this idea of creating a discord.py tag for attaching an image within an embed, but I fear it is not giving a proper explanation of what's going on.
I'd suggest including what's in the docs, and maybe adding some information on top of it, if you'd like. Doesn't have to be a clone of the doc's description of what's going on, it can be in your own words.
We can shuffle all this around in a PR if you decide to make one, or if you'd prefer someone ...
WEE WOO WEE WOO IT'S A DUPE OF #150
Discussion superseded by python-discord/meta#86
In consensus, we have decided that we don't want automatic renaming of the lounge name.