Code Monkey home page Code Monkey logo

sinbadcogs's Introduction

SinbadCogs

Availability of Support

Support is not available. Fixes no longer accepted. Repository remains for historical reasons only.

Whats here?

Historical code.

What-ifs

If I could go back to then, knowing what I do now with the full view of the situation, I'd have done things differently.

To those who were negatively impacted, whether you see this or not, I'm sorry I did not find a better path.

sinbadcogs's People

Contributors

mikeshardmind 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  avatar  avatar  avatar

Watchers

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

sinbadcogs's Issues

[V3] Typehints

A few of my cogs have had small bugs which would have easily been caught by real type checking sooner than they were. The more complex ones such as RoleManagement, I'm marking as needing full typehinting before considering as stable.

[reporttool] Failed reports trigger a cooldown timer

So someone was receiving death threats and tried to use the report tool - but since they hadn't used it before, they didn't know about needing to use a number to specify the server. Since there's only one server the bot is on, I think the prompt to specify a number should only come up if the bot is part of multiple servers. If possible, the bot should only show the prompt if the user is actually part of multilpe mutual servers with the bot AND if the user DM'd the !report command (since if you typed it in the server itself, we can infer that they probably wanted the report sent to that server).

What ended up happening was that since they took too long to put in a number, the tool told them they took too long and to try again later - and then wouldn't let them submit another report. The countdown for sending that number also seems really really short.

Considering that if someone really wanted to be annoying with the report tool they can just be banned, I think at least it should be configurable how long the delay is between reports, if there should be a delay at all. And if a report fails, it should be posisble to immediately send a new report, only successful reports should trigger the cooldown timer if it exists.

Luckily it panned out that the dude sending the death threats stormed off and I could just ban them when I happened to glance at the chat half an hour later, but obviously it's kind of an issue if someone who isn't familiar with the tool has to wait several minutes between report attempts when there's a serious issue requiring immeidate attention.

[streamannouncer] Delete messages when stream goes offline

By default, it seems like Red's built-in stream cogs will delete the post once the stream goes offline, which is useful when posting the stream in the main chat channel since it keeps someone's spotty connection from spamming the chat. It'd be nice to have it here too, at least as an option.

[IDEA] Report/Suggestionbox cogs

I think a cool feature to add, would be for suggestion and reports, to give them an ID#, and staff that recieve these suggestions/reports, can respond directly to the user with the given ID, through the actual bot.

Example:

User A submits a report, with a report # of 1.

