Git Product home page Git Product logo

auto-voice-channels's People

Contributors

chillfish8 avatar dylian94 avatar gregzaal avatar handyhat avatar kywan avatar realcyguy avatar untuned avatar vinanrra 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  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

auto-voice-channels's Issues

Add Blacklist Role(s) or Words

The ability to restrict roles that cannot use the bot would be helpful for banning users that have proven they can't handle freedom like using vc/name or vc/nick.

Could work similarily to how restricting commands work but if a user is in a role that is in the blacklist they are not allowed to do more than create a channel through the Auto Channel Creator(s).

Another option would be to be able to blacklist words/names from use in vc/nick or vc/name.

Just some thoughts I had about managing users. Hopefully, they haven't been suggested before, but at a quick glance, I didn't see it in the Discord or on here.

Send admin logs to channel in the support server instead of DM

With other devs on board, it'd be good to send any admin logs (like errors and tickrate warnings) to a private channel in the support server, rather than just DM'ing the admin/me.

It'd also be good to allow approved devs (specified by a role in the support server) to run the various admin commands like whois, settings, log, etc. to help in debugging.

This should be optional though and disabled by default, as people self-hosting the bot would probably just want to use DMs anyway.

Persisten user preferences.

Allow users to tell the bot to remember their current channel's settings (custom name, user limit, etc.) and use it for every new channel they make with the same primary channel.

Enable all commands if self-hosted

Atm most of the patreon integration is still in the code, help docs, etc. This should all be removed/hidden and all commands and features should work unless patreon_info.py is present.

self hosted bot docs.md not found

when someone types vc/help the server get the response:

A FileNotFoundError error occured :(
Please ensure I have the correct permissions, check @avc Premium help help for the correct command usage, and then try again.
If that still doesn't help, try asking in the support server: https://discord.gg/qhMrz6u

and i am getting a private message with:

Server: 733421642910269480
FileNotFoundError with command help, params_str: ``
Traceback (most recent call last):
File "/discordbot-AVC/Auto-Voice-Channels/commands/init.py", line 164, in run
r = await cmd.execute(ctx, params) # Run command
File "/discordbot-AVC/Auto-Voice-Channels/commands/help_cmd.py", line 72, in execute
with open("docs.md", 'r', encoding='utf8') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'docs.md'

i already checked if the file/s are there and the file/s are there
i am hosting the bot on a private linux(ubuntu) server
and the bot have the permissions

Clustering

Obviously we talked on discord about this, but I just want to keep a list here of the things that need to be done before (or shortly after) clustering the main bot:

  • Shared stats - for the stats admin command, show guilds, users, channels, function timings & tick rates for all clusters (don't add them up, we want to see them individually so we can tell if one of them is dead). E.g:

Servers: 570 · 482 · 565 (A:401 S:2) Users: 303194 · 298425 · 324812 Channels: 151 · 132 · 182
Response time: 0.15s Tick rate: 21.6s · 19.2 · 23.5
CPU: 19.4% MEM: 3.5GB (14%) DISK: 5.5GB (1%)
Last commit: fixed UIptime v2?
Lines of code: 5885
Up time: 0 Days, 14 Hours, 21 Minutes, 32 Seconds
Timings:
deletion_loop: 0.71 · 0.69 · 0.79
lingering_secondaries: 0.68 · 0.65 · 0.71
creation_loop: 0.67 · 0.65 · 0.71
main_loop: 0.41 · 0.45 · 0.41
check_dead: 0.25 · 0.25 · 0.21
dynamic_tickrate: 0.15 · 0.15 · 0.11
cleanup: 0.01 · 0.01 · 0.02
check_votekicks: 0.00 · 0.00 · 0.00
create_join_channels: 0.00 · 0.00 · 0.00

  • Show combined total channels in the bot status
  • Shared patreon data - have only one cluster, or a separate process, get the patreon data and handle expired tokens. Note that currently it checks every 2h or something, but it also watches the roles in the support server (which are managed by Patreon's own bot) and fetches new patrons when the patron role is assigned to someone new. Only the cluster that's used for the support server can see that obviously, but atm all clusters will try to update patrons every 2h.
  • Ensure that the bot still works without clustering by default (for self-hosters and private patron bots)

Rate limit usage of the Join channels of private VCs.

Currently it's possible to spam join/leave the Join channel of a primary channel, causing a new message to be sent to the creator each time until they block the user.

There should be some kind of rate limiting, or prevention of multiple request-to-join messages generated for the same user.

[Feature Request] Roman Numbers

Is it possible to change the digits from 1, 2, 3, 4, ... to I, II, III, IV, ...?

For example:

  • General I
  • General II
  • LoL I
  • LoL II

Option to keep empty secondaries alive momentarily

Optionally keep channels alive for a minute or two when everyone leaves, in case they DC'd and come back shortly. This saves them from having to redo any channel customization (e.g. name, permissions, attributes).

These could possibly be reused in the case of somebody spam creating channels, they simply get moved to their previously-made channel instead of forcing the bot to create a new channel.

+New Session should stay on top

Currently, +New Session is pushed below each new VC that is created.
I would like the VCs to be created below +New Session.
Is this doable?

Kick doesn't work

From a user: "When the voice chat is locked - The vc Kick command doesn't seem to work after everyone votes to remove a user. I made the bot admin to see if permission was the issue but still didn't work after."

Migrated SQLITE to MONGODB

Maybe someone know, how to change sqlite to mongodb database,
because when i hosted in heroku, when bot restart, old channel won't deleted, because cannot can't read the database before in heroku.

When typed (prefix)help this comes out

FileNotFoundError with command help, params_str: `` Traceback (most recent call last): File "C:\Users\matt\Desktop\vc channels\Auto-Voice-Channels\commands__init__.py", line 160, in run r = await cmd.execute(ctx, params) # Run command File "C:\Users\matt\Desktop\vc channels\Auto-Voice-Channels\commands\help_cmd.py", line 72, in execute with open("docs.md", 'r', encoding='utf8') as f: FileNotFoundError: [Errno 2] No such file or directory: 'docs.md'

Customizable text channel names

The names of the text channels created for each voice channel (with vc/textchannels) should be customizable using the template system.

Option for private by default.

Frequently requested feature that some other bots already have.

Allow users to set vc/alwaysprivate so that new channels are private from the start and they don't have to run vc/private for every single channel.

Private channels generate significantly more API calls to discord so this would have to be a sapphire-only feature for the official bots, but it should be fine for private bots and self-hosters.

Allow the bot to manage permanent channels it didn't create

Let people use the template system to dynamically rename other existing channels by running some command like vc/track 688036269061570568 or vc/track this channel, and then vc/name blah blah blah as usual.

When the channel is empty its name can revert back to the original name unchanged by the bot.

Tracking channels permanently could add significant load to the bot if everyone does this, since they have to be watched even when the channels are empty, so it would have to be a Gold+ feature.

Optionally allow kick, limit, private, and any other moderation commands to be used in channels not managed by the bot

It's probably common that servers have a mixture of permanent voice channels and channels managed by the bot. It'd probably be nice if the same commands could be used for all of them, though this should be optional and off by default to avoid users screwing up servers.

This would mean rewriting a bunch of the logic that checks if commands are valid (some can only be used when in a voice channel), and care should be taken to ensure that primary channels (which for this bot are essentially just buttons and not meant to be used as voice channels) are unaffected.

Notify admin when loops break

For some reason sometimes some of the loops just decide to crash, possibly without an error message or any indication.

It'd be nice if each loop tracked the last time that it ran (using a cfg variable) and then have another loop that watches these timestamps, and if any are unusually old (several minutes, e.g. twice the loop interval) notifies the admin that that loop has crashed.

Command to forcibly re-order all channels

Certain commands (e.g. toggleposition) only affect new channels and not existing ones - or sometimes channel order gets magically screwed up when multiple people are creating channels simultaneously...

It'd be nice if there were a command to fix all channel positioning on demand.

Add default blacklist of words that Discord finds unacceptable

Discord will remove servers from the Discovery list if a blacklisted word appears in a channel name.

Some games have these words in their titles, and can trigger a community server to be auto-removed.

While I haven't seen a public list provided by Discord, you can test this yourself by naming a channel an "offensive" word.

An example word that triggers the auto-removal is "Genocide" ( https://en.wikipedia.org/wiki/Genocide_(online_game) ) - others are extremely inappropriate for posting to Github.

The bot should have a word blacklist for channel titles that ships by default that includes words that disqualifies a server from Discovery. The bot should just replace the blacklisted word in the channel title with a '?' or other appropriate censorship method.

Move all documentation to GitHub wiki

The help command is massive. It's 5 separate messages with embeds and that's almost enough to be rate limited when running just that one command.

Rather just show some basic info and link to further docs in the wiki.

Same for the template command.

Add uptime to Ping command

Would be nice to show how long the bot has been alive as an indication of stability.

This could either be time since startup, or time since last connection (on_shard_ready).
Or both ¯\_(ツ)_/¯.

Make <<singular/plural>> nestable.

Right now the singular/plural syntax is not nestable and causes unexpected behavior when you try to nest them. This should be fairly straightforward to fix by checking how the expressions/random word selection code works, as those are already nestable.

vc/public should copy the primary channel permissions

Right now all vc/public does is set connect=True for the @everyone role. This is bad because it might not be True for the primary channel - server owners might have restricted only certain roles/people to be allowed to connect by default.

vc/public should do the same permission copies as it does when creating a new channel: copying them from the primary channel, or whatever inheritpermissions is set to.

Language translations for help messages & all command responses.

It's become apparent that many of the bots users don't speak good English, or any at all. A lot of the questions in the support server are due to this.

It's be great if anyone could volunteer to translate some of the command responses and help text. Right now there is no system in place to facilitate these translations, but respond here if you are interested in helping, or you know of a good way to implement multilingual documentation.

name command not working

i don't know why name command isn't working on my end.
the bot is adding reaction but not changing the vc name

Red Bot Cog

Can anyone make this to a redbot cog?
I'm running a bot on my own server using redbot, is it possible to use this alongside redbot on one bot?

Secondary channel position bug

If I change the name of the primary channel from "+ New Session" to anything else then the secondary channel will be made at the bottom of the category ignoring the vc/toggleposition command.

Event-based renaming instead of loops.

Since discord nerfed their rate limit for channel renaming down to only twice every 10 minutes, it's no longer acceptable to just check each channel in a loop every X seconds/minutes if they need to be renamed.

Instead, we need a system without loops that catches various events (user activity changes, users joining the channel...) depending on the template used (e.g. only catch user activity changes if @@game_name@@ is used in the template) and queues up a rename for the channel.

Then there could be a queue handler that decides if it's safe to rename the channel (to avoid hitting the rate limit) and sends the actual request when it's safe to do so.

For bonus points, if a user uses the vc/name command and the queue handler decides it's not safe to rename the channel yet, it could return a callback so the bot can respond to the user and tell them exactly how soon the channel will be renamed. Currently with the loop only running once every 10 minutes, the vc/name command can have no effect for 10 minutes, with no feedback to the user to explain why.

Can't seem to get the bot to update channel names

I'm using my own hosted bot. Followed the directions on it. Everything works. Except it doesn't update the name of the channel. So if I join in a channel, it counts 1 person in it, no matter how many people join. It only shows the game that people were playing on the name, when they joined, but not if it changes.

Any idea where I can start looking for troubleshooting? Or what information I can provide you for help?

Thanks.

Use commands module built into d.py

There's probably a good reason why the command module exists, I just didn't know about it until I'd already re-invented the wheel.

Things to keep in mind:

  • Some commands are restricted to certain patreon levels.
  • The restrict command can be used to restrict usage of other commands to certain roles.
  • Commands can be reloaded with the reload_modules function/admin command to update them without restarting the bot.

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.