Giter Site home page Giter Site logo

trup's People

Contributors

aeknt avatar alexislours avatar aosync avatar arulagrawal avatar davidv171 avatar drg-developer avatar eepykate avatar elkowar avatar exorcist365 avatar kayew avatar matthilde avatar mlvzk avatar overmighty avatar quintenvandamme avatar radiohertz avatar safinsingh avatar tanish2002 avatar tteeoo avatar wooosh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trup's Issues

Command proposal: !watch

!watch <user> [time]
would create a hidden channel where all actions of the given user are logged. This would make it easier for the mod-team to keep an eye on people, reducing moderation effort.
Watching would stop either after the time ran out, or after a mod runs !watch stop in the given channel.
The channel should stay existant until the mod runs !watch close.

Possible, major issue

Thanks to discord being rather weird, hidden channel names are still visible to the API as well as the audit-log. This would mean that anyone using a customized client could see the hidden channels, which would in many cases cause people to behave very differently and is also likely to cause regular discussions and complaints by community members.

Possible solutions

  • Channel names that don't show the name of the watched user. This would only partially fix the issue, as people would likely be able to guess that they are watched out of context.
  • Show the watch-logs externally, on a different server. This would work, but would be very unergonomic for the moderators, as well as be a hassle in general.

log member leaves

when a user leaves the guild, log it in env.ChannelBotlog, similarly to member joins

Autoremove bot error messages after a few seconds

when you mistype a command, in many cases the bot prints the usage string. This response should get automatically removed after some time (~10 seconds).
This could also be done for "Success" style responses.
For this, there should probably be a new function SendAutoremove (or something like that) created in command.go, which resembles Reply, just that it automatically removes the message after a given amount of time.

Enforce that people only vote either yes OR no in polls

People voting for both yes and no in polls makes the poll seem more controversial than it is, so trup should be able to automatically remove the "yes" reaction if the user reacts with "no" and vice versa.
I'd be interested in trying to implement this too, if you think it's a good idea.

[question] What's with the multiple bots?

Why are there two bots for the discord server?

This one looks newer; is this bot going to eventually get all the features of the Mi bot?

If so, I'd gladly help porting the commands.

Date for joins and leaves

Join and leave logs should include the time when it happened (I think UTC would work best there), as Discord often hides time stuff, and it's kinda exhausting to click on it.

move command

Usage: move <destination_channel> [users...]

Requests [users...] to move from channel of invocation to <destination_channel>

  1. Posts Continuation from #invocation-channel (link to message of invocation) in <destination_channel>
  2. Posts Continued in #destination-channel (link to message 1.) in channel of invocation

Check the audit log to see if a mod deleted a message.

It appears that the audit log is open to the bot api, so why not check the latest entry when a message has been deleted, and see if it was done by a user, or a mod? If a mod deleted it, they could be added somewhere in the message.

Message Deleted by mod#1234

And then continue like normal.

rewrite in a lang with a good discord library

i think everyone has had enough of discordgo's shit by this point.

current candidate: rust, it's a popular lang and (apparently) serenity-rs is good. The maintainer, mlvzk, has already announced a desire to rewrite, and 3 people (including him) in the mod team know rust, as well as a regular member expressing a desire to help. (xerox'd from #119 (comment))

We haven't had many discordgo issues recently (So no real reason to rewrite), when/if we do the rewrite it'll likely be in rust.

Mute gets slower over time

The longer trup is running the longer it takes for the mute command to take effect.

Might be related to the state issues in discordgo.

Modmail

Add a feature where you can report issues in the server by dming trup, and have trup send reports to a moderator only channel.

Allow the ability to change mute times

sometimes a user gets muted for a short amount of time when a longer mute would be a better idea.

currently you can lower the duration for obvious reasons, but you can't make it longer.

Make matching on multiple members interactive, fix matching generally

example:

User: !fetch david

Trup:

error: matched more than one user, which one did you mean?
1: davidv7#4226
2: davidlee#5195
3: david#5710

After this, the user inputs the index number of the target user, and trup fetches for him.

So in the case of the user inputting 1, the davidv7#4226 user would be fetched.

There have been some bug reports of matching reporting false multiple hits:

image

A similar user command working correctly:

image

Thanks to @GaugeK for the report.

EDIT: The bug report is already documented in #38

Send autodeleted messages in DMs to the user

Some people have been typing out long, long paragraphs about some things that have contained some words some people don't like, and they have been autodeleted by trup. However, because of the way it works now, you cannot edit out the words and resend it. For example, sending the message "foobar" gets deleted by trup, and then trup sends a message like "Please do not say 'foo' in r/unixporn. Your message: foobar" to the user who originally posted the message in DMs.

Split log channels

The proposed split:

  • #mod-commands is #bot-shit (channel to issue commands in) (trup doesn't have to be aware of this)
  • #mod-cases logs !ban !warn !mute
  • #mod-automod logs automatic message removal (with reason and message)
  • #mod-messages logs user deletion and edits
  • #mod-traffic logs people joining and leaving

The reasoning behind this proposal is that mods can mute some things, but not others, without having to make a decision for all of them combined.

/dev/null is empty

this is bad

if anyone except @buffet closes this issue i will literally do nothing with extreme prejudice >:(

make a `!setfetch update` command

currently !setfetch clears all fields and sets new ones.

!setfetch
DE/WM: i3

Clears all previously set fields.

!setfetch update
DE/WM: i3

This would only update the DE/WM field of a fetch, it wouldn't remove the other fields.

Anti-raid features

  • automatically assigns a role (functionally similar to muted) to all members joined after !raidon, and maybe for a few minutes before.
  • enable slowmode on all channels
  • set moderation level to "high" (no messages for 10 minutes after joining)
  • easily mass-ban(/kick) (should delete all recent messages too)
    • join time
    • regex name matching
    • account age
    • or any combination thereof

The first three should be reverted whenever !raidoff is ran.

This should be triggered automatically whenever a large amount of people join within a short time period.

Don't show mod-only commands for normal users

Normal users should not see the commands that are moderator only when running !help.
There are two possible solutions for this:

  • Implement a new command for mod-specific commands (!modhelp)
  • Check if !help was run by a moderator, exclude moderatorOnlyCommands if not.

!fetch display NEEDS a timestamp/last updated on field in the embed

We do NOT want the confusion of a person having a 3year old kernel and newer members assuming that data is new/up to date.

Please add a "last updated on" field in the embed. Due to the general structure of the database elsewhere I assume the field is present already, and just needs to be updated.

To clarify, I am talking about displaying the timestamp of the last valid !setfetch.

trup's fetch

create trup's fetch, so you could run !fetch @trup and see what software/hardware he uses. that doesn't really do anything useful but it will be a cool easter egg in my opinion.

database breaks sometimes

read below for a bit of context


Example:

!note <mention> some stuff

Expected Behavior:

it works

Actual Behavior:

it doesn't work

rewrite in rust

Not sure how mature serenity is and if it can do all what we need, but should be viable
for talking with database we could use diesel.rs

Bulk remove command

Usage: remove <message_count> [user]

Removes last message_count messages [written by @user] in the channel it was invoked from

Example:

remove 15 <@1234567890>

would remove last 15 messages sent by the mentioned user, in the channel it was invoked from

TY @davidv171 for the idea

Clear profile

This can be used by both users and mods, however mods will be able to clear the profile of another user.

I propose the commands

!setfetch clear and !setfetch clear @user#1234

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.