lesswrong-bot

command module
v0.0.0-...-2afc11d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2021 License: MIT Imports: 8 Imported by: 0

README ΒΆ

πŸ€– lesswrong-bot

Go

Telegram bot for reading posts from:

😎 Usage

Commands:

/top - Top posts

/random - Read random post

/source - Change source:

  1. Lesswrong.ru (default)
  2. Slate Star Codex
  3. Astral Codex Ten.
  4. Lesswrong.com

/help - Help

πŸ§‘β€πŸ’» Run locally

Register new bot at https://t.me/BotFather or use previously created one.

Take bot access token.

Before running copy sample file and replace env vars with your credentials

cp .env.sample .env
source .env

Run application locally:

make run

Redis is used as cache. If redis isn't available fallbacks to memory cache.

Also you can run bot with redis in docker compose:

docker-compose up

πŸ‘· Build

Build binary

make build

πŸ§ͺ Testing

Run unit tests

make test

Run integration tests

make test_integration

πŸ– Lint

Run linters

make lint

πŸ›₯ Deployment

Automatic CI/CD pipelines are building and testing the bot on each PR.

Demo bot is deployed to production on Heroku on merge to master.

To deploy your app on Heroku read documentation.

brew install heroku/brew/heroku

heroku login
heroku create lesswrong-bot
heroku config:set WEBHOOK=true
heroku config:set TOKEN=<token>
heroku webhooks:add -i api:build -l notify -u https://deploy-hook-bot.herokuapp.com/hooks -t <auth_token> # To add deploy hook

git push heroku main

If application is already setup just run:

make deploy

πŸ›  Environment variables

Env var Type Description Default
REDIS_URL String Redis connection string redis://localhost:6379/1
TOKEN String Telegram bot access token
DEBUG Boolean Enable debug mode false
WEBHOOK Boolean Enable webhook mode false
PORT String Port for webhook 9999
WEBHOOK_HOST String Webhook host for telegram bot https://lesswrong-bot.herokuapp.com
TIMEOUT Integer Request timeout in seconds 15s
CACHE_EXPIRE Integer Posts cache expire in hours 24h

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
bot
storage

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL