Skip to content

Commit

Permalink
add giveaways bot
Browse files Browse the repository at this point in the history
  • Loading branch information
InsanusMokrassar committed Sep 8, 2024
1 parent 21ec50c commit ed29220
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 0 deletions.
9 changes: 9 additions & 0 deletions GiveawaysBot/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# CustomBot

Printing giveaways

## Launch

```bash
../gradlew run --args="BOT_TOKEN"
```
21 changes: 21 additions & 0 deletions GiveawaysBot/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
buildscript {
repositories {
mavenCentral()
}

dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

apply plugin: 'kotlin'
apply plugin: 'application'

mainClassName="GiveawaysBotKt"


dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

implementation "dev.inmo:tgbotapi:$telegram_bot_api_version"
}
55 changes: 55 additions & 0 deletions GiveawaysBot/src/main/kotlin/GiveawaysBot.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import dev.inmo.kslog.common.KSLog
import dev.inmo.kslog.common.LogLevel
import dev.inmo.kslog.common.defaultMessageFormatter
import dev.inmo.kslog.common.setDefaultKSLog
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
import dev.inmo.tgbotapi.extensions.api.bot.getMe
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onGiveawayCompleted
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onGiveawayContent
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onGiveawayCreated
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onGiveawayWinners
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers

/**
* This place can be the playground for your code.
*/
suspend fun main(vararg args: String) {
val botToken = args.first()

val isDebug = args.any { it == "debug" }
val isTestServer = args.any { it == "testServer" }

if (isDebug) {
setDefaultKSLog(
KSLog { level: LogLevel, tag: String?, message: Any, throwable: Throwable? ->
println(defaultMessageFormatter(level, tag, message, throwable))
}
)
}

telegramBotWithBehaviourAndLongPolling(botToken, CoroutineScope(Dispatchers.IO), testServer = isTestServer) {
// start here!!
val me = getMe()
println(me)

onGiveawayCreated {
println(it)
}

onGiveawayCompleted {
println(it)
}

onGiveawayWinners {
println(it)
}

onGiveawayContent { }

allUpdatesFlow.subscribeSafelyWithoutExceptions(this) {
println(it)
}
}.second.join()
}
2 changes: 2 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ include ":BusinessConnectionsBot"

include ":StarTransactionsBot"

include ":GiveawaysBot"

include ":CustomBot"

include ":MemberUpdatedWatcherBot"

0 comments on commit ed29220

Please sign in to comment.