Then the staff team, can do [p]respond {ID#} {response}

This way, the report/suggestion can be replied too directly, straight through the bot.

Feel free to comment below and questions, or need a better explanation.

roleblacklist.py issue

Hi I'm getting an error with the roleblacklist.py cog this is the error

File "C:\Users\Carl\Documents\bot\cogs\roleblacklist.py", line 61, in <genexpr> for r in author.roles KeyError: '465536300452151298'

@mikeshardmind

[IDEA] Suggestion for Multiwayrelay/Linkchannel cog

If possible could the messages be relayed using webhooks? so it appears as if the user posted themselves rather than the bot quoting.

Also a toggle that allows attachments and links to embed like normally.

[Autorooms] List and delete clones

Currently, there's no way to list or delete currently cloned channels. Obviously you can just go into settings.json and mess with it there, but it should be possible to delete cloned channels.

[Autorooms] Customize naming scheme

A command to customize the name of the cloned channels would be nice. You could include (original) for the original channel name, (user) for the name of the user that created the auto chanel, (#) for the lowest unused number for that cloned channel (so people can specify rooms as Overwatch #1, Overwatch #3, Overwatch #2, et cetera), et cetera.

[Autorooms] Empty channels sometimes aren't deleted

Sometimes channels won't get deleted. I don't know how, exaclty, as I haven't been able to reproduce it myself, but there was one empty room today that I think was an accident and then the other day someone deliberately triggered that glitch to spam a hundred empty voice channels. They didn't do anything funky with the permissions because it didn't show up in the audit log, it was just Red.

I don't know if there needs to be a periodic check to purge all empty auto channels or what.

[V3] Relay : Respect filter & remove inv links

is it possible for the filter to work with relay? globally?
it'd prevent profanity ect and possibly invite links? ik it's a bit much but relays used globally would benefit a lot from this

V3 Role Management

Here's a list of things this has planned, and the status of each

  • Role criteria
  • Role searches
  • Self Role assignment by command
  • Self Role assignment by reactions
  • Mass Role assignment with criteria
  • Per user forbidden role settings (prevent specific users from gaining a role)

Feature Request: BanSync V3 - Single way sync.

I want to request a new feature for bansync V3.

I really like to see a single way synchronisation option.

For a few servers I provide a service where I (hack)(pre)ban malicious people that people are reporting to me or that I see for myself. (Eg. mod-logs from other servers). To prevent those people to join in that servers. However I do not want there banned people added to the other servers.

In that case the servers get the malicious people banned but if user X is in A and B and got banned in B it will not be banned in A. .

Thanks!

V3 EmbedMaker

Current functionality should all be possible in V3 as well.

Additional planned features:

  • Setting an author
  • Field support
  • Previewing embeds before finishing them
  • Image options

[IDEA] One way relay

Maybe as a feature in multiwayrelay cog, I'd like for messages to go to another channel without receiving any back from it.

timestamp in embeds

Love your crossquote cog. Unfortunately it does not post the timestamp in localized time. Discord does support localized timestamps.

Currently the timestamp is passed as a string to the footer object. With the change people on different timezones will see the correct time and don't have to do any time conversion.

[Autorooms] Give user full permissions

It would be helpful to have a command to make a cloned channel give the user that created it full permisions. On a busy server, this would allow users to essentially create their own channels and be able to mute and deafen others, change the bitrate, restrict access to only their friends, send links directly to that voice channel so that their friends don't have to find it in a busy server, and otherwise do as they please. This makes it unnecessary for users to create their own server just for voice chat, this keeps users in the server and engaged with the community.

It is possible in Discord to allow users to create channels, of course, but this would have the added benefit of cleaning up unused channels and avoiding clutter and prevents a single user from creating more than one channel at a time.

[v3 ModRemplacer] set' object has no attribute 'keys'

Other bugs

What were you trying to do?

[p]mute server @anUserAccount without specifying the mute time (expecting it to be infinite).

What actually happened?

On discord channel: Error in command 'mute server'. Check your console or logs for details.
Traceback:

Exception in command 'mute server'
Traceback (most recent call last):
  File "D:\Anaconda3\envs\discordbot\lib\site-packages\discord\ext\commands\core.py", line 61, in wrapped
    ret = await coro(*args, **kwargs)
  File "D:\DEV\Data\cogs\CogManager\cogs\modreplacer\mod.py", line 1062, in guild_mute
    guild_wide=True,
  File "D:\DEV\Data\cogs\CogManager\cogs\modreplacer\mod.py", line 1168, in process_mute
    await self.cancel_tempmute_expires(target, *successful.keys())
AttributeError: 'set' object has no attribute 'keys'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "D:\Anaconda3\envs\discordbot\lib\site-packages\discord\ext\commands\bot.py", line 899, in invoke
    await ctx.command.invoke(ctx)
  File "d:\dev\src\redbot\redbot\core\commands\commands.py", line 409, in invoke
    await super().invoke(ctx)
  File "D:\Anaconda3\envs\discordbot\lib\site-packages\discord\ext\commands\core.py", line 1024, in invoke
    await ctx.invoked_subcommand.invoke(ctx)
  File "D:\Anaconda3\envs\discordbot\lib\site-packages\discord\ext\commands\core.py", line 614, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "D:\Anaconda3\envs\discordbot\lib\site-packages\discord\ext\commands\core.py", line 70, in wrapped
    raise CommandInvokeError(e) from e
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'set' object has no attribute 'keys'

How can we reproduce this issue?

Install ModRemplacer from git repo V3 branch, and execute command.

V3 Automoderation

I'll be starting work on an automod cog after the main things from #57 are finished.

Here are the planned features so far, I know it's a little generalized.

Automatic scanning of messages, with flagging for mod review.
Training mode: for each message, the bot will generate what it thinks the correct action (including choosing not to act is)

This cog should also be aware of the following things:

Command usage vs messages
Permissions / administrative roles

The cog will learn on the fly if used that way, but will also learn in a training mode if used that way.

[V3] Relay : List the server channels belong to

I'd be nice for it to state what server it's linked to, as right now it's very confusing trying to remember what servers are linked to a channel.
image
as that isn't very helpful if you've got multiple servers connected to a channel and doesn't state what's connected.

Null handling....

My initial reaction is people should just be banning people from their servers if they are abusing the fact that this is an issue, or at least blacklisting them from the bot; while this is true, it still doesn't resolve the issue.

the purge function in tempchannels.py is currently not removing channels named "null" or "Null" In theory, someone could make 1000s of channels named this making it incredibly difficult to find where people are.

[V3 Embed Maker] UX improvement

Current yaml handling, work but is ugly. Should also provide an argparsed version, as well as (maybe) an interactive menu.

[Announcer] Announcer Confirmation

When I used Announcer(after setting channels) you should send a message whether it was successful or not, as well as telling you to set channels if none are set up. Not really an issue but a suggestion.

V3 Priorities

So this issue marks a development freeze on anything but bugfixes for any cogs written for Red (v2) in here.

This is in preparation for getting everything ready for v3.

Some cogs need rewriting, others had features I knew would be easier to get working with the rewrite of discord.py that didn't get implemented [on v2] as a result.

Here's my current priority list (subject to change pending feedback from people who use my cogs)

  • BanSync,
  • ServerWhitelist / ServerBlacklist
  • Autorooms & TempChannels
  • QuoteTools
  • ChannelRelays
  • AntiMentionSpam
  • Role Management System
  • Embedmaker
  • RSS

Future plans:

  • SuggestionBox
  • Announcer (pub/sub based)

Anything not listed here is not a priority as of now.

Additionally, the following cogs are not being ported for various reasons:

advstatus (should be core feature in v3)
streamannouncer (This one might change, but realistically, I'd prefer to make the PR to red if needed)
audionotifier (Red's audio cog has this more than covered now)


Feedback about which cogs you'd like to see prioritized or what features you'd like to see are always welcome.

[TempChannels] save previous channel settings, channel categories

I was wondering if this could be added or if it’s possible but what I was thinking is if a user changes for example the user limit on there temporary channel that even after the channel is deleted the next time they go to get there temporary channel back that the bot will automatically set the user limit to what is was previously. Also a option to put all temporary channels under a set category. Example: Admin could confingure the catigory with [p]tempchannel category categories name) and this can be toggled on and off.

Key errors in Autorooms

Needs some logic fixing to prevent this, the key errors are mostly harmless, but avoidable with better logic.

Time.

Another tempchannels.py issue

Unfortunately, this issue is appearing intermittently. I have not been able to determine the cause yet,
Channels are being removed inconsistently with respect to the built in 5 minute removal on non-use. Sometimes being removed, other times not.

[Autorooms] makeclone does not check for valid channels or duplicates

!autoroomset makeclone does not check to see if the channel actually exists or if it's already been cloned. It should check first to see if the room exists, and if not it should return a message explaining how to get the channel ID of a voice channel (User Setings -> Appearance -> Under Advanced, turn on Developer Mode, then right click a channel and click Copy ID). If it's already been cloned, it should either remove that clone (solving #25 ) or otherwise return an error message.

[ReportTool] Error when attempting to send reports in DM's

Currently, when I go to use the report tool in a DM, it instead throws an error.

[16/09/2017 15:56] ERROR red on_command_error 369: Exception in command 'report'
Traceback (most recent call last):
  File "lib/discord/ext/commands/core.py", line 50, in wrapped
    ret = yield from coro(*args, **kwargs)
  File "/home/jimsterling/cornflake-homunculus/cogs/reporttool.py", line 97, in                                                                                                                                                              makereport
    if server.id not in self.settings:
AttributeError: 'NoneType' object has no attribute 'id'

This works fine when using !report in the server itself, as the bot can tell which server is supposed to receive the report.

My users need a way to discretely send a report to all moderators/admins as we sometimes deal with sensitive stuff, so DM'ing the command is the safest method (no worrying about the bot temporarily going offline and not deleting the command before anyone can see it). If they're seen submitting a report, that could mark them for harassment from whoever's going on a bigoted rant.

It's probably possible to check what servers the bot shares with the user DM'ing them and then asking the user to specify what server to send the report to if there's more than one (whether or not ReportTools is enabled on all those servers, just to be extra safe).

[announcer] All X times

Hello, I would like to know if it is possible to add a message x time in the channels?
Thank you

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.