A chat bot for YouTube, Discord and IRC.
Go
Permalink
Failed to load latest commit information.
carbonitexplugin Delay carbonitex as startup can be slow. Show how many shards are con… Sep 17, 2016
chartplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
cmd/bruxism Fix ytinviteplugin. Dec 11, 2016
comicplugin Simplify command parsing. Recovery fixes. Dec 28, 2016
discordavatarplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
emojiplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
inviteplugin Support trivia and youtubeinvite plugins. May 29, 2016
liveplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
mtgplugin Replace some usages of fmt for logging. Mar 21, 2016
musicplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
mysonplugin Fix color for myson. Dec 11, 2016
numbertriviaplugin Improved help substantially, allowed it to be set to private only. Im… Apr 21, 2016
playedplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
playingplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
reminderplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
statsplugin Youtube will break long messages across multiple messages. Removed de… Dec 11, 2016
streamerplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
topstreamersplugin Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
triviaplugin Clean up now bot owner is implicit. Jan 14, 2017
wormholeplugin Colors from origination channel. Jan 12, 2017
youtubejoinplugin Clean up now bot owner is implicit. Jan 14, 2017
.gitignore Initial commit Nov 3, 2015
.travis.yml Remove old plugins that aren't useful. Add new monitoring YouTube inv… Dec 10, 2016
LICENSE License Dec 29, 2015
README.md Replace video id polling with channel at startup. Dec 10, 2016
bot.go Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
commandplugin.go Simplify command parsing. Recovery fixes. Dec 28, 2016
discord.go Simplify plugin flow. Limit some plugins from private messages. Jan 3, 2017
helpplugin.go Clean up now bot owner is implicit. Jan 14, 2017
interfaces.go Support IsChannelOwner and convert some uses of permissions to isMode… Dec 11, 2016
irc.go Support IsChannelOwner and convert some uses of permissions to isMode… Dec 11, 2016
simpleplugin.go Support stats for plugins. Oct 29, 2016
slack.go Support IsChannelOwner and convert some uses of permissions to isMode… Dec 11, 2016
youtube.go YouTube Message Channel() is now videoID, not liveChatID Jan 1, 2017
ytlivechannel.go Remove filteredVideoChans because bad Dec 12, 2016

README.md

Bruxism

A chat bot for YouTube, Discord and IRC.

GoDoc Go report Build Status

Current plugin support:

Commands are prefixed with @BotName.

  • emoji <emoji> - Returns a big version of an emoji. Please read the README in emojiplugin for installation notes.
  • help [<topic>] - Returns generic help or help for a specific topic. Available topics: comic,remind
  • invite <id> - Provides invite URL for the bot.
  • numbertrivia [<number>] - Returns trivia for a random number or a specified number if provided.
  • playing - Set which game the bot is playing on Discord. Only enabled for bot owner.
  • reminder <time> | <reminder> - Sets a reminder.
  • stats - Lists bot statistics.
  • streamer <streamername|streamerid> - Grabs details about a YouTube streamer.
  • topstreamers - List the current top streamers on YouTube Gaming.

eg: @BotName help

Also supports direct invites on Discord and support for announcing streamers going live on YouTube Gaming.

Usage:

Installation:

go get github.com/iopred/bruxism/cmd/bruxism

go install github.com/iopred/bruxism/cmd/bruxism

cd $GOPATH/bin

Setup

You must first generate a YouTube Oauth token in the Google Developer Console.

Go to Credentials and download the JSON config file and save it in $GOPATH/bin as youtubeoauth2config.json

bruxism -youtubeurl

You will then be given a URL (and copied to clipboard), visit that URL and copy the code, then run:

bruxism -youtubeauth <AUTH CODE>

Now the bot can be run:

bruxism

Run as a Discord bot

bruxism -discordtoken "Bot <discord bot token>"

It is suggested that you set -discordapplicationclientid if you are running a bot account, this will make inviteplugin function correctly.

It is suggested that you set -discordowneruserid as this prevents anyone from calling playingplugin.

To invite your bot to a server, visit: https://discordapp.com/oauth2/authorize?client_id=<discord client id>&scope=bot

Run as an IRC bot

bruxism -ircserver <irc server> -ircusername <irc username> -ircchannels <#channel1,#channel2>

Arguments:

  • youtubeurl - Outputs a new OAuth URL for YouTube and then exits.
  • youtubeauth - Exchanges the provided auth code for an oauth2 token.
  • youtubeconfig - The filename for your YouTube OAuth client JSON. (Download JSON in Google Developers Console -> Credentials).
  • youtubetoken - The filename to store the oauth2 token.
  • youtubelivechannelids - Comma separated list of channel ids to poll.
  • discordtoken - Sets the Discord token.
  • discordemail - Sets the Discord account email.
  • discordpassword - Sets the Discord account password.
  • discordclientid - Sets the Discord client id.
  • ircserver - Sets the IRC server.
  • ircusername - Sets the IRC user name.
  • ircpassword - Sets the IRC password.
  • ircchannels - Comma separated list of IRC channels.
  • imgurid - Sets the Imgur client id, used for uploading images to imgur.
  • imgurAlbum - Sets an optional the Imgur album id, used for uploading images to imgur.
  • mashablekey - Sets the mashable oauth key.

Special Thanks

Bruce Marriner - For DiscordGo and the Music Plugin.