Skip to content

earentir/etbot

Repository files navigation

etbot aka Ear's Twitch Bot

Intro

The bot will provide general bot services for Twitch, twitch integration (read only for now for security reasons, will update with write when more stable), discord integration (in the future) and OBS integration (in the future) through a browser service. The plan is to have a single binary running all services and multiplexing from there.

Permission System

Each registered user has a user type, each user type has a power level and a time multiplier, each command has a minimum power level attached and a timeout.

System Commands

System commands cannot be removed, they can be dissabled though and most have the ability to customize messages (all wii have that in the future)

  • bofh
    • Pulls a BOFH quote from an API
  • commands
    • Print all commands (including user commands)
  • crypto *
    • Does crypto currency conversions
  • daysoff *
    • Prints the next days off in specified country
  • etbdown
    • Does a bot reload (not fully yet)
  • exchange * #
    • Does FIAT currency conversions
  • fact *
    • Asks for a factual answer from GPT-3
  • fr $
    • Adds Issues in git hub
  • gpt *
    • Sends the prompt to GPT-3, it cant receive multistep answers (yet)
  • gumroad *
    • Pulls gumroad products
  • joke
    • You can add/search/delete jokes
  • level
    • Outputs the users level/type
  • lockdown
    • Locks down the bot, only the owner can issue commands, its a toggle, running it again will switch it off/on
  • love
    • Users can add something they love and it will be appended in the !so
  • lurk
    • Users can lurk, it also allows to type a reason, the user gets unlurked the next time they type something
  • project
    • Current working project (future sync with stream name/description as an option)
  • quote
    • Add/Delete/Search Quotes
  • savesettings
    • Forces a flush of all in memory settings to files
  • so *
    • Will shout out a user, if they have an account all their socials will be printed out including what they love (fully customizable message soon)
  • socials
    • Prints streamers socials
  • time
    • Prints the streamers time or the time of any country if you append the tz city
  • tmdb *
    • Pulls data for tv/movie from tmdb
  • updsoc
    • Allows users to add socials to their accounts
  • user
    • Add/Delete accounts from the system (will sync twitch type soon)
  • version
    • Prints the bots version (build date for now)
  • weather *
    • Prints the weather in the streamer city or for any city if appended to the command
  • year
    • Prints some stats about the current year (day, % of the year left etc)
  • yoke
    • Prints one of my favorite jokes, its an API call
  • zoe
    • Pet feeding and petting mechanism, allows users to add treats/petting time to a que

* Commands with * require an API key from a third party. Commands with a $ require a local client.

# Command dooes not work since the API is down

User Commands

User commands are of 4 types punchline, varpunchline, counter and tree(not implemented yet), the default are there just as an example(and I use them in my channel)

  • ban
  • f
  • hi
  • hype
  • mic
  • nvidia
  • oil
  • putin
  • sudo
  • unban
  • yogurt

punchline

In this example the command !oil will output a random line from the messages. It will also cativate for all the aliases !olive, !olives, !oliveoil and it can be used by any user in the default config (userlevel 10).

{
		"name": "oil",
		"type": "punchline",
		"messages": [
			"Olive Oil is BESTEST Oil",
			"If your oil is NOT olive oil, then its for your car",
			"Olive Oil FTW",
			"Olive Oil For Life",
			"Did you know Olive oil is good for you health compared to every other oil?"
		],
		"alias": [
			"olive",
			"olives",
			"oliveoil"
		],
		"options": {
			"lastuse": 1646330233,
			"counter": 18,
			"userlevel": 10,
			"cooldown": 1000,
			"enabled": true
		}
	},

varpunchline

A varpunchline is the same as a punchline but it accepts variables, ^a for attributed user (@earentir for example) and ^u for the activating users username

{
		"name": "hype",
		"type": "varpunchline",
		"messages": [
			"earentFfs ^a, dont you think there is better places to spend your money ? Stop wasting it !!!",
			"Go rent a movie instead earentFfs, ^a dont waste money!!!"
		],
		"alias": [
			""
		],
		"options": {
			"lastuse": 1647043141,
			"counter": 13,
			"userlevel": 10,
			"cooldown": 2000,
			"enabled": true
		}
	},

counter

A classic counter command, when its activated it just increases the countr (all commands have a counter, in this case the count is getting reported)

	{
		"name": "f",
		"type": "counter",
		"messages": [
			"!%s has been used %v times."
		],
		"alias": [
			""
		],
		"options": {
			"lastuse": 1646507586,
			"counter": 2,
			"userlevel": 10,
			"cooldown": 3000,
			"enabled": true
		}
	},```

About

Ear's Twitch Bot

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages