1
0
Fork 0
mirror of https://git.sr.ht/~ashkeel/strimertul-website synced 2024-11-23 21:32:20 +00:00
strimertul-website/data/api/v310/api.json

1616 lines
41 KiB
JSON
Raw Normal View History

2023-02-18 00:04:20 +00:00
{
2023-02-18 13:03:06 +00:00
"twitch/stream-info": {
"description": "List of active twitch streams (1 element if live, 0 otherwise)",
2023-02-18 00:04:20 +00:00
"schema": {
"name": "",
2023-02-18 12:04:09 +00:00
"kind": "array",
2023-02-18 00:04:20 +00:00
"element": {
2023-02-18 13:03:06 +00:00
"name": "Stream",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
2023-02-18 12:04:09 +00:00
{
2023-02-18 13:03:06 +00:00
"name": "id",
"kind": "string"
},
{
"name": "user_id",
"kind": "string"
},
{
"name": "user_login",
"kind": "string"
},
{
"name": "user_name",
"kind": "string"
},
{
"name": "game_id",
"kind": "string"
},
{
"name": "game_name",
"kind": "string"
},
{
"name": "tag_ids",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
},
{
"name": "is_mature",
2023-02-18 12:04:09 +00:00
"kind": "boolean"
},
{
2023-02-18 13:03:06 +00:00
"name": "type",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "title",
"kind": "string"
},
{
"name": "viewer_count",
"kind": "int"
},
{
"name": "started_at",
"kind": "datetime"
},
{
"name": "language",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
2023-02-18 13:03:06 +00:00
{
"name": "thumbnail_url",
"kind": "string"
}
]
}
}
},
"twitch/bot-custom-commands": {
"description": "Chatbot custom commands",
"schema": {
"name": "",
"kind": "dictionary",
"key": {
"name": "string",
"kind": "string"
},
"element": {
"name": "BotCustomCommand",
"kind": "object",
"keys": [
2023-02-18 00:04:20 +00:00
{
"name": "description",
2023-02-18 13:03:06 +00:00
"description": "Command description",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "access_level",
"description": "Minimum access level needed to use the command",
"kind": "enum",
"enumValues": [
"everyone",
"subscriber",
"vip",
"moderators",
"streamer"
]
},
{
"name": "response",
"description": "Response template (in Go templating format)",
2023-02-18 12:04:09 +00:00
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "enabled",
"description": "Is the command enabled?",
"kind": "boolean"
}
]
}
}
},
"twitch/auth-keys": {
"description": "User access token for the twitch subsystem",
"schema": {
"name": "AuthResponse",
"kind": "object",
"keys": [
{
"name": "access_token",
"kind": "string"
},
{
"name": "refresh_token",
"kind": "string"
},
{
"name": "expires_in",
"kind": "int"
},
{
"name": "scope",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
},
{
"name": "Time",
"kind": "datetime"
}
]
}
},
"loyalty/redeem-queue": {
"description": "All pending redeems",
"schema": {
"name": "",
"kind": "array",
"element": {
"name": "Redeem",
"kind": "object",
"keys": [
{
"name": "username",
"description": "Username of who redeemed the reward",
"kind": "string"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "display_name",
"description": "Display name of who redeemed the reward",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "reward",
"description": "Reward that was redeemed",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Is the reward enabled (redeemable)?",
"kind": "boolean"
},
{
"name": "id",
"description": "Reward ID",
"kind": "string"
},
{
"name": "name",
"description": "Name of the reward",
"kind": "string"
},
{
"name": "description",
"description": "Description of the reward",
"kind": "string"
},
{
"name": "image",
"description": "Reward icon URL",
"kind": "string"
},
{
"name": "price",
"description": "How much does is cost",
"kind": "int"
},
{
"name": "required_info",
"description": "If present, reward requires user input and this field is the help text",
"kind": "string"
},
{
"name": "cooldown",
"description": "Time in seconds to wait before this reward can be redeemed again",
"kind": "int"
}
]
},
{
"name": "when",
"description": "Time of the redeem",
"kind": "datetime"
},
{
"name": "request_text",
"description": "If the reward required user input it will be here",
"kind": "string"
2023-02-18 00:04:20 +00:00
}
]
}
}
},
2023-02-18 13:03:06 +00:00
"loyalty/ev/new-redeem": {
"description": "On reward redeemed",
2023-02-18 00:04:20 +00:00
"schema": {
"name": "Redeem",
"kind": "object",
"keys": [
{
"name": "username",
2023-02-18 13:03:06 +00:00
"description": "Username of who redeemed the reward",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
"name": "display_name",
2023-02-18 13:03:06 +00:00
"description": "Display name of who redeemed the reward",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
"name": "reward",
2023-02-18 13:03:06 +00:00
"description": "Reward that was redeemed",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
"name": "enabled",
2023-02-18 13:03:06 +00:00
"description": "Is the reward enabled (redeemable)?",
2023-02-18 00:04:20 +00:00
"kind": "boolean"
},
{
"name": "id",
2023-02-18 13:03:06 +00:00
"description": "Reward ID",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
"name": "name",
2023-02-18 13:03:06 +00:00
"description": "Name of the reward",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
"name": "description",
2023-02-18 13:03:06 +00:00
"description": "Description of the reward",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
"name": "image",
2023-02-18 13:03:06 +00:00
"description": "Reward icon URL",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
"name": "price",
2023-02-18 13:03:06 +00:00
"description": "How much does is cost",
2023-02-18 12:04:09 +00:00
"kind": "int"
2023-02-18 00:04:20 +00:00
},
{
"name": "required_info",
2023-02-18 13:03:06 +00:00
"description": "If present, reward requires user input and this field is the help text",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
"name": "cooldown",
2023-02-18 13:03:06 +00:00
"description": "Time in seconds to wait before this reward can be redeemed again",
2023-02-18 12:04:09 +00:00
"kind": "int"
2023-02-18 00:04:20 +00:00
}
]
},
{
"name": "when",
2023-02-18 13:03:06 +00:00
"description": "Time of the redeem",
2023-02-18 00:04:20 +00:00
"kind": "datetime"
},
{
"name": "request_text",
2023-02-18 13:03:06 +00:00
"description": "If the reward required user input it will be here",
2023-02-18 00:04:20 +00:00
"kind": "string"
}
]
},
"tags": [
2023-02-18 13:03:06 +00:00
"event"
2023-02-18 00:04:20 +00:00
]
},
2023-02-18 13:03:06 +00:00
"loyalty/@create-redeem": {
"description": "Create a new pending redeem",
2023-02-18 00:04:20 +00:00
"schema": {
2023-02-18 13:03:06 +00:00
"name": "Redeem",
"kind": "object",
"keys": [
{
"name": "username",
"description": "Username of who redeemed the reward",
"kind": "string"
},
{
"name": "display_name",
"description": "Display name of who redeemed the reward",
"kind": "string"
},
{
"name": "reward",
"description": "Reward that was redeemed",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Is the reward enabled (redeemable)?",
"kind": "boolean"
},
{
"name": "id",
"description": "Reward ID",
"kind": "string"
},
{
"name": "name",
"description": "Name of the reward",
"kind": "string"
},
{
"name": "description",
"description": "Description of the reward",
"kind": "string"
},
{
"name": "image",
"description": "Reward icon URL",
"kind": "string"
},
{
"name": "price",
"description": "How much does is cost",
"kind": "int"
},
{
"name": "required_info",
"description": "If present, reward requires user input and this field is the help text",
"kind": "string"
},
{
"name": "cooldown",
"description": "Time in seconds to wait before this reward can be redeemed again",
"kind": "int"
}
]
},
{
"name": "when",
"description": "Time of the redeem",
"kind": "datetime"
},
{
"name": "request_text",
"description": "If the reward required user input it will be here",
"kind": "string"
}
]
},
"tags": [
"rpc"
]
},
"twitch/bot-modules/alerts/config": {
"description": "Configuration of chat bot alerts",
"schema": {
"name": "BotAlertsConfig",
"kind": "object",
"keys": [
{
"name": "follow",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Enable chat message alert on follow",
"kind": "boolean"
},
{
"name": "messages",
"description": "List of message to write on follow, one at random will be picked",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
}
]
},
{
"name": "subscription",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Enable chat message alert on subscription",
"kind": "boolean"
},
{
"name": "messages",
"description": "List of message to write on subscription, one at random will be picked",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
},
{
"name": "variations",
"kind": "array",
"element": {
"name": "",
"kind": "object",
"keys": [
2023-02-18 12:04:09 +00:00
{
2023-02-18 13:03:06 +00:00
"name": "min_streak",
"kind": "int",
"isPointer": true
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "is_gifted",
"kind": "boolean",
"isPointer": true
},
{
"name": "messages",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
2023-02-18 12:04:09 +00:00
}
]
2023-02-18 13:03:06 +00:00
}
}
]
},
{
"name": "gift_sub",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Enable chat message alert on gifted subscription",
"kind": "boolean"
},
{
"name": "messages",
"description": "List of message to write on gifted subscription, one at random will be picked",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
},
{
"name": "variations",
"kind": "array",
"element": {
"name": "",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "min_cumulative",
"kind": "int",
"isPointer": true
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "is_anonymous",
"kind": "boolean",
"isPointer": true
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "messages",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
}
]
}
}
]
},
{
"name": "raid",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Enable chat message alert on raid",
"kind": "boolean"
},
{
"name": "messages",
"description": "List of message to write on raid, one at random will be picked",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
},
{
"name": "variations",
"kind": "array",
"element": {
"name": "",
"kind": "object",
"keys": [
2023-02-18 12:04:09 +00:00
{
2023-02-18 13:03:06 +00:00
"name": "min_viewers",
"kind": "int",
"isPointer": true
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "messages",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
2023-02-18 12:04:09 +00:00
}
]
2023-02-18 13:03:06 +00:00
}
}
]
},
{
"name": "cheer",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Enable chat message alert on cheer",
"kind": "boolean"
},
{
"name": "messages",
"description": "List of message to write on cheer, one at random will be picked",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
},
{
"name": "variations",
"kind": "array",
"element": {
"name": "",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "min_amount",
"kind": "int",
"isPointer": true
},
{
"name": "messages",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
2023-02-18 12:04:09 +00:00
}
]
}
}
2023-02-18 13:03:06 +00:00
]
}
]
}
2023-02-18 12:04:09 +00:00
},
2023-02-18 13:03:06 +00:00
"twitch/config": {
"description": "General configuration for the Twitch subsystem",
2023-02-18 12:04:09 +00:00
"schema": {
2023-02-18 13:03:06 +00:00
"name": "Config",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "enabled",
"description": "Enable subsystem",
"kind": "boolean"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "enable_bot",
"description": "Enable the chatbot",
"kind": "boolean"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "api_client_id",
"description": "Twitch API App Client ID",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "api_client_secret",
"description": "Twitch API App Client Secret",
"kind": "string"
2023-02-18 12:04:09 +00:00
}
]
}
},
2023-02-18 13:03:06 +00:00
"twitch/ev/eventsub-event": {
"description": "On Eventsub event received",
2023-02-18 12:04:09 +00:00
"schema": {
2023-02-18 13:03:06 +00:00
"name": "NotificationMessagePayload",
"kind": "object",
"keys": [
{
"name": "subscription",
"kind": "object",
"keys": [
{
"name": "id",
"kind": "string"
},
{
"name": "type",
"kind": "string"
},
{
"name": "version",
"kind": "string"
},
{
"name": "status",
"kind": "string"
},
{
"name": "condition",
"kind": "object",
"keys": [
{
"name": "broadcaster_user_id",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
2023-02-18 13:03:06 +00:00
{
"name": "from_broadcaster_user_id",
"kind": "string"
},
{
"name": "to_broadcaster_user_id",
"kind": "string"
},
{
"name": "reward_id",
"kind": "string"
},
{
"name": "client_id",
"kind": "string"
},
{
"name": "extension_client_id",
"kind": "string"
},
{
"name": "user_id",
"kind": "string"
2023-02-18 12:04:09 +00:00
}
2023-02-18 13:03:06 +00:00
]
2023-02-18 12:04:09 +00:00
},
2023-02-18 13:03:06 +00:00
{
"name": "transport",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
2023-02-18 00:04:20 +00:00
{
2023-02-18 13:03:06 +00:00
"name": "method",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "callback",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "secret",
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "session_id",
"kind": "string"
},
{
"name": "connected_at",
"kind": "string"
},
{
"name": "disconnected_at",
"kind": "string"
2023-02-18 00:04:20 +00:00
}
2023-02-18 13:03:06 +00:00
]
},
{
"name": "created_at",
"kind": "object",
"keys": [
{
"name": "Time",
"kind": "datetime"
}
]
},
{
"name": "cost",
"kind": "int"
2023-02-18 00:04:20 +00:00
}
2023-02-18 13:03:06 +00:00
]
},
{
"name": "event",
"kind": "array",
"element": {
"name": "uint8",
2023-02-18 00:04:20 +00:00
"kind": "int"
}
2023-02-18 13:03:06 +00:00
},
{
"name": "date",
"kind": "datetime"
}
]
2023-02-18 00:04:20 +00:00
},
"tags": [
2023-02-18 13:03:06 +00:00
"event"
2023-02-18 00:04:20 +00:00
]
},
2023-02-18 12:04:09 +00:00
"twitch/@send-chat-message": {
"description": "Send plain text chat message",
2023-02-18 00:04:20 +00:00
"schema": {
2023-02-18 12:04:09 +00:00
"name": "string",
"kind": "string"
},
"tags": [
"rpc"
]
},
2023-02-18 13:03:06 +00:00
"loyalty/@remove-redeem": {
"description": "Remove a redeem from the queue",
"schema": {
"name": "Redeem",
"kind": "object",
"keys": [
{
"name": "username",
"description": "Username of who redeemed the reward",
"kind": "string"
},
{
"name": "display_name",
"description": "Display name of who redeemed the reward",
"kind": "string"
},
{
"name": "reward",
"description": "Reward that was redeemed",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Is the reward enabled (redeemable)?",
"kind": "boolean"
},
{
"name": "id",
"description": "Reward ID",
"kind": "string"
},
{
"name": "name",
"description": "Name of the reward",
"kind": "string"
},
{
"name": "description",
"description": "Description of the reward",
"kind": "string"
},
{
"name": "image",
"description": "Reward icon URL",
"kind": "string"
},
{
"name": "price",
"description": "How much does is cost",
"kind": "int"
},
{
"name": "required_info",
"description": "If present, reward requires user input and this field is the help text",
"kind": "string"
},
{
"name": "cooldown",
"description": "Time in seconds to wait before this reward can be redeemed again",
"kind": "int"
}
]
},
{
"name": "when",
"description": "Time of the redeem",
"kind": "datetime"
},
{
"name": "request_text",
"description": "If the reward required user input it will be here",
"kind": "string"
}
]
},
"tags": [
"rpc"
]
},
2023-02-18 12:04:09 +00:00
"loyalty/config": {
2023-02-18 13:03:06 +00:00
"description": "General configuration for the loyalty system",
2023-02-18 12:04:09 +00:00
"schema": {
"name": "Config",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
2023-02-18 12:04:09 +00:00
"name": "enabled",
2023-02-18 13:03:06 +00:00
"description": "Enable the loyalty system",
2023-02-18 12:04:09 +00:00
"kind": "boolean"
},
{
"name": "currency",
2023-02-18 13:03:06 +00:00
"description": "Name of the currency",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
{
"name": "points",
2023-02-18 13:03:06 +00:00
"description": "Settings for distributing currency to online viewers",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
2023-02-18 12:04:09 +00:00
"name": "interval",
2023-02-18 13:03:06 +00:00
"description": "How often to distribute points, in seconds",
2023-02-18 12:04:09 +00:00
"kind": "int"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 12:04:09 +00:00
"name": "amount",
2023-02-18 13:03:06 +00:00
"description": "How many points to award every interval",
2023-02-18 12:04:09 +00:00
"kind": "int"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 12:04:09 +00:00
"name": "activity_bonus",
2023-02-18 13:03:06 +00:00
"description": "Extra points for active chatters",
2023-02-18 00:04:20 +00:00
"kind": "int"
}
]
},
{
2023-02-18 12:04:09 +00:00
"name": "banlist",
2023-02-18 13:03:06 +00:00
"description": "Usernames to exclude from currency distribution",
2023-02-18 00:04:20 +00:00
"kind": "array",
"element": {
2023-02-18 12:04:09 +00:00
"name": "string",
"kind": "string"
2023-02-18 00:04:20 +00:00
}
}
]
2023-02-18 12:04:09 +00:00
}
2023-02-18 00:04:20 +00:00
},
2023-02-18 13:03:06 +00:00
"loyalty/rewards": {
"description": "List of available rewards",
2023-02-18 00:04:20 +00:00
"schema": {
2023-02-18 12:04:09 +00:00
"name": "",
"kind": "array",
"element": {
2023-02-18 13:03:06 +00:00
"name": "Reward",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
"name": "enabled",
2023-02-18 13:03:06 +00:00
"description": "Is the reward enabled (redeemable)?",
2023-02-18 12:04:09 +00:00
"kind": "boolean"
},
{
"name": "id",
2023-02-18 13:03:06 +00:00
"description": "Reward ID",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
{
"name": "name",
2023-02-18 13:03:06 +00:00
"description": "Name of the reward",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
{
"name": "description",
2023-02-18 13:03:06 +00:00
"description": "Description of the reward",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
{
"name": "image",
2023-02-18 13:03:06 +00:00
"description": "Reward icon URL",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "price",
"description": "How much does is cost",
2023-02-18 12:04:09 +00:00
"kind": "int"
},
{
2023-02-18 13:03:06 +00:00
"name": "required_info",
"description": "If present, reward requires user input and this field is the help text",
"kind": "string"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "cooldown",
"description": "Time in seconds to wait before this reward can be redeemed again",
"kind": "int"
2023-02-18 12:04:09 +00:00
}
]
}
}
},
2023-02-18 13:03:06 +00:00
"loyalty/goals": {
"description": "List of all goals",
2023-02-18 12:04:09 +00:00
"schema": {
"name": "",
"kind": "array",
"element": {
2023-02-18 13:03:06 +00:00
"name": "Goal",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "enabled",
"description": "Is the goal enabled?",
"kind": "boolean"
},
{
"name": "id",
"description": "Community goal ID",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
2023-02-18 12:04:09 +00:00
{
2023-02-18 13:03:06 +00:00
"name": "name",
"description": "Name of the community goal",
2023-02-18 00:04:20 +00:00
"kind": "string"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "description",
"description": "Description of the goal",
"kind": "string"
},
{
"name": "image",
"description": "Goal icon URL",
"kind": "string"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "total",
"description": "How many points does the goal need to be met in total",
"kind": "int"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "contributed",
"description": "How many points have been contributed so far",
"kind": "int"
},
{
"name": "contributors",
"description": "Dictionary of how much every viewer has contributed",
"kind": "dictionary",
"key": {
"name": "string",
"kind": "string"
},
"element": {
"name": "int64",
"kind": "int"
}
2023-02-18 00:04:20 +00:00
}
2023-02-18 12:04:09 +00:00
]
}
}
},
2023-02-18 13:03:06 +00:00
"twitch/bot-config": {
"description": "General configuration for the Twitch chatbot",
2023-02-18 12:04:09 +00:00
"schema": {
2023-02-18 13:03:06 +00:00
"name": "BotConfig",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
2023-02-18 00:04:20 +00:00
{
2023-02-18 12:04:09 +00:00
"name": "username",
2023-02-18 13:03:06 +00:00
"description": "Chatbot username (for internal use, ignored by Twitch)",
2023-02-18 12:04:09 +00:00
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "oauth",
"description": "OAuth key for IRC authentication",
2023-02-18 12:04:09 +00:00
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "channel",
"description": "Twitch channel to join and use",
"kind": "string"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "chat_history",
"description": "How many messages to keep in twitch/chat-history",
"kind": "int"
2023-02-18 00:04:20 +00:00
}
]
2023-02-18 13:03:06 +00:00
}
2023-02-18 00:04:20 +00:00
},
2023-02-18 13:03:06 +00:00
"twitch/chat-activity": {
"description": "Number of chat messages in the last minute",
"schema": {
"name": "int",
"kind": "int"
}
},
"twitch/eventsub-history": {
"description": "Last eventsub notifications received",
2023-02-18 00:04:20 +00:00
"schema": {
2023-02-18 12:04:09 +00:00
"name": "",
2023-02-18 13:03:06 +00:00
"kind": "array",
2023-02-18 12:04:09 +00:00
"element": {
2023-02-18 13:03:06 +00:00
"name": "NotificationMessagePayload",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "subscription",
"kind": "object",
"keys": [
{
"name": "id",
2023-02-18 00:04:20 +00:00
"kind": "string"
2023-02-18 13:03:06 +00:00
},
{
"name": "type",
2023-02-18 00:04:20 +00:00
"kind": "string"
2023-02-18 13:03:06 +00:00
},
{
"name": "version",
"kind": "string"
},
{
"name": "status",
"kind": "string"
},
{
"name": "condition",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "broadcaster_user_id",
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "from_broadcaster_user_id",
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "to_broadcaster_user_id",
"kind": "string"
},
2023-02-18 00:04:20 +00:00
{
2023-02-18 13:03:06 +00:00
"name": "reward_id",
"kind": "string"
},
{
"name": "client_id",
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "extension_client_id",
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "user_id",
"kind": "string"
2023-02-18 00:04:20 +00:00
}
]
2023-02-18 13:03:06 +00:00
},
{
"name": "transport",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "method",
"kind": "string"
2023-02-18 12:04:09 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "callback",
"kind": "string"
},
{
"name": "secret",
"kind": "string"
},
{
"name": "session_id",
"kind": "string"
},
{
"name": "connected_at",
"kind": "string"
},
{
"name": "disconnected_at",
"kind": "string"
2023-02-18 12:04:09 +00:00
}
]
2023-02-18 13:03:06 +00:00
},
{
"name": "created_at",
2023-02-18 12:04:09 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "Time",
"kind": "datetime"
2023-02-18 12:04:09 +00:00
}
]
2023-02-18 13:03:06 +00:00
},
{
"name": "cost",
"kind": "int"
2023-02-18 12:04:09 +00:00
}
2023-02-18 13:03:06 +00:00
]
},
{
"name": "event",
"kind": "array",
"element": {
"name": "uint8",
2023-02-18 12:04:09 +00:00
"kind": "int"
2023-02-18 00:04:20 +00:00
}
2023-02-18 13:03:06 +00:00
},
{
"name": "date",
"kind": "datetime"
2023-02-18 12:04:09 +00:00
}
2023-02-18 13:03:06 +00:00
]
}
2023-02-18 12:04:09 +00:00
},
"tags": [
2023-02-18 13:03:06 +00:00
"history"
2023-02-18 12:04:09 +00:00
]
2023-02-18 00:04:20 +00:00
},
2023-02-18 13:03:06 +00:00
"loyalty/points/<user>": {
"description": "Point entry for a given user",
2023-02-18 00:04:20 +00:00
"schema": {
2023-02-18 13:03:06 +00:00
"name": "PointsEntry",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "points",
"description": "Currency balance",
"kind": "int"
}
]
}
},
"http/config": {
"description": "General server configuration",
"schema": {
"name": "ServerConfig",
"kind": "object",
"keys": [
{
"name": "bind",
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 13:03:06 +00:00
"name": "enable_static_server",
2023-02-18 00:04:20 +00:00
"kind": "boolean"
},
{
2023-02-18 13:03:06 +00:00
"name": "path",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 13:03:06 +00:00
"name": "kv_password",
2023-02-18 00:04:20 +00:00
"kind": "string"
}
]
}
},
2023-02-18 13:03:06 +00:00
"twitch/bot-modules/timers/config": {
"description": "Configuration of chat bot timers",
2023-02-18 00:04:20 +00:00
"schema": {
2023-02-18 13:03:06 +00:00
"name": "BotTimersConfig",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
2023-02-18 13:03:06 +00:00
"name": "timers",
"description": "List of timers as a dictionary",
"kind": "dictionary",
"key": {
"name": "string",
"kind": "string"
},
"element": {
"name": "BotTimer",
"kind": "object",
"keys": [
{
"name": "enabled",
"description": "Enable the timer",
"kind": "boolean"
},
{
"name": "name",
"description": "Timer name (must be unique)",
"kind": "string"
},
{
"name": "minimum_chat_activity",
"description": "Minimum chat messages in the last 5 minutes for timer to trigger",
"kind": "int"
},
{
"name": "minimum_delay",
"description": "Minimum amount of time (in seconds) that needs to pass before it triggers again",
"kind": "int"
},
{
"name": "messages",
"description": "Messages to write (randomly chosen)",
"kind": "array",
"element": {
"name": "string",
"kind": "string"
}
}
]
}
}
]
}
},
"twitch/chat-history": {
"description": "Last chat messages received",
"schema": {
"name": "",
"kind": "array",
"element": {
"name": "PrivateMessage",
"kind": "object",
"keys": [
{
"name": "User",
"kind": "object",
"keys": [
{
"name": "ID",
"kind": "string"
},
{
"name": "Name",
"kind": "string"
},
{
"name": "DisplayName",
"kind": "string"
},
{
"name": "Color",
"kind": "string"
},
{
"name": "Badges",
"kind": "dictionary",
"key": {
"name": "string",
"kind": "string"
},
"element": {
"name": "int",
"kind": "int"
}
}
]
},
{
"name": "Raw",
"kind": "string"
},
{
"name": "Type",
"kind": "int"
},
{
"name": "RawType",
"kind": "string"
},
{
"name": "Tags",
"kind": "dictionary",
"key": {
"name": "string",
2023-02-18 12:04:09 +00:00
"kind": "string"
},
2023-02-18 13:03:06 +00:00
"element": {
"name": "string",
2023-02-18 12:04:09 +00:00
"kind": "string"
}
2023-02-18 13:03:06 +00:00
},
{
"name": "Message",
"kind": "string"
},
{
"name": "Channel",
"kind": "string"
},
{
"name": "RoomID",
"kind": "string"
},
{
"name": "ID",
"kind": "string"
},
{
"name": "Time",
"kind": "datetime"
},
{
"name": "Emotes",
"kind": "array",
"element": {
"name": "",
"kind": "object",
"keys": [
{
"name": "Name",
"kind": "string"
},
{
"name": "ID",
"kind": "string"
},
{
"name": "Count",
"kind": "int"
},
{
"name": "Positions",
"kind": "array",
"element": {
"name": "EmotePosition",
"kind": "object",
"keys": [
{
"name": "Start",
"kind": "int"
},
{
"name": "End",
"kind": "int"
}
]
}
}
],
"isPointer": true
}
},
{
"name": "Bits",
"kind": "int"
},
{
"name": "Action",
"kind": "boolean"
},
{
"name": "FirstMessage",
"kind": "boolean"
},
{
"name": "Reply",
"kind": "object",
"keys": [
{
"name": "ParentMsgID",
"kind": "string"
},
{
"name": "ParentUserID",
"kind": "string"
},
{
"name": "ParentUserLogin",
"kind": "string"
},
{
"name": "ParentDisplayName",
"kind": "string"
},
{
"name": "ParentMsgBody",
"kind": "string"
}
],
"isPointer": true
},
{
"name": "CustomRewardID",
"kind": "string"
}
]
}
2023-02-18 12:04:09 +00:00
},
"tags": [
2023-02-18 13:03:06 +00:00
"history"
2023-02-18 12:04:09 +00:00
]
},
"twitch/ev/chat-message": {
"description": "On chat message received",
"schema": {
"name": "PrivateMessage",
"kind": "object",
"keys": [
{
"name": "User",
"kind": "object",
"keys": [
{
"name": "ID",
"kind": "string"
},
{
"name": "Name",
"kind": "string"
},
{
"name": "DisplayName",
"kind": "string"
},
{
"name": "Color",
"kind": "string"
},
{
"name": "Badges",
"kind": "dictionary",
"key": {
"name": "string",
"kind": "string"
},
"element": {
"name": "int",
"kind": "int"
}
}
]
},
{
"name": "Raw",
"kind": "string"
},
{
"name": "Type",
"kind": "int"
},
{
"name": "RawType",
"kind": "string"
},
{
"name": "Tags",
2023-02-18 00:04:20 +00:00
"kind": "dictionary",
"key": {
"name": "string",
"kind": "string"
},
"element": {
2023-02-18 12:04:09 +00:00
"name": "string",
"kind": "string"
}
},
{
"name": "Message",
"kind": "string"
},
{
"name": "Channel",
"kind": "string"
},
{
"name": "RoomID",
"kind": "string"
},
{
"name": "ID",
"kind": "string"
},
{
"name": "Time",
"kind": "datetime"
},
{
"name": "Emotes",
"kind": "array",
"element": {
"name": "",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
2023-02-18 12:04:09 +00:00
"name": "Name",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 12:04:09 +00:00
"name": "ID",
"kind": "string"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 12:04:09 +00:00
"name": "Count",
2023-02-18 00:04:20 +00:00
"kind": "int"
},
{
2023-02-18 12:04:09 +00:00
"name": "Positions",
2023-02-18 00:04:20 +00:00
"kind": "array",
"element": {
2023-02-18 12:04:09 +00:00
"name": "EmotePosition",
"kind": "object",
"keys": [
{
"name": "Start",
"kind": "int"
},
{
"name": "End",
"kind": "int"
}
]
2023-02-18 00:04:20 +00:00
}
}
2023-02-18 12:04:09 +00:00
],
"isPointer": true
2023-02-18 00:04:20 +00:00
}
2023-02-18 12:04:09 +00:00
},
2023-02-18 00:04:20 +00:00
{
2023-02-18 12:04:09 +00:00
"name": "Bits",
"kind": "int"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 12:04:09 +00:00
"name": "Action",
"kind": "boolean"
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 12:04:09 +00:00
"name": "FirstMessage",
"kind": "boolean"
},
{
"name": "Reply",
2023-02-18 00:04:20 +00:00
"kind": "object",
"keys": [
{
2023-02-18 12:04:09 +00:00
"name": "ParentMsgID",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 12:04:09 +00:00
"name": "ParentUserID",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 12:04:09 +00:00
"name": "ParentUserLogin",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 12:04:09 +00:00
"name": "ParentDisplayName",
2023-02-18 00:04:20 +00:00
"kind": "string"
},
{
2023-02-18 12:04:09 +00:00
"name": "ParentMsgBody",
2023-02-18 00:04:20 +00:00
"kind": "string"
}
2023-02-18 12:04:09 +00:00
],
"isPointer": true
2023-02-18 00:04:20 +00:00
},
{
2023-02-18 12:04:09 +00:00
"name": "CustomRewardID",
2023-02-18 00:04:20 +00:00
"kind": "string"
}
]
},
"tags": [
2023-02-18 12:04:09 +00:00
"event"
2023-02-18 00:04:20 +00:00
]
}
}