mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
synced 2024-11-21 15:53:53 +00:00
update
This commit is contained in:
parent
b28fd5252b
commit
656b8b6774
@ -1,38 +1,24 @@
|
|||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
|
||||||
jcenter()
|
jcenter()
|
||||||
mavenCentral()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
|
||||||
id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version"
|
|
||||||
}
|
|
||||||
|
|
||||||
apply plugin: 'kotlin'
|
apply plugin: 'kotlin'
|
||||||
apply plugin: 'application'
|
apply plugin: 'application'
|
||||||
|
|
||||||
project.version = "0.1.0"
|
|
||||||
project.group = "com.insanusmokrassar"
|
|
||||||
|
|
||||||
mainClassName="com.insanusmokrassar.examples.ForwarderBotKt"
|
mainClassName="com.insanusmokrassar.examples.ForwarderBotKt"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
|
||||||
jcenter()
|
jcenter()
|
||||||
mavenCentral()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
||||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
|
|
||||||
|
|
||||||
implementation "com.github.insanusmokrassar:TelegramBotAPI:$telegram_bot_api_version"
|
implementation "com.github.insanusmokrassar:TelegramBotAPI-all:$telegram_bot_api_version"
|
||||||
implementation "com.github.insanusmokrassar:TelegramBotAPI-extensions-api:$telegram_bot_api_version"
|
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ suspend fun main(args: Array<String>) {
|
|||||||
is UserForwardInfo -> forwardInfo.from.let { user ->
|
is UserForwardInfo -> forwardInfo.from.let { user ->
|
||||||
"User ${user.id.chatId.toString().codeMarkdownV2()} " + "(${user.firstName} ${user.lastName}: ${user.username ?.username ?: "Without username"})".regularMarkdownV2()
|
"User ${user.id.chatId.toString().codeMarkdownV2()} " + "(${user.firstName} ${user.lastName}: ${user.username ?.username ?: "Without username"})".regularMarkdownV2()
|
||||||
}
|
}
|
||||||
is ForwardFromChannelInfo -> "Channel (".regularMarkdownV2() + (forwardInfo.channelChat as ChannelChat).title.codeMarkdownV2() + ")".regularMarkdownV2()
|
is ForwardFromChannelInfo -> "Channel (".regularMarkdownV2() + (forwardInfo.channelChat).title.codeMarkdownV2() + ")".regularMarkdownV2()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
"There is no forward info"
|
"There is no forward info"
|
||||||
|
9
RandomFileSenderBot/README.md
Normal file
9
RandomFileSenderBot/README.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# RandomFileSenderBot
|
||||||
|
|
||||||
|
This bot will send random file from input folder OR from bot working folder
|
||||||
|
|
||||||
|
## Launch
|
||||||
|
|
||||||
|
```bash
|
||||||
|
../gradlew run --args="BOT_TOKEN[ optional/folder/path]"
|
||||||
|
```
|
24
RandomFileSenderBot/build.gradle
Normal file
24
RandomFileSenderBot/build.gradle
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'kotlin'
|
||||||
|
apply plugin: 'application'
|
||||||
|
|
||||||
|
mainClassName="com.insanusmokrassar.examples.RandomFileSenderBotKt"
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
||||||
|
|
||||||
|
implementation "com.github.insanusmokrassar:TelegramBotAPI-all:$telegram_bot_api_version"
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
package com.insanusmokrassar.examples
|
||||||
|
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.bot.Ktor.KtorRequestsExecutor
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.extensions.api.send.sendTextMessage
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.textsources.BotCommandTextSource
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownV2
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts.ChannelChat
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.message.*
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.BaseMessageUpdate
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.utils.*
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.UpdateReceiver
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.startGettingOfUpdates
|
||||||
|
import kotlinx.coroutines.*
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This bot will always return message about forwarder. In cases when sent message was not a forward message it will
|
||||||
|
* send suitable message
|
||||||
|
*/
|
||||||
|
suspend fun main(args: Array<String>) {
|
||||||
|
val botToken = args.first()
|
||||||
|
|
||||||
|
val bot = KtorRequestsExecutor(TelegramAPIUrlsKeeper(botToken))
|
||||||
|
|
||||||
|
val scope = CoroutineScope(Dispatchers.Default)
|
||||||
|
|
||||||
|
val callback: UpdateReceiver<BaseMessageUpdate> = { messageUpdate ->
|
||||||
|
val message = messageUpdate.data
|
||||||
|
val infoToSend = if (message is ContentMessage<*>) {
|
||||||
|
val content = message.content
|
||||||
|
when (content) {
|
||||||
|
is TextContent -> {
|
||||||
|
val commandSource = (content.entities.singleOrNull() ?.source as? BotCommandTextSource)
|
||||||
|
if (commandSource != null && commandSource.command == "sendFile") {
|
||||||
|
// TODO
|
||||||
|
} else {
|
||||||
|
bot.sendTextMessage(message.chat, "Send me /sendFile to get random file")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val forwardInfo = message.forwardInfo
|
||||||
|
when (forwardInfo) {
|
||||||
|
null -> "There is no forward info"
|
||||||
|
is AnonymousForwardInfo -> "Anonymous user which signed as \"${forwardInfo.senderName.codeMarkdownV2()}\""
|
||||||
|
is UserForwardInfo -> forwardInfo.from.let { user ->
|
||||||
|
"User ${user.id.chatId.toString().codeMarkdownV2()} " + "(${user.firstName} ${user.lastName}: ${user.username ?.username ?: "Without username"})".regularMarkdownV2()
|
||||||
|
}
|
||||||
|
is ForwardFromChannelInfo -> "Channel (".regularMarkdownV2() + (forwardInfo.channelChat as ChannelChat).title.codeMarkdownV2() + ")".regularMarkdownV2()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
"There is no forward info"
|
||||||
|
}
|
||||||
|
bot.sendTextMessage(message.chat, infoToSend, MarkdownV2)
|
||||||
|
}
|
||||||
|
|
||||||
|
bot.startGettingOfUpdates(
|
||||||
|
messageCallback = callback,
|
||||||
|
channelPostCallback = callback,
|
||||||
|
scope = scope
|
||||||
|
)
|
||||||
|
|
||||||
|
scope.coroutineContext[Job]!!.join()
|
||||||
|
}
|
@ -1,4 +1,3 @@
|
|||||||
kotlin_version=1.3.61
|
kotlin_version=1.3.72
|
||||||
kotlin_coroutines_version=1.3.3
|
|
||||||
|
|
||||||
telegram_bot_api_version=0.23.3
|
telegram_bot_api_version=0.27.5
|
||||||
|
@ -1 +1,2 @@
|
|||||||
include ":ForwarderBot"
|
include ":ForwarderBot"
|
||||||
|
include ":RandomFileSenderBot"
|
||||||
|
Loading…
Reference in New Issue
Block a user