Go to file
2024-12-20 18:29:54 +00:00
.github/workflows Update build.yml 2024-08-14 16:16:51 +06:00
gradle Update dependency gradle to v8.12 2024-12-20 18:29:54 +00:00
src/main/kotlin small fix for password setting up in authenticator 2023-10-11 21:25:46 +06:00
.gitattributes first filling of template 2020-11-08 18:54:39 +06:00
.gitignore add .kotlin to .gitignore 2024-08-14 16:45:15 +06:00
build.gradle build fix 2024-08-14 16:19:51 +06:00
docker-compose.yml add dockerfile environment 2021-11-21 20:51:56 +06:00
Dockerfile Update Dockerfile 2022-06-17 03:31:53 +06:00
example.config.json update template 2023-10-11 21:02:36 +06:00
gradle.properties migration onto toml versions keeper 2022-03-03 12:12:02 +06:00
gradlew Update dependency gradle to v8.12 2024-12-20 18:29:54 +00:00
gradlew.bat Update dependency gradle to v8.12 2024-12-20 18:29:54 +00:00
LICENSE Create LICENSE 2020-11-08 18:37:55 +06:00
Makefile add dockerfile environment 2021-11-21 20:51:56 +06:00
README.md update template 2023-10-11 21:02:36 +06:00
renovate.json Add renovate.json 2024-09-06 10:37:30 +00:00
settings.gradle build fix 2024-08-14 16:19:51 +06:00

Telegram Bot Template

That is template for telegram bots based on next stack of technologies:

Default

Since you have used this repo as a template you can copy file example.config.json as local.config.json, put there your bot token and simply run command ./gradlew run --args="local.config.json". As an output you will get your bot information like:

ExtendedBot(id=ChatId(chatId=1234567890), username=Username(username=@username_of_your_bot), firstName=Name of bot, lastName=, canJoinGroups=(some boolean), canReadAllGroupMessages=(some boolean), supportsInlineQueries=(some boolean))

Docker

In this template there is template-like docker-compose and docker files. Besides, there is Makefile and you may use something like make buildAndStartCompose to start your bot.

It is important to replace "TOKEN" in Dockerfile or remove and add some config as a volume.

Config

But you may set up several things for your bot. You should start with adding client object:

{
  "token": "your bot token",
  "client": {
    "connectionTimeoutMillis": 10000,
    "requestTimeoutMillis": 10000,
    "responseTimeoutMillis": 10000,
    "proxy": {
      "hostname": "127.0.0.1",
      "port": 1080,
      "type": "socks",
      "username": "username",
      "password": "password"
    }
  }
}

Required fields:

  • token
  • client/proxy/hostname (if you pass client and proxy fields) - hostname of proxy server
  • client/proxy/password - password for authentication on proxy server, required if client/proxy/type is socks and client/proxy/username passed

Optional fields:

  • client - object with client configs
  • client/connectionTimeoutMillis - timeout for connection to the server
  • client/requestTimeoutMillis - timeout for request complete (when request taken on server)
  • client/responseTimeoutMillis - timeout for getting a response after request taken on server
  • client/proxy - proxy settings
  • client/proxy/port - port of proxy server
  • client/proxy/type - type of proxy server (can be socks or http)
  • client/proxy/username - username for authentication on proxy server
  • client/proxy/password - password for authentication on proxy server

Basically, your config looks like an object with token:

{
  "token": "your bot token"
}

What next?

There are several ways to continue:

In other words, this template (and TelegramBotAPI library) does not limit you on choosing of way to continue 😊