#dev-log
1 messages ยท Page 58 of 1
Build 20201112.1 succeeded
Requested by
GitHub
Duration
00:01:29
Build pipeline
Seasonal Bot
Build 20201112.2 succeeded
Requested by
GitHub
Duration
00:01:29
Build pipeline
Seasonal Bot
Build 20201112.3 succeeded
Requested by
GitHub
Duration
00:02:02
Build pipeline
Seasonal Bot
I believe @SebastiaanZ and I agreed to just keep it until we actually saw issues with the name. It looks okay so far - nothing yet.
Fair โnuff, shall we close this PR?
Everything is working as intended. Pushing her through.
[python-discord/bot] branch deleted: Hemlock/voice\-gate\-ping
9bc3e5b Added method definition and needed imports. - MrHemlock
4eccdef Added RedisCache and event - MrHemlock
2a31370 Added ping message, message id storage and mess... - MrHemlock
a6a2ba6 Bug fixes, including improper cache calls, typo... - MrHemlock
bf7916a - Added ping deletion time to config file. - MrHemlock
Build 20201112.3 failed
Requested by
GitHub
Duration
00:00:47
Build pipeline
Bot
Build 20201112.3 failed
Requested by
GitHub
Duration
00:00:40
Build pipeline
Bot
Postgres backup completed!
Build 20201113.2 failed
Requested by
GitHub
Duration
00:00:47
Build pipeline
Bot
Build 20201113.3 succeeded
Requested by
GitHub
Duration
00:04:33
Build pipeline
Bot
Connected!
Build 20201113.4 succeeded
Requested by
GitHub
Duration
00:06:17
Build pipeline
Bot
This needs to be awaited, otherwise you'll be trying to parse a coroutine object.
I'm not requiring it, but if it were me I would just have this constant in the file where it's used, since it only serves one function currently. It might be generic enough to be useful in the future for something else, but not right now.
In the case where no reason is provided (for example bans), infraction["reason"] is None, and this line will freak out.
[python-discord/bot] New branch created: sebastiaan/features/move\-ci\-to\-github\-actions
0b9e5b5 Add initial workflow file to test workflow - SebastiaanZ
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `dc24738`
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `bf00db8`
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `377698c`
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `8c23fa5`
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `ec257f0`
37c10b8 Add initial workflow file to test workflow - SebastiaanZ
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `c57f2fa`
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `5811dcb`
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `24c038e`
9aa5e3e Add skeleton for build and push job - SebastiaanZ
cc62240 Specify build-and-push job correctly - SebastiaanZ
4eb0b6e Add run platform for build-and-push job - SebastiaanZ
7d00a19 Fix if condition of build-and-push step - SebastiaanZ
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `1681c44`
[python-discord/bot] branch deleted: sebastiaan/features/move\-ci\-to\-github\-actions
3657d37 Migrate CI Pipeline to GitHub Actions - SebastiaanZ
[python-discord/bot] New branch created: sebastiaan/features/move\-ci\-to\-github\-actions
[bot] Branch sebastiaan/features/move\-ci\-to\-github\-actions was force-pushed to `4d4dfe4`
I've migrated our Azure CI Pipeline to GitHub Actions. While the general workflow is the same, there are a few changes:
-
flake8is no longer run bypre-commit, but rather by a separate action that adds annotations to the GH Action results page. -
As we no longer have need for xml-formatted coverage files, the xmlrunner for unittest has been removed as a dependency. Instead, we now publish our coverage results to coveralls.io. Each Actions run will echo a uni...
Closes #1232
Description
Modifies the docstring sent for per-command help to remove weird formatting issues mentioned in #1232. Removes newlines that are not used for paragraph breaks, after retrieving the docstring, and lets the embed handle it on the discord side.
The Old and Updated Output for Reference

 && steps.python_cache.outputs.cache-hit != 'true'
The documentation is not clear:
If your if expression does not contain any of the status functions it will automatically result with success().
Does this mean it will automatically AND it with success(), or ju...
[python-discord/bot] New review comment on pull request #1284: Migrate CI Pipeline to GitHub Actions
An ID is not necessary since nothing is referencing this step.
[python-discord/bot] New review comment on pull request #1284: Migrate CI Pipeline to GitHub Actions
I believe persist-credentials should be set to false to avoid exposing the token to executed code. However, it's not clear how exactly it gets exposed when persisted. I don't think that the coveralls or flake8 actions rely on this being true since they explicitly take in the token.
Postgres backup completed!
Why are you assigning this to variable?
This newline is unnecessary
Code looks good. Will test functionality after bot side review comments is applied.
[python-discord/bot] New review comment on pull request #1284: Migrate CI Pipeline to GitHub Actions
The success() is not needed here as needs requires the specified jobs to have completed successfully for this job to run:
Identifies any jobs that must complete successfully before this job will run. (source)
I've tested the combination of needs and if with test runs by varying the result of the lint-test job and the github.ref we're looking for: It seems...
[python-discord/bot] New review comment on pull request #1284: Migrate CI Pipeline to GitHub Actions
I was a bit torn on this, but I agree that it should probably in there. It is currently persisted, the caching process will run just before the job clean-up steps are run, but it's better to have it where all our other dependencies are.
The reason I did not do it was because this is only needed in CI; there's no need to install or require this dependency in local dev environments. However, keeping all dependencies in one spot is also valuable and it's a relatively small package anyway.
[python-discord/bot] New review comment on pull request #1284: Migrate CI Pipeline to GitHub Actions
Not sure, the expression I've used here was the recommended expression for steps that need to run conditionally on the cache being restored in the README for the cache action.
I think the documentation implies that if you have no explicit "status" check function, it will use success() by default. The if we have does not use a status function, so it should also depend on the success() function result by default.
...
Closes #388
- Added view that display resources and sub-categories of resources.
- Icon colors is handled inside CSS.
- Migrated all YAML files to new format and made them up-to-date with current site.
- Pushed Django Simple Bulma version to latest to get tooltip extension.
Build 20201114.1 succeeded
Requested by
Joseph Banks
Duration
00:04:40
Build pipeline
Site
efc11a5 Add initial GH Actions file for CI - SebastiaanZ
[python-discord/seasonalbot] New branch created: sebastiaan/backend/move\-ci\-to\-gha
07b6e23 Add GHCR build and push job - SebastiaanZ
366a4fd Fix build arguments for GHCR - SebastiaanZ
6a97df6 Use GHCR as target - SebastiaanZ
[seasonalbot] Branch sebastiaan/backend/move\-ci\-to\-gha was force-pushed to `f8a93d7`
We are currently migrating our backend to a Kubernetes cluster. As this requires changes to our CI anyway, this is a good time to also migrate our CI Pipeline to GitHub Actions and start using the GitHub Container Registry to push our builds to.
Changes compared to the old situation:
- flake8 linting errors will now show up as GH Actions annotations
- containers are tagged with both "latest" and a short commit SHA
Note: This version of the workflow still pushes to DockerHub **in add...
[python-discord/bot] New review comment on pull request #1284: Migrate CI Pipeline to GitHub Actions
Some brief documentation on these variables would be nice
Can we just add a bit more documentation so stupid people like myself can comprehend this?
How this works is also really opaque to me.
Can we document what these actually do? I have no idea what half of them are for.
This means that we shouldn't install if we can use cached ones? Might also be worth doing a block comment for.
bfe5f47 Remove persistent methods from evergreen brandi... - jerbob
[python-discord/seasonalbot] New branch created: feature/non\-persistence
e3a825a Don't load Monster survey cog - jerbob
This PR removes any persistence requirements from SeasonalBot, in preparation for our migration to K8s.
Build 20201114.1 failed
Requested by
GitHub
Duration
00:01:10
Build pipeline
Seasonal Bot
Build 20201114.2 failed
Requested by
GitHub
Duration
00:01:20
Build pipeline
Seasonal Bot
Build 20201114.3 failed
Requested by
GitHub
Duration
00:01:15
Build pipeline
Seasonal Bot
It says "don't do a user install", like the comment says. Nothing more.
That's exactly what it says.
Build 20201114.4 succeeded
Requested by
GitHub
Duration
00:01:24
Build pipeline
Seasonal Bot
Maybe "user installs" is unclear? It means that it should install to the global site for Python packages rather than a user-specific site. And "site" is Python's terminology for location/directory; it does not website.
Build 20201114.5 succeeded
Requested by
GitHub
Duration
00:01:19
Build pipeline
Seasonal Bot
04a44d8 Add documentation to GitHub Actions workflow - SebastiaanZ
135ecf5 Set flake8 action checkName to correct value
- SebastiaanZ
[python-discord/seasonalbot] branch deleted: sebastiaan/backend/move\-ci\-to\-gha
Connected!
bda1d33 Raise NotImplementedError on write/read to config - jerbob
f02ff11 Remove references to deprecated methods in cog ... - jerbob
Connected!
[python-discord/snekbox] New branch created: feat/deps/py\-3\.9
Some of the changes are redundant with #64 but that PR is kind of stale and less important, so I'll worry about conflicts later.
Build 20201114.1 failed
Requested by
GitHub
Duration
00:02:46
Build pipeline
Snekbox
Build 20201114.2 succeeded
Requested by
GitHub
Duration
00:02:47
Build pipeline
Snekbox
cc5217e Test docker-compose in GitHub Actions - SebastiaanZ
[python-discord/site] New branch created: sebastiaan/backend/move\-ci\-to\-gha
dfb876f Test docker-compose in GitHub Actions - SebastiaanZ
f8a93d7 Migrate to GitHub Actions and GHCR - SebastiaanZ
04a44d8 Add documentation to GitHub Actions workflow - SebastiaanZ
287aab1 Merge pull request #514 from python-discord/seb... - lemonsaurus
a468e9b Fix typo in GitHub workflow - jb3
8205adb Merge branch 'master' into feature/non-persistence - jerbob
6b11329 Use enabled=False over disabled=True in command() - jerbob
[python-discord/site] New branch created: get\_rid\_of\_uwsgi
The extensions still import the deleted persist module. Either comment out the imports or somehow prevent the bot from attempting to load those extensions.
UWSGI will not play well with Traefik and Kubernetes, so we need to get rid of it.
We're replacing it with gunicorn, which should work fine.
BONUS: We also upgrade to Python 3.9
Build 20201114.2 failed
Requested by
GitHub
Duration
00:01:19
Build pipeline
Site
Build 20201114.3 failed
Requested by
GitHub
Duration
00:02:55
Build pipeline
Site
f57357e Don't call gunicorn using os.system, patch sys.... - jb3
[python-discord/seasonalbot] branch deleted: feature/non\-persistence
Build 20201114.4 succeeded
Requested by
GitHub
Duration
00:02:23
Build pipeline
Site
Connected!
b315965 Test docker-compose in GitHub Actions - SebastiaanZ
50bd458 Test docker-compose in GitHub Actions - SebastiaanZ
11db28f Test docker-compose in GitHub Actions - SebastiaanZ
523ffa0 Test docker-compose in GitHub Actions - SebastiaanZ
efabef9 Test docker-compose in GitHub Actions - SebastiaanZ
b9ee5e4 Test docker-compose in GitHub Actions - SebastiaanZ
6a6aede Test docker-compose in GitHub Actions - SebastiaanZ
[python-discord/seasonalbot] New branch created: kubernetes\-deploy
Add a Kubernetes deployment stage to GitHub Actions. This uses the Azure set-context and k8s-deploy GitHub Actions.
Perfect. Ten dollars. :dollar: :heavy_dollar_sign: :money_with_wings: :dollar: :heavy_dollar_sign: :money_with_wings:
9f027f4 Test docker-compose in GitHub Actions - SebastiaanZ
[python-discord/seasonalbot] branch deleted: kubernetes\-deploy
Connected!
Connected!
a8d4ac9 Banish UWSGI from my life, replace with gunicorn. - lemonsaurus
43c83cc Upgrade site to Python 3.9. - lemonsaurus
811865e Update azure-pipelines.yml to Python 3.9. - lemonsaurus
f57357e Don't call gunicorn using os.system, patch sys.... - jb3
04764a7 Merge pull request #422 from python-discord/get... - lemonsaurus
[python-discord/site] branch deleted: get\_rid\_of\_uwsgi
Build 20201114.5 failed
Requested by
Leon Sandรธy
Duration
00:03:01
Build pipeline
Site
[site] Branch sebastiaan/backend/move\-ci\-to\-gha was force-pushed to `5ac1f0a`
5081057 Test docker-compose in GitHub Actions - SebastiaanZ
0aab283 Add build and push step to GitHub Actions - SebastiaanZ
74d01e6 Add build and push step to GitHub Actions - SebastiaanZ
70f381c Add build and push step to GitHub Actions - SebastiaanZ
0402218 Add build and push step to GitHub Actions - SebastiaanZ
[site] Branch sebastiaan/backend/move\-ci\-to\-gha was force-pushed to `b9c1c59`
[site] Branch sebastiaan/backend/move\-ci\-to\-gha was force-pushed to `f4a65fc`
I've migrated site to GitHub Actions and GitHub Container Registry. This also means that coverage results will be pushed to coveralls.io. The PR also removes the codeql analysis action, as it was rather useless.
exclude=__pycache__, venv, .venv, **/migrations/**, .cache/
5b682c4 Remove redundant wildcard - jb3
CI: True
I think having the value here be True better communicates the env vars boolean nature.
a6a47da Make the value of the CI env var 'True'
- lemonsaurus
[python-discord/site] branch deleted: sebastiaan/backend/move\-ci\-to\-gha
Connected!
42b4985 Use full job name for flake8 actions step - SebastiaanZ
[python-discord/seasonalbot] New branch created: sebastiaan/backend/apply\-proper\-check\-name
8578d69 Remove DockerHub from GitHub Actions - SebastiaanZ
[python-discord/seasonalbot] New branch created: sebastiaan/backend/remove\-dockerhub\-push
[python-discord/site] New branch created: kubernetes\-deployment
We're no longer using DockerHub in our deployment for SeasonalBot, so it does not make sense to keep pushing containers there.
ac616a3 Update build flow to deploy to Kubernetes - jb3
Adds a deployment manifest to the root of the site repository and a deployment job to GitHub Actions.
[python-discord/seasonalbot] branch deleted: sebastiaan/backend/remove\-dockerhub\-push
Connected!
[python-discord/site] branch deleted: kubernetes\-deployment
a66e4e8 Remove DockerHub from GitHub Actions - SebastiaanZ
Build 20201115.1 succeeded
Requested by
GitHub
Duration
00:04:26
Build pipeline
Bot
804ba0f Add gurkancount command - gustavwilliam
[python-discord/seasonalbot] New branch created: gurkancount
Description
This command loops through the display names of all members and checks which ones contain "gurkan".
Important note:
This enables member intents, which means that it'll have to be enabled on Discord Developers Portal, if it isn't already. It also means that we'll be tracking member intents.
This is needed, since the display names of guild members will be checked.
Screenshots
Here is the new command:
...
BSD 3 which we use above is a superset of BSD 2; should this just be under that license? Is it worth the trouble figuring out if they can be merged?
This is used to allow the bot to do other stuff during the fully synchronous parsing while keeping the load a bit lighter since it's not a priority.
Because we await above we could remove this, causing the bot to take all available resources and maybe (?) slowing down some other parts of it, but the whole queue would be parsed considerably faster
It could also be moved into a thread but I felt like it'd complicate the code a bit too much while this is sufficient
I'm not too sure on how p...
Should we attempt to go deeper in the handling? Currently in case we get a long tag like a div or ul with different p tags we'll most probably just skip it while we would be able to extract the p tags and split them properly but because we'd be keeping the end of the tags out it'd need some per tag behaviour complicating the implementation even more (open to suggestions here as I feel like it is a bit of a mess)
There is not much to review here. Mostly style preferences. Only really need to change the docstring.
The code ran perfectly fine, the only real concern would be the performance of looping through so many members.
This function name could be clearer if it was using snake_case i.e gurkan_count
Forgot to change the docstring to the Gurkan Cog here.
There are all purely stylistic changes!
The closing parenthesis should be on the next line.
Maybe something like this instead? I'm not sure how I feel about having two variables for this.
gurkan_count = sum(
1 for member in ctx.guild.members if "gurkan" in member.display_name.lower()
)
I'm not sure about this one, since it's a command. If it was a usual method, it would be using snake_case, but this is a command.
There is not much to review here. Mostly style preferences. Only really need to change the docstring.
The code ran perfectly fine, the only real concern would be the performance of looping through so many members.
@fisher60 It takes very, very little resources loop through the members, so no worries here. It's only about 100,000 iterations for our server size.
What's wrong with having the name as snake_case?
Looks much better. I didn't quite like having all of that on a single line nor creating two variables for it, so this solution looks better in some sense.
The only real reason that having two variables would be worth considering is if we would like to add some feature to do additional filtering in the future. That can be added when it becomes relevant, though, so this change looks good to me.
d7b43f3 Update bot/exts/evergreen/gurkan.py - gustavwilliam
We definitely could. I didn't think that was the convention for commands, though. Let's do it.
The command name is gurkancount, as you set it in the decorator, but the method name should be snake_case instead.
901cb7a Fix docstring and update command name name - gustavwilliam
Let's make it more generic. I'd like to know how many users fit into any arbitrary nickname feature. We used to have .lemoncount, and I think there are still dozens. Let's have a feature that will count number of users with nicknames that contain any substring?
@lemonsaurus We could do that. The question is if we really want users to be able to search for any terms in display names or only a set of terms. What do you think about this?
what would be really cool is if you could hijack any command that ended with count , so that .gurkancount and .lemoncount and .vescount would all just work.
That would be really interesting. Sadly, it would interfere with the emojicount command. If we were to ever do that (which would be super cool), we'd have to turn emoji count into a command + subcommand or something similar.
Either way, if we keep in within the scope of this PR, I wouldn't mind adding an optional argument with the string to search for. I think keeping the command name gurkancount would also be slightly funny and work well.
Then again, do we want people to search for any...
what would be really cool is if you could hijack any command that ended with count , so that
.gurkancountand.lemoncountand.vescountwould all just work.
This is a cool idea, I like it.
That would be really interesting. Sadly, it would interfere with the emojicount command. If we were to ever do that (which would be super cool), we'd have to turn emoji count into a command + subcommand or something similar.
This shouldn't be an issue, since the logic would have to be...
I think let's just start with implementing it where you have a second optional argument for specifying the name. If we want to expand it to work with every count, let's do that later.
Postgres backup completed!
One thing to consider is that SeasonalBot currently does not have the "members intent", which means that it also does not receive those events from Discord. Enabling the intent does increase the resource usage of Seasonal Bot (although the "presences intent" is probably way more heavy). I think I'm just a bit confused as to why we'd want this count command and if it's worth the additional load it will have on our back-end.
Bruh is not a valid expression and who knows what you're imagining. Facepalm is a very negative emoji that doesn't seem to fit our culture.
I don't think we need these.
@SebastiaanZ yes. That's an important question to ask. I don't know exactly how much that would cost to have, but is it something that we have resources for? While we shouldn't add commands just because we can, I also think it would be a fun command to have โ which is an important part for SeasonalBot.
As for the reasoning behind having a command like this, I think there's an interest in counting the amount of members with "gurkan" in their display names. You have probably noticed that the c...
hmm, ves makes a good point about user intents. actually the resource load difference would probably be a bit significant.
this seemed like a better idea while I was drunk.
Is that something we don't have resources for?
We do have resources for it, the question is more whether we want to use them this way. Before intents rolled out, every bot was subscribed by default. When I was working on #478, core dev consensus seemed to be that we'd rather not have the intent if feasible. I'm impartial, but I don't know if this is a feature that would justify adding the intent, if we don't otherwise want it. If it's well implemented, generic and would be a useful utility to e.g. mods, we can also consider adding it to t...
yeah, I'm afraid I think member intents is too high a price to pay for this feature. Sorry, gurk.
Looks great! Let's do it!
244a72f Use GHCR for the site container in docker-compose - SebastiaanZ
4d4dfe4 Migrate CI Pipeline to GitHub Actions - SebastiaanZ
8588d2d Add CI dependency coveralls to our Pipfile - SebastiaanZ
5d50adf Stop Checkout Actions from persisting credentials - SebastiaanZ
135ecf5 Set flake8 action checkName to correct value
- SebastiaanZ
7f3dee1Remove codeql analysis as it had little effect - SebastiaanZ
[python-discord/bot] branch deleted: sebastiaan/features/move\-ci\-to\-github\-actions
a05fa08 Introduce linting errors to test workflow - SebastiaanZ
[python-discord/seasonalbot] New branch created: sebastiaan/backend/test\-ci\-linting
PR with deliberate linting errors to test our test suite
9843cd7 Run flake8 standalone - SebastiaanZ
- First draft of script by 20th of November (@gustavwilliam and @janine9vn)
- Voiceover + music by 22th of November (@lemonsaurus)
- Rough cut of video by 6th of December (@janine9vn)
- Final cut by 13th of December (@lemonsaurus)
[python-discord/snekbox] branch deleted: feat/deps/py\-3\.9
60edaab Test flake8 action - SebastiaanZ
[python-discord/bot] New branch created: kubernetes\-deploy
This PR adds a Kubernetes manifest for deploying our bot to our Kubernetes cluster.
It adds the necessary steps to the deployment workflow to auto-deploy on pushes to our default branch.
It also changes some constants to connect to the right services with the new Kubernetes DNS.
Actually, this cannot be merged until snekbox is ready.
category = self.kwargs["category"]
context = super().get_context_data(**kwargs)
context["category_info"] = get_category(category)
context["content"] = get_articles(category)
context["category_name"] = category
return context
I don't see why there's a method for this - wouldn't it be worth moving the Path object to a constant in settings, and patching django.conf.settings.CONTENT_BASE_PATH?
I'm working on implementing this, and want thoughts on implementation. Right now the command only mutes the channel it was invoked in, but there would have to be some form of channel parsing for VC. I implemented a prototype for that (see branch), but I enabled it for text channels too.
Should text channels fall under this modification or not? On a more specific implementation detail, I have it notifying in the invocation ch...
Instead of kicking them, the bot can move them to an inactive channel, such as the AFK (or a temp) channel, then move them back. This has the added benefit of alerting the user auditorily, and with a Suppressed popup that something has gone wrong. If for whatever reason that fails, the bot can fall back to muting/kicking.
Closes parts of python-discord/organisation#305.
This new embed is meant to be clearer and more user friendly, as well as providing more easy to understand tips for asking better questions.
Screenshots
This is the previous version:
This is the new version:
Reasoning
The green color of the embed โ which is the same as one of the colors used in SeasonalBot โ is meant to provide a clear feeling of the channel being available. The current grey color doesnโt give that. Th...
Postgres backup completed!
46a178b Ensure flake8 runs correctly in Pull Request check - SebastiaanZ
[python-discord/seasonalbot] New branch created: sebastiaan/backend/fix\-flake8\-check
Bike-shedding nicely done, this new embed is way better!
[seasonalbot] Branch sebastiaan/backend/fix\-flake8\-check was force-pushed to `012cfa8`
This PR makes two changes to our CI:
1. Instead of using a predefined action, we now use flake8 directly to generate annotations for a CI check
Unfortunately, the flake8 action we were using from the marketplace required us to use the pull_request_target event, which runs in the context of the target repository to protect secrets. However, this also meant that flake8 would run on files already merged into our master branch, not the actual changes made in teh PR! That's obviousl...
Closing this again since as expected a sufficient counternotice was received by GitHub from the EFF on behalf of the YouTube-DL maintainers.
More information can be found in the GitHub Blog, the couter notice can be found here.
Let's consider adding a word or character count threshold. Really short messages aren't worth relaying. This may alleviate concerns of DMs being annoying.
webhooks removers, and antimalware are the ones that will benefit the most
I agree, though in the case of antimalware, attachments without any message written should be ignored.
everyone ping filter and invite filters
Maybe for the ping but I don't think it's necessary for invites.
Then keep the message around through r...
Some checks legitimately raise CommandError to customise the way in which the check fails. Therefore, if a CommandError is raised, it should be treated like a check failure (i.e. this user cannot run the command), rather than some internal error that should be logged.
This isn't too accurate because not all URLs posted by users will include the HTTP scheme. Unfortunately, this will cause problems with urllib even if the URL regex is adjusted:
Following the syntax specifications in RFC 1808, urlparse recognizes a netloc only if it is properly introduced by โ//โ. Otherwise the input is presumed to be a relative URL and thus to start with a path component.
Furthermore, the netloc may include a port and/or a subdomain e.g. www.cwi.nl:80. Some filte...
Strange to see join used here. I find it confusing to follow at first glance, since I associate a join with doing something a bit more complicated typically. I suggest you simply use the + operator.
I suggest avoiding a regex for this. Use str.endswith((".", "?", "!")); it's simpler and therefore easier to understand.
No objections from me. This looks good and is a significant improvement over passing around the bot everywhere. Nice work.
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
[python-discord/bot] branch deleted: feat/global\-bot
514c4b4 Test workflow build strategy - SebastiaanZ
[python-discord/snekbox] New branch created: sebastiaan/backend/migrate\-ci\-to\-github\-actions
584e06a Move workflow file to correct location - SebastiaanZ
581decb Trigger workflow on feature branch - SebastiaanZ
342fb2d Load containers into docker during build step - SebastiaanZ
[snekbox] Branch sebastiaan/backend/migrate\-ci\-to\-github\-actions was force-pushed to `9122f3f`
ccbd6ea Use quoted run arguments for multiline commands - SebastiaanZ
a7cbf3d Show container list after build - SebastiaanZ
6436e15 Show container list after build - SebastiaanZ
eb65eb5 Show image list after build - SebastiaanZ
e5d7f37 Build venv container - SebastiaanZ
Me and Hem noticed that a muted user still was able to talk in Voice Chat.

I suggest that we change it so that a muted user cant talk in voice.
a95d42b Don't use dockerx builder to build images - SebastiaanZ
190414e Fix missing space in docker build command - SebastiaanZ
6750911 Enable BuildKit caching on images - SebastiaanZ
This is due to the way we've currently set up the permissions in Discord. I'll look into changing it.
The permissions are changed.
68da60f Run linter in docker container - SebastiaanZ
13ea11c Run linter in docker container - SebastiaanZ
aae7e06 Change specification of working directory - SebastiaanZ
ddde73c Change specification of working directory - SebastiaanZ
fbf7ace Ensure proper spacing in command - SebastiaanZ
a6c867d Use proper quotation in docker run arguments - SebastiaanZ
5fb1a3e Introduce linting error to check linting set-up - SebastiaanZ
[snekbox] Branch sebastiaan/backend/migrate\-ci\-to\-github\-actions was force-pushed to `b3aa65e`
d2dec8f Add Python and coveralls to workflow - SebastiaanZ
10f0632 Build final image and push to GHCR - SebastiaanZ
Postgres backup completed!
f002d74 Use multi-stage docker file to use local cache - SebastiaanZ
[python-discord/snekbox] New branch created: sebastiaan/backend/cache\-docker\-images
e3b9549 Use more effective caching keys for build cache - SebastiaanZ
724f65e Include final build stage - SebastiaanZ
0b35f06 Fix error due to referencing value before it's set - SebastiaanZ
8fa6595 Add image tag arg to final dockerfile - SebastiaanZ
4b028a9 Fix incorrectly specified cache-from argument - SebastiaanZ
560139a Troubleshoot vague error message - SebastiaanZ
Relevant Issues
All these things got approved in server.
Description
Redis storage
Implemented async_rediscache to bot in order to allow replace JSON with Redis. Added following env variables: REDIS_HOST (default redis.default.svc.cluster.local), REDIS_PORT (default 6379), REDIS_PASSWORD and USE_FAKEREDIS (default false).
Moved candies and hacktoberstats cogs to use Redis instead JSON. Monstersurvey need bigger refactor.
Docs should be updated abo...
3377c10 Try build args in a different format - SebastiaanZ
GH token got approved in #meta, branding manager move in #dev-contrib
Added GH token from env variable GITHUB_TOKEN. Branding manager and PEPs use this now.
Moved branding manager from SeasonalBot (Cobra) to Python.
7c3ad2f Delete quotes messing with build args - SebastiaanZ
1fdef9c Ensure intermediate container is available - SebastiaanZ
bef8334 Use three image setup for build - SebastiaanZ
96c0d25 Use one cache target per build - SebastiaanZ
ed9026d Specify correct dockerfile - SebastiaanZ
f3cf1c9 Cache final venv image to local cache - SebastiaanZ
[python-discord/branding] New branch created: tick\-emoji
a11ab2b Specify destination of cache for venv correctly - SebastiaanZ
This will be used in the new help channel available embed. Here's a preview of it:

And an image of it as used in a help channel embed:
c2a0fcd Remove show images step from workflow - SebastiaanZ
[python-discord/branding] branch deleted: tick\-emoji
c5d8890 Test GHCR caching of layers - SebastiaanZ
Possible grammer edit needed?
Include a code sample and/or error message, if you have either.
919eaa6 Add inline cache instruction - SebastiaanZ
45ca54c Use correct parameter name - SebastiaanZ
760da0f Add swoopy animated server icon - gustavwilliam
[python-discord/branding] New branch created: swoopy\-icon
Here's the new animated server icon:

[python-discord/branding] branch deleted: swoopy\-icon
8bf3498 Add another cache variation - SebastiaanZ
The intention was that "if you got one" would mean "if you got any of the two things. Maybe using "any" instead of "one" would be better, though. What do you think?
This has been updated. I'm happy with how it looks now.
The embed was updated to use a new icon and the author field instead of a title. This allows the icon to be centered.
<img width="543" alt="Screenshot 2020-11-17 at 23 09 18" src="https://user-images.githubusercontent.com/65498475/99456582-ed813d00-2929-11eb-9ae3-98f059f72227.png">
Connected!
Postgres backup completed!
I do believe you might have to revisit the scheduling logic. There are possibilities for it to skip an iteration because it didn't run the task on the exact second it needed to
The thought is correct, but I do not believe this is very robust. Also isn't .day refering to the date? not hour mark.
asyncio has logic to wait for a specific time, you could use that with a task that starts up wehn your bot does. There's probably others with more suggestions on how to do this
self.json_data['first_time'] = self.first_time = False
Are you sure you're giving it string of the id?
Worst case; Youcan just type this to be Union[str, int] as it will work with both.
Oops I think I commited some testing code
I currently am using 3 JSON files to store the information of the game, should I try to decrease that?
3ed1ce2 Document steps in workflow file - SebastiaanZ
d977017 Debug skipped steps - SebastiaanZ
618102b Debug skipped steps - SebastiaanZ
e94d8c7 Use environment var for production build bool - SebastiaanZ
@saiTama-max Thanks for giving this a shot. I'm not a huge fan of how the hat looks. It's not symmetrical and it's closer to one eyebrow than the other. Are we sure we even want leaves under the hat? Just some things to keep in mind.
Also, in the future, try to get assigned to the issue before working on it. Most importantly, it signals that someone is working on it and ensures that multiple people aren't at the same time. Do you want me to assign you to this issue?
We do have a sleepy lemoji already. This one:
https://github.com/python-discord/branding/blob/master/emotes/lemoji/dist/lemon_sleepy.png
I'm not sure how this one would be different or what purpose it would serve.
741ae61 Clean up workflow file - SebastiaanZ
f3ba462 Clean up workflow file - SebastiaanZ
64ef662 Clean up workflow file - SebastiaanZ
@lemonsaurus @scragly This issue has been stale for a month now. Do you have any thoughts on the proposed labels?
I think the pensive one also communicates weariness.

Also this issue is just not specified clearly enough. Please describe the issue better in the future so we can understand what the request is.
your proposal looks good to me, including documentation and level.
oh i didnt notice the sleepy one, that's what i needed
Ah no, I just wanted to try it
I've created three rough bot icons for the new bots. I'm wondering if someone would like to polish them a little, turn them into vector, but stay within the same overall style. Simplification is allowed, if it makes sense to do so, and little pydisifications would also be fun to see.
Here are the icons as raster pngs.
Sir Lancebot
This one is pretty rough - the lines are not very sharp and the tail is a complete disaster.
.
I'm not entirely sure if that will work for a type=local cache, going by this issue. Currently, I'm thinking of running this with a repository-only cache to see how that affects build speeds. If the difference in build speed is negligible, maybe we can just do away with local caching entire and rely on GHCR for our layer cache.
[python-discord/snekbox] New branch created: sebastiaan/backend/test\-repository\-caching
31e4e37 Disable load in buildx step - SebastiaanZ
843a02f Second build to test caching - SebastiaanZ
f346861 Partially invalidate cache by changing file - SebastiaanZ
4d1487f Partially invalidate cache by changing file - SebastiaanZ
That seems to work well. I think it may lead to faster builds in some situations and longer builds in some others, where the latest image is a bit out of sync with cache-invalidating changes made in a feature branch. However, if that's not the cache, this seems to be faster than using the local cache option.
A fully non-cached build took 3m7s; a fully cached build took 1m45s, using just the repository cache. I think we should just be happy with that and not worry about the local cache th...
ecf570a Test build with load instead of push in venv build - SebastiaanZ
737e3c8 Remove intentional linting errors - SebastiaanZ
825c4a9 Test in-run caching without initial push - SebastiaanZ
One thing I forgot is that when it restores a cache from master, the new cache it writes will be scoped locally rather to master. Therefore, PRs will only bloat caches for PRs. Since PRs don't tend to have very long lifetimes, bloating shouldn't be as bad. It's still not ideal, since every new commit a PR makes will add new layers to the cache without getting rid of layers specific to previous commits. However, I imagine the layers will be small (basically just the source code copy step) unle...
It is, yes. I took this approach from an example in the README.md of Docker's build-push action.
This was included, but not recognized as such by GH, in one of the commits I pushed.
[snekbox] Branch sebastiaan/backend/migrate\-ci\-to\-github\-actions was force-pushed to `8135eee`
Why was this changed from .? Isn't the docker directory deleted anyway?
79404ca Add comment explaining buildx to workflow - SebastiaanZ
I've added a comment. Is it enough?
I don't know but it doesn't seem necessary. It's already been removed.
I agree. Resolving since you've already made the change.
This shouldn't have happened. I'm not sure why it did either. I'll change it back.
85d9f3c Set up multi-stage Dockerfile. - lemonsaurus
9daf0de Set up docker-compose with graphite. - lemonsaurus
1c305a7 Just add yarn as an npm dependency. - lemonsaurus
b5a6888 โคโงโฅ REMOVE DEMONIC NEWLINE โคโงโฅ - lemonsaurus
2430cbc Add some documentation for the docker-compose. - lemonsaurus
0ca42be Fix Dockerfile paths + revert error in Dockerfile - SebastiaanZ
This PR adds some pretty nice improvements.
- We're now building the entire app (including the HTML) inside the Dockerfile by using multi-staging.
- I've added a docker-compose that sets up Graphite, so that all you need to do to test the app is just
docker-compose up - Added some nice
dockermentationdocumentation for the new features - EXORCISED AN EVIL NEWLINE
87058f9 Update node action in linting workflow - jb3
[python-discord/site] New branch created: sebastiaan/backend/fix\-flake8\-in\-ci
85d9f3c Set up multi-stage Dockerfile. - lemonsaurus
9daf0de Set up docker-compose with graphite. - lemonsaurus
1c305a7 Just add yarn as an npm dependency. - lemonsaurus
b5a6888 โคโงโฅ REMOVE DEMONIC NEWLINE โคโงโฅ - lemonsaurus
2430cbc Add some documentation for the docker-compose. - lemonsaurus
939bace Migrate build pipeline to Github Actions - SebastiaanZ
9d9a549 Remove CI dependency that is no longer in use - SebastiaanZ
54144e5 Remove escape sequence and improve job name - SebastiaanZ
2e35200 Rectify production branch and clean up formatting - SebastiaanZ
4f11ec4 Use repository caching for master build - SebastiaanZ
[python-discord/snekbox] branch deleted: sebastiaan/backend/migrate\-ci\-to\-github\-actions
Unfortunately, the way we ran the CI meant that flake8 ran on code already merged to master, not on the changes proposed in a PR. This is obviously quite useless and it's been changed now.
I've also split up the workflow into two files.
[python-discord/snekbox] New branch created: lemon/kubernetes\_manifest
- Add deployment manifest
- Add auto-deploy step to build stage
ded520e Pull snekbox image from GHCR in docker-compose - SebastiaanZ
ccd0e15 Make sure we lint the actual pull request - SebastiaanZ
5fe041d Update badges in README to new workflows - SebastiaanZ
6b07eb1 Use GHCR image tags in Pipfile - SebastiaanZ
79404ca Add comment explaining buildx to workflow - SebastiaanZ
[python-discord/bot] branch deleted: sebastiaan/backend/improve\-actions\-workflow
This PR adds two things:
- A k8s deployment manifest
- A deploy instruction inside the build stage of the CI.
Updates the Graphite URL to use the Kubernetes URI.
I believe both k8s steps need the if: env.production_build == 'true' condition.
0899344 Add production_build == 'true' condition on dep... - lemonsaurus
Right you are, thanks @MarkKoz!
ebd440a Update snekbox address in config-default.yml - jb3
[python-discord/snekbox] branch deleted: lemon/kubernetes\_manifest
[python-discord/site] branch deleted: sebastiaan/backend/fix\-flake8\-in\-ci
[python-discord/bot] branch deleted: kubernetes\-deploy
Connected!
Postgres backup completed!
0e68f82 Start database at the beginning of the workflow - SebastiaanZ
[python-discord/seasonalbot] branch deleted: sebastiaan/backend/fix\-flake8\-check
Connected!
Connected!
Connected!
d65785a Fix the deploy stage of our build pipeline - SebastiaanZ
[python-discord/bot] New branch created: sebastiaan/backend/fix\-deploy\-stage
I've fixed the deploy stage of our build pipeline, as it got mixed in with the old workflow file due to a merge conflict. The deploy stage is currently split into a separate workflow, as per preference of @lemonsaurus.
Theoretically, this allows usto trigger a redeploy from GitHub, without having to build the container image again.
Connected!
@thomaspet I have changed the scheduling logic (that has been slightly inspired by the python bot's reddit command's auto_poster_loop), but I haven't completely checked it out if it is working yet. I will test it out when I have time. Is the logic good now?
Now that someone's figured out you can cause havok by dumping massive amounts of emojis into a channel, we need a filter to automatically manage this ASAP. Detection should be fairly simple, a very high emoji count is required for the effect (>20/message) but emoji variance is not required.
Tangentially: This is also likely related to a discord update that went out that has slowed the emoji loading process recently.
I think we can safely filter out and autodelete high emoji messages wi...
Just replaced festive_256.gif server icon, last years icon is already archived under seasonal/christmas/2019/festive.gif
Thanks for your contribution! I saw it on the server and it looks great. In the future, it would a nice addition with images/gifs linked in the PR as well, so we know how it looks straight away.
Either way, I think the animated tree looks fantastic.
Description
Advent of Code (AoC) will be run a bit differently this year on PyDis, so some changes are required in the code itself. We'll have 3 leaderboards in the server, a global leaderboard, "private" PyDis leaderboard, and then a staff leaderboard. The current code only allows for the global and private PyDis leaderboard.
Proposed Implementation
- The leaderboard commands should provide the information for the staff leaderboard if triggered in the staff AoC channel. It shou...
So what kinds of emojis does this affect? Do standard unicode ones trigger it? Is it specifically Discord or custom emoji?
Description
A fun command that assembles a phrase which is an object to transform into. Similar to the old "Wonder Twins" cartoon. I.e "Form of a bucket of water."
Reasoning
I was recently watching a compilation of all the wonder twins' transformations and the video is hilarious. I believe users could have some fun seeing all of the combinations of (usually useless) water-themed objects a person could transform into if they were a wonder twin.
, but I haven't completely checked it out if it is working yet. I will test it out when I have time. Is the logic fine now?
I'm a bit unfamiliar with the task.before syntax. Does the sleeps in the before prevent the task from running?
the function decorated with the @task.before_loop decorator runs before the looping task starts.
5639a40 Limit STDOUT to prevent OOM events in container - SebastiaanZ
[python-discord/snekbox] New branch created: sebastiaan/bug/stdout\-flood
This have been actioned. All currently existing labels were migrated, so all previously set labels are simply updated to work with the new system, without removing the old ones.
The new labels are live. If you'd like to, feel free to give it another look and see if there's anything we want to adjust and simply change it. If there's something you'd like us to discuss further, you're free to open another issue with one of the new labels.
Let's try to update the other repos as well.
fd4d5b1 Add and update okhandbutflipped emoji - gustavwilliam
[python-discord/branding] New branch created: okhand
Closes #90.
Updates the emoji to use the current okhand twemoji. This is how the new emoji looks:

This emoji has been added to the server after being reworked slightly. It has been used a lot already, while bikeshedding, which tells me that it's an emoji we do indeed use and want to have.
@decorator-factory feel free to update this PR to include the updated emoji, so we keep the source files on the repo.
Oooooooooh yes! Letโs make them match!
Actually, it seems like you left from white background behind, can you get rid of it please?
Oooooooooh yes! Letโs make them match!
@Akarys42 good catch; fixed!
[python-discord/branding] branch deleted: okhand
Connected!
We're no longer using Azure, so this issue can be closed. The GitHub Action workflow webhooks are not perfect either, but that's worth a separate discussion is less related to the issue here.
I will use emoji library (https://github.com/carpedm20/emoji/blob/master/emoji/unicode_codes.py) as Unicode emojis can be made from multiple emojis and this library takes care over parsing them as 1 emoji.
Closes #1292
- Installed
emojipackage for parsing. - Include Unicode emojis to emojis rule.
SIGKILL is better since it'll result in a consistent error on the front end. Furthermore, SIGKILL cannot be handled by the child process, so it's more robust in this case.
100 seems really low. I suggest something in the 10's of kilobytes. Since an overflow of that magnitude is still insignificant, it should not discard the overflowed bytes it reads.
It'd help readability to move this to a separate function that returns the output.
Consider using io.DEFAULT_BUFFER_SIZE or setting a custom bufsize for Popen.
Looks good to me. Simple tweak is all it takes.
902b5fa Install emoji package for emojis filtering - ks129
29a22b4 Catch Unicode emojis in emojis filtering rule - ks129
14734fd Cover Unicode emojis catching as antispam rule ... - ks129
fb7ca02 Merge branch 'master' into emojis-filter - MrHemlock
c84f312 Merge pull request #1293 from ks129/emojis-filter - MrHemlock
Connected!
This is a stream in text mode; the size parameter refers to the number of characters in that case, not the number of bytes.
I can increase the number of characters read from the stream, although this increases the uncertainty about the size in bytes we're reading due to UTF-8 characters being up to 4 bytes long.
Consider using
io.DEFAULT_BUFFER_SIZEor setting a custombufsizeforPopen.
This is the default value for Popen due to the negative default value for bufsize (-1):
negative bufsize (the default) means the system default of io.DEFAULT_BUFFER_SIZE will be used.
this increases the uncertainty about the size in bytes we're reading due to UTF-8 characters being up to 4 bytes long.
Well, even being 40 KB over is not a big deal.
This is the default value for Popen due to the negative default value for bufsize
That was worded poorly. I mean that when you read from the stream, use read(io.DEFAULT_BUFFER_SIZE) or set the bufsize to the same number you use to read from the stream. Not sure if it really makes a difference.
Just to double check, there will always be a front-end indication of truncation since 1 MB is 250,000 - 1 million characters, but pastebin has a limit of 100,000 characters or 0.1 - 0.4 MB. Is this correct?
Just to double check, there will always be a front-end indication of truncation since 1 MB is 250,000 - 1 million characters, but pastebin has a limit of 100,000 characters or 0.1 - 0.4 MB. Is this correct?
That is correct. My idea was that I did not want to go lower than the pastebin limit, so I used a safe margin. Now I'm thinking that we could also count the number of characters we consume and limit that to, say, 99,900. That means we can always upload the results. We could even inclu...
I think it's fine as-is, though it should be documented that it truncates at around 1 megabyte.
af4846a Refactor STDOUT consumer to separate function - SebastiaanZ
ac16745 Keep output that took us over the output limit - SebastiaanZ
83e4586 Increase number of characters in each read chunk - SebastiaanZ
18ab777 Use SIGKILL instead of SIGTERM to terminate NsJail - SebastiaanZ
38e2ca5 Document output truncation in README - SebastiaanZ
Description
The bot sends "SeasonalBot" โ a hardcoded string for the bot name โ in the dev log, when connecting. This use the username of the bot instead.
Steps to Reproduce
(Re)start the bot and check the "connected" message sent in your dev log. The interesting part is the author name.
Expected Behaviour
I would expect either the username or display name of the bot to be used.
Actual Behaviour
The author part on top will use the hardcoded string "SeasonalBot" as the name....
Is -9 equivalent to 137? Is this some sort of two's complement thing around 127 or 1 byte?
This looks good. I'd just like a test for the output truncation. The test you added only tests for whether the process is killed.
Looks clean and ready to go. Another fine job.
You can just specify the environment variable itself if you just want it to be carried over from the host:
- SEASONALBOT_TOKEN
- SEASONALBOT_DEBUG
- SEASONALBOT_GUILD
- SEASONALBOT_ADMIN_ROLE_ID
- CHANNEL_DEVLOG
- CHANNEL_SEASONALBOT_COMMANDS
No, it's what you get back when you terminate a subprocess with a signal in Popen: the signal code, but negative. So, that's what we're getting here as well, a -9, because SIGKILL is 9.
Then this needs to be adjusted somewhere so that the bot will understand that it's still SIGKILL, because right now I believe it will only understand 137.
We could return a manual return code from the consume function:
- If we exceed the limit, we return a manual 137
- If we don't, we propagate the actual exit code.
[python-discord/seasonalbot] New branch created: redis\-persist
How about something more generic to normalise it:
if result.returncode < 0:
result.returncode = abs(result.returncode) + 128
I guess - can be used instead of abs()...
Connected!
A couple of things:
- "We'll try" - I'd like to avoid a rhetoric that implies that there is someone dedicated to helping, and say something like "Other members will try".
- I wonder if we should add a couple of words about the help channel being moved to the
Occupied Help Channelscategory
Now that the bot is changing its name, it needs a refactor to use the new name everywhere.
We also need to change the name of this repository.
I'll make these changes personally.
This should be solved by #526.
Description
constants.py has quite a bit of mess. There are constants we no longer use, there is a mix of regular classes and NamedTuples, and a lack of documentation. Let's clean it up.
Would you like to implement this yourself?
- [ ] I'd like to implement this feature myself
- [x] Anyone can implement this feature
b865efe Update available help channel embed message - gustavwilliam
Updated to say "others will" instead of "we'll".
@mbaruh I think adding that last part is a bit verbose. If we notice a drastic increase in people being confused by the where their channel went, let's add it. Right now though, I think we're better off not including it. The same goes for the rest of the embed as well; if we see something that needs to be mentioned, let's change it then.
Functions were split into separate modules because the single module was monolithic. What remains in the cog is too interconnected to refactor any further (relying on a bunch of shared state like queues).
There isn't much else to go into here since the changes mostly consist of moving things without further modification. There are a few exceptions like 840348b642f2d197e15d98a823d6e431b0a65d2a and 5ca816cccfe25eebba49d1c86b53d6b9166ce41a.
Why here and not in the main function? I'd rather avoid returning a tuple.
I'd rather avoid returning a tuple.
I'll change it, but what is your motivation for disliking it? Just personal preference?
faa8fe7 Move exit code conversion to main function - SebastiaanZ
@gustavwilliam This currently gives me two checkmarks?

I tend to associate it with functions that are broader in scope than they should be. It could also be a sign of clumsiness, like when returning some sort of boolean in addition to data. It may indicate a function can be further refactored. It's also more difficult to document, especially when not using named tuples. Returning two ostensibly unrelated things in a tuple makes the purpose of the function less clear.
In fact, ideally this function would only be concerned with the output and no...
[python-discord/sir-lancebot] New branch created: lemon/refactor/seasonalbot\_name\_change
I don't know where the suggestion button went, but there is a typo here.
Complete rebranding of the bot to Sir Lancebot.
Closes #526
969beaf Remove duplicate checkmark - gustavwilliam
we return the output as a single string.
f3d6b39 Fix typo in _consume_stdout docstring - SebastiaanZ
08ab6fe Change seasonalbot to sir-lancebot in test data - SebastiaanZ
[sir-lancebot] Branch lemon/refactor/seasonalbot\_name\_change was force-pushed to `786c01d`
5639a40 Limit STDOUT to prevent OOM events in container - SebastiaanZ
af4846a Refactor STDOUT consumer to separate function - SebastiaanZ
ac16745 Keep output that took us over the output limit - SebastiaanZ
83e4586 Increase number of characters in each read chunk - SebastiaanZ
18ab777 Use SIGKILL instead of SIGTERM to terminate NsJail - SebastiaanZ
[python-discord/snekbox] branch deleted: sebastiaan/bug/stdout\-flood
99ffe92 Add bright green color to constants - gustavwilliam
6db3713 Update help channel available message - gustavwilliam
43e52d7 Add green-checkmark to bot constants - gustavwilliam
6a53035 Use author as the title of the embed - gustavwilliam
1e9b22b Update available message to sound better - gustavwilliam
[python-discord/bot] branch deleted: help\-channel\-msg
Connected!
[python-discord/sir-lancebot] branch deleted: lemon/refactor/seasonalbot\_name\_change
26bf667 Header image for Sir Lancebot - lemonsaurus
8a57e92 Merge branch 'master' of github.com:python-disc... - lemonsaurus
e7d4007 Add a banner and fix the README a bit. - lemonsaurus
Following the successful implementation of an updated available help channel embed, I think it's time that we update the dormant help channel embed as well. There are two main reasons and goals for wanting to update this:
- Improving consistency
- Improving the dormant message
- Telling the user what to do if the question wasn't answered
Current help channel embeds
Here is the new available help channel embed:
This is the current dormant embed:
Implementation
I'm c...
Feels inconsistent. Maybe better to just import _names as well and have consistent namespacing?
I really like this. Excellent work.
This may have been changed in a later commit..
47d65fc Help channels: merge 2 imports into 1 - MarkKoz
It was still similar. Changed in 47d65fc
nice, I like it. ๐๐ผ
12cbfe7 (Aliases, discord.py 1.3.x Migration): Replaced... - ks129
61a93c1 (Snekbox, discord.py 1.3.x Migration): Replaced... - ks129
88b4c72 (Patches, discord.py 1.3.x Migration): Removed ... - ks129
1a14f4f (Off-Topic Names, discord.py 1.3.x Migration): ... - ks129
a4a4b98 (Reddit, discord.py 1.3.x Migration): Replaced ... - ks129
As I'm in the process of solving this, I believe the code as it stands in the master branch removes the help cooldown role from the claimant even if they should be on cooldown by virtue of another channel they've opened. Unless that's being handled elsewhere and I haven't noticed, is this also something we want to fix?
Postgres backup completed!
@MarkKoz #1276 this issue is for new filter that handles subdomains too, not only exact matches.
Connected!
[python-discord/bot] branch deleted: superstar\-fix
Lemojis are great and I've heard about many people being interested in contributing. There are however many steps involved and things to know before getting started, which is why I'm proposing a lemoji contributions guide. It will mention at least the following core points:
- The lemojis are based on Twemojis
- How relevant Twemojis are found and downloaded
- We work with vector graphics, which means that the contributors should be based on the source files (svgs)
- What lemoji template they ...
Connected!

