An open API service indexing awesome lists of open source software.

https://github.com/earentir/etbot

Ear's Twitch Bot
https://github.com/earentir/etbot

Last synced: 5 months ago
JSON representation

Ear's Twitch Bot

Awesome Lists containing this project

README

          

# 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
}
},```
````