maybeanerd / magibot Goto Github PK
View Code? Open in Web Editor NEWMagiBot - the community building discord bot that adds joinsounds to your voice channels!
Home Page: https://discord.gg/2Evcf4T
License: MIT License
MagiBot - the community building discord bot that adds joinsounds to your voice channels!
Home Page: https://discord.gg/2Evcf4T
License: MIT License
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
@typescript-eslint/eslint-plugin
, @typescript-eslint/parser
, eslint
)docker-compose.yml
Dockerfile
node 20.16.0
.github/workflows/gitleaks.yml
actions/checkout v4
gitleaks/gitleaks-action v2
.github/workflows/linting.yml
actions/checkout v4
actions/setup-node v4
.github/workflows/pr.yml
actions/checkout v4
.github/workflows/release.dev.yml
actions/checkout v4
docker/login-action v3
docker/metadata-action v5
.github/workflows/release.prod.yml
actions/checkout v4
docker/login-action v3
docker/metadata-action v5
package.json
@discordjs/builders 1.8.2
@discordjs/rest 2.3.0
@discordjs/voice 0.17.0
axios 1.7.3
blapi 3.1.2
bufferutil 4.0.8
discord-api-types 0.37.93
discord.js 14.15.3
dotenv 16.4.5
fast-folder-size 2.2.0
ffmpeg-static 5.2.0
ffprobe 1.1.2
forever 4.0.3
libsodium-wrappers 0.7.14
mongoose 8.5.2
opusscript 0.1.1
statcord.js 3.4.3
tweetnacl 1.0.3
utf-8-validate 6.0.4
@types/centra 2.2.3
@types/ffprobe 1.1.8
@types/node 20.14.15
@typescript-eslint/eslint-plugin 7.18.0
@typescript-eslint/parser 7.18.0
eslint 8.57.0
eslint-config-airbnb-base 15.0.0
prettier 3.3.3
rimraf 6.0.1
typescript 5.4.5
@discordjs/opus 0.9.0
sodium 3.0.2
zlib-sync 0.1.9
node 20.16.0
.nvmrc
node 20.16.0
dubdidu
There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.
Error type: Cannot find preset's package (github>t0tproduction/configs/renovate/default)
MongoDB most likely allows for schema definitions (with TS!)
Change all DB tables to this, to make development quicker and DB more reliable
I created a simple one here https://magibot.instatus.com/ ( edit here: https://dashboard.instatus.com/magibot/magibot/incidents)
Currently nothing is connected, it'd be nice if it would notice when magibot is down
should be able to use this: https://stackblitz.com/edit/github-deployment-clearer?file=index.js
Add an OSS license, e.g. MIT or GPL so that contributions are correctly licensed
discord has a new bot feature called buttons. I want to use them for interactions I used emotes up until now, e.g. approving/denying things, joining the queue, etc.
Things like voting should probably keep using emotes, as having 20 buttons next to each other isn't really nice. On the other hand, they might still be better than 20 emotes. This is something that will need testing.
todotest
most large bots have their own website
idk If i really want that, maybe having a github wiki is a good way, but i definitely want to document how the bot should be used outside of the help command
currently, to keep the magibot process running 24/7 even if for some reason it crashes, we use forever
its not being actively maintained well anymore, and they suggest switching to an alternative
https://pm2.keymetrics.io/ looks like a good option imo
I want to be able to deploy the container/image that is now being created in the pipeline.
An idea to do this is by using docker swarm and hosting a swarm and registry on the target machine: https://docs.docker.com/engine/swarm/stack-deploy/
Another potential option would be using docker compose with a remote target? https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/
Some things are still TODO:
Rebase old commits e.g. before v 3.0 to clean up history so that we can go Open Source without fearing for pushed tokens or similar stuff
essentially, the shards track the usage in their own instance of the code, and statcord does not post that data. We need some way to share this data with the shard manager. I don't want to add something like redis or similar, so maybe I can add the stats to the shards and get their info via a fetchFromAllShards kind of call..
could verify the bug that some user data is removed
im guessing this is due to shards handing server around between themselves and my old logic thinking they kicked the bot, which results in us removing their data after a week or so
User request:
Hey is it possible to keep the bot in the voice channel it plays join sounds in so that you donβt hear the discord join/leave notification sounds before and after the music? Similar to how a music bot functions. If not this seems like a feature that would be easy to add and would really make the join sound experience better overall without all those notification sounds cluttering up the channel with extra noise
In general I think this would work against magibot joining any channel at any time, but maybe it could stay in a channel until it's needed elsewhere? That would minimize the discord related joinsounds, while still keeping all abilities.
i want to make them work for all shards again -> shard checks if its on that guild, if not, sends the event to the other shards.
bugs:
currently the bot sends a DM to the owner of the server it is joining.
in general it would be nicer to choose the "welcome" text channel and post it there, as many times the owner is not actually the person who added the bot.
We're on more than 2000 guilds now.
IIRC discord forces you to shard with 2500+ guilds
discord.js has internal sharding, which probably is the easiest solution? we're still running it from a single server anyways
When the bot is mentioned without any command, it should print the currently configured prefix of that guild.
This is to make sure nobody can ever "lose" access to the bot
Replace indentation with tabs
Flatten indentation stacks
Fix variable naming
Review current To-Do list from Server
We might be deleting data accidentally for users where the server isnt very active
Double check deletion, maybe move from 7 days to 6 months or something
Currently, the docker swarm instances do not get botlist tokens.
I would want to activate that again, either by supplying them as before via a json e.g. in a docker volume, or by adding env vars?
Volume seems to be full
Add an option to disallow users from sending discord invite links
this should probably allow for a list of roles or channels that are excluded
Review command rework
https://discord.com/developers/docs/interactions/application-commands#user-commands
According to this, apps can add right-click options on users. For things such as changing, removing join sounds or managing salt (reporting, removing, clearing) this would make things a lot nicer to use.
Apparently i never linked this repo in the info command. Should do that π¬
The rename of my account broke the image release, so it needs to he adjusted
Maybe we can even do it similarly to crab?
Currently only the creator of the queue can manage it. Allowing this for all admins should be easy to do.
currently theres no real way to see your global/default joinsound, I would want to add it to the profile
currently you can only end the queue by reacting? add a command to end the currently active queue
Not everyone wants every feature activated.
add the possibility to enable/disable features for guilds.
This could be already included in a kind of "deactivated" default state for every feature, but it could also be actively chosen.
IDK what is better yet, easier is probably the first version
Discord has a new system to add commands: slash commands
I think in general it would be good to have slash commands for every command the bot currently has. We'll see if it wouldn't work for some.
We should probably still keep the old command structure as many people are simply used to it, but they should essentially call the same code as slash commands
commands to move:
admin commands to move:
Another big topic that needs to be done
Potential bugs to fix:
They closed my patreon, lol
bugs we found during testing:
Apparently v13+ drops voice support, and it is now outsourced to following package: https://github.com/discordjs/voice
We will need to do some rewriting so support that change
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.