diff --git a/.gitignore b/.gitignore index bd10a23..9bc00df 100644 --- a/.gitignore +++ b/.gitignore @@ -6,8 +6,9 @@ project/boot/ project/plugins/project/ .history .cache +.idea .lib/ build .gradle gradle/wrapper/gradle-wrapper.jar -last_podcast_number.txt \ No newline at end of file +last_podcast_number.txt diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..0ee1eb0 --- /dev/null +++ b/Readme.md @@ -0,0 +1,10 @@ +# Telegram bot for ["Фронтенд Юность"](https://t.me/frontend_u) chat + +## Building + ```bash + gradle build + ``` + +Authors: +- @immorte +- @likipiki \ No newline at end of file diff --git a/build.gradle b/build.gradle index cca82de..a926be8 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ repositories { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" - compile "io.github.kotlin-telegram-bot.kotlin-telegram-bot:telegram:5.0.0" + compile "io.github.kotlin-telegram-bot.kotlin-telegram-bot:telegram:6.0.6" compile "io.ktor:ktor-client-cio:1.3.2" compile "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.6" compile "io.github.microutils:kotlin-logging:1.7.9" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 96620ac..3990944 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ #Wed May 06 02:55:56 MSK 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/src/main/kotlin/Commands.kt b/src/main/kotlin/Commands.kt index 960a6d9..51dd0a1 100644 --- a/src/main/kotlin/Commands.kt +++ b/src/main/kotlin/Commands.kt @@ -1,9 +1,11 @@ import com.github.kotlintelegrambot.Bot import com.github.kotlintelegrambot.entities.InlineQuery +import com.github.kotlintelegrambot.entities.ChatId import com.github.kotlintelegrambot.entities.inlinequeryresults.InlineQueryResult import com.github.kotlintelegrambot.entities.inlinequeryresults.InputMessageContent +import com.github.kotlintelegrambot.entities.Message import services.soundcloud.AllPodcasts -import services.telegram.Message +import services.telegram.Message as ServiceMessage import services.telegram.Service fun handleInlineQuery(bot: Bot, iq: InlineQuery, podcastsTitles: AllPodcasts?) { @@ -17,7 +19,7 @@ fun handleInlineQuery(bot: Bot, iq: InlineQuery, podcastsTitles: AllPodcasts?) { id = podcast.title, title = podcast.title, inputMessageContent = InputMessageContent.Text( - Message.podcastMessage(podcast, true), + ServiceMessage.podcastMessage(podcast, true), parseMode = Service.PARSE_MODE ), description = "Найдено" @@ -26,3 +28,9 @@ fun handleInlineQuery(bot: Bot, iq: InlineQuery, podcastsTitles: AllPodcasts?) { bot.answerInlineQuery(iq.id, list) } + +fun handleMemeQuery(bot: Bot, message: Message, text: String) { + when (text) { + "карман" -> bot.sendMessage(ChatId.fromId(message.chat.id), "Порвался!", disableNotification = true); + } +} \ No newline at end of file diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt index 3b0261d..2b927a3 100644 --- a/src/main/kotlin/Main.kt +++ b/src/main/kotlin/Main.kt @@ -1,12 +1,12 @@ import com.github.kotlintelegrambot.bot import com.github.kotlintelegrambot.dispatch import com.github.kotlintelegrambot.dispatcher.inlineQuery -import com.github.kotlintelegrambot.dispatcher.message +import com.github.kotlintelegrambot.dispatcher.text +import com.github.kotlintelegrambot.logging.LogLevel import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import okhttp3.logging.HttpLoggingInterceptor import services.soundcloud.PodcastMessage import services.soundcloud.SoundCloudWatcher import services.telegram.MessageSendResponse @@ -25,10 +25,14 @@ fun main() = runBlocking { System.getenv("FU_TG_BOT_KEY") ?: throw IllegalStateException("env tg bot key FU_TG_BOT_KEY is not provided") timeout = 5 - logLevel = HttpLoggingInterceptor.Level.NONE + logLevel = LogLevel.Network.Body + dispatch { - inlineQuery { bot, iq -> - handleInlineQuery(bot, iq, soundCloudWatcher.allPodcastsTitles) + inlineQuery { + handleInlineQuery(bot, inlineQuery, soundCloudWatcher.allPodcastsTitles) + } + text { -> + handleMemeQuery(bot, message, text); } } } diff --git a/src/main/kotlin/services/telegram/Message.kt b/src/main/kotlin/services/telegram/Message.kt index 55fdfc3..bb7e11a 100644 --- a/src/main/kotlin/services/telegram/Message.kt +++ b/src/main/kotlin/services/telegram/Message.kt @@ -1,6 +1,6 @@ package services.telegram -import com.github.kotlintelegrambot.entities.InlineKeyboardButton +import com.github.kotlintelegrambot.entities.keyboard.InlineKeyboardButton import com.github.kotlintelegrambot.entities.InlineKeyboardMarkup import services.soundcloud.Podcast @@ -25,7 +25,9 @@ ${if (withLink) "$listenPodcastButton" else ""} } fun buildListenButton(URL: String) = - InlineKeyboardMarkup.createSingleButton(InlineKeyboardButton(text = listenPodcastButton, url = URL)) + InlineKeyboardMarkup.createSingleButton( + InlineKeyboardButton.Url(text = listenPodcastButton, url = URL) + ) private fun prettifyDescription(description: String, URL: String): String { val split = description.split("\n\n")