A Discord bot for managing ephemeral roles based upon voice channel member presence.

Overview

ephemeral-roles


Mentioned in Awesome Go Build Status Go Report Card Coverage Status Dev Chat

A Discord bot for managing ephemeral roles based upon voice channel member presence.


Quickstart

  1. Click on the Ephemeral Roles logo head above or use this link to invite Ephemeral Roles into your Discord server
    1. The 'Manage Roles' permission is required. The invite link above provides that by automatically creating an appropriate role in your server for Ephemeral Roles
  2. Ensure the new role for Ephemeral Roles is at the top (or as near as possible) to the server's list of roles
    1. If you're not sure how or why to do that, take a quick read over Discord's excellent Role Management 101 guide
  3. Enjoy!

What does Ephemeral Roles do?

After the Ephemeral Roles bot is invited to your Discord server, it immediately starts to watch for changes to your voice channels. When a member joins a channel, Ephemeral Roles automatically assigns that member an ephemeral role associated with the channel. If the ephemeral role doesn't exist yet, Ephemeral Roles will create it.

By having your members auto-sorted into ephemeral roles in your member list, it's clear to see who are available for chatting and the channels they are in. This is because Ephemeral Roles leverages the Discord feature that the member list in servers will group together members by role right out of the box.

When a member changes or disconnects from voice channels, even across Discord servers, Ephemeral Roles will account for the change and automatically revoke/reissue ephemeral roles as appropriate.


Example Usage

Orange roles below are automatically managed by Ephemeral Roles
Ephemeral Roles action example
Ephemeral Roles static example
Ephemeral Roles example role list

Monitoring

A Prometheus and Grafana instance have been set up to monitor Ephemeral Roles metrics.

grafana.ephemeral-roles.net

Architecture

