[python-discord/snekbox] branch deleted: feat/deps/site\-isolation
#dev-log
1 messages ยท Page 63 of 1
#87 added instructions for how to do this. It's proven to be a viable solution since we do something similar in production now to install the packages we want (#87 no longer puts our packages in the Docker image).
Thanks for following up with an issue. I initially suspected this was due to the processes sharing the same cgroup, but this is not the case. Each forked process gets its own cgroup which is independent of the parent process. This is fundamentally how cgroup hierarchies work.
I tried running one of your commands 5 times simultaneously and none of the processes terminated. Below you can see all the running jobs in my shell:
[1] Running nsjail --config /snekbox/conf...
I've decided to move it to its own module and renamed it to BatchParser as it doesn't really do any caching on its own now.
Moved the functions that only handle the bs4 HTML to the html module and left the ones that handle do the conversions etc. in parsing
Connected!
Sure thing, I will work on this then
Connected!
Abstract
When the development mode is enabled, the bot should wait for the website to be up before continuing the startup process.
Rationale
With the current setup using Docker Compose, the bot will start making requests to the website before the website even starts accepting requests, which will cause the bot to fail to start.
Specification
We can have a loop trying to ping the server URL every second for a short duration before moving on. Note that the bot should fail ...
7b419e7 Fixes Subtle Alignment Issues - HassanAbouelela
I agree that a system should be put in place to create an embed more easily, but I think there are some other options to consider. For instance, adding specified colors could be done with a new class of colors, rather than an entire helper function. As for the trash icon, I think that is where an embed helper could be useful. If we do not have any use cases other than that, the question is if it is worth creating an entirely new system for that, as of now.
Of course, I haven't done any w...
I can see where you're coming from. Creating embeds that specify the color out of a set of colors is already an option today, as we have color constants in constants.py. However, it seems like you mean that we could add another layer of abstraction, similar to this:
Color constants
embed_colors = {
"error": constants.colors.soft_red,
"info": constants.colors.yellow,
}
This would indeed allow us to achieve something similar to what an embed helper would do, reg...
[forms-frontend] Branch renovate/webpack\-5\.x was force-pushed to `e5aa82e`
@MrHemlock I think it's all done as requested
Connected!
Connected!
Connected!
714f16b Add protobuf as a dependency - MarkKoz
142e9e2 Compile the NsJail config protobuf into Python ... - MarkKoz
1de13b0 Read the nsjail config into a protobuf Message ... - MarkKoz
c8a4618 Read cgroup values from the config file - MarkKoz
8f76c5f Read the Python path and args from the config file - MarkKoz
[python-discord/snekbox] New branch created: feat/nsjail/74/config
This all looks good. Everything works perfect locally.
2e51515 Annihilate all traces of Developer and Unverifi... - mbaruh
[python-discord/bot] New branch created: mbaruh/developerectomy
[python-discord/snekbox] branch deleted: feat/deps/63/pep8\-naming
Surgically remove anything related to the Developer and Unverified roles using a sledgehammer.
Spectacular. Let's terminate with extreme prejudice.
The docstring was outdated, updated it to say that it's truncated to fit in a discord message, which is ensured in the parsing functions using the constants at the top
Connected!
Connected!
If I understood how it function correctly, it shouldn't be a problem, the task cancellations for the BatchParser also work with the assumption that it'll get cancelled before anything else can happen in the coro
That does sound like a good idea, but I'm not sure about the implementation. Calling this again is not viable as we then don't have access to the rendered length and it'll probably need separate handling for each type of tag that we'll want to handle recursively. Maybe making a class for this to share the state and the methods would be the best.
@MarkKoz I believe everything from you review should be addressed now
Fixes #74
Protobuf is used to parse the config because it's the proper way to do it and it's less maintenance than a custom parser. A Python module is generated from the protoc tool. There's a simple shell script that gets the config.proto from NsJail's GitHub and invokes protoc. The Python module only needs to be re-generated when NsJail is updated.
I realise more shell scripts go against #73, but I plan to address that issue in a separate PR. It'll also address the NsJail versi...
@Numerlor Thanks. I intended to review earlier but put it off since it's so much and so difficult to review. I'll try to get to it within a few days. Please nag me about it if I forget.
[python-discord/forms-frontend] New branch created: renovate/swc\-core\-1\.x
8972281 Update dependency @swc/core to v1.2.44 - renovate-bot
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @swc/core (source) | 1.2.43 -> 1.2.44 |
[ |
running !e import pandas results in an error message:
Traceback (most recent call last):
File "/snekbox/user_base/lib/python3.9/site-packages/pandas/__init__.py", line 29, in
from pandas._libs import hashtable as _hashtable, lib as _lib, tslib as _tslib
File "/snekbox/user_base/lib/python3.9/site-packages/pandas/_libs/__init__.py", line 13, in
from pandas._libs.interval import ...
I can't understand why the removing reaction part isn't working. It sends the message just fine, but doesn't remove the reaction. @Akarys42 mentioned something about race conditions but I can't find any.
However, we should probably open a pull request that will turn these two embeds into one.
I'm not sure if it would look much better as one embed, since it may be a bit messy. Having this as 2 different embeds separates the subjects into an "error" and "help" field, may not be the best when put together.
Thoughts, @MarkKoz?
cd284e6 Update typescript-eslint monorepo to v4.13.0 - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/typescript\-eslint\-monorepo
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @typescript-eslint/eslint-plugin | 4.12.0 -> 4.13.0 |
[
100x100

50x50
.
This is just one aspect of the issue. I believe there ar...
You need to cache the users in redis and re-schedule tasks to revoke permissions when the bot restarts or the cog reloads (cause you'll cancel tasks when the cog unloads). If you need some examples of how to use redis, look at the silence command or the help channel system. I can't think of any simpler examples. Let someone know if you still need help understanding redis.
Default values are only computed once. That happens when the function is defined. Therefore, now() will not actually be the time at which the command is invoked, but the time at which the function was defined. The only practical solution is to calculate this within the function rather than as a default value.
They're no longer used anywhere.
Add a newline for readability.
Alternatively, an ISO 8601 timestamp can be provided for the duration.
088a2f8 Update dependency webpack to v5.13.0 - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/webpack\-5\.x
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| webpack | 5.12.3 -> 5.13.0 |
[![adopt... |
Connected!
Then keep the message around through redis, until the user requests it or some cleanup of stale messages is done.
I don't agree with this. It should be simpler: if they have DMs enabled, send them their message. If not, too bad. Writing a command and caching messages seems overcomplicated for the amount of use I foresee the feature receiving.
The implementation for that shouldn't have much complexity, just setting/getting and some background to delete the stale data, and could possi...
Connected!
Connected!
As of now the notification of the pinned message doesn't make much noise, and I too don't feel the need for it to be deleted. In my mind it serves an important purpose, of sorts.
It is partially bold, which can act as a separator between a large question and the start of the discussion (without having to look at the pins).
@scragly If you haven't thought about this already, a nickname (if it exists) should be included at the top of the embed.
3c635d6 Update dependency @testing-library/jest-dom to ... - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/testing\-library\-jest\-dom\-5\.x
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @testing-library/jest-dom | 5.11.8 -> 5.11.9 |
[ wrapper's globals. The only exception is when a global is being used by wrapper i.e. it's in co_names.
Why does the file extension need to be removed? Do inventories inconsistently include return suffix?
Wouldn't that force the gets to wait on each other if we lock them like every command that does a refresh is?
We don't care about the gets running concurrently, but running it while refreshing can lead to a valid symbol being temporarily unavailable
Yeah, you're right. A lock isn't the right kind of synchronisation primitive for this since there's no way to make this function avoid locking itself.
eeabb9f Makes Components More Accessible - HassanAbouelela
[forms-frontend] Branch preview\-form\-rendering was force-pushed to `0d55676`
We don't need to run this to keep the cog functional, but making sure to cancel the expensive queue parsing and then the other tasks makes reloading a bit nicer
The extension doesn't have to be removed, but it is unnecessary to have it as a part of the key as all the urls will either end with .html or a slash; as remove_suffix will be a builtin method in 3.9 I decided to remove that part
9bd6f92 Update dependency @sentry/react to v5.30.0 - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/sentry\-monorepo
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @sentry/react | 5.29.2 -> 5.30.0 |
[ |
Description
Removed explicit mentioned of env vars from docker compose, replaced with an env_file
Reasoning
This means users of the docker-compose workflow won't need to worry about accidentally commiting their docker-compose file which contains all their secrets!
This will pull all of the env vars from the .env file in the project root dir
Additional Details
We should probably update the contributing wiki with these changes (although I couldn't find anywhere that m...
Reviewing my own code a few days after writing.
I'm not sure if its 100% obvious what this return is doing, this might warrant a comment to explain this is used to stop the bg task now that we can't renew/unloaded the cog
dd0dff2 Fixes Range On All Screens - HassanAbouelela
I am wondering if its worth pulling this out into another function for ease of parsing the code?
1dd77b9 Update dependency webpack-dev-server to v3.11.2 - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/webpack\-dev\-server\-3\.x
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| webpack-dev-server | 3.11.1 -> 3.11.2 |
[ |
Some alternatives to this approach would be:
- Explicitly list all env vars in the
enviromentsection ofdocker-compose.ymlso that they get pulled into the container from.env - Tell users to put their
.envfile inside./bot/(So it get copied to the container) and use dotenv in contants.py to load from there
Is what I did in https://github.com/python-discord/bot/pull/1028/commits/08b793024f271de009aab2391cd85576af5313cf fine? I feel like the error message may get a bit long, so should I split it up into two lines instead?
Mainly just the use of temporary lists, that could be generators or have it's values calculated on the fly.
self.checking_messages = asyncio.Lock()
for data in (json.loads(user_data) for _, user_data in await self.messages.items()):
Making it a generator should save a bit of memory as it calculates on the fly. Given this loop can return i find it wasteful to generate a whole list of data, to discard it later.
Alternatively you can just json.loads the user_date inside the loop, and iterate the values instead
for _, user_data in await self.messages.items():
data = json.loads(user_data)
for message_id, user_data in await self.messages.items():
msg = await channel.fetch_message(message_id)
score = 0
for reaction in msg.reactions:
reaction_value = EMOJIS_VAL.get(reaction.emoji, 0) # get the value of the emoji else 0
score += reaction_value * (reaction.count - 1) # multiply by the num of reactions
# subtract one, since one reaction was d...
46b357b Makes Select More Accessible - HassanAbouelela
I think it's a little overkill to define an error module for a single error, but it's honestly fine so don't worry about changing it.
The daemon and startup tasks both need to be cancelled when the cog unloads.
We need to rename this cog to Spooky Mane 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!
d23939e Update Font Awesome - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/font\-awesome
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @fortawesome/fontawesome-svg-core (source) | 1.2.32 -> 1.2.34 |
[
With that change, it seems the GitHub r...
I remember we ran into this issue a long time ago, before this was a separate project. Turns out it was fixed in https://github.com/aio-libs/aioredis/pull/846, but a new version of aioredis has not been released yet. Just wanted to give a heads up.
That shouldn't be a problem, the event is there to prevent users from getting the unavailable symbol response (doc_symbols empty because of an ongoing refresh for example) when the symbol may be available in a short time after a refresh.
I've had to redesign this a bit in e5b2b725f50f940bbe92d3ff461232ad024935c3 as I realized the method didn't actually work for the subsequent scheduled updates because of the shared task id.
[forms-frontend] Branch renovate/webpack\-5\.x was force-pushed to `78ecf6e`
I'm looking at this now, it should be possible by checking the intersection of wrapper's co_names and the annotations.
What do you think about raising an error that can optionally be turned into a warning if there's a conflict? I'm not sure how discoverable it'd be in tests for the devs when developing a command and it completely breaks the parameter that uses the conflicting global
Detecting it during automated testing in CI is more ideal than getting an error during runtime. A test would have to get all defined commands (can at least filter by ones that have this decorator) and do some magic to detect the conflict for each one.
It will cause somewhat cryptic errors at runtime if the command is used so I'm not sure if I agree here.
You think a cryptic runtime error is better than a clear error during CI which would prevent the buggy code from even making it into production?
Is there a good way of checking what the functions are decorated with without parsing their source or setting some attribute on the objects?
The current error is cryptic, which would be solved by a better runtime error/warning before it's reached. The test will prevent buggy code getting into production but when developing the tests have to be ran manually which probably is not the first course of action after getting a traceback while developing something new.
If discord.py fails to resolve the annotation in some way the error stops the bot's execution and looks like this https://paste.fuelrats.com/dumemageri.tex which doesn't t...
I don't think so. After all, the whole point of wrapping it is to make it indistinguishable. Anyway, I shouldn't impose this on you now. If you can't find a solution now, it can be postponed for a future PR. If you can generate a good runtime warning, then that's better than nothing for now.
[python-discord/logcord] New branch created: api
Addressed it in e86e9f921a4bbbe42a5fb6fd8486425f11af62cf, there may be some edge case false positives to the error because of what co_names stores but the error should clear up what's going on if a conflict occurs.
I've removed this whole portion as in case of conflicts that are relevant to the user they'll either get an error or a warning
Description
This PR creates the API for Logcord.
Endpoints
GET /api/message-logsPOST /api/message-logs
Models
AttachmentEmbedMessageMessageLogSticker
After careful review, I am approving this PR. Nice work!
This message is completely accurate and f1re totally didn't tell me merge his PR.
[python-discord/logcord] branch deleted: api
I've realized that this won't help if there are multiple coros suspended here, as one can set the event while the other is still waiting leading to the issue this tires to prevent.
Does something exist in the stdlib that'd allow us to count the event clears and only let the refresh to take control when every coro calls set or an equivalent?
21be1ce Polyfills Smooth Scroll - HassanAbouelela
00d4a0d Fixes Select On Mobile - HassanAbouelela
[forms-frontend] Branch preview\-form\-rendering was force-pushed to `398d11d`
2cba09f Fixes Select On Mobile - HassanAbouelela
5d67e34 Fixes Select On Mobile - HassanAbouelela
22b1c05 Fixes Select On Mobile - HassanAbouelela
b95a90b Fixes Select On Mobile - HassanAbouelela
8e6c790 Fixes Select On Mobile - HassanAbouelela
1631653 Fixes Select On Mobile - HassanAbouelela
fccd93e Reverts Select Changes - HassanAbouelela
Relevant Issues
Closes #533 .
Description
The solution proposed by OP was used. The LinePaginator class from python-discord bot was ported over.
Reasoning
Since OP seems like a credible person, their solution has been implemented. Moreover, I have checked through the code and ensured that it is compatible with sir-lancebot.
Screenshots

...
Uhhh Spooky Mane Rate?
[forms-frontend] Branch renovate/swc\-core\-1\.x was force-pushed to `6d083f6`
5c0d458 Update dependency @types/node to v14.14.21 - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/node\-14\.x
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @types/node | 14.14.20 -> 14.14.21 |
[ |
Since the scheduler shields the scheduled coroutine, I believe the following code will work. It's simpler than keeping track of attempts yourself.
Since refresh_inventory cancels all tasks at the start, I don't think it'd be possible for this to cancel anything but itself. There may be an edge case where the task scheduled by an older invocation of refresh_inventory takes a (very) long time to cancel and the new refresh_inventory invocation manages to get far enough to schedule a ne...
ca4e21b (Sync Cog Tests, discord.py 1.3.x Migrations): ... - ks129
56edfa3 (Docs, discord.py 1.3.x Migrations): Replaced ... - ks129 [c30e5b1](https://github.com/python-discord/bot/commit/c30e5b16d48aea5bef792de9186e73d5df4a94e4) (Eval, discord.py 1.3.x Migrations): Replaced ... - ks129
f4a95d9 (Extensions, discord.py 1.3.x Migrations): Repl... - ks129
7b9e6b0 (Off-Topic Names, discord.py 1.3.x Migrations):... - ks129
Which variable are you talking about? data or msg? Both are being used, but msg is being used only once.
9192257 Update dependency spectree to ^0.4.0 - renovate-bot
[python-discord/forms-backend] New branch created: renovate/spectree\-0\.x
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| spectree | dependencies | minor | ^0.3.16 -> ^0.4.0 |
Release Notes
0b01001001/spectree
v0.4.0
[Compare Source](https://togithub.com/0b01001001/spectree/compare/v0.3.16...v...
[python-discord/forms-frontend] branch deleted: renovate/node\-14\.x
[python-discord/forms-frontend] branch deleted: renovate/webpack\-dev\-server\-3\.x
GIven the stale-ness of the PR as well as how outdated the branch is, I'm opting for closing this PR and restart on a fresh one when I'm not haunted by real-life issues.
Hi, I am interested in working on this.
[forms-frontend] Branch renovate/swc\-core\-1\.x was force-pushed to `7d4d771`
Connected!
Description
When using a command in a non-whitelisted channel, something like the following will appear.

It would be nice to have a single preferred channel for bot commands, instead of listing all available channels.
Reasoning
The current embed is very long, and users have received embeds like this one in response as well:
.
Did you:
- [x] Join the Python Discord Community?
- [x] If dependencies have been added or updated, run
pipenv lock? - [x] Lint your code (
pipenv run lint)?
Adds a new general voice and text channel to the default config, and renames general and help channels to match the new configuration in the config file and constants file. [Announcment with details](#changelog message).
Currently, if a moderator issues a warning to a user in a channel that that user can't see (usually a moderator-only channel), and that user happens to not receive DMs from non-friends, the user won't know that they've been warned and the point of the warning is effectively missed.
In this circumstance, the warning should not be entered into the database and the moderator should be informed that the warning has failed.
This change should not be made until @scragly's proposed changes to ...
[forms-frontend] Branch renovate/webpack\-5\.x was force-pushed to `7864c60`
Currently, if we believe that two or more accounts belong to the same person, we issue a note infraction for each account stating which other account IDs we believe to belong to that person, which requires a series of relatively similar commands that are ripe for error. It also makes it more difficult to respond to incidents pertaining to such user.
I think we need some way of documenting which accounts we believe belong to the same person and why we believe this, as well as the option of ...
[python-discord/forms-frontend] branch deleted: renovate/webpack\-5\.x
[python-discord/forms-frontend] branch deleted: renovate/swc\-core\-1\.x
[python-discord/forms-frontend] branch deleted: renovate/sentry\-monorepo
[python-discord/forms-frontend] branch deleted: renovate/font\-awesome
a842b64 Restyle Select - HassanAbouelela
We had a small discussion in #mods-tools a couple of days ago, and our general consensus was that we don't need something as complicated as creating a brand new infraction type, we could simply have an !alts [greedy user...] [reason] command that will run an !note user1 Alt of user2, user3,.... Reason for each user to avoid having to type that our manually.
That said, maybe we do want something more complicated? What does others think about that?
In my opinion, we don't need something more complex. Maybe some would want at the top of an infraction listing something like Alts: user1, user2,..., but at this time I don't think it's necessary. Most users who have alt accounts don't have many infractions, as far as I can remember.
we could simply have an
!alts [greedy user...] [reason]command that will run an!note user1 Alt of user2, user3,.... Reason
Having the alt command kind of act like an alias would work great in my o...
@HassanAbouelela I don't see why not. Would you still like to do this?
I also think that it would be better for a user just to grab a help channel. Messing up environment variables can get confusing for a user, so it may be best just to guide them through the process, carefully.
So if the warning or other infraction type fails, we can redo it in a public channel?
Without slash commands, this utility would require many inputs for a moderator. Including the user ID, how many days, messages to iterate through to remove problematic user's messages (if not purging), and reason (already optional).
Until we can utilize slash commands more, this issue will not be relevant.
@Xithrius I'm only proposing a change to warning infractions, since the warning message is the point of that infraction.
I don't think there's currently a solution for permission-reducing infractions (mutes, bans, etc.). If someone has DMs turned off, I suppose part of the trade-off they're making is that they lose the opportunity to know without inquiring why their permissions were reduced.
Understandable. Good idea you got here, I too think that this should be implemented once #1189 is completed.
[python-discord/sir-lancebot] branch deleted: add\_voice\_chat
Connected!
661d10e Update dependency eslint to v7.18.0 - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/eslint\-7\.x
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| eslint (source) | 7.17.0 -> 7.18.0 |
[ |
efa8953 Update dependency husky to v4.3.8 - renovate-bot
[python-discord/forms-frontend] New branch created: renovate/husky\-4\.x
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| husky | 4.3.7 -> 4.3.8 |
[, we need to add a check to make sure that messages from channels not viewable by Helpers can't be relayed to the duck pond.
This can be done by adding a new check function in bot/bot/exts/fun/duck_pond.py and using it in on_raw_reaction_add().
Abstract
We should have an antispam rule filtering small burst of images.
Rationale
Currently, when a user posts 4 images in less than 10 seconds without any comment, the duplicates rule will trigger. While we still want to be informed when many images are posted, having the duplicates rule trigger doesn't make much sense. Besides, if different message content is given for each image, it will only trigger burst if more than 9 messages are sent in 10 seconds.
Specifi...
Invocation
!pin [channel]
Fetches the n'th pinned message from channel, in an embed.
Optional argument channel defaults to the channel in which the command was invoked.
Rationale
As tags are generally not library specific, this command could be used as an alternative to get common issues/popular guides that are kept as pinned messages in topical channels. This would let us make tags more general, while also getting the ease of access of a tag-like command.
Moreover, regu...
[python-discord/bot] New branch created: trashcan\-mods
- Add an override for moderation roles in
wait_for_deletion5e93396e1655715187d176d1cfdd32aa54616a1a - Restrict the paginator usage to
ctx.authorby default and add an override for mods c25929cfef967a87fda96c2d0b26dcaf74dc5f77
@Xithrius Board is now moved to embed.
36da2ae Show All Options - HassanAbouelela
"{opponent}, {requester} wants to play Tic-Tac-Toe against you. React to this message with "
Maybe time for a game / time for the game reads better here?
Not sure about it. I don't know these articles stuff well.
Maybe , it's your turn! React with an emoji to take your go reads better?
399511a Auto Blur On Submission - HassanAbouelela
f":tada: {self.current} has won this game! :tada:"
await self.ctx.send("It's a DRAW!")
Maybe {user} won this game! even better? Has doesn't sound well in this context.
Yea, that sounds good too.
GitHub Actions run 490439595 succeeded.
GitHub Actions run 490439594 succeeded.
GitHub Actions run 490441544 failed.
I'm not sure that we should be worrying at people being angry for us when we DM them that they've opened a help channel.
If it was an unprompted DM, sure, we could think into whether it's worth the annoyance or not, but they are using our system and I think that the many people who will benefit from being able to jump back to help sessions greatly outweighs those who may be slightly agitated by DMs (and even then, they can disable them and things still work fine).
If we truly want to ke...
@Xithrius Board is now moved to embed.
Alright. I'll test it myself as soon as you mark this as ready for a review.
@Xithrius What do you mean? This isn't Draft PR.
Sorry, miscommunication I my end, I meant whenever you wanted me to review (marking it ready for me).
[python-discord/forms-backend] branch deleted: renovate/spectree\-0\.x
[python-discord/forms-frontend] branch deleted: renovate/husky\-4\.x
[python-discord/forms-frontend] branch deleted: renovate/eslint\-7\.x
[python-discord/forms-frontend] branch deleted: renovate/testing\-library\-jest\-dom\-5\.x
[python-discord/forms-frontend] branch deleted: renovate/typescript\-eslint\-monorepo
998fbdf Updates Transition Speed - HassanAbouelela
I feel like the is_auto param name doesn't clearly explain its purpose, maybe something like invoked_automatically would be better; seems to be fine otherwise.
Fantastic work! CSS looks good, though I'm not the best at it. Some minor comments.
Not sure the leading underscore is necessary here. It's only really relevant in languages where everything is exported.
const require_options: Array<QuestionType> = [
Should we render this if we don't have a description passed?
I think this should work:
{description ? <h1 className="description">{description}</h1> : null}
4313e12 Removes Leading Underscore From Variables - HassanAbouelela
[forms-frontend] Branch form\-rendering was force-pushed to `a084f79`
I would agree. This was originally done to comply with the default eslint indent rules, but I've gone ahead and updated them.
1a2a87a Centers Title With No Description - HassanAbouelela
[python-discord/bot] branch deleted: remove\-unnomiation\-reason
At the current moment when a user deletes a message that the bot has not cached, it outputs a simple message embed including the channel and message ID, which is effectively all the discord API gives us in a message deletion context. However, now that we have Metricity running we are able to cross-check deleted messages with it.
While it's unnecessary to check it for every message, we could use this to get the original author of messages that we aren't provided one, and from that solve th...
Connected!
[python-discord/bot] branch deleted: feat/F4zi/CommandSuggestion
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
Connected!
Connected!
I don't think this line should be multiple when every other line in this file has await ctx.send() as one line.
await ctx.send(f"{game.winner} :trophy: vs {game.loser}")
[python-discord/logcord] New branch created: ci
- Added CODEOWNERS
- Added workflows to lint, build, and push to GHCR
Relevant Issues
Closes #127, and responds to #97
Description
Based on the original closed PR, this current version also uses the Markov model to give the user a valentines-themed poem. This time, the user is allowed to create their own rhyme scheme. For example, abab for a simple quatrain, or even using a pre-existing scheme such as the shakespearean sonnet (abab cdcd efef gg).
The cache system is improved by making the code more pythonic. A code decorator is added to the...
With the introduction of the new command suggestions, some users noticed that suggested tags could be sent twice (or could cause an unhandled error on the bot). [Context here](#community-meta message).
This is due to the error handler not returning if it sent a tag match, and instead reinvoking the tag. The error is caused by not checking for none on the suggestion. This PR addresses both issues.
Connected!
GitHub Actions run 491197581 succeeded.
GitHub Actions run 491206251 failed.
GitHub Actions run 491206251 failed.
GitHub Actions run 491212729 succeeded.
Sentry Issue: BOT-KQ
ZeroDivisionError: division by zero
(3 additional frame(s) were not displayed)
...
File "bot/exts/info/tags.py", line 223, in display_tag
temp_founds = self._get_tag(tag_name)
File "bot/exts/info/tags.py", line 109, in _get_tag
return self._get_suggestions(tag_name)
File "bot/exts/info/tags.py", line 87, in _get_suggestions
scores: Dict[str, int] = {
F...
This seems pretty obvious when looking at logging.
This does one thing and should be in one function.
We would have to copy the list at every iteration to make sure that the child node name doesn't persist between each iteration. Do you think that's more readable?
I personally prefer to keep it explicit, despite the small runtime cost.
I totally forgot to change this one, although I'm not sure what to use here. The error is that you can't set an attribute on the root node because it doesn't make much sense with our project, but none of our exceptions really fit here. Do we want to use a new exception or one from the stdlib?
Sadly I'm not 100% sure if we can work around that without having to walk the whole YAML tree every time. Do you have any other idea?
This will be raised if an attribute is defined through a typehint with any (concrete?) value and the config doesn't provide a value either. I'm no good English speaker, what word could fit nicely here?
Currently, users get a message like this one when they get an infraction:

For infractions other than bans (regardless of duration), the embed should tell them to use the ModMail bot if they want to discuss or ask questions about the infraction. We might also except Superstarify infractions.
I'm not sure if this should await the redesign of the infraction system or if we can...
[python-discord/forms-frontend] branch deleted: preview\-form\-rendering
Connected!
There is also issue #539 which is similar to this. I see two good options either we send the user to the designated bot channel, or list all of the channels that they have access to post in.
I prefer the former of the two, as I agree this embed is quite big, and with it disappearing after 7.5 seconds we want it to be short so the user has time to read it.
Either implementation we decide on, I'd like to work on this if possible :)
Closes #1362.
An error occurs in the error handler when trying to find suggestions for tags. This is due to the way the tag search command is invoked directly through ctx.invoke, which bypasses converter checks (reference), which allows the suggestor to pass in an invalid argument such as !! to the get tag function.
This functionality is redundant, as the code right before the sug...
@Anubhav1603 will you be finishing off this feature?
I personally would like to see it get implemented.
Can confirm this works well after testing it.
Since #329 is closed now, I presume this can be worked on?
If so, I don't mind working through all the logging calls and making sure they match up to the definitions :)
Connected!
That sounds good when the default overrides are used, as the channel the users should be trying commands in really is only the bot commands channel; but in case of overrides I think we should display all the allowed channels (or the difference if it's a superset of the default) as there may be other channels intended as the "commands" channel. I don't think there is and will be such a case but the override could also forbid the default bot command channels
@kosayoda we will be able to merge after you fix bot building errors.
The code looks good to me, and I'm really into this new embed.
But should we have defcon days as None instead of -?
Ah yea agreed. If there's an override, we should list all override channels the user has access to. For the case when there aren't any overrides, do we just want to hardcode the bot to always point to community_bot_commands?
1f53c5d Bump flake8-annotations from 2.4.1 to 2.5.0 - dependabot[bot]
[python-discord/forms-backend] New branch created: dependabot/pip/flake8\-annotations\-2\.5\.0
Bumps flake8-annotations from 2.4.1 to 2.5.0.
Release notes
Sourced from flake8-annotations's releases.
Release v2.5.0
Changelog
[v2.5.0]
Added
#103 add --allow-untyped-nested to suppress all errors from dynamically typted nested functions. A function is considered dynamically typed if it does not contain any type hints.
Additional Details
Per #102, nested functions can fall into an interesting spot semantically for a project. They're distinct...
929a325 Bump pyjwt from 2.0.0 to 2.0.1 - dependabot[bot]
[python-discord/forms-backend] New branch created: dependabot/pip/pyjwt\-2\.0\.1
Bumps pyjwt from 2.0.0 to 2.0.1.
Release notes
Sourced from pyjwt's releases.
2.0.1
Changelog
Changed
Rename CHANGELOG.md to CHANGELOG.rst and include in docs #597
Fixed
Fix from_jwk() for all algorithms #598
Changelog
Sourced from pyjwt's changelog.
v2.0.1 <https://github.com/jpadilla/pyjwt/compare/2.0.0...2.0.1>__
Changed
- Rename CHANGELOG.md to CHANGELOG.rst and include in docs `#597 <...
[python-discord/forms-backend] branch deleted: dependabot/pip/flake8\-annotations\-2\.5\.0
GitHub Actions run 492290962 succeeded.
GitHub Actions run 492292181 succeeded.
GitHub Actions run 492289617 succeeded.
GitHub Actions run 492291081 succeeded.
[forms-backend] Branch dependabot/pip/pyjwt\-2\.0\.1 was force-pushed to `7f75f9b`
child_node_value == node[child_node_name], so do isinstance(child_node_value, dict) instead.
No, but that was not clear. Wouldn't hurt to add a comment on this.
This would have to be annotated as some sort of mapping type since the function uses it like one.
Lookup is the noun. Look up is the verb.
This is a comma splice. Use a semicolon to separate independent clauses or use a full stop to make them separate sentences.
Using terminology popular in C, the attribute is declared but not defined. You could change it to "doesn't have a defined value." PEP 526 calls it a "variable without initial value" and "variable without default."
This also shouldn't use "concrete".
You haven't rename __defined_entries or anything else I might have missed.
Can you only fold paths which you know lead to registered classes?
Slowly making my way through this.
Move the entire string into the shorten to avoid adjusting the length.
footer_text = textwrap.shorten("Moved: " + renamed_symbols, 100, placeholder=' ...')
The + operator is redundant here.
"\n".join(f"{key}: {value}" for key, value in body.items())
If I understand correctly, here's what we want to happen:
- If an inventory is being refreshed, make all
get_symbol_embedcalls wait. - Allow many concurrent calls of
get_symbol_embed. - Make an inventory refresh wait for all calls of
get_symbol_embedto complete.
I don't think anything exists that can directly solve this exact problem.
Without the +, python will join the top string and the newline together and then join around that
In [3]: (
...: "ab"
...: "".join("cd")
...: )
Out[3]: 'cabd'
In [4]: (
...: "ab"+
...: "".join("cd")
...: )
Out[4]: 'abcd'
1447327 Improve !pep command - ks129
355c1bd Merge branch 'master' into pep-improvisations - ks129
6b6d2a7 Moved async_cache decorator from Doc cog fi... - ks129
bf26ad7 Created new task in Utils cog: refresh_peps_... - ks129 [a2f0de1](https://github.com/python-discord/bot/commit/a2f0de1c34dc320f4ee61d64a33b0d866bf41af2) Refactor pep` command, implement caching - ks129
i am sick these days cant focus on coding can i get some time to work
Connected!
As long as you don't make any more bigger changes, I believe we're getting very close now.
One says it's 12AM, code says 12PM. I'd much more prefer if it either said midnight or midday, and be the same
Isn't it better to do ... or user.bot? Just to avoid it allowing other bots.
This can be combined into 1. You can re-use the join logic for singular winners as well, since it wont add the join string to a single winner. You just need a condition for the difference in text, like: (Also don't need the temporary list)
names = ", ".join(f'{win[1]["name"]} ({PING.format(id=win[1]["author"])})' for win in winners)
congratulations = 'to all' if len(winners) > 1 else PING.format(id=winners[0][1]['author'])
score = winners[0][1]["score"]
await channel.send(
f"C...
Something like https://cdn.discordapp.com/emojis/230105988211015680.png?v=1, perhaps prepended to the username in the results? Or another line in the Member Information field: This user is a Bot./ This user is a Verified Bot..
@Anubhav1603 yeah, you can get more time. If you decide to drop this, let me know.
I hope you get well soon! :heart:
a827d0e Add required props to form field types - ks129
1617faf Create new ErrorMessage component for showing f... - ks129
9a8701a Add valid and error to public state and require... - ks129
df4cac5 Display invalid information for TextArea - ks129
5b9d945 Provide valid and error message data to TextAre... - ks129
[python-discord/forms-frontend] New branch created: forms\-submitting
Fields that have required validation:
[x] TextArea
[ ] ShortText
[ ] Select
[ย ] Range
[ ] Radio
[ ] Checkbox
[ ] Code (skipped for now until proper implementation)
This PR will add:
- Frontend required validation
- Submitting to backend
- Displaying backend errors to frontend
I would like to work on this pr.
Oops I'll change the docstring, I wanted it to be midday, I got confused
Why not combine these 2 if statements into one using and?
Oh, my bad.
Didn't see the entire thing.
if user.bot or not await self.messages.contains(reaction.message.id):
Much friendlier to check for bot first, then check the cache if it's not a bot.
It seems like the !raw command doesn't properly check for message length, causing a RuntimeError.
Sentry Issue: BOT-KV
RuntimeError: Line exceeds maximum page size 1992
File "discord/ext/commands/help.py", line 127, in add_line
raise RuntimeError('Line exceeds maximum page size %s' % (max_page_size))
File "bot/exts/info/information.py", line 440, in add_content
paginator.add...
Rather than patching each feature that tries to use the line paginator, I think it's a much better idea to make the paginator handle such inputs gracefully.
But we can avoid check from Redis when user is bot.
Yeah that. The redis cache check is a lot heavier than a simple bool check.
Connected!
f444864 Sync: chunk user requests - MarkKoz
[python-discord/bot] New branch created: bug/backend/bot\-4x/chunk\-sync\-requests
The site can't handle huge syncs. Even a bulk patch of 10k users will crash the service. Chunk the requests into groups of 1000 users and await them sequentially. Testing showed that concurrent requests are not scalable and would also crash the service.
10k user patch without chunking. This caused the site service to crash and respond with 524.


![Screenshot from 2021-01-19 06-14-57...
[python-discord/sir-lancebot] branch deleted: gurkancount
Relevant Issues
Continued #365 as the original contributor ditched it.
Description
Implemented all the changes which were requested in the pr, and changed the bot message to a embed rather than content.
- Dynamic Board size
- Checks for user already playing/in waiting room.
Screenshots

![Screenshot from 2021-01-19 06-14-57...
Was lurking in #dev-ops and tested in the test server!
[python-discord/bot] branch deleted: bug/backend/bot\-4x/chunk\-sync\-requests
Connected!
Connected!
embed.title = leader_name
embed.description = self.pride[leader_name]["About"]
embed.add_field(name="Known for", value=self.pride[leader_name]["Known for"], inline=False)
embed.add_field(name="D.O.B and Birth place", value=self.pride[leader_name]["Born"], inline=False)
embed.add_field(name="Awards and honors", value=self.pride[leader_name]["Awards"], inline=False)
Underlines aren't needed, as the field titles and embed titles ha...
Hey @Anubhav1603 ,
Would it be good, if we write a logging statement here, so that we can know which pride leaders are users interested in, and according to the requests, we could keep adding information to our prideleader.json file, making it more intelligent.
Adding 40 as a class variable would be better, so it's easily modified from one place.
This branch was updated and fixed up in #560.
cf8e125 Implement validation for checkboxes - ks129
e5945e9 Bump @typescript-eslint/eslint-plugin from 4.13... - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.0
Bumps @typescript-eslint/eslint-plugin from 4.13.0 to 4.14.0.
Release notes
Sourced from @typescript-eslint/eslint-plugin's releases.
v4.14.0
4.14.0 (2021-01-18)
Features
add support for decorator metadata in scope analysis and in consistent-type-imports (#2751) (445e416), closes #2559
eslint-plugin: add object-curly-spacing rule (#2892) (32bd18d)
Changelog
Sourced from @typescript-eslint/eslint-...
3492bf0 Bump @typescript-eslint/parser from 4.13.0 to 4... - dependabot[bot]
Bumps @typescript-eslint/parser from 4.13.0 to 4.14.0.
Release notes
Sourced from @typescript-eslint/parser's releases.
v4.14.0
4.14.0 (2021-01-18)
Features
add support for decorator metadata in scope analysis and in consistent-type-imports (#2751) (445e416), closes #2559
eslint-plugin: add object-curly-spacing rule (#2892) (32bd18d)
Changelog
Sourced from @typescript-eslint/parser's changelog.
4.14.0 ...
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/typescript\-eslint/parser\-4\.14\.0
I wonder if another field is a good idea, the embed is already quite long. I think adding the [bot] emoji at the end of the username to make it look like it does in a bot message would be the most intuitive


My idea was to add it as a badge, since verified bots will also have a badge provided by discord.
But should we have defcon days as
Noneinstead of-?
I'm fine with either, - gives me a more "not applicable" feel than None though
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/typescript\-eslint/parser\-4\.14\.0
[forms-frontend] Branch dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.0 was force-pushed to `9933234`
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/typescript\-eslint/eslint\-plugin\-4\.14\.0
This should affect anyone who doesn't have explicit connect and speak permissions in the channel, as in text. For simplicity, lets assume it's anyone who isn't mod+. This should use the has_any_roles check with the moderation roles, as in other parts of the codebase.
Just a small something, but I always feel like such aliases should be banned from the surface of earth, even more if they appear in the audit log,
await afk_channel.delete(reason="Deleting temporary mute channel.")
0870589 Implement before-submit validation (broken, cra... - ks129
Another flag will be set, but it isn't a badge. I think we can just append a bot badge at the beginning of the badge list.
Well done so far! You are well on your way to making your first contibution. One request: can you add a way to stop a game early? Right now you either have to wait out the 30 second timeout or finish the game.
This could be better generated using list multiplication ([0] * 3 -> [0, 0, 0]).
The self.turn here always returns the AI, which has no mention property. This causes an error.
c44a1b2 Add webkit CSS to invalidStyle to support Safari - ks129
The board is being dynamically generated, so I can do something like this:
>>> size = 4
>>> [[0]*size]*size
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
how about current_turn and next_turn?
Hmmm, just took those aliases from the old one, will remove them, and should i add sir-lancebot in it?
[python-discord/bot] New branch created: mbaruh/filters
Remove the extra message between the filter and the embed. It doesn't add any information and makes the bot hit rate limits.
Connected!
I think those names still don't address the root of the issue. If I read a variable title turn, I'd expect it to be some sort of game state variable containing something about the game, not just a discord user.
To the aliases? I think that's realistically too long a name to be used. Maybe bot?
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
I see. It does look fine to me as of now.
If the staff doesn't like it for some reason, it can always be changed.
After testing, it works well. Looks good to me.
7e00619 Help: Add handling of disabled commands to avoi... - ks129
fe4eaeb Help: Show different message for case when comm... - ks129
3081cb5 Merge branch 'master' into help-disabled-command - ks129
d2c1b27 Catch CommandError for help command can_run await - ks129
0390bb8 Fix import order of help command file - ks129
Connected!
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
This removes support for unrestricted pagination. Now, all pagination must either be restricted to the given user or staff. Was this not a feature we relied upon?
Can you elaborate on why these are being added? Are they required by #1297? If so, it isn't necessary to open a separate PR.
Do you think I should just copy what I did for BitBucket query parameters for the other regexes? Since GitHub doesn't support straight-up ? characters in the URL, I don't think this will break anything
[python-discord/bot] Pull request review submitted: #1344 Add new tag to explain python environments
Content is good but needs some grammar and spelling fixes. However, I do think it'd be good to briefly elaborate on why isolation is beneficial.
To see the environment in use by pip, you can do `pip debug` (`pip3 debug` for Linux/macOS). The 3rd line of the output will contain the path in use e.g. `sys.executable: /usr/bin/python3`.
โข [Python Virtual Environments: A Primer](https://realpython.com/python-virtual-environments-a-primer)
If Python's `sys.executable` doesn't match pip's then they are currently using different environments! This may cause Python to raise a `ModuleNotFoundError` when you try to use a package you just installed with pip, as it was installed to a different environment.
Added the emoji :lemon_angrysad:

The size of the png in dist is 128x128.
Hmmm I sill think that just literally saying "bot" after the username is the clearest way to do it
[python-discord/bot] Pull request review submitted: #1344 Add new tag to explain python environments
Good job on the new section. I just hope it doesn't look too long. Couple minor fixes and this should be good to go as far as I'm concerned.
Not a valid point since user sites exist.
I didn't spot this the first time, sorry.
If Python's `sys.executable` doesn't match pip's, then they are currently using different environments! This may cause Python to raise a `ModuleNotFoundError` when you try to use a package you just installed with pip, as it was installed to a different environment.
You missed this from my previous suggestions
To see the environment in use by pip, you can do `pip debug` (`pip3 debug` for Linux/macOS). The 3rd line of the output will contain the path in use e.g. `sys.executable: /usr/bin/python3`.
What's the reason for doing /{0,1}? None of the other URLs seem to need it. Does GitLab do something extra which I'm not yet seeing?
The repo part is incorrect and completely breaks the regex. It must match both the username and the project name (?P<repo>[\w.-]+/[\w.-]+)
Does it really allow dashes in the revision?
Do you think I should just copy what I did for BitBucket query parameters for the other regexes? Since GitHub doesn't support straight-up
?characters in the URL, I don't think this will break anything
Yup, that sounds fine. I also think it's safe.
Description
Reasoning
Proposed Implementation
Additional Details
Would you like to implement this yourself?
- [ ] I'd like to implement this feature myself
- [ ] Anyone can implement this feature
Description
This PR introduces a homepage for Logcord.
Screenshots
Desktop

Mobile

I originally asked to update it for that PR, but was then asked to update in general ([conversation](#organisation message)). If you think it should be added on that PR, feel free to close this one.
5f0b748 Bump webpack from 5.15.0 to 5.16.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/webpack\-5\.16\.0
Bumps webpack from 5.15.0 to 5.16.0.
Release notes
Sourced from webpack's releases.
v5.16.0
Features
add webpack_is_included("./some-module") which returns true when the module is bundled and false when not
priorize eager shared modules over normal shared modules (with the same version), as they are loaded anyway
add library.type: "assign-properties" which merges all exports into a global variable
allow optimization.innerGraph f...
99a9659 Bump webpack-cli from 4.3.1 to 4.4.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/webpack\-cli\-4\.4\.0
Bumps webpack-cli from 4.3.1 to 4.4.0.
Release notes
Sourced from webpack-cli's releases.
v4.4.0
4.4.0 (2021-01-19)
Bug Fixes
better description for --no-watch-options-stdin (#2288) (4ee8665)
double commands output in help (#2298) (efe81e9)
pass all argv to configurations when serve command used (#2345) (5070b9b)
respect --stats, --color and --no-color option for serve command (#2312) (73d3fec)
show exact package name while prompting for installati...
5c4f617 Bump @types/node from 14.14.21 to 14.14.22 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/types/node\-14\.14\.22
10ea621 Bump fs-extra from 9.0.1 to 9.1.0 - dependabot[bot]
Bumps fs-extra from 9.0.1 to 9.1.0.
Changelog
Sourced from fs-extra's changelog.
9.1.0 / 2021-01-19
Add promise support for fs.rm() (#841, #860)
Upgrade universalify for performance improvments (#825)
Commits
1625838 9.1.0
76d38fc tests: fix birthtime not available on tmpfs on Linux (#861)
d409cf8 Add promise support for fs.rm() (#860)
6bffcd8 Upgrade universalify (#825)
96facaa Docs: add fse-cli to the README (#815)
See full diff in co...
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/fs\-extra\-9\.1\.0
ade1fd0 Bump @sentry/react from 5.30.0 to 6.0.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.0
[python-discord/forms-frontend] Pull request opened: #98 Bump @sentry/react from 5\.30\.0 to 6\.0\.0
Bumps @sentry/react from 5.30.0 to 6.0.0.
Release notes
Sourced from @sentry/react's releases.
6.0.0
This major version release doesn't contain any breaking API/code changes.
Starting from the version 6.0.0, all SDKs that support sending sessions data will do so by default. See our Release Health docs to learn more.
As of this version, it applies to all Browser SDKs (Browser, React, Angular, Vue, Gatsby etc.). Node.js and other related Serve...
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-5\.16\.0
The guild parameter is unused
This should be a class method and accessed through cls if we're accessing the class here
The cogs may not be loaded, should this be handled?
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/sentry/react\-6\.0\.0
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/fs\-extra\-9\.1\.0
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/types/node\-14\.14\.22
OK, I won't notify you again about this release, but will get in touch when a new version is available.
If you change your mind, just re-open this PR and I'll resolve any conflicts on it.
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-cli\-4\.4\.0
99a9659 Bump webpack-cli from 4.3.1 to 4.4.0 - dependabot[bot]
[python-discord/forms-frontend] New branch created: dependabot/npm\_and\_yarn/webpack\-cli\-4\.4\.0
8bcf9c5 Changes Sourcemap Path - HassanAbouelela
[python-discord/forms-frontend] New branch created: fix\-sentry\-sourcemaps
[forms-frontend] Branch dependabot/npm\_and\_yarn/webpack\-cli\-4\.4\.0 was force-pushed to `a36c499`
Sentry Issue: BOT-KW
OverflowError: Python int too large to convert to C int
File "dateutil/relativedelta.py", line 388, in __add__
+ datetime.timedelta(days=days,
File "dateutil/relativedelta.py", line 405, in __radd__
return self.__add__(other)
File "bot/converters.py", line 352, in convert
return now + delta
File "discord/ext/commands/core.py", line 451, in _actual_conv...
The upload logs show the following warning for all script files:
warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for /__.bundle.js.)
Switching this PR to a WIP until I find a fix.
I'll try to give this a review some time today.
new questions
Relevant Issues
Description
Reasoning
Screenshots
Additional Details
Did you:
- [ ] Join the Python Discord Community?
- [ ] If dependencies have been added or updated, run
pipenv lock? - [ ] Lint your code (
pipenv run lint)? - [ ] Set the PR to allow edits from contributors?
cce2717 Updates Source Map Sources URI - HassanAbouelela
[python-discord/forms-frontend] branch deleted: dependabot/npm\_and\_yarn/webpack\-cli\-4\.4\.0
611603c Updates Source Map Sources URI - HassanAbouelela
9225ff2 Updates Source Map Sources URI - HassanAbouelela
fba4877 Updates Source Map Sources URI - HassanAbouelela
dd1cdaa Updates Source Map Sources URI - HassanAbouelela
69e9464 Updates Source Map Sources URI - HassanAbouelela
e57d4d4 Updates Source Map Sources URI - HassanAbouelela
b1358fb Updates Source Map Sources URI - HassanAbouelela
b38dc83 Updates Source Map Sources URI - HassanAbouelela
04aad7b Updates Source Map Sources URI - HassanAbouelela
c9736c6 Updates Source Map Sources URI - HassanAbouelela
e7334bc Updates Source Map Sources URI - HassanAbouelela
193e4d4 Update create_sentry_release.yml - HassanAbouelela
bc8dc45 Update create_sentry_release.yml - HassanAbouelela
Connected!
971035e Updates Source Map Sources URI - HassanAbouelela
4edb96c Updates Source Map Sources URI - HassanAbouelela
Description
The battleship cog runs into an error when given lowercased input. An IndexError is caused when trying to get the matching letter from the list of letters. The bot quits the game with the error:
An error occurred. Game failed
Steps to Reproduce
- Start a game of battleship
- Send a DM containing any spot in lowercase on your turn (example:
a1) - The bot sends the failure message in the commands channel, the index error is raised to console
#...
c18cabe Updates Source Map Sources URI - HassanAbouelela
013b0f9 Updates Source Map Sources URI - HassanAbouelela
5f033c4 Updates Source Map Sources URI - HassanAbouelela
402f06c Updates Source Map Sources URI - HassanAbouelela
18c22ec Updates Source Map Sources URI - HassanAbouelela
5e90901 Updates Source Map Sources URI - HassanAbouelela
f671258 Updates Source Map Sources URI - HassanAbouelela
c44f8f2 Updates Source Map Sources URI - HassanAbouelela
deee3e2 Updates Source Map Sources URI - HassanAbouelela
43257e2 Updates Source Map Sources URI - HassanAbouelela
I'd like to work on this ๐
c4b4ceb Updates Source Map Sources URI - HassanAbouelela
b882e86 Updates Source Map Sources URI - HassanAbouelela
ea5746b Updates Source Map Sources URI - HassanAbouelela
c2f6b7d Updates Source Map Sources URI - HassanAbouelela
717b232 Updates Source Map Sources URI - HassanAbouelela
505bab3 Updates Source Map Sources URI - HassanAbouelela
Connected!
When a user is voice banned without being a member of the server the bot still tries to move them to a different voice channel. We should gracefully handle the user not being in voice or not being in the server (the infraction still applies fine) by doing a membership check before attempting to move the user.
Sentry Issue: BOT-KT
AttributeError: 'User' object has no attribute 'move_to'
Fil...
We should prevent the bot from being able to infract itself!
Thanks to @decorator-factory for... discovering this one.
We need to add checks on moderation commands to check if the target user is the current bot.
Sentry Issue: BOT-KS
AttributeError: 'ClientUser' object has no attribute 'create_dm'
(5 additional frame(s) were not displayed)
...
File "bot/exts/moderation/infraction/_utils.p...
Add an optional response field to forms to customize the response upon submitting.
[python-discord/forms-backend] Checks Successful on PR: #54 Add an optional response field to forms.
GitHub Actions run 499129268 succeeded.
This all looks good!
I think the property could do with a bit of clearer name, response is a bit vague. How about we go for something like submitted_text?
Reopening, as this isn't actually a duplicate of #1016, and has been reported again in #1370. This handles a different error at a different stage from the one fixed in the other PR.
[python-discord/forms-backend] Checks Successful on PR: #54 Add an optional response field to forms.
GitHub Actions run 499178132 succeeded.
Alright, changed the name.
This all looks good!
I think the property could do with a bit of clearer name, response is a bit vague. How about we go for something like submitted_text?
I believe what was told to you is false; nothing else relies on these constants. I think it makes more sense to make these changes in #1297.
This was actually not implemented correctly originally. Both of these functions should be the action, not just remove_roles. The benefit of being an action is that apply_infraction will do error handling if the action fails.
Something strange I noticed is that the infraction won't be scheduled to expire if it doesn't have an action.
I'm not sure why it was done this way, but it means that a temp voice ban will only expire when the bot restarts and infractions are rescheduled. A mute doesn't suffer from this since the type check is inside the action.
1fd91a7 Name Simplification - HassanAbouelela
0b48951 Move Source Map To Workflow - HassanAbouelela
Aims to resolve #1355
I also changed two type hints in functions to remain uniform with the rest of the file.
Relevant Issues
Description
Reasoning
Screenshots
Additional Details
Did you:
- [ ] Join the Python Discord Community?
- [ ] If dependencies have been added or updated, run
pipenv lock? - [ ] Lint your code (
pipenv run lint)? - [ ] Set the PR to allow edits from contributors?
Index here is a number, you need to uppercase the letter before ord() gets called on it in line 143.
Hey, I appreciate the enthusiasm, but could you check in on the [dev-contrib discord channel](#dev-contrib message)? I'd just like to discuss somethings.
In terms of the PR, the proper procedure would be to leave a comment on the relevant issue so you can be assigned, and to fill in the PR form here.
String.upper is non-mutatating, meaning this change doesn't actually change the value stored in the list. You have to store this value and pass it to the function on the next line, or call upper on the next line directly.
Hey, I appreciate the enthusiasm, but could you check in on the [dev-contrib discord channel](#dev-contrib message)? I'd just like to discuss some things.
In terms of the PR, the proper procedure would be to leave a comment on the relevant issue so you can be assigned, and to fill in the PR form here.
can you explain why my PR is not accepting should i have to assign myself first?
No needs for an additional variable, this can be done in-line with the next line.
Hello, and thanks for your contribution!
There are some issues with your PR, can you please fix those?
I'd also like you to try to write more meaningful commit messages. When reading through the history, just having fixed isn't very helpful.
By the way, what is your Discord username?
Please conform to the PEP8, two spaces after the hashtag.
here is my discord username :๐๐๐๐๐๐๐๐๐#6340 ok i will write a meaningful commit message and can you help me out with this.I am new in this open source .but i cant understand whats going on
GitHub Actions run 499472100 failed.
GitHub Actions run 499480416 failed.
GitHub Actions run 499492301 succeeded.
Considering the defcon cog won't stay a part of this bot for much longer, I'm not sure including this is a good idea. But maybe it can stay for now.
This can become a utility function under utils/channel
#1355 will benefit from it.
This should use the is_mod_channel function under utils/channel
5840fde Fixes Sourcemap Path - HassanAbouelela
[python-discord/bot] New branch created: mbaruh/sm\-stats
[python-discord/logcord] branch deleted: frontend
From what I gather, the reason it was done like this is so you can have non-expiring infractions (notes and warnings for example). It is probably unintuitive behavior, and it is probably better for the scheduling to be an optional argument.
Either way, I'll add a note in the docstring for now, but I can implement my suggestion if you believe it'll be more useful.
Move this before the message and member are retrieved. If this condition turns out to be false, those aforementioned operations would end up being wasteful.
I don't think that's the reason. It already uses if expiry, so setting expiry to None is a way to not schedule expiration. The confusing part is why it's also dependent on an action being given.
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
Connected!
When a command is under cooldown and is invoked again, the error handler will wrongly try to suggest an alternative as if the command does not exist, when it should not do anything at all.

Added a statistic for advanced monitoring of the cooldown in python-general. Also made the slowmode reset command use the slowmode setting command under the hood to avoid repetition.
[python-discord/logcord] New branch created: deployment
Blocked until manifests have been applied in production.

