Skip to content

Python-based bot which uses the Discord and Twitch APIs to monitor a list of approved channels. When one goes live, a message will be posted. Any links to channels not on the air or approved will be removed.

Notifications You must be signed in to change notification settings

dopeghoti/DiscordCurrentlyCastingBot

Repository files navigation

  • What is this project?

CurrentlyCastingBot is a Discord bot written in Python for the purposes of maintaining a channel in a Discord server (or "guild" to use its parlance) which will post a "call to action" message when a monitored channel goes live on Twitch.tv. It will also watch for any monitored channels to go off the air and remove that message. The end result of this is a nice, clean channel containing only working links to live channels, and no links to channels which are no longer live. Any links to live thannels which are not affirmatively monitored will also be removed. This is a much cleaner look than a #self_promotion channel containing pages and pages of links to the same short list of channels, many or most of which may not even be on the air at the time a person is perusing the channel.

  • Main features

    • Fully automated posting and cleanup of "now live" messages
    • Variantly permuted flavor text to keep things from being too "samey"
    • Easy-to-update list of channels to monitor though messages within Discord
    • Easy to self-host with low overhead
  • Installation Overview (full procedure in INSTALL.md)

    • Prepare a Discord and Twitch developer account and prepare API keys
    • Install required Python libraries
    • Set up configuration file
    • Create Discord bot
      • Set Discord bot permissions
      • Invite the bot
    • Run the bot
    • Add channels to The List
  • Using the Bot

Once the bot has been configured and running, you should have two channels set up for the bot: One (which for instance we will call #now_live) for public consumption to which ideally only the bot will be able to post, but anyone on the Discord server can read; and one (which for instance we will call #bot_control) which is used to issue commands to the bot. Commands for the bot will start with a prefix defined in the configuration file (the example prefix given is !). There are four commands which the bot will respond to:

  • !hello - Causes the bot to respond with a brief message. Can be used to verify the bot is up and running.

  • !list - Causes the bot to respond with a message consisting of an alphebetized list of all monitored Twitch channels.

  • !watch dopeghoti - Adds the Twtich channel which can be found at the URL https://twitch.tv/dopeghoti to The List. This channel does not have to have any association with anyone on the Discord server. The bot will respond indicating whether or not the addition was successful.

  • !unwatch dopeghoti - Removes the Twitch channel which can be found at the URL https://twitch.tv/dopeghoti from The List if it is present. The bot will respond with a message indicating whether or not the removal was successful.

  • Planned Features

    • Configurable command verbs
    • Configurable procedural text in the "go-live" messages
    • Similar monitoring for YouTube channels
  • Featureѕ Under Consideration

    • Role-based adding to or removing from The List for Discord profiles with linked Twitch accounts
    • Channel-specific callouts
    • Announcing of (and possibly updating up) the Category of a live channel
    • Per-channel callouts or "go-live" verbage

About

Python-based bot which uses the Discord and Twitch APIs to monitor a list of approved channels. When one goes live, a message will be posted. Any links to channels not on the air or approved will be removed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages