naval-base / yuudachi Goto Github PK
View Code? Open in Web Editor NEWDiscord moderation bot
Home Page: https://yuudachi.dev
License: GNU Affero General Public License v3.0
Discord moderation bot
Home Page: https://yuudachi.dev
License: GNU Affero General Public License v3.0
Ability to configure an anti raid mode, actioning members younger than a specified threshold
/antiraid disable
/antiraid <action: kick, ban, mute> <threshold>
Threshold parsed as "action if younger than" with input like 10h
, 1w
etc.
Possibly reflected and able to toggle in dashboard
Edit: actually applies to all actions, despite "reason" being marked optional in slash command usage, it seems to not actually be handled as such in the backend
In case of role actions: the unrole log is sent, including a message link to https://discordapp.com/channels/789143141495865374/789144784463855676/null
(very low priority)
By detecting if the user is in the cases
table with the latest infraction being a ban or an input field for their user id they got banned with.
There should be no more moderative actions without reasons, but to be able to edit them this command needs to be implemented still.
sometimes the tag name is elusive but bits of the content or an alias are known
Allowing easily followable reference chains
might be possible to couple or interweave with #883
set reason args in any context that allows it (/someaction
or /reason
)to a 1999 character long argument
expected: truncates reason to still be able and set the reason and send the response | still full reason in website (if possible)
actual: handler crashes
handler_1 | 4 select locale, modules
handler_1 | from guild_settings
handler_1 | where guild_id = $1; [ { type: 0, value: '789143141495865374' } ]
handler_1 | /usr/yuudachi/packages/rest/dist/Rest.js:73
handler_1 | throw new HttpException_1.default(httpRes.status, httpRes.body.toString());
handler_1 | ^
handler_1 |
handler_1 | HttpException [Error]: 400: {"code": 50035, "errors": {"content": {"_errors": [{"code": "BASE_TYPE_MAX_LENGTH", "message": "Must be 2000 or fewer in length."}]}}, "message": "Invalid Form Body"}
handler_1 | at Rest.do (/usr/yuudachi/packages/rest/dist/Rest.js:73:23)
handler_1 | at processTicksAndRejections (node:internal/process/task_queues:93:5) {
handler_1 | status: 400,
handler_1 | body: '{"code": 50035, "errors": {"content": {"_errors": [{"code": "BASE_TYPE_MAX_LENGTH", "message": "Must be 2000 or fewer in length."}]}}, "message": "Invalid Form Body"}'
handler_1 | }
test reason: "a".repeat(1999)
:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ver: 47c760d
A separate feature request, but related: make duration editable (separate since it probably needs some more work and might be a thing to introduce in a later stage) #912
e.g., "crypto" resulting in all actions where the reason includes the phrase "crypto"
Ability to edit cases (references, reason) from within the dashboard with effect on the log channel
After updating properties clicking the edit button will get the values from before the edit back in the modal. The table row itself in the case view is already updated.
The edit modal still shows the previous reason "first". However, this resolves itself if the modal is closed and re-opened, thus probably very minor, maybe even "wontfix" territory.
seeing fewer entries (due to search) can be confusing since nothing indicates the current view is caused by a search
something like "showing X out of N cases" might also be interesting to indicate this
2 -> warn, etc.
Default to 0 day deletion of messages because of possible reports to be made to T&S.
Maybe make an alias for mute.
/duration <id> -20m
)(preferably with jump links)
To extend/shorten the duration of timed restrictions
(low priority)
This is currently implemented to happen on refresh. I find this quite unexpected!
As a user, I'd expect a refresh to keep the query alive and instead have a "reset/clear search" button to go back to the "show all" default
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.