{"id":24114941,"url":"https://github.com/vilgotf/voice-pruner","last_synced_at":"2025-09-18T04:30:41.568Z","repository":{"id":47036461,"uuid":"383854592","full_name":"vilgotf/voice-pruner","owner":"vilgotf","description":"Discord moderation bot","archived":true,"fork":false,"pushed_at":"2024-04-19T19:49:00.000Z","size":340,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T23:42:04.304Z","etag":null,"topics":["bot","discord","discord-bot","twilight-rs"],"latest_commit_sha":null,"homepage":"https://discord.com/api/oauth2/authorize?client_id=861223160905072640\u0026permissions=16777216\u0026scope=bot","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vilgotf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-07-07T16:04:11.000Z","updated_at":"2024-12-03T19:43:15.000Z","dependencies_parsed_at":"2024-02-23T17:50:45.923Z","dependency_job_id":null,"html_url":"https://github.com/vilgotf/voice-pruner","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/vilgotf/voice-pruner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilgotf%2Fvoice-pruner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilgotf%2Fvoice-pruner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilgotf%2Fvoice-pruner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilgotf%2Fvoice-pruner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vilgotf","download_url":"https://codeload.github.com/vilgotf/voice-pruner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilgotf%2Fvoice-pruner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275710235,"owners_count":25514063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","discord","discord-bot","twilight-rs"],"created_at":"2025-01-11T05:36:04.821Z","updated_at":"2025-09-18T04:30:41.288Z","avatar_url":"https://github.com/vilgotf.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Voice pruner\n\nDiscord admin bot to monitor and prune voice channels. Supports auto pruning users without the `CONNECT` permission. Assigning the bot a role named \"no-auto-prune\" disables auto pruning.\n\n[Invite link] to an instance of this bot running the latest released version.\n\n## Commands\n\n* `/is-monitored` - Whether the voice channel is monitored\n  * channel - Voice channel to check\n* `/list` - Lists visible voice channels\n  * type? - Type of visible channels to list\n    * Monitored - Lists visible monitored voice channels\n    * Unmonitored - Lists visible unmonitored voice channels\n* `/prune` - Prune voice channels\n  * channel? - Prune only this voice channel\n  * role? - Prune only this role\n\n## Required bot permissions\n\n* `MOVE_MEMBERS` -  Required for pruning\n\n## Self hosting\n\nA statically compiled binary of the bot may easily be created by running `cargo build --release` (the `--release` flags optimizes the binary). It's possible, through feature flags, to configure the TLS' certificate root store, defaulting to `native-roots`. Available feature flags:\n\n* `native-roots` - The platform's certificate root store\n* `webpki-roots` - Mozilla's certificate root store.\n\nThe bot tries to, on start-up, read its token from systemd's [credential storage] (a credential named `token`) or the `TOKEN` environment variable. Use the [voice-pruner.service](voice-pruner.service) unit as a starting point for running the bot with systemd.\n\n### Privileged intents\n\nThe bot requires the `GUILD_MEMBERS` priviledged intent to monitor the updates of users' roles, but does otherwise function without it.\n\n[credential storage]: https://systemd.io/CREDENTIALS/\n[Invite link]: https://discord.com/api/oauth2/authorize?client_id=861223160905072640\u0026permissions=16777216\u0026scope=bot%20applications.commands\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilgotf%2Fvoice-pruner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvilgotf%2Fvoice-pruner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilgotf%2Fvoice-pruner/lists"}