Architectural Diagram
Architecture
Architectural diagram created with draw.io
  • ephemeral-roles:
    • Runs in a Kubernetes cluster as a StatefulSet of 10 Pods. Each Pod contains a running instance of the bot
    • A StatefulSet is used so that each Pod has a predictable name so that the bot instance can inform the Discord API which of the 10 Pods it is
    • The Discord API will assign a number of the total guilds (servers) to each of the bot instances to balance the load of managing the guild events
    • If any of the Pods stop running for whatever reason, the StatefulSet will automatically restart them
  • pod-bouncer (https://github.com/ewohltman/pod-bouncer):
    • Runs in a Pod and is responsible for receiving alerts from Prometheus/AlertManager and to act upon them by automatically causing unhealthy Pods for ephemeral-roles to restart
  • ephemeral-roles-informer (https://github.com/ewohltman/ephemeral-roles-informer):
    • Runs in a Pod and is responsible for collecting metrics from the ephemeral-roles instances to update search services such as discord.bots.gg and top.gg

Contributing to the project

Contributions are very welcome! Please follow the guidelines below:

  • Open an issue describing the bug or enhancement
  • Fork the develop branch and make your changes
    • Try to match current naming conventions as closely as possible
    • Try to keep changes small and incremental with appropriate new unit tests
  • Create a Pull Request with your changes against the develop branch

This project is equipped with a full CI / CD pipeline:

  • Linting and unit tests will be automatically run with the PR, providing feedback if any additional changes need to be made
  • Merge to master will automatically deploy the changes live
Issues
  • EPH role in private channel

    EPH role in private channel

    In the past, voice room in hidden/private channel (where EPH bot role (ephemeral role) aint granted access) wont be affected / given role I appreciate this feature, which gives privacy to specific channel Recently this has been changed, even in the channel where EPH not allowed, it still creates role and auto-manages it Can this be undone? Idk if this a bug or intended, but really looking for your reply Sure it can be temp fixed by changing private role to no-color, removing it manually to remain hidden when going ninja mode in big server, but kinda annoying Thanks for your service

    bug fixed 
    opened by Necrophote 11
  • Update ephemeral-roles.go

    Update ephemeral-roles.go

    I hope this helps in some way. My main goal was to remove as much duplicate code as possible without breaking the thing. I also wanted to try to remove at least one unnecessary function call if need be. Please request any changes as need be, I’m quite new to Golang. Thanks for the awesome bot!

    enhancement 
    opened by Aareon 6
  • Bump github.com/uber/jaeger-client-go from 2.25.0+incompatible to 2.27.0+incompatible

    Bump github.com/uber/jaeger-client-go from 2.25.0+incompatible to 2.27.0+incompatible

    ⚠️ Dependabot is rebasing this PR ⚠️

    If you make any changes to it yourself then they will take precedence over the rebase.


    Bumps github.com/uber/jaeger-client-go from 2.25.0+incompatible to 2.27.0+incompatible.

    Release notes

    Sourced from github.com/uber/jaeger-client-go's releases.

    Release 2.27.0

    • Don't override HTTP Reporter batch size to 1; default to 100, user can override (#571) -- R. Aidan Campbell

    Release 2.26.0

    • Delete a baggage item when value is blank (#562) -- evan.kim
    • Trim baggage key when parsing (#566) -- sicong.huang
    • feat: extend configuration to support custom randomNumber func (#555) -- NemoO_o
    • Support JAEGER_TRACEID_128BIT env var (#547) -- Yuri Shkuro
    • Additional context protections (#544) -- Joe Elliott
    • Lock RemotelyControlledSampler.sampler on callbacks (#543) -- Dima
    • Upgrade build to Go 1.15 (#539) -- Yuri Shkuro
    • Upgrade to [email protected] to fix broken codahale/hdrhistogram dependency (#537) -- Yuri Shkuro
    • Prefix TraceID/SpanID.String() with zeroes (#533) -- Lukas Vogel
    • Upgrade to OpenTracing Go 1.2 (#525) -- Yuri Shkuro
    Changelog

    Sourced from github.com/uber/jaeger-client-go's changelog.

    Changes by Version

    2.27.1 (unreleased)

    • Nothing yet

    2.27.0 (2021-04-19)

    • Don't override HTTP Reporter batch size to 1; default to 100, user can override (#571) -- R. Aidan Campbell

    2.26.0 (2021-04-16)

    • Delete a baggage item when value is blank (#562) -- evan.kim
    • Trim baggage key when parsing (#566) -- sicong.huang
    • feat: extend configuration to support custom randomNumber func (#555) -- NemoO_o
    • Support JAEGER_TRACEID_128BIT env var (#547) -- Yuri Shkuro
    • Additional context protections (#544) -- Joe Elliott
    • Lock RemotelyControlledSampler.sampler on callbacks (#543) -- Dima
    • Upgrade build to Go 1.15 (#539) -- Yuri Shkuro
    • Upgrade to [email protected] to fix broken codahale/hdrhistogram dependency (#537) -- Yuri Shkuro
    • Prefix TraceID/SpanID.String() with zeroes (#533) -- Lukas Vogel
    • Upgrade to OpenTracing Go 1.2 (#525) -- Yuri Shkuro

    2.25.0 (2020-07-13)

    Breaking changes

    • [feat] Periodically re-resolve UDP server address, with opt-out (#520) -- Trevor Foster

      The re-resolving of UDP address is now enabled by default, to make the client more robust in Kubernetes deployments. The old resolve-once behavior can be restored by setting DisableAttemptReconnecting=true in the Configuration struct, or via JAEGER_REPORTER_ATTEMPT_RECONNECTING_DISABLED=true environment variable.

    Bug fixes

    • Do not add invalid context to references (#521) -- Yuri Shkuro

    2.24.0 (2020-06-14)

    • Mention FromEnv() in the README, docs, and examples (#518) -- Martin Lercher
    • Serialize access to RemotelyControlledSampler.sampler (#515) -- Dima
    • Override reporter config only when agent host/port is set in env (#513) -- ilylia
    • Converge on JAEGER_SAMPLING_ENDPOINT env variable (#511) -- Eundoo Song

    2.23.1 (2020-04-28)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 4
  • Bot does not appear to revoke roles

    Bot does not appear to revoke roles

    I invited this bot to my Discord server and it works great for adding / creating new roles. However, it never seems to revoke roles even when the user leaves all voice channels. Any ideas? Did I misconfigure something or could this be a bug?

    This must be related to the way I have the permissions set up on the server. This issue does not occur on other Discord servers I have... only this one. I tried moving the Ephemeral Roles role to the top, and the issue persists.

    question 
    opened by ZaeGitHub 4
  • Added info command

    Added info command

    Should be enough to close #22 - hope it's good enough. Just started in Go, so if it's not up to scratch let me know what and how I can go about fixing it.

    opened by alfiejfs 3
  • Bump github.com/prometheus/client_golang from 1.10.0 to 1.11.0

    Bump github.com/prometheus/client_golang from 1.10.0 to 1.11.0

    Bumps github.com/prometheus/client_golang from 1.10.0 to 1.11.0.

    Release notes

    Sourced from github.com/prometheus/client_golang's releases.

    v1.11.0 / 2021-06-07

    • [CHANGE] Add new collectors package. #862
    • [CHANGE] prometheus.NewExpvarCollector is deprecated, use collectors.NewExpvarCollector instead. #862
    • [CHANGE] prometheus.NewGoCollector is deprecated, use collectors.NewGoCollector instead. #862
    • [CHANGE] prometheus.NewBuildInfoCollector is deprecated, use collectors.NewBuildInfoCollector instead. #862
    • [FEATURE] Add new collector for database/sql#DBStats. #866
    • [FEATURE] API client: Add exemplars API support. #861
    • [ENHANCEMENT] API client: Add newer fields to Rules API. #855
    • [ENHANCEMENT] API client: Add missing fields to Targets API. #856
    Changelog

    Sourced from github.com/prometheus/client_golang's changelog.

    1.11.0 / 2021-06-07

    • [CHANGE] Add new collectors package. #862
    • [CHANGE] prometheus.NewExpvarCollector is deprecated, use collectors.NewExpvarCollector instead. #862
    • [CHANGE] prometheus.NewGoCollector is deprecated, use collectors.NewGoCollector instead. #862
    • [CHANGE] prometheus.NewBuildInfoCollector is deprecated, use collectors.NewBuildInfoCollector instead. #862
    • [FEATURE] Add new collector for database/sql#DBStats. #866
    • [FEATURE] API client: Add exemplars API support. #861
    • [ENHANCEMENT] API client: Add newer fields to Rules API. #855
    • [ENHANCEMENT] API client: Add missing fields to Targets API. #856
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump github.com/kz/discordrus from 1.2.0 to 1.3.0

    Bump github.com/kz/discordrus from 1.2.0 to 1.3.0

    Bumps github.com/kz/discordrus from 1.2.0 to 1.3.0.

    Release notes

    Sourced from github.com/kz/discordrus's releases.

    v.1.3.0

    • Adds go.mod support
    • Fixes erroneously failing integration test in TestMaxLengths
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump github.com/sirupsen/logrus from 1.7.0 to 1.8.1

    Bump github.com/sirupsen/logrus from 1.7.0 to 1.8.1

    Bumps github.com/sirupsen/logrus from 1.7.0 to 1.8.1.

    Release notes

    Sourced from github.com/sirupsen/logrus's releases.

    v1.8.1

    No release notes provided.

    v1.8.0

    Correct versioning number replacing v1.7.1

    v1.7.1

    Code quality:

    • use go 1.15 in travis
    • use magefile as task runner

    Fixes:

    • small fixes about new go 1.13 error formatting system
    • Fix for long time race condiction with mutating data hooks

    Features:

    • build support for zos
    Changelog

    Sourced from github.com/sirupsen/logrus's changelog.

    1.8.1

    Code quality:

    • move magefile in its own subdir/submodule to remove magefile dependency on logrus consumer
    • improve timestamp format documentation

    Fixes:

    • fix race condition on logger hooks

    1.8.0

    Correct versioning number replacing v1.7.1.

    1.7.1

    Beware this release has introduced a new public API and its semver is therefore incorrect.

    Code quality:

    • use go 1.15 in travis
    • use magefile as task runner

    Fixes:

    • small fixes about new go 1.13 error formatting system
    • Fix for long time race condiction with mutating data hooks

    Features:

    • build support for zos
    Commits
    • bdc0db8 Merge pull request #1244 from sirupsen/dbd-release
    • 1bfef4b update changelog
    • 7a997b9 improve documentation about timestamp format
    • f104497 Merge pull request #1238 from thaJeztah/move_mage
    • 1d8091a move "mage" to a separate module
    • feebf74 travis: run mage with -v to not discard output
    • 6cff360 Merge pull request #1234 from sirupsen/dbd-cleanup
    • d172886 fix race condition AddHook and traces
    • d59e561 Merge pull request #1231 from sirupsen/dbd-cleanup
    • 35ab8d8 update changelog
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Roles not being removed on leaving a voice channel.

    Roles not being removed on leaving a voice channel.

    This bot is exactly what I've been looking for!

    However, there seems to be a bug in our server where when we leave the voice channel, the user doesn't lose their role (but they do gain a role when entering the channel). Is this expected behavior? Is there a certain time after which people will lose the roles they have?

    To clarify, the ephemeral roles role is right at the top!

    bug fixed 
    opened by ThariqS 2
  • Enhancement: Log

    Enhancement: Log "403: Forbidden" Responses at Debug Level

    Many log messages are being emitted at the Error level due to 403: Forbidden responses from the Discord API due to Ephemeral Roles not having been added to a server/guild correctly, or from a user joining or leaving a private channel that Ephemeral Roles does not have access to.

    These conditions should be logged at the Debug level so that they can be made available if needed for troubleshooting, but otherwise will not pollute the log stream.

    enhancement fixed 
    opened by ewohltman 2
  • Feature: Reply to bot command info

    Feature: Reply to bot command info

    In messageCreate.go:

    // TODO: Reply to bot command info // It should provide information about // the bot such as what framework it is using and the used // version, help commands and, most importantly, who made it. // // Ignore both your own and other bots' messages. This helps // prevent infinite self-loops and potential security exploits. // Using a zero width space such as \u200B and \u180E in the // beginning of each message also prevents your bot from // triggering other bots' commands.

    Reference: https://github.com/meew0/discord-bot-best-practices

    fixed 
    opened by ewohltman 2
  • Request: Delay for removing role

    Request: Delay for removing role

    Would leave some leeway for people who may be facing technical difficulties or needs to quickly explain why they left in text-channels designated for Ephemeral Roles.

    opened by bendooms 0
  • Request: Allow user to configure a custom prefix

    Request: Allow user to configure a custom prefix

    Current the prefix is set to the default and cannot be changed !eph

    It would be ideal for the user to be able to change this e.g. @Ephemeral Roles#2912 prefix ~

    So instead of: !eph info

    It will change to: ~info

    opened by itsgaryk 0
  • Request: Allow commands to be entered by mentioning the bot as the prefix

    Request: Allow commands to be entered by mentioning the bot as the prefix

    Currently it is only possible to enter commands via the prefix command e.g. !eph info

    It would be ideal to be able to use a mention as the prefix e.g. @Ephemeral Roles#2912 info

    opened by itsgaryk 0
  • Request: Implement ability to add user created roles instead of bot generated ones

    Request: Implement ability to add user created roles instead of bot generated ones

    Currently it is not possible for the user to customise the bot and any voice channel will have a role generated.

    It would be ideal to be able to configure the bot to assign specific roles to specific channels.

    For example the bot Zira allows the user to configure a specific role to a specific channel https://docs.zira.gg/docs/en/voice/

    There are 2 problems with Zira however:

    • Resilience (sometimes it doesn't work)
    • Redundancy (doesn't allow the same role to be used for multiple voice channels)
    opened by itsgaryk 0
  • Feature: Consider implementing S3 to allow per-server customizations

    Feature: Consider implementing S3 to allow per-server customizations

    Currently, ephemeral-roles does not allow customization on a per-server basis that Discord server Administrators might find useful. The reason for this is because we would need to store that information somewhere to be retrieved later in a way that is cloud-native in accordance to the 12 Factor principle: https://12factor.net/

    Discord server Administrators should be able to configure these customizations by issues commands to the bot.

    Possible customizations could include:

    • Allowing custom role prefixes
    • Whitelisting or blacklisting voice channels for ephemeral-roles to manage
    • Changing the color of the role that ephemeral-roles creates
    enhancement in progress 
    opened by ewohltman 4
Owner
Eric Wohltman
a.k.a. 'eulerfoiler'
Eric Wohltman
A Discord bot that automatically retrieves ELO ratings for Age of Empires 4 and gives users custom roles.

AOE 4 ELO Bot This is a Discord bot that automatically retrieves ELO ratings for Age of Empires 4 and gives users custom roles. Uses the public API fo

Alexis Geoffrey 1 May 13, 2022
Discord rich presence for MPRIS music players.

Clematis Discord rich presence for MPRIS music players. Clematis provides a rich presence for MPRIS-supported music players. It will take information

sammyette 18 Jun 24, 2022
Discord Rich Presence for MPD written in Go

mpdcord Installation Builds mpdcord locally and places the binary at $GOPATH/bin

null 3 Apr 15, 2022
Discord-bot - A Discord bot with golang

JS discord bots Install Clone repo git clone https://github.com/fu-js/discord-bo

JS Club 2 Mar 7, 2022
A discord bot that watches for tiktok URL's and automatically uploads the corresponding video to the channel

TikiTok Bot A Discord bot that watches for TikTok URLs and sends a message to the channel with the corresponding video attached Click to invite the bo

Matthew Bass 4 Oct 17, 2021
A Discord bot for downloading attachments from channel messages.

dcdl This is a Discord bot for downloading attachments from channel messages. Setup First, set up a Discord bot application (see here how to do so). N

Ringo Hoffmann 2 May 11, 2022
Slack-emoji-bot - This Slack bot will post the newly created custom Slack emojis to the channel of your choice

Slack Emoji Bot This Slack bot will post the newly created custom Slack emojis t

Ryan Hollis 6 Jun 17, 2022
Dlercloud-telegram-bot - A Telegram bot for managing your Dler Cloud account

Dler Cloud Telegram Bot A Telegram bot for managing your Dler Cloud account. Usa

Beta Kuang 1 Dec 30, 2021
A simple Discord bot developed for the Bedrock Gophers discord server.

Bedrock Gopher A simple Discord bot developed for the Bedrock Gophers discord server. Click here to invite the bot to your guild. You will also need t

Dragonfly 3 Mar 12, 2022
InStockBot notifies a selected Discord channel when a specific product is back in stock

InStockBot notifies a selected Discord channel when a specific product is back in stock

null 0 Jan 20, 2022
Feline-bot - Feline Bot for Discord using Golang

Feline Bot for Discord Development This bot is implemented using Golang. Feature

null 0 Feb 10, 2022
Instagram to Telegram Channel Bot.

InstaTG Instagram to Telegram Channel Bot. Can access posts from any public Instagram account or an account that you follow. Features Keeps track of e

Anchit Bajaj 8 May 11, 2022
Simple telegram Bot to ban Anonymous Channel users in a group

Restrict Channel Robot Telegram Bot, written in GoLang to delete messages and ban anonymous users who send as channel in groups. Can be found on teleg

Divide Projects™ 15 Jun 12, 2022
A telegram bot to ban the chat spammers by channel, made with Golang.

ChannelBot A telegram bot to ban channels spamming chat. Vars TOKEN - Your Telegram Bot Token (@BotFather) More Information With the latest update of

Reeshu 5 Apr 16, 2022
This slack-bot collects all @gophers notifications into one slack channel

slack-bot Slack bot copying reference to a ping to notifications channel The bot is designed to listen on messages containing specific tag, copy refer

Kyma Incubator 2 Apr 11, 2022
Bot-template - A simple bot template for creating a bot which includes a config, postgresql database

bot-template This is a simple bot template for creating a bot which includes a c

Disgo 0 May 28, 2022
Discord-dl: a tool to archive discord channels

discord-dl discord-dl is a tool to archive discord channels. I think it's safe t

null 3 May 18, 2022
Discord-notif - Send notifications to discord in Your pipelines or scripts

discord-notif Send notifications to discord in Your pipelines or scripts install

null 3 Mar 2, 2022
Discord-finder - The back-end for retrieving information about people on discord

About This is the backend application for Discord Finder, it allows you to retrive information about people on discord just like the discord lookup we

Alexei Ulanov 0 Jan 4, 2022