1
1
package dev.inmo.tgbotapi.types
2
2
3
3
import dev.inmo.tgbotapi.utils.BuiltinMimeTypes
4
- import kotlinx.serialization.KSerializer
5
- import kotlinx.serialization.Serializable
6
- import kotlinx.serialization.builtins.serializer
7
- import kotlinx.serialization.descriptors.SerialDescriptor
8
- import kotlinx.serialization.encoding.Decoder
9
- import kotlinx.serialization.encoding.Encoder
10
- import kotlin.jvm.JvmInline
11
4
12
5
typealias ForwardSignature = String
13
6
typealias ForwardSenderName = String
@@ -22,20 +15,6 @@ typealias GooglePlaceId = String
22
15
typealias GooglePlaceType = String
23
16
typealias MembersLimit = Int
24
17
25
- @Serializable
26
- @JvmInline
27
- value class CustomEmojiId (
28
- val string : String
29
- ) {
30
- val appLink
31
- get() = " ${internalTgAppLinksBeginning} emoji?id=$this "
32
- }
33
- @Serializable
34
- @JvmInline
35
- value class StoryId (
36
- val long : Long
37
- )
38
-
39
18
typealias Seconds = Int
40
19
typealias MilliSeconds = Long
41
20
typealias LongSeconds = Long
@@ -44,70 +23,6 @@ typealias UnixTimeStamp = LongSeconds
44
23
typealias Meters = Float
45
24
typealias Degrees = Int
46
25
47
- @Serializable(StickerType .Serializer ::class )
48
- sealed interface StickerType {
49
- val type: String
50
-
51
- @Serializable
52
- object Regular : StickerType { override val type: String = " regular" }
53
- @Serializable
54
- object Mask : StickerType { override val type: String = " mask" }
55
- @Serializable
56
- object CustomEmoji : StickerType { override val type: String = " custom_emoji" }
57
- @Serializable
58
- data class Unknown (override val type : String = " custom_emoji" ) : StickerType
59
-
60
- object Serializer : KSerializer<StickerType> {
61
- override val descriptor: SerialDescriptor = String .serializer().descriptor
62
-
63
- override fun deserialize (decoder : Decoder ): StickerType {
64
- return when (val type = decoder.decodeString()) {
65
- Regular .type -> Regular
66
- Mask .type -> Mask
67
- CustomEmoji .type -> CustomEmoji
68
- else -> Unknown (type)
69
- }
70
- }
71
-
72
- override fun serialize (encoder : Encoder , value : StickerType ) {
73
- encoder.encodeString(value.type)
74
- }
75
-
76
- }
77
- }
78
-
79
- @Serializable(StickerFormat .Serializer ::class )
80
- sealed interface StickerFormat {
81
- val type: String
82
-
83
- @Serializable
84
- object Static : StickerFormat { override val type: String = " static" }
85
- @Serializable
86
- object Animated : StickerFormat { override val type: String = " animated" }
87
- @Serializable
88
- object Video : StickerFormat { override val type: String = " video" }
89
- @Serializable
90
- data class Unknown (override val type : String = " custom_emoji" ) : StickerFormat
91
-
92
- object Serializer : KSerializer<StickerFormat> {
93
- override val descriptor: SerialDescriptor = String .serializer().descriptor
94
-
95
- override fun deserialize (decoder : Decoder ): StickerFormat {
96
- return when (val type = decoder.decodeString()) {
97
- Static .type -> Static
98
- Animated .type -> Animated
99
- Video .type -> Video
100
- else -> Unknown (type)
101
- }
102
- }
103
-
104
- override fun serialize (encoder : Encoder , value : StickerFormat ) {
105
- encoder.encodeString(value.type)
106
- }
107
-
108
- }
109
- }
110
-
111
26
val usernameRegex = Regex (" @[\\ w\\ d_]+" )
112
27
113
28
val degreesLimit = 1 .. 360
0 commit comments