# GeloTVBot v0.1.0 - Table of Contents

> A supervised multi-platform chat bot dispatch library for Twitch, YouTube, and Kick style adapters.

## Pages

- [GelotvBot](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)
- [NOTICE](notice.md)

## Modules

- Core
  - [GelotvBot](GelotvBot.md): Multi-platform livestream chat bot dispatch library.
  - [GelotvBot.Bot](GelotvBot.Bot.md): Supervised bot instance capable of broadcasting one command/message to many
livestream targets concurrently.

  - [GelotvBot.Command](GelotvBot.Command.md): Reusable command payload that can be sent to one or many live chats.
  - [GelotvBot.LiveDiscovery](GelotvBot.LiveDiscovery.md): Discovers active livestream chats and converts them into `GelotvBot.Target`s.

  - [GelotvBot.Message](GelotvBot.Message.md): Normalized chat message.
  - [GelotvBot.Target](GelotvBot.Target.md): Destination for one platform/channel/livestream chat.

- Dispatch
  - [GelotvBot.API](GelotvBot.API.md): Shared helpers for dependency-free platform API clients.

  - [GelotvBot.Dispatcher](GelotvBot.Dispatcher.md): Concurrent message dispatcher used directly or through `GelotvBot.Bot`.

  - [GelotvBot.MessageValidator](GelotvBot.MessageValidator.md): Validation helpers for platform chat messages.

  - [GelotvBot.OAuth](GelotvBot.OAuth.md): Small dependency-free OAuth helpers used by platform clients.

  - [GelotvBot.Pagination](GelotvBot.Pagination.md): Pagination helpers for raw platform API responses.

  - [GelotvBot.RateLimiter](GelotvBot.RateLimiter.md): Shared token-bucket rate limiter used by all bot instances.
  - [GelotvBot.RetryPolicy](GelotvBot.RetryPolicy.md): Bounded retry/backoff policy for transient platform send failures.

- Platform APIs
  - [GelotvBot.APIs.Kick](GelotvBot.APIs.Kick.md): Generic Kick public API client.

  - [GelotvBot.APIs.Twitch](GelotvBot.APIs.Twitch.md): Generic Twitch Helix API client.
  - [GelotvBot.APIs.YouTube](GelotvBot.APIs.YouTube.md): Generic YouTube Data API v3 client.

- Metadata
  - [GelotvBot.Metadata](GelotvBot.Metadata.md): Signed visible metadata tokens for chat messages.

- Adapters
  - [GelotvBot.Adapter](GelotvBot.Adapter.md): Behaviour implemented by platform adapters.
  - [GelotvBot.Adapters.Kick](GelotvBot.Adapters.Kick.md): Kick chat adapter using `POST /public/v1/chat`.
  - [GelotvBot.Adapters.Test](GelotvBot.Adapters.Test.md): In-memory adapter for tests and local development.

  - [GelotvBot.Adapters.Twitch](GelotvBot.Adapters.Twitch.md): Twitch chat adapter using the Helix Send Chat Message endpoint.
  - [GelotvBot.Adapters.YouTube](GelotvBot.Adapters.YouTube.md): YouTube Live Chat adapter using `liveChatMessages.insert`.
  - [GelotvBot.HTTPClient](GelotvBot.HTTPClient.md): Minimal injectable HTTP client behaviour used by built-in platform adapters.

  - [GelotvBot.HTTPClient.Default](GelotvBot.HTTPClient.Default.md): Default HTTP client backed by Erlang `:httpc`.

