Add main application entry point and requirements file#3317
Closed
play2berich wants to merge 30 commits into
Closed
Add main application entry point and requirements file#3317play2berich wants to merge 30 commits into
play2berich wants to merge 30 commits into
Conversation
This is the initial implementation - it's currently _far_ from perfect
and is very susceptible to errors.
Notable features beyond the basic requirements:
- Fails safely when max mentions reached (we're limited by the
2000-character limit when sending the reminder with the pings), and
disables the button.
- Adds an additional embed to the initial confirmation message to show
who clicked on the notify button.
- Edits the additional embed and disables the button when the reminder
is sent.
In many ways, this implementation is quite bad:
- Uses an async callback to delegate the task of PATCH-ing the API to
edit mentions to the `new_reminders` method.
- Edits to the opt-in list embed relies on the fact that the reminder is
not edited (using !remind edit) before someone clicks on the button. A
trivial way to fix this would be to add another field to the site
schema to store the `notification_view` in some way.
- The button is neither disabled nor any edits to the embed made when
the reminder is deleted before someone clicks on the button.
- String splitting is used which relies on the exact format of the embed
message when editing the embed to disable the button. We have to
reminder to update this piece of code when adjusting its format in the
future.
The UX can also be improved. Currently, I can't think of a way to
concisely phrase the button embed message so that it is clear that the
button is for people _other than_ the reminder author.
Notes:
- Max reminder mentions:
- Mentions are pinged directly in a discord message when the reminder
is sent. This means we're limited by the 2000-char limit. If we take
each User ID snowflake to be 18-characters, and considering each
mention to be formated as "<@id> " (with extra space), it results in
about 90 mentions max. I've set the constant to 80 just in case.
- This is not an issue when the mentions are added in through other
means than the button we're adding in this commit, because the user
has to use @-mentions when sending the `!remind edit` command, which
is already under the discord's character limit.
- Log messages are added when something unexpected occurs within the
code. Hopefully this is unlikely to happen after the implementation
issues listed above are solved.
- The opt-in list in the second embed is separate from mentions added in
the original reminder creation, or any further edits, because mentions
are added by the to-be-mentioned-user, rather than by the reminder
author in this way. (Even though they are stored the same way.)
This solves most, if not all issues from the previous commit.
- A timeout of 5 minutes is enforced - this means the button can no
longer be used either when the reminder arrives or 5 minutes passes
since creation, whichever comes first.
- Reminder edits in between creation and button clicks will be handled
responsibly
- This includes both edits of duration, mentions, and deleting
reminders altogether.
- UX is improved. This list of to-be-mentioned users is sent up-front
with the author included. Instructions to click the button comes right
after the list.
- No updates to the API or site schema required, as the button message
will disable itself when it encounters any sort of errors.
- Implementation is also somewhat simplified.
There are probably more improvements, maybe one caveat, but it's like
almost midnight and I want to sleep :/ I sure hope the list above covers
most of it.
Further testing will be done. Now `.remind 10s test` is ingrained in my
muscle memory...
- More resilient handling of API errors. - Don't rely on string manipulation to disable the button.
This removes the need of any form of error handling from `embeds` list indexing, and makes the code more concise and readable. The drawback is that a whole new embed object have to be allocated each time, rather than editing the description like before.
…_index % zen_lines would be 0, even though it's the last line
…rn all lines from the second to the last)
Co-authored-by: Vivek Ashokkumar <vivekashok1221@gmail.com>
Button for others to opt-in to be notified for reminders
* Added the possibility of slicing for the zen command * Fixed off-by-one error, as the end index can be equal to the length of the zen * Added support for negative signs and replaced re.search by re.match * Allows for end_index == len(zen_lines). Previously, in that case, end_index % zen_lines would be 0, even though it's the last line * Allows for slicing without a specified end index (e.g. "1:" will return all lines from the second to the last) * Update end index display when slicing in the zen command Co-authored-by: Vivek Ashokkumar <vivekashok1221@gmail.com> * Added tests for the zen command --------- Co-authored-by: Vivek Ashokkumar <vivekashok1221@gmail.com> Co-authored-by: ChrisJL <ChrisLovering@users.noreply.github.com>
Bumps [getsentry/action-release](https://github.com/getsentry/action-release) from 1 to 3. - [Release notes](https://github.com/getsentry/action-release/releases) - [Changelog](https://github.com/getsentry/action-release/blob/master/CHANGELOG.md) - [Commits](getsentry/action-release@v1...v3) --- updated-dependencies: - dependency-name: getsentry/action-release dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Mods no longer want to be pinged when a fitler results in an auto ban, but we still want the message to be sent to mod-alerts.
Remove pings when auto-banning in filters
* Add founders role to constants.py * Add Founders to some talentpool commands
Handle errors introduced by inferior developers such as @shtlrs Co-authored-by: Chris Lovering <chris@jb3.dev>
Add step to zen command slicing
Member
|
@play2berich if you wish to contribute to our projects please comment on a relevant issue that you want to work on instead of just opening broken PRs. We are on Discord and don't bite if you want to come and ask for any advice or guidance! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
commit