Skip to content

Commit 5de82c4

Browse files
committed
WIP
1 parent ed0369a commit 5de82c4

File tree

33 files changed

+120
-81
lines changed

33 files changed

+120
-81
lines changed

core/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
}
44

55
dependencies {
6-
api(libs.tgbotapi.core)
6+
api(libs.tgbotapi)
77
implementation(libs.log4j.api)
88

99
testImplementation(libs.junit.jupiter.api)

currencies/build.gradle.kts

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ dependencies {
77
implementation(platform(libs.ktor.bom))
88

99
api(project.projects.core)
10-
api(libs.tgbotapi.core)
11-
implementation(libs.tgbotapi.extensions.api)
10+
api(libs.tgbotapi)
1211
implementation(libs.log4j.api)
1312
implementation(libs.ktor.client.apache)
1413
implementation(libs.ktor.client.serialization)

currencies/src/main/kotlin/by/jprof/telegram/bot/currencies/CurrenciesUpdateProcessor.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import by.jprof.telegram.bot.currencies.parser.MonetaryAmountParsingPipeline
55
import by.jprof.telegram.bot.currencies.rates.ExchangeRateClient
66
import dev.inmo.tgbotapi.bot.RequestsExecutor
77
import dev.inmo.tgbotapi.extensions.api.send.reply
8-
import dev.inmo.tgbotapi.types.ParseMode.MarkdownV2ParseMode
8+
import dev.inmo.tgbotapi.types.message.MarkdownV2ParseMode
99
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
1010
import dev.inmo.tgbotapi.types.message.content.TextContent
1111
import dev.inmo.tgbotapi.types.update.MessageUpdate

currencies/src/main/kotlin/by/jprof/telegram/bot/currencies/rates/ExchangeRateClient.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package by.jprof.telegram.bot.currencies.rates
22

3-
import by.jprof.telegram.bot.currencies.CurrenciesUpdateProcessor
43
import io.ktor.client.HttpClient
54
import io.ktor.client.engine.apache.Apache
65
import io.ktor.client.features.json.JsonFeature
76
import io.ktor.client.features.json.serializer.KotlinxSerializer
87
import io.ktor.client.request.get
98
import io.ktor.client.request.parameter
109
import io.ktor.client.request.url
10+
import io.ktor.client.plugins.contentnegotiation.*
11+
import io.ktor.serialization.kotlinx.json.*
1112
import kotlinx.serialization.json.Json
1213
import org.apache.logging.log4j.LogManager
1314
import java.io.Closeable
@@ -18,6 +19,9 @@ class ExchangeRateClient : Closeable {
1819
}
1920

2021
private val client = HttpClient(Apache) {
22+
install(ContentNegotiation){
23+
24+
}
2125
install(JsonFeature) {
2226
serializer = KotlinxSerializer(
2327
Json {

dialogs/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ plugins {
44
}
55

66
dependencies {
7-
api(libs.tgbotapi.core)
7+
api(libs.tgbotapi)
88
implementation(libs.kotlinx.serialization.core)
99
}

dialogs/src/main/kotlin/by/jprof/telegram/bot/dialogs/model/quizoji/WaitingForOptions.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package by.jprof.telegram.bot.dialogs.model.quizoji
22

33
import by.jprof.telegram.bot.dialogs.model.DialogState
4-
import dev.inmo.tgbotapi.types.message.content.abstracts.MessageContent
4+
import dev.inmo.tgbotapi.types.message.content.MessageContent
55
import kotlinx.serialization.SerialName
66
import kotlinx.serialization.Serializable
77

eval/build.gradle.kts

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ plugins {
44

55
dependencies {
66
api(project.projects.core)
7-
api(libs.tgbotapi.core)
7+
api(libs.tgbotapi)
88
implementation(project.projects.votes.tgbotapiExtensions)
9-
implementation(libs.tgbotapi.extensions.api)
10-
implementation(libs.tgbotapi.extensions.utils)
119
implementation(libs.log4j.api)
1210

1311
testImplementation(libs.junit.jupiter.api)

gradle/libs.versions.toml

+17-20
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
[versions]
22
coroutines = "1.6.4"
33

4-
aws-lambda-java-events = "3.10.0"
4+
aws-lambda-java-events = "3.11.0"
55
aws-lambda-java-core = "1.2.1"
6-
aws-lambda-java-log4j2 = "1.2.0"
7-
awssdk = "2.17.56"
6+
aws-lambda-java-log4j2 = "1.5.1"
7+
awssdk = "2.18.8"
88

9-
koin = "3.1.2"
9+
koin = "3.2.2"
1010

11-
ktor = "1.6.8"
11+
ktor = "2.1.3"
1212

13-
graphql-kotlin = "5.5.0"
13+
graphql-kotlin = "6.2.5"
1414

15-
kotlinx-serialization = "1.3.0"
16-
jackson = "2.13.0"
17-
kaml = "0.43.0"
15+
kotlinx-serialization = "1.4.1"
16+
jackson = "2.13.4"
17+
kaml = "0.49.0"
1818

19-
tgbotapi = "0.35.9"
19+
tgbotapi = "3.3.0"
2020

21-
jsoup = "1.14.3"
21+
jsoup = "1.15.3"
2222

2323
skija = "0.93.1"
2424

25-
google-api-services-youtube = "v3-rev20210915-1.32.1"
25+
google-api-services-youtube = "v3-rev20220926-2.0.0"
2626

27-
log4j = "2.16.0"
27+
log4j = "2.19.0"
2828

29-
junit5 = "5.8.1"
30-
aws-junit5 = "6.0.1"
31-
mockk = "1.12.0"
29+
junit5 = "5.9.1"
30+
aws-junit5 = "7.1.2"
31+
mockk = "1.13.2"
3232

3333
[libraries]
3434
kotlinx-coroutines-jdk8 = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-jdk8", version.ref = "coroutines" }
@@ -53,9 +53,7 @@ kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serializa
5353
jackson-databind = { group = "com.fasterxml.jackson.core", name = "jackson-databind", version.ref = "jackson" }
5454
kaml = { group = "com.charleskorn.kaml", name = "kaml", version.ref = "kaml" }
5555

56-
tgbotapi-core = { group = "dev.inmo", name = "tgbotapi.core", version.ref = "tgbotapi" }
57-
tgbotapi-extensions-api = { group = "dev.inmo", name = "tgbotapi.extensions.api", version.ref = "tgbotapi" }
58-
tgbotapi-extensions-utils = { group = "dev.inmo", name = "tgbotapi.extensions.utils", version.ref = "tgbotapi" }
56+
tgbotapi = { group = "dev.inmo", name = "tgbotapi", version.ref = "tgbotapi" }
5957

6058
jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" }
6159

@@ -77,6 +75,5 @@ aws-junit5-dynamo-v2 = { group = "me.madhead.aws-junit5", name = "dynamo-v2", ve
7775
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
7876

7977
[bundles]
80-
tgbotapi = ["tgbotapi-core", "tgbotapi-extensions-api"]
8178
log4j = ["log4j-core", "log4j-slf4j-impl"]
8279
aws-lambda = ["aws-lambda-java-events", "aws-lambda-java-core", "aws-lambda-java-log4j2", "jackson-databind"]

herald/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ dependencies {
1313

1414
implementation(libs.kotlinx.serialization.core)
1515
implementation(libs.kaml)
16-
implementation(libs.tgbotapi.extensions.api)
1716
implementation(project.projects.votes.dynamodb)
1817
implementation(project.projects.votes.tgbotapiExtensions)
1918
implementation(project.projects.votes.dynamodb)

jep/build.gradle.kts

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ dependencies {
66
api(project.projects.core)
77
api(project.projects.votes)
88
api(project.projects.votes.votingProcessor)
9-
api(libs.tgbotapi.core)
9+
api(libs.tgbotapi)
1010
implementation(project.projects.votes.tgbotapiExtensions)
11-
implementation(libs.tgbotapi.extensions.api)
1211
implementation(libs.log4j.api)
1312
implementation(libs.jsoup)
1413

kotlin/build.gradle.kts

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@ plugins {
44

55
dependencies {
66
api(project.projects.core)
7-
api(libs.tgbotapi.core)
7+
api(libs.tgbotapi)
88
implementation(libs.log4j.api)
9-
implementation(libs.tgbotapi.extensions.api)
10-
implementation(libs.tgbotapi.extensions.utils)
11-
// implementation(libs.skija.windows)
129
implementation(libs.skija.linux)
1310

1411
testImplementation(libs.junit.jupiter.api)

kotlin/src/main/kotlin/by/jprof/telegram/bot/kotlin/KotlinMentionsUpdateProcessor.kt

+7-6
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@ import dev.inmo.tgbotapi.extensions.api.send.media.sendPhoto
99
import dev.inmo.tgbotapi.extensions.utils.asCommonMessage
1010
import dev.inmo.tgbotapi.extensions.utils.asMessageUpdate
1111
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
12-
import dev.inmo.tgbotapi.types.chat.abstracts.Chat
12+
import dev.inmo.tgbotapi.types.chat.Chat
1313
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
1414
import dev.inmo.tgbotapi.types.message.abstracts.FromUserMessage
1515
import dev.inmo.tgbotapi.types.message.content.TextContent
1616
import dev.inmo.tgbotapi.types.update.abstracts.Update
1717
import dev.inmo.tgbotapi.utils.PreviewFeature
18-
import dev.inmo.tgbotapi.utils.asStorageFile
18+
import io.ktor.utils.io.streams.asInput
19+
import java.io.InputStream
20+
import java.time.Duration
21+
import java.time.Instant
1922
import org.apache.logging.log4j.LogManager
2023
import org.jetbrains.skija.Data
2124
import org.jetbrains.skija.EncodedImageFormat
@@ -25,9 +28,6 @@ import org.jetbrains.skija.Paint
2528
import org.jetbrains.skija.Surface
2629
import org.jetbrains.skija.TextLine
2730
import org.jetbrains.skija.Typeface
28-
import java.io.InputStream
29-
import java.time.Duration
30-
import java.time.Instant
3131

3232
@PreviewFeature
3333
class KotlinMentionsUpdateProcessor(
@@ -122,7 +122,8 @@ class KotlinMentionsUpdateProcessor(
122122
bot.sendPhoto(
123123
chat = chat,
124124
fileId = MultipartFile(
125-
file = data.bytes.asStorageFile("darryl.jpeg")
125+
filename = "darryl.jpeg",
126+
inputSource = { data.bytes.inputStream().asInput() }
126127
),
127128
replyToMessageId = message.messageId,
128129
)

launchers/lambda/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dependencies {
77
implementation(libs.bundles.aws.lambda)
88
implementation(libs.secretsmanager)
99
implementation(libs.koin.core)
10-
implementation(libs.bundles.tgbotapi)
10+
implementation(libs.tgbotapi)
1111
implementation(libs.bundles.log4j)
1212
implementation(project.projects.core)
1313
implementation(project.projects.votes.dynamodb)

launchers/lambda/src/main/kotlin/by/jprof/telegram/bot/launchers/lambda/config/pipeline.kt

+1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ val pipelineModule = module {
186186
PinsPreCheckoutQueryUpdateProcessor(
187187
bot = get(),
188188
json = get(),
189+
moniesDAO = get(),
189190
)
190191
}
191192

leetcode/build.gradle.kts

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ plugins {
55

66
dependencies {
77
api(project.projects.core)
8-
api(libs.tgbotapi.core)
9-
implementation(libs.tgbotapi.extensions.api)
8+
api(libs.tgbotapi)
109
implementation(libs.log4j.api)
1110
implementation(libs.graphql.kotlin.ktor.client)
1211
implementation(libs.kotlinx.serialization.core)

leetcode/src/main/kotlin/by/jprof/telegram/bot/leetcode/LeetCodeUpdateProcessor.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package by.jprof.telegram.bot.leetcode
33
import by.jprof.telegram.bot.core.UpdateProcessor
44
import dev.inmo.tgbotapi.bot.RequestsExecutor
55
import dev.inmo.tgbotapi.extensions.api.send.reply
6-
import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextLinkTextSource
7-
import dev.inmo.tgbotapi.types.MessageEntity.textsources.URLTextSource
8-
import dev.inmo.tgbotapi.types.ParseMode.MarkdownV2ParseMode
6+
import dev.inmo.tgbotapi.types.message.MarkdownV2ParseMode
97
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
108
import dev.inmo.tgbotapi.types.message.abstracts.Message
119
import dev.inmo.tgbotapi.types.message.content.TextContent
10+
import dev.inmo.tgbotapi.types.message.textsources.TextLinkTextSource
11+
import dev.inmo.tgbotapi.types.message.textsources.URLTextSource
1212
import dev.inmo.tgbotapi.types.update.MessageUpdate
1313
import dev.inmo.tgbotapi.types.update.abstracts.Update
1414
import dev.inmo.tgbotapi.utils.extensions.escapeMarkdownV2Common

pins/build.gradle.kts

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ plugins {
44

55
dependencies {
66
api(project.projects.core)
7-
api(libs.tgbotapi.core)
7+
api(libs.tgbotapi)
88
api(project.projects.monies)
99
implementation(project.projects.shop.provider)
1010
implementation(project.projects.shop.payload)
1111
implementation(project.projects.pins.dto)
12-
implementation(libs.tgbotapi.extensions.api)
13-
implementation(libs.tgbotapi.extensions.utils)
1412
implementation(libs.log4j.api)
1513

1614
testImplementation(libs.junit.jupiter.api)

pins/unpin/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ dependencies {
77
api(project.projects.pins.dto)
88
implementation(libs.bundles.aws.lambda)
99
implementation(libs.koin.core)
10-
implementation(libs.bundles.tgbotapi)
1110
implementation(libs.bundles.log4j)
1211
implementation(project.projects.pins.dynamodb)
1312
}

quizoji/build.gradle.kts

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ plugins {
44

55
dependencies {
66
api(project.projects.core)
7-
api(libs.tgbotapi.core)
7+
api(libs.tgbotapi)
88
implementation(project.projects.dialogs)
99
implementation(project.projects.votes)
1010
implementation(project.projects.votes.tgbotapiExtensions)
1111
implementation(project.projects.votes.votingProcessor)
1212
implementation(libs.log4j.api)
13-
implementation(libs.tgbotapi.extensions.api)
14-
implementation(libs.tgbotapi.extensions.utils)
1513

1614
testImplementation(libs.junit.jupiter.api)
1715
testImplementation(libs.junit.jupiter.params)

shop/build.gradle.kts

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ plugins {
44

55
dependencies {
66
api(project.projects.core)
7-
api(libs.tgbotapi.core)
7+
api(libs.tgbotapi)
88
implementation(project.projects.shop.provider)
99
implementation(project.projects.shop.payload)
10-
implementation(libs.tgbotapi.extensions.api)
11-
implementation(libs.tgbotapi.extensions.utils)
10+
implementation(project.projects.monies)
1211
implementation(libs.log4j.api)
1312

1413
testImplementation(libs.junit.jupiter.api)

shop/src/main/kotlin/by/jprof/telegram/bot/shop/PinsPreCheckoutQueryUpdateProcessor.kt

+13-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package by.jprof.telegram.bot.shop
22

33
import by.jprof.telegram.bot.core.UpdateProcessor
4+
import by.jprof.telegram.bot.monies.dao.MoniesDAO
5+
import by.jprof.telegram.bot.monies.model.Monies
46
import by.jprof.telegram.bot.shop.payload.PinsPayload
7+
import by.jprof.telegram.bot.shop.utils.tooManyPins
58
import dev.inmo.tgbotapi.bot.RequestsExecutor
69
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryError
10+
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
711
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
812
import dev.inmo.tgbotapi.types.update.abstracts.Update
913
import dev.inmo.tgbotapi.utils.PreviewFeature
@@ -15,6 +19,7 @@ import org.apache.logging.log4j.LogManager
1519
class PinsPreCheckoutQueryUpdateProcessor(
1620
private val bot: RequestsExecutor,
1721
private val json: Json,
22+
private val moniesDAO: MoniesDAO,
1823
) : UpdateProcessor {
1924
companion object {
2025
private val logger = LogManager.getLogger(PinsPreCheckoutQueryUpdateProcessor::class.java)!!
@@ -33,6 +38,13 @@ class PinsPreCheckoutQueryUpdateProcessor(
3338

3439
logger.debug(payload)
3540

36-
bot.answerPreCheckoutQueryError(preCheckoutQuery, "Not implemented yet")
41+
val monies = moniesDAO.get(preCheckoutQuery.user.id.chatId, payload.chat) ?: Monies(preCheckoutQuery.user.id.chatId, payload.chat)
42+
val pins = monies.pins ?: 0
43+
44+
if (pins > 9999) {
45+
bot.answerPreCheckoutQueryError(preCheckoutQuery, tooManyPins())
46+
}
47+
48+
bot.answerPreCheckoutQueryOk(preCheckoutQuery)
3749
}
3850
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package by.jprof.telegram.bot.shop
2+
3+
import by.jprof.telegram.bot.core.UpdateProcessor
4+
import by.jprof.telegram.bot.shop.payload.SupportPayload
5+
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
6+
import dev.inmo.tgbotapi.extensions.utils.asBaseMessageUpdate
7+
import dev.inmo.tgbotapi.extensions.utils.asChatEventMessage
8+
import dev.inmo.tgbotapi.extensions.utils.asMessageUpdate
9+
import dev.inmo.tgbotapi.extensions.utils.asNewChatMembers
10+
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
11+
import dev.inmo.tgbotapi.extensions.utils.asVoiceChatParticipantsInvited
12+
import dev.inmo.tgbotapi.types.update.abstracts.Update
13+
import dev.inmo.tgbotapi.utils.PreviewFeature
14+
import kotlinx.serialization.decodeFromString
15+
import org.apache.logging.log4j.LogManager
16+
17+
@OptIn(PreviewFeature::class)
18+
class SuccessfulPaymentUpdateProcessor() : UpdateProcessor {
19+
override suspend fun process(update: Update) {
20+
val a = update.asMessageUpdate().data.asChatEventMessage().chatEvent.asSuccessfulPaymentEvent
21+
val preCheckoutQuery = update.asPreCheckoutQueryUpdate()?.data ?: return
22+
23+
logger.debug(preCheckoutQuery)
24+
25+
val payload = try {
26+
json.decodeFromString<SupportPayload>(preCheckoutQuery.invoicePayload)
27+
} catch (_: Exception) {
28+
return
29+
}
30+
31+
logger.debug(payload)
32+
33+
bot.answerPreCheckoutQueryOk(preCheckoutQuery)
34+
}
35+
}

0 commit comments

Comments
 (0)