Type-safe library for work with Telegram Bot API
Go to file
InsanusMokrassar b336b17eef FullTextSourcesList 2020-04-25 09:57:59 +06:00
.github Create write-good.yml 2020-03-31 19:13:48 +06:00
TelegramBotAPI FullTextSourcesList 2020-04-25 09:57:59 +06:00
TelegramBotAPI-extensions-api add Explained interface and use it in polls 2020-04-25 09:41:04 +06:00
TelegramBotAPI-extensions-utils optimize imports 2020-04-24 20:25:53 +06:00
badges update group badge 2020-02-15 16:11:42 +06:00
gradle/wrapper update versions 2020-03-22 13:04:40 +06:00
.gitignore init 2018-12-26 16:21:52 +08:00
.travis.yml Create .travis.yml 2020-02-19 20:08:15 +06:00
CHANGELOG.md FullTextSourcesList 2020-04-25 09:57:59 +06:00
LICENSE Update LICENSE 2020-02-19 22:29:53 +06:00
README.md Update README.md 2020-04-17 15:52:47 +06:00
_config.yml Set theme jekyll-theme-cayman 2020-01-06 22:44:23 +06:00
gradle.properties started 0.27.1 2020-04-25 09:26:10 +06:00
gradlew init 2018-12-26 16:21:52 +08:00
gradlew.bat init 2018-12-26 16:21:52 +08:00
settings.gradle add TelegramBotAPI-extensions-utils 2020-04-08 11:05:48 +06:00

README.md

TelegramBotAPI

Common info Awesome Kotlin Badge Chat in Telegram Build Status
TelegramBotAPI status Download Maven Central
TelegramBotAPI Extensions status Download Maven Central
TelegramBotAPI Util Extensions status Download Maven Central

It is a complex of libraries for working with TelegramBotAPI in type-safe and strict way as much as it possible. In the list of this complex currently next projects:

  • TelegramBotAPI - core of library. In fact it is independent library and can be used alone without any additional library
  • TelegramBotAPI Extensions - contains extensions (mostly for RequestsExecutor), which allows to use the core library in more pleasant way
  • TelegramBotAPI Util Extensions - contains extensions for more comfortable work with commands, updates and other different things

Most part of some specific solves or unuseful moments are describing by official Telegram Bot API.

JavaScript notes

In case if you are want to use this library inside of browser, you will need additional settings (thanks for help to Alexander Nozik):

Gradle build script help
dependencies {
    /* ... */

    implementation "com.github.insanusmokrassar:TelegramBotAPI:$tgbot_api_version"
    implementation "com.github.insanusmokrassar:TelegramBotAPI-extensions-api:$tgbot_api_version" // optional
    implementation "com.github.insanusmokrassar:TelegramBotAPI-extensions-utils:$tgbot_api_version" // optional

    /* Block of dependencies for correct building in browser */
    implementation(npm("fs"))
    implementation(npm("bufferutil"))
    implementation(npm("utf-8-validate"))
    implementation(npm("abort-controller"))
    implementation(npm("text-encoding"))
}

/* ... */

kotlin {
    target {
        browser {
            /* Block for fix of exception in absence of some functionality, https://github.com/ktorio/ktor/issues/1339 */
            dceTask {
                dceOptions {
                    keep("ktor-ktor-io.\$\$importsForInline\$\$.ktor-ktor-io.io.ktor.utils.io")
                }
            }
        }
    }
}

Ok, where should I start?

In most cases, the most simple way will be to implement TelegramBotAPI Extensions and TelegramBotAPI Util Extensions for the reason that they contains more simple tools. If you want to dive deeper in the core of library or develop something for it - welcome to TelegramBotAPI.

Anyway, all libraries are very typical inside of them. Examples:

  • In TelegramBotAPI common request look like requestsExecutor.execute(SomeRequest())
  • TelegramBotAPI-extensions-api typical syntax look like requestsExecutor.someRequest() (in most cases it would be better to use bot name instead of requestsExecutor)
  • TelegramBotAPI-extensions-utils will look like filter.filterBaseMessageUpdates(chatId).filterExactCommands(Regex("^.*$"))...