mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-22 16:47:13 +00:00
Type-safe library for work with Telegram Bot API
dev-inmo-tgbotapihacktoberfesthacktoberfest-2021hacktoberfest2020hacktoberfest2021kotlinkotlin-jskotlin-jvmkotlin-librarykotlin-multiplatformtelegramtelegram-bot-apitelegrambotapitgbotapi
.github | ||
badges | ||
gradle/wrapper | ||
TelegramBotAPI | ||
TelegramBotAPI-extensions-api | ||
TelegramBotAPI-extensions-utils | ||
_config.yml | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle |
TelegramBotAPI
Common info | |
---|---|
TelegramBotAPI status | |
TelegramBotAPI Extensions status | |
TelegramBotAPI Util Extensions status |
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 likerequestsExecutor.execute(SomeRequest())
TelegramBotAPI-extensions-api
typical syntax look likerequestsExecutor.someRequest()
(in most cases it would be better to usebot
name instead ofrequestsExecutor
)TelegramBotAPI-extensions-utils
will look likefilter.filterBaseMessageUpdates(chatId).filterExactCommands(Regex("^.*$"))...