summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2024-05-19 00:16:04 +0500
committerilotterytea <iltsu@alright.party>2024-05-19 00:16:04 +0500
commitecca9314a53b961f49ae57528e30a3a17f5300dc (patch)
treef99110ad90b9798b873c1c9ea4fdfba7aa45c34d
parent21991b1da2bfab5aa266e7ba91527a6ee62a6b99 (diff)
feat: docs
-rw-r--r--docs/README.md34
-rw-r--r--docs/channel/custom-commands.md90
-rw-r--r--docs/channel/settings.md69
-rw-r--r--docs/channel/timer.md112
-rw-r--r--docs/emotes/count.md33
-rw-r--r--docs/emotes/sim.md30
-rw-r--r--docs/emotes/top.md44
-rw-r--r--docs/errors.md54
-rw-r--r--docs/join.md10
-rw-r--r--docs/misc/holiday.md37
-rw-r--r--docs/misc/mcsrv.md38
-rw-r--r--docs/misc/ping.md8
-rw-r--r--docs/mod/mass-ping.md30
-rw-r--r--docs/mod/spam.md39
-rw-r--r--docs/stream/events.md108
-rw-r--r--docs/stream/notifications.md77
-rw-r--r--docs/summary.md50
-rw-r--r--docs/user/ban-check.md32
18 files changed, 895 insertions, 0 deletions
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..e96a74b
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,34 @@
+# iLotterytea's Twitch bot
+Welcome to iLotterytea's Twitch bot wiki!
+Here you will find useful information about the available commands,
+features, and functions to maximize your enjoyment of interacting with the chat bot.
+
+
+## About iLotterytea's Twitch bot
+iLotterytea's Twitch bot is a smart and feature-rich bot designed specifically for your Twitch channel.
+You can use it to manage your chat, interact with viewers, track stats, and more.
+Just use the commands to have a fun and interactive chat experience!
+
+## How to get started
+
++ **Install the bot**
+
+You can use an instance already running (like [@teabot](https://twitch.tv/teabot) and
+install it in your chat by sending the command [!join](/wiki/join) in its chat,
+or you can self-host it using [these instructions](https://git.ilotterytea.kz/bot/plain/README.md).
+
++ **Basic Commands**
+
+Learn the list of basic commands to quickly start using the bot.
+For example, `!help` for a list of available commands,
+or you can look at the articles under the "Commands" heading on the side bar.
+
++ **Personalization**
+
+Customize the bot to suit your style.
+[Add your unique commands](/wiki/channel/custom-commands) and [customize features](/wiki/channel/settings) as you see fit.
+
+## Updates
+
+The bot is **under active development**.
+Keep an eye on [Git](https://git.ilotterytea.kz/bot) for updates.
diff --git a/docs/channel/custom-commands.md b/docs/channel/custom-commands.md
new file mode 100644
index 0000000..9568919
--- /dev/null
+++ b/docs/channel/custom-commands.md
@@ -0,0 +1,90 @@
+# Custom commands
+
+> This command is for broadcaster only
+
+
+The `!cmd` command gives broadcasters the ability to create their own chat commands.
+
+
+## Syntax
+
+
+### Create a new custom command
+
+`!cmd new [name] [message...]`
+
++ `[name]` - The name for new custom command. It should be unique for your chat.
+A prefix must be specified if you want a prefixed command, e.g. `!sub`, `!server`.
++ `[message]` - Text that will be sent when the custom command is invoked.
+
+### Delete the custom command
+
+`!cmd delete [name]`
+
++ `[name]` - Name of custom command.
+
+### Edit the message for custom command
+`!cmd message [name] [message...]`
+
++ `[name]` - Name of custom command.
++ `[message]` - Text with which to replace
+
+### Toggle (enable/disable) the custom command
+`!cmd toggle [name]`
+
++ `[name]` - Name of custom command.
+
+### Check the information about custom command
+`!cmd info [name]`
+
++ `[name]` - Name of custom command
+
+### Get the list of created custom commands
+`!cmd list`
+
+## Usage
+
+### Creating a new custom command
++ `!cmd new !sub Buy a Twitch sub at this link and become like the rest of us 😎`
+
+### Deleting the custom command
++ `!cmd delete !sub`
+
+### Editing the message for custom command
++ `!cmd message !sub Buy a Prime sub at this link and become like the rest of us 😎`
+
+### Toggling the custom command
++ `!cmd toggle !sub`
+
+### Checking the information about the custom command
++ `!cmd info !sub`
+
+## Responses
+
+### Creating a new custom command
++ `A new custom command with "!sub" name has been successfully created!`
+
+### Deleting the custom command
++ `The "!sub" (ID ...) custom command has been deleted!`
+
+### Editing the message for custom command
++ `The message for "!sub" (ID ...) custom command has been changed!`
+
+### Toggling the custom command
++ If the command was enabled
+
+`The "!sub" (ID ...) custom command has been disabled!`
+
++ If the command was disabled
+
+`The "!sub" (ID ...) custom command has been enabled!`
+
+### Checking the information about the custom command
++ `✅ !sub (ID ...) | Message: Buy a Prime sub at this link and become like the rest of us 😎`
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Namesake creation](/wiki/errors#11)
++ [Not found](/wiki/errors#12)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/channel/settings.md b/docs/channel/settings.md
new file mode 100644
index 0000000..1f25d32
--- /dev/null
+++ b/docs/channel/settings.md
@@ -0,0 +1,69 @@
+# Settings
+
+> This command is for broadcaster only.
+
+
+The `!set` command gives broadcasters ability to customize the bot as they need it to be more fitted for chat.
+
+
+## Available features
+
++ `notify_7tv_updates` - Enable notifications for changes to the channel's 7TV emote set.
+
+## Syntax
+
+### Set the bot localization for the chat
+`!set locale [lang]`
+
++ `[lang]` - Language name in English and lowercase.
+Available languages at the moment: **english**, **russian**.
+
+### Set the bot prefix
+`!set prefix [characters]`
+
++ `[characters]` - Characters to be set as a prefix.
+
+### Enable/disable the bot feature for the chat
+`!set feature [feature]`
+
++ `[feature]` - [Available features](#available-features)
+
+## Usage
+
+### Setting the bot localization
+
++ `!set locale russian`
++ `!set locale english`
+
+### Setting the bot prefix
+
++ `!set prefix ~`
++ `!set prefix ?!`
+
+### Enabling/disabling the bot feature
+
++ `!set feature notify_7tv_updates`
+
+## Responses
+
+### Setting the bot localization
+
++ `Успешно установил язык чата на русский!`
++ `Successfully set the chat language to English!`
+
+### Setting the bot prefix
+
++ `Successfully set the chat prefix to "~"`
++ `Successfully set the chat prefix to "?!"`
+
+### Enabling/disabling the bot feature
+
++ `Successfully enabled the "notify_7tv_updates" feature for this chat!`
++ `Successfully disabled the "notify_7tv_updates" feature for this chat!`
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Incorrect argument](/wiki/errors#2)
++ [Not found](/wiki/errors#12)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/channel/timer.md b/docs/channel/timer.md
new file mode 100644
index 0000000..df72427
--- /dev/null
+++ b/docs/channel/timer.md
@@ -0,0 +1,112 @@
+# Timers
+
+> This command is for broadcaster only
+
+
+The `!timer` command gives broadcasters the ability to create timers that sends messages to the chat room every specified interval.
+
+
+## Syntax
+
+### Create a new timer
+`!timer new [name] [interval] [message...]`
+
++ `[name]` - The name for new timer. It should be unique for your chat.
++ `[interval]` - Message sending interval *(in seconds)*.
++ `[message]` - Text that will be sent after the interval has passed.
+
+### Delete the timer
+`!timer delete [name]`
+
++ `[name]` - The name of the timer.
+
+### Edit the message for the timer
+`!timer message [name] [message...]`
+
++ `[name]` - The name of the timer.
++ `[message]` - Text with which to replace.
+
+### Edit the interval for the timer
+`!timer interval [name] [interval]`
+
++ `[name]` - The name of the timer.
++ `[interval]` - An interval *(in seconds)* with which to replace.
+
+### Toggle (enable/disable) the timer
+`!timer toggle [name]`
+
++ `[name]` - The name of the timer.
+
+### Check the information about the timer
+`!timer info [name]`
+
++ `[name]` - The name of the timer.
+
+### Call the timer
+`!timer call [name]`
+
++ `[name]` - The name of the timer.
+
+### Get the list of created timers
+`!timer list`
+
+## Usage
+
+### Creating a new timer
++ `!timer new sub_ads 120 Buy a Twitch sub and be like all of us`
+
+### Deleting the timer
++ `!timer delete sub_ads`
+
+### Editing the message for the timer
++ `!timer message sub_ads Buy a Prime sub and be like all of us `
+
+### Editing the interval for the timer
++ `!timer interval sub_ads 180`
+
+### Toggling the timer
++ `!timer toggle sub_ads`
+
+### Checking the information about the timer
++ `!timer info sub_ads`
+
+### Calling the timer
++ `!timer call sub_ads`
+
+
+## Responses
+
+### Creating a new timer
++ `A new timer with "sub_ads" name has been successfully created!`
+
+### Deleting the timer
++ `The "sub_ads" (ID ...) timer has been deleted!`
+
+### Editing the message for the timer
++ `The message for "sub_ads" (ID ...) timer has been changed!`
+
+### Editing the interval for the timer
++ `The interval for "sub_ads" (ID ...) timer has been changed!`
+
+### Toggling the timer
++ If the timer was enabled
+
+`The "sub_ads" (ID ...) timer has been disabled!`
+
++ If the timer was disabled
+
+`The "sub_ads" (ID ...) timer has been enabled!`
+
+### Checking the information about the timer
++ `✅ sub_ads (ID ...) | Interval: 120s | Message: Buy a Twitch sub and be like all of us`
+
+### Calling the timer
++ `Buy a Twitch sub and be like all of us`
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Incorrect argument](/wiki/errors#2)
++ [Namesake creation](/wiki/errors#11)
++ [Not found](/wiki/errors#12)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/emotes/count.md b/docs/emotes/count.md
new file mode 100644
index 0000000..bd5f850
--- /dev/null
+++ b/docs/emotes/count.md
@@ -0,0 +1,33 @@
+# Check the usage of emote
+
+> The only supported emote provider is **7TV**
+
+
+The `!ecount` command is designed to track the number of times an emote has been used in a chat.
+This feature allows users to find out how many times a certain emote has been used in messages.
+To use the command, you must specify the name of the emote after the command.
+
+## Syntax
+
+`!ecount [name]`
+
++ `[name]` - The name of the emote.
+
+## Usage
+
++ `!ecount forsenHoppedIn`
+
+## Responses
+
++ `forsenHoppedIn has been used 1337 times`
+
+## Important notes
+
++ Emote information is stored and retrieved from an external
+["ilotterytea/stats"](https://stats.ilotterytea.kz) service.
++ Emotes data may be temporarily unavailable if a bot has just joined a chat.
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [External API error](/wiki/errors#20)
diff --git a/docs/emotes/sim.md b/docs/emotes/sim.md
new file mode 100644
index 0000000..1064d4a
--- /dev/null
+++ b/docs/emotes/sim.md
@@ -0,0 +1,30 @@
+# Emote set similarity check
+
+
+> The only supported emote provider is **7TV**
+
+
+The `!esim` command provides the ability to compare two emote sets and determine the similarity between them.
+This is a useful tool for analyzing the similarity of emotes in different chat rooms.
+
+## Syntax
+
+`!esim [origin channel] [target channel]`
+
++ `[target channel]` - parameter representing the target channel to be compared.
++ `[origin channel]` (optional) - parameter representing the origin channel to be compared.
+If not specified, the channel from which the command was sent is used.
+
+## Usage
+
++ `!esim forsen`
++ `!esim forsen xqc`
+
+## Responses
++ `...'s emote set is 95% similar to forsen's emote set (570 of 600).`
++ `forsen's emote set is not similar to xqc's emote set.`
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Not found](/wiki/errors#12)
diff --git a/docs/emotes/top.md b/docs/emotes/top.md
new file mode 100644
index 0000000..d36a0ae
--- /dev/null
+++ b/docs/emotes/top.md
@@ -0,0 +1,44 @@
+# Emote usage leaderboard
+
+> The only supported emote provider is **7TV**
+
+
+The `!etop` command provides the ability to find out the top emotes by usage in a specified chat room.
+This is a useful tool for those who want to keep track of the popularity and frequency of use of specific emotes in the community.
+
+
+## Syntax
+
+`!etop [desc/asc] [channel name] [amount]`
+
++ `[desc/asc]` (optional) - Parameter to control sorting of emotes.
+The default setting is **desc** *(descending)*.
++ `[channel name]` (optional) - Parameter to specify a specific channel.
+By default, the name of the channel from which the command was sent is used.
++ `[amount]` (optional) - Parameter to set the number of emotes in the result list.
+The default setting is 10, the maximum value is 50.
+
+## Usage
+
++ `!etop` - Shows the top 10 emotes in descending order in the current channel.
++ `!etop asc` - Shows the top 10 emotes in ascending order in the current channel.
++ `!etop forsen` - Shows the top 10 emotes in descending order in forsen's channel.
++ `!etop asc forsen 10` - Shows the top 20 emotes in ascending order in forsen's channel.
++ `!etop asc 20` - Shows the top 20 emotes in ascending order in the current channel.
+
+## Responses
+
++ `forsen's top 10 emotes (descending): forsenHoppedIn (750), FailFors (600), forsenGravity (599), ...`
++ `forsen's top 10 emotes (ascending): forsenMushroom (1), forsenDank (5), forsenPirate (60), ...`
+
+## Important notes
+
++ Emote information is stored and retrieved from an external
+["ilotterytea/stats"](https://stats.ilotterytea.kz) service.
++ Emotes data may be temporarily unavailable if a bot has just joined a chat.
+
+## Error handling
+
++ [Not found](/wiki/errors#12)
++ [External API error](/wiki/errors#20)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/errors.md b/docs/errors.md
new file mode 100644
index 0000000..692e20c
--- /dev/null
+++ b/docs/errors.md
@@ -0,0 +1,54 @@
+# Errors
+
+## Not enough arguments
+
+This error occurs when a command is called with insufficient parameters or arguments.
+
+
+For example, if a command requires a username and a message, but only one of them is provided.
+
+
+> You can always get help on the required command arguments via `!help <command_name>`
+
+
+## Incorrect argument
+
+This error means that an argument passed to a command is invalid.
+
+
+For example, if a command expects an argument in a certain format *(e.g., 25.02, forsen:live)* but does not receive it in the required format.
+
+## Insufficient rights
+
+This error typically occurs when a user attempts to perform an action for which they do not have the necessary permissions or privileges.
+For instance, if a chatter tries to execute a moderator-only command.
+
+
+Also, if the bot doesn't have any permissions, such as not being granted moderator rights, this error will also happen!
+For example, a bot without moderator rights will send this error when calling the `!massping` command.
+
+## Incompatible name
+
+This error indicates that the name being used is incompatible with the command. **Not used at the moment.**
+
+
+For example, attempt to create a custom command with the name of a built-in command (e.g. `!ping`).
+
+## Namesake creation
+
+This error suggests that the name being attempted to be used is already in use.
+
+## Not found
+
+This error occurs when the requested resource *(e.g. timer, command, user)* cannot be found.
+
+## External API error
+
+This error indicates a problem with an external API that the bot relies on.
+
+
+For example, if the bot is trying to fetch data from Stats API and encounters an issue with the connection or the API itself.
+
+## Something went wrong
+
+This is a generic error code used to indicate that an unexpected error occurred for which there isn't a specific error code defined. It serves as a catch-all for various unexpected errors.
diff --git a/docs/join.md b/docs/join.md
new file mode 100644
index 0000000..df23f5c
--- /dev/null
+++ b/docs/join.md
@@ -0,0 +1,10 @@
+# How do I make the bot join my chat?
+
+## Join using the `!join` command:
+
+To invite the bot to your Twitch channel,
+the streamer must use the `!join` command **ONLY** in [the bot's chat](https://twitch.tv/teabot).
+Once this command is executed, the bot will join the channel and users can use its commands.
+
+## Join via the website:
+Soon(tm) . . .
diff --git a/docs/misc/holiday.md b/docs/misc/holiday.md
new file mode 100644
index 0000000..90297c8
--- /dev/null
+++ b/docs/misc/holiday.md
@@ -0,0 +1,37 @@
+# Holiday
+
+The `!holiday` command allows you to get information about today's and upcoming holidays.
+
+
+> **So far, only Russian holidays and in Russian.**
+
+
+## Syntax
+
+`!holiday [date]`
+
++ `[date]` (Optional) - The date on which you want to get a random holiday.
+If it's not specified, today's date will be used.
+
+## Usage
+
++ `!holiday` - Get today's random holiday.
++ `!holiday 25.02` - Get a random holiday on February 25th.
++ `!holiday 25` - Get a random holiday on the 25th of this month.
++ `!holiday .02` - Get a random holiday for today's date in February *(e.g. if today is the 1st, then it's February 1st)*.
++ `!holiday yesterday` - Get yesterday's random holiday.
++ `!holiday tommorow` - Get tommorow's random holiday.
+
+## Response
+
++ `Holiday for 25.02 (3/8): День открытия спирта`
+
+## Important notes
+
++ The information is obtained from the third-party service ["ilotterytea/holidays"](https://hol.ilotterytea.kz)
+
+## Error handling
+
++ [Incorrect argument](/wiki/errors#3)
++ [External API error](/wiki/errors#20)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/misc/mcsrv.md b/docs/misc/mcsrv.md
new file mode 100644
index 0000000..188ffdf
--- /dev/null
+++ b/docs/misc/mcsrv.md
@@ -0,0 +1,38 @@
+# Minecraft server status check
+
+The `!mcsrv` command allows you to quickly find out the status of Minecraft server.
+This is a handy command that solves the problem of
+logging into Minecraft and waiting for 20 seconds to load to check the server.
+
+## Syntax
+`!mcsrv [address]`
+
++ `[address]` - IP address or name address of the server.
+
+## Usage
+
++ `!mcsrv mc.hypixel.net`
++ `!mcsrv 12.255.56.21`
+
+## Responses
+
++ `✅ hypixel.net (209.222.114.115) | 36911/200000 | Hypixel Network [1.8-1.20]; HOLIDAYS EVENT | TRIPLE COINS AND EXP | 1.8.9`
++ `⛔ 12.255.56.21 (127.0.0.1)`
+
+## The meanings of the parts of the message *(separated by |)*
+
++ Alphabetic and numeric IP addresses.
++ The number of people playing at the moment and the maximum number of players.
++ The MOTD of the server. Separated by **;** *(semicolon)*.
++ Server version.
+
+
+## Important notes
+
++ The server status is taken from the third-party API ["mcsrvstat.us"](https://mcsrvstat.us).
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Not found](/wiki/errors#12)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/misc/ping.md b/docs/misc/ping.md
new file mode 100644
index 0000000..f36c9d0
--- /dev/null
+++ b/docs/misc/ping.md
@@ -0,0 +1,8 @@
+# Ping!
+The `!ping` command checks to see if it's alive and gives a bunch of other data like memory usage, compiler version, etc.
+
+## Syntax
++ `!ping`
+
+## Responses
++ `funnywhitecat C++17 (gcc ) · Uptime: 24d23h · Memory usage: 18MB`
diff --git a/docs/mod/mass-ping.md b/docs/mod/mass-ping.md
new file mode 100644
index 0000000..133fe87
--- /dev/null
+++ b/docs/mod/mass-ping.md
@@ -0,0 +1,30 @@
+# Mass ping
+
+
+> To use the `!massping` command, you must assign moderator to the bot.
+> Following the Twitch API docs, only moderators have access to full chatter list.
+
+
+The `!massping` command gives the ability to mass mentioning (mass ping) chatters.
+This feature allows you to quickly and efficiently draw the attention of a large number of users to a certain message.
+
+## Syntax
+`!massping [message...]`
+
++ `[message...]` (optional) - A text message that will be sent along with a mention of all chatters.
+
+## Usage
+
++ `!massping forsen`
++ `!massping good morning everyone!! have a nice day :3`
++ `!massping`
+
+## Responses
+
++ `@chatter1, @chatter2, @chatter3, ..., forsen`
++ `@chatter1, @chatter2, @chatter3, ..., good morning everyone!! have a nice day :3`
++ `@chatter1, @chatter2, @chatter3, ...,`
+
+## Error handling
+
++ [Insufficient rights](/wiki/errors#3)
diff --git a/docs/mod/spam.md b/docs/mod/spam.md
new file mode 100644
index 0000000..55370d3
--- /dev/null
+++ b/docs/mod/spam.md
@@ -0,0 +1,39 @@
+# Spam
+
+
+> It is recommended to give the bot moderator rights in the chat room. This will speed up the sending of messages.
+
+
+The `!spam` command gives users the ability to repeat a given message a certain number of times in a chat room.
+This feature can be useful for highlighting important information.
+
+## Syntax
+`!spam [amount] [message...]`
+
++ `[amount]` (optional) - A number that specified how many times the message should be repeated.\
+If not specified, the default value is 10. The maximum value is 100.
++ `[message...]` - The text of the message to be repeated.
+
+## Usage
+
++ `!spam forsen`
++ `!spam 100 forsen forsen forsen`
+
+## Responses
+
+```
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+forsen forsen forsen
+...
+```
+
+## Error handling
++ [Not enough arguments](/wiki/errors#0)
diff --git a/docs/stream/events.md b/docs/stream/events.md
new file mode 100644
index 0000000..d9db6d6
--- /dev/null
+++ b/docs/stream/events.md
@@ -0,0 +1,108 @@
+# Stream events
+
+> This command is for broadcaster only.
+
+
+The `!event` command gives broadcasters the ability to manage events for streams.
+
+
+## Event types
+
++ live
++ offline
++ title
++ category
++ custom
+
+## Event flags
+
++ `massping` - Massping everyone in chat regardless of their subscription to the event.
+
+## Syntax
+
+### Create a new event
+
+`!event on [name]:[type] [message...]`
+
++ `[name]` - Twitch username or event name *(custom type only)*.
++ `[type]` - [Event type](#event-types).
++ `[message]` - The message that will be sent with the event.
+
+
+> Events with types *category* and *title* use *{0}* and *{1}* placeholders
+> for old and new values respectively.
+> This means that the bot can show changes if you set them
+> (e.g. *forsen changed the title from **{0}** to **{1}*** will replace
+> with *forsen changed the title from **Just Chatting** to **PUBG***).
+
+
+### Delete the event
+
+`!event off [name]:[type]`
+
++ `[name]` - Twitch username or event name *(custom type only)*.
++ `[type]` - [Event type](#event-types).
+
+### Flag/unflag the event
+
+`!event flag [name]:[type] [flag]`
+
++ `[name]` - Twitch username or event name *(custom type only)*.
++ `[type]` - [Event type](#event-types).
++ `[flag]` - [Event flag](#event-flags).
+
+### Call the event
+
+
+> The bot requires moderator privileges on events with the **"massping"** flag.
+
+
+`!event call [name]:[type]`
+
++ `[name]` - Twitch username or event name *(custom type only)*.
++ `[type]` - [Event type](#event-types).
+
+## Usage
+
+### Creating a new event
++ `!event on forsen:live forsen live!`
+
+### Deleting the event
++ `!event off forsen:live`
+
+### Flag/unflag the event
++ `!event flag forsen:live massping`
+
+### Calling the event
++ `!event call forsen:live`
+
+## Responses
+
+### Creating a new event
++ `A new "forsen:live" event has been successfully created! It will send a message when the event occurs.`
+
+### Deleting the event
++ `The "forsen:live" (ID ...) event has been successfully deleted!`
+
+### Adding the flag to the event
++ `Flag "massping" is set for the "forsen:live" event.`
+
+### Removing the flag from the event
++ `Flag "massping" has been removed from the "forsen:live" event.`
+
+### Calling the event
++ `⚡ forsen live!`
+
+## Important notes
+
++ If the specified event name does not belong to a Twitch user,
+the event type will automatically be considered ***custom***.
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Incorrect argument](/wiki/errors#2)
++ [Insufficient rights](/wiki/errors#3)
++ [Namesake creation](/wiki/errors#11)
++ [Not found](/wiki/errors#12)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/stream/notifications.md b/docs/stream/notifications.md
new file mode 100644
index 0000000..7be6f0c
--- /dev/null
+++ b/docs/stream/notifications.md
@@ -0,0 +1,77 @@
+# Stream notifications
+
+The `!notify` command gives users the ability to manage event subscriptions.
+
+## Syntax
+
+### Subscribe to the event
+`!notify sub [name]:[type]`
+
++ `[name]` - Twitch username or event name *(custom type only)*.
++ `[type]` - [Event type](/wiki/stream/events#event-types).
+
+### Unsubscribe from the event
+`!notify unsub [name]:[type]`
+
++ `[name]` - Twitch username or event name *(custom type only)*.
++ `[type]` - [Event type](/wiki/stream/events#event-types).
+
+### Get your event subscriptions
+`!notify subs`
+
+### Get available events to subscribe
+`!notify list`
+
+## Usage
+
+### Subscribing to the event
+
++ `!notify sub forsen:live`
+
+### Unsubscribing from the event
+
++ `!notify unsub forsen:live`
+
+## Responses
+
+### Subscribing to the event
+
++ If you're not a subscriber
+
+`You have successfully subscribed to the "forsen:live" event!`
+
++ If you're already a subscriber
+
+`You're already a subscriber to the "forsen:live" event.`
+
+### Unsubscribing from the event
+
++ If you're not a subscriber
+
+`You're not subscribed to the "forsen:live" event.`
+
++ If you're a subscriber
+
+`You have successfully unsubscribed from the "forsen:live" event!`
+
+### Getting event subscriptions
+
++ If you're subscribed to at least one event
+
+`Your subscriptions: forsen:live, xqc:offline, nymn:title, ...`
+
++ Otherwise,
+
+`You're not subscribed to any events.`
+
+## Important notes
+
++ If the specified event name does not belong to a Twitch user,
+the event type will automatically be considered ***custom***.
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Incorrect argument](/wiki/errors#2)
++ [Not found](/wiki/errors#12)
++ [Something went wrong](/wiki/errors#127)
diff --git a/docs/summary.md b/docs/summary.md
new file mode 100644
index 0000000..670d8f1
--- /dev/null
+++ b/docs/summary.md
@@ -0,0 +1,50 @@
+# [Introduction](/wiki)
+
++ [How do I make the bot join my chat?](/wiki/join)
+
+# Commands
+
+## Channel management
+
++ [Custom commands](/wiki/channel/custom-commands)
++ [Timers](/wiki/channel/timer)
+
+## Stream features
+
++ [Stream events](/wiki/stream/events)
++ [Stream notifications](/wiki/stream/notifications)
+
+## Moderation stuff
+
++ [Mass ping](/wiki/mod/mass-ping)
+
+## Miscellaneous
+
++ [Ping](/wiki/misc/ping)
+
+# [Errors](/wiki/errors)
+
+# NOT IMPLEMENTED
+
+## Channel management
+
++ [Settings](/wiki/channel/settings)
+
+## Emote management
+
++ [Check the usage of emote](/wiki/emotes/count)
++ [Emote usage leaderboard](/wiki/emotes/top)
++ [Emote set similarity check](/wiki/emotes/sim)
+
+## Moderation stuff
+
++ [Spam](/wiki/mod/spam)
+
+## User management
+
++ [User ban check](/wiki/user/ban-check)
+
+## Miscellaneous
+
++ [Minecraft server status check](/wiki/misc/mcsrv)
++ [Get today's holidays](/wiki/misc/holiday)
diff --git a/docs/user/ban-check.md b/docs/user/ban-check.md
new file mode 100644
index 0000000..4918362
--- /dev/null
+++ b/docs/user/ban-check.md
@@ -0,0 +1,32 @@
+# User ban check
+
+The `!userid` command allows you to check if the specified users
+exist, or if they are banned, or if they are OK.
+
+## Syntax
+
+`!userid [users...]`
+
++ `[users...]` - User ID or user names. Separated by **,** *(colon)*.
+
+## Usage
+
++ `!userid drdisrespect`
++ `!userid 22484632`
++ `!userid drdisrespect,22484632,okayeg`
+
+## Responses
+
++ `⛔ drdisrespect (17337557): TOS_INDEFINITE`
++ `✅ forsen (22484632)`
++ `✅ okayeg (489147225)`
+
+## Important notes
+
++ User information is taken from the third-party API service ["ivr.fi"](https://api.ivr.fi/v2/docs)
+
+## Error handling
+
++ [Not enough arguments](/wiki/errors#0)
++ [Not found](/wiki/errors#12)
++ [Something went wrong](/wiki/errors#127)