github.com/Scurrra/hamilton

Telegram Bot API wrapper for Crystal

6 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  hamilton:
    github: Scurrra/hamilton
    version: ~> 0.5.0

Then run:

shards install

shard.yml

Crystal
>= 1.19.1
License
MIT
Author
Scurrra (Ilja Baroŭski)

Dependencies

This version declares no dependencies.

README

hamilton

Crystal wrapper for Telegram Bot API (updated to 9.6) with optional async execution. Telegram Mini Apps are not supported.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      hamilton:
        github: Scurrra/hamilton
  2. Run shards install

Usage

require "hamilton"

API = Hamilton::Api.new(token: "<YOUR-API-TOKEN>")

handler = Hamilton::CmdHandler.new

@[Handler(handler)]
@[Handle(command: "/start")]
def handle_start_command(argument, context, update)
  # logic here
  return nil
end

@[Handler(handler)]
@[Handle(command: "help")]
def handle_help_command(argument, context, update)
  # logic here
  return nil
end

bot = Hamilton::Bot.new(
  api: API,
  handlers: [
    Hamilton::LogHandler.new, 
    handler
  ]
)

Signal::INT.trap do
  bot.stop
end

bot.listen

Usage guide with detailed explanation and example of the async bot can be found here.

Contributing

  1. Fork it (https://github.com/Scurrra/hamilton/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors