unixporn / trup Goto Github PK
View Code? Open in Web Editor NEWDiscord bot for the Unixporn community
License: Mozilla Public License 2.0
Discord bot for the Unixporn community
License: Mozilla Public License 2.0
Not exactly sure why this happens, but seems like the online mods connected to voice chat get pinged twice.
Roles should be displayed as their name instead of as a number for convenience.
Currently userFromString uses discordgo's internal State object to get the list of members, this sometimes doesn't work because not all members are in the state.
Example: someone's message was deleted for containing https://en.wikipedia.org/wiki/Retarded_potential
read below for a bit of context
!note <mention> some stuff
it works
it doesn't work
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.
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.
The proposed split:
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.
when a user leaves the guild, log it in env.ChannelBotlog, similarly to member joins
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.
Some commands aren't useful for normal channels, and are better suited for the bot channel, examples being !setfetch
and !help
.
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:
A similar user command working correctly:
Thanks to @GaugeK for the report.
EDIT: The bug report is already documented in #38
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.
Context.userFromString("AOsync") => Member { Username: "aosync", ... }
Context.userFromString("AOsync#9412") => Member { Username: "aosync", Discriminator: "9412", ... }
Add a feature where you can report issues in the server by dming trup, and have trup send reports to a moderator only channel.
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.
!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
.
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.
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
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.
Actually Discord should do this but eh.
For non-desktop images that get posted in #showcase, it is very annoying to have to go back and set the fetch again.
Sucks when muted people leave and then are stuck that way.
fix now.
whenever i run !setfetch and type my new info for my install my fetch image doesnt stay.
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.
I'm thinking maybe past 30 days and total.
this is bad
if anyone except @buffet closes this issue i will literally do nothing with extreme prejudice >:(
!warn doens't seem to check whether the user is valid, and then warns <@>.
Normal users should not see the commands that are moderator only when running !help.
There are two possible solutions for this:
!modhelp
)moderatorOnlyCommand
s if not.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.
neofetch --json
neofetch --stdout
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.
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.
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.
Usage: move <destination_channel> [users...]
Requests [users...] to move from channel of invocation to <destination_channel>
Continuation from #invocation-channel (link to message of invocation)
in <destination_channel>Continued in #destination-channel (link to message 1.)
in channel of invocationi 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.
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
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.
People should be able to fetch specific fields like so: !fetch <user> <field>
Makes it easier to lookup users when they did a naughty.
Might want to have this as an extra command (!modinfo, !stat) as that wouldn't be relevant most of the time.
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
The warn and note commands should have a !note undo <user>
/ !warn undo <user>
command to remove the latest warn / note.
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.