Tech otaku saves the world! Will you save the world with me?
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
bin
config
db
lib
log
public
spec
vendor/assets
.gitignore
.rspec
Gemfile
Gemfile.lock
README.md
Rakefile
config.ru

README.md

TechOtakuBot

Tech otaku saves the world!

Will you save the world with me?

Commands

  • /start - Greeting.
  • /help
  • /moegirl %term% - Search for term on zh.moegirl.org
  • /memo %text% - Saves text to session.
  • /remind_me - Replies with text from session.
  • /keyboard - Simple keyboard.
  • /inline_keyboard - Inline keyboard example.
  • Inline queries. Enable it in @BotFather, and your're ready to try 'em.
  • /last_chosen_inline_result - Your last chosen inline result (Enable feedback with sending /setinlinefeedback to @BotFather).

Setup

  • Create bot with @BotFather unless has_test_bot?
  • Clone repo.
  • run ./bin/setup.
  • Update config/secrets.yml with your bot's token.

Run

Development

bin/rake telegram:bot:poller

Production

One way is just to run poller. You don't need anything else, just check your production secrets & configs. But there is better way: use webhooks.

You may want to use different token: after you setup the webhook, you need to unset it to run development poller again.

First you need to setup the webhook. There is rake task for it, but you're free to set it manually with API call. To use rake task you need to set host in routes.default_url_options for production environment (config.routes for Rails < 5). There is already such line in the repo in production.rb. Uncomment it, change the values, and you're ready for:

bin/rake telegram:bot:set_webhook RAILS_ENV=production

Now deploy your app in any way you like. You don't need run anything special for bot, but rails server as usual. Your rails app will receive webhooks and bypass them to bot's controller.

Testing

bin/rspec

Advanced

Async mode

  • Uncomment async: true in secrets.yml.
  • Run and check the logs out.
  • More info about async mode.

Botan

  • Get token at botan.io.
  • Uncomment botan section in secrets.yml and update token.
  • Run.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/telegram-bot-rb/telegram_bot_app.

Credits

This app uses telegram-bot gem and bot template telegram_bot_app.