# ex_gram_router v0.1.0 - Table of Contents Declarative routing DSL for ExGram Telegram bots ## Pages - [ExGram.Router](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) ## Modules - DSL - [ExGram.Router](ExGram.Router.md): A declarative routing DSL for ExGram bots. - Filters - [ExGram.Router.Filter](ExGram.Router.Filter.md): Behaviour for ExGram.Router filters. - [ExGram.Router.Filters.Animation](ExGram.Router.Filters.Animation.md): Filter that matches message updates containing an animation (GIF or H.264/MPEG-4 AVC). - [ExGram.Router.Filters.Audio](ExGram.Router.Filters.Audio.md): Filter that matches message updates containing an audio file. - [ExGram.Router.Filters.CallbackQuery](ExGram.Router.Filters.CallbackQuery.md): Built-in filter that matches callback query updates (inline keyboard button presses). - [ExGram.Router.Filters.Command](ExGram.Router.Filters.Command.md): Built-in filter that matches Telegram command updates. - [ExGram.Router.Filters.Contact](ExGram.Router.Filters.Contact.md): Filter that matches message updates containing a shared contact. - [ExGram.Router.Filters.Document](ExGram.Router.Filters.Document.md): Filter that matches message updates containing a document (file). - [ExGram.Router.Filters.InlineQuery](ExGram.Router.Filters.InlineQuery.md): Built-in filter that matches inline query updates. - [ExGram.Router.Filters.Location](ExGram.Router.Filters.Location.md): Built-in filter that matches location message updates. - [ExGram.Router.Filters.Message](ExGram.Router.Filters.Message.md): Built-in filter that matches generic message updates (photos, documents, stickers, audio, video, etc. — any message that is not text or a command). - [ExGram.Router.Filters.Photo](ExGram.Router.Filters.Photo.md): Filter that matches message updates containing one or more photos. - [ExGram.Router.Filters.Poll](ExGram.Router.Filters.Poll.md): Filter that matches message updates containing a poll. - [ExGram.Router.Filters.Regex](ExGram.Router.Filters.Regex.md): Built-in filter that matches text messages against a compiled regex. - [ExGram.Router.Filters.Sticker](ExGram.Router.Filters.Sticker.md): Filter that matches message updates containing a sticker. - [ExGram.Router.Filters.Text](ExGram.Router.Filters.Text.md): Built-in filter that matches plain text message updates. - [ExGram.Router.Filters.Video](ExGram.Router.Filters.Video.md): Filter that matches message updates containing a video file. - [ExGram.Router.Filters.VideoNote](ExGram.Router.Filters.VideoNote.md): Filter that matches message updates containing a video note (round video). - [ExGram.Router.Filters.Voice](ExGram.Router.Filters.Voice.md): Filter that matches message updates containing a voice message. - Core - [ExGram.Router.Compiler](ExGram.Router.Compiler.md): `@before_compile` hook that generates the `handle/2` function from the routing tree built by the DSL macros. - [ExGram.Router.Dispatcher](ExGram.Router.Dispatcher.md): Runtime component responsible for walking the routing tree and dispatching updates to the appropriate handler. - [ExGram.Router.Dsl](ExGram.Router.Dsl.md): Compile-time DSL macros for building the routing tree. - [ExGram.Router.Scope](ExGram.Router.Scope.md): Internal data structure representing a node in the routing tree. ## Mix Tasks - [mix ex_gram.router.flat](Mix.Tasks.ExGram.Router.Flat.md): Prints a flat, one-line-per-handler listing of all routes in an `ExGram.Router` bot module. Unlike the tree view, every entry is a leaf with its full accumulated filter chain (parent scope filters are prepended). - [mix ex_gram.router.tree](Mix.Tasks.ExGram.Router.Tree.md): Prints the routing tree of an `ExGram.Router` bot module in a human-readable indented tree format.