1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-11-16 12:00:18 +00:00

Compare commits

...

56 Commits

Author SHA1 Message Date
8f4fa1e447 actualization witn WithOptionalLanguageCode 2021-08-05 23:50:35 +06:00
25cf660791 Merge branch '0.35.3' into klassindex 2021-08-05 23:39:23 +06:00
bf9268a30f update klassindex code 2021-06-23 22:18:06 +06:00
ccf89830bd Merge branch 'master' into klassindex 2021-06-23 22:17:55 +06:00
3932dc622b update for FromUserMessage : Message 2021-04-16 21:57:17 +06:00
aed93a4c91 Merge branch '0.33.4' into klassindex 2021-04-16 18:08:21 +06:00
b7f8e0217f update 2021-03-11 20:52:24 +06:00
7680845578 Merge branch '0.32.10' into klassindex 2021-03-11 20:42:37 +06:00
3d8e509bde update build.gradle 2021-03-11 20:42:13 +06:00
c027244fbd include ChatMemberUpdated functionality 2021-03-11 20:42:13 +06:00
2be342a769 remove BotInviteChatLink 2021-03-11 20:42:13 +06:00
7414a9b41b chatmember serializers are public 2021-03-11 20:42:13 +06:00
8afa8bb927 add representations of all chat invite link functionality 2021-03-11 20:42:13 +06:00
27fa081163 add isOff extension for MessageAutoDeleteTimerChanged 2021-03-11 20:42:13 +06:00
a19b3d26df fixes in events builder behaviours 2021-03-11 20:42:13 +06:00
f93d9938de shortcuts seconds24Hours and seconds7Days are consts for now 2021-03-11 20:42:13 +06:00
2531f3779e fixes for MessageAutoDeleteTimerChanged 2021-03-11 20:42:13 +06:00
3c8e5e61f2 now MessageAutoDeleteTimerChanged implementing ChannelEvent and GroupEvent 2021-03-11 20:42:13 +06:00
b882ae3ac3 now MessageAutoDeleteTimerChanged implementing ChannelEvent and GroupEvent 2021-03-11 20:42:13 +06:00
00aed5779c VoiceChatParticipantsInvited type now is data class 2021-03-11 20:42:13 +06:00
4f5319dd51 add behaviour builder events updates 2021-03-11 20:42:13 +06:00
b795a6d0a9 remove regular build 2021-03-11 20:42:13 +06:00
cb688a7831 include message_auto_delete_timer_change 2021-03-11 20:42:13 +06:00
c66d1e8665 include revokeMessages in kickChatMember 2021-03-11 20:42:13 +06:00
3c5abac669 include canManageChat 2021-03-11 20:42:13 +06:00
80200d78ef voice chats functionality included 2021-03-11 20:42:13 +06:00
8cd3f91e9e fix of content waiters and expecters 2021-03-11 20:42:13 +06:00
2065faf157 update micro_utils 2021-03-11 20:42:13 +06:00
62bc788c52 start 0.32.10 2021-03-11 20:42:13 +06:00
6d0686135c Update CHANGELOG.md 2021-03-11 20:42:13 +06:00
2a77912d44 Update gradle.properties 2021-03-11 20:42:13 +06:00
21fa971f8a Update mpp_publish_template.kpsb 2021-03-11 20:42:13 +06:00
e5be5d1200 Update publish.gradle 2021-03-11 20:42:13 +06:00
55a2cee205 Update mpp_publish_template.kpsb 2021-03-11 20:42:13 +06:00
7920d3d9d0 update publish scripts to avoid useless repos 2021-03-11 20:42:13 +06:00
b34ab63c77 add workflow for packages publication 2021-03-11 20:42:13 +06:00
7995ec434c update microutils version 2021-03-11 20:42:13 +06:00
6ddf1e4d3f update dependencies 2021-03-11 20:42:13 +06:00
468e883910 start 0.32.9 2021-03-11 20:42:13 +06:00
0660aa0c33 Update gradle-wrapper.properties 2021-03-11 20:42:13 +06:00
c6f33983ef update micro_utils 2021-03-11 20:42:13 +06:00
90a4b180e3 update serialization 2021-03-11 20:42:13 +06:00
a58d6a96cb start 0.32.8 2021-03-11 20:42:13 +06:00
52bc5a1409 RestrictionsChatPermissions 2021-03-11 20:42:13 +06:00
941705fb8b DiceAnimationType class casts 2021-03-11 20:42:13 +06:00
f13b7c217a klassindex for dice animation type 2021-02-17 22:27:20 +06:00
39911466a2 Merge branch '0.32.7' into klassindex 2021-02-17 22:13:50 +06:00
82e9b3272b update temporal 2021-01-28 22:19:56 +06:00
7cc97c12e6 Merge branch '0.32.0' into klassindex 2021-01-28 22:07:18 +06:00
865bee0068 update for 0.32.0 2021-01-23 21:05:51 +06:00
d3ca4774da Merge branch '0.32.0' into klassindex 2021-01-23 20:53:36 +06:00
8fa5b09de9 updates 2021-01-06 18:59:26 +06:00
0c1c7d1aa7 Merge branch 'master' into klassindex 2021-01-06 18:47:04 +06:00
0e9f1d2202 add preview feature and remove *Impl classes 2021-01-05 23:00:34 +06:00
82d38c5cb0 update algorithm 2021-01-05 22:24:59 +06:00
ce1d15ebb2 Revert "Revert "add klassindex""
This reverts commit 28a9bbd310.
2021-01-05 22:09:33 +06:00
4 changed files with 122 additions and 16 deletions

View File

@@ -18,15 +18,17 @@ plugins {
id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version" apply false
}
// temporal crutch until legacy tests will be stabled or legacy target will be removed
allprojects {
repositories {
maven { url 'https://jitpack.io' }
if (it != rootProject.findProject("docs")) {
tasks.whenTaskAdded { task ->
if(task.name == "jsLegacyBrowserTest" || task.name == "jsLegacyNodeTest") {
if (task.name == "jsLegacyBrowserTest" || task.name == "jsLegacyNodeTest") {
task.enabled = false
}
}
}
}
}
private String getCurrentVersionChangelog() {

View File

@@ -77,17 +77,17 @@ Object callback = {
}
}
named("commonMain") {
sourceRoots.setFrom(findSourcesWithName("commonMain"))
}
named("jsMain") {
sourceRoots.setFrom(findSourcesWithName("jsMain"))
}
named("jvmMain") {
sourceRoots.setFrom(findSourcesWithName("jvmMain"))
}
// named("commonMain") {
// sourceRoots.setFrom(findSourcesWithName("commonMain"))
// }
//
// named("jsMain") {
// sourceRoots.setFrom(findSourcesWithName("jsMain"))
// }
//
// named("jvmMain") {
// sourceRoots.setFrom(findSourcesWithName("jvmMain"))
// }
}
}

View File

@@ -3,6 +3,7 @@ buildscript {
mavenLocal()
jcenter()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
@@ -14,6 +15,7 @@ buildscript {
plugins {
id "org.jetbrains.kotlin.multiplatform"
id "org.jetbrains.kotlin.plugin.serialization"
id "org.jetbrains.kotlin.kapt"
}
project.version = "$library_version"
@@ -54,6 +56,7 @@ kotlin {
api "dev.inmo:micro_utils.language_codes:$micro_utils_version"
api "io.ktor:ktor-client-core:$ktor_version"
api "com.github.matfax.klassindex:library:4.+"
}
}
commonTest {
@@ -95,3 +98,35 @@ kotlin {
}
}
}
dependencies {
kapt "com.github.matfax.klassindex:processor:4.+"
}
kapt {
useBuildCache = false
arguments {
arg(
"com.github.matfax.klassindex.IndexSubclasses",
// "dev.inmo.tgbotapi.types.update.abstracts.Update",
// "dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ChatEvent",
// "dev.inmo.tgbotapi.types.passport.decrypted.abstracts.SecureValue",
// "dev.inmo.tgbotapi.types.message.content.abstracts.ResendableContent",
"dev.inmo.tgbotapi.CommonAbstracts.WithOptionalLanguageCode",
// "dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.EncryptedPassportElement",
// "dev.inmo.tgbotapi.types.passport.PassportElementError",
// "dev.inmo.tgbotapi.types.CallbackQuery.CallbackQuery",
// "dev.inmo.tgbotapi.types.buttons.KeyboardMarkup",
// "dev.inmo.tgbotapi.types.actions.BotAction",
// "dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.InlineKeyboardButton",
// "dev.inmo.tgbotapi.types.ChatMember.abstracts.ChatMember",
// "dev.inmo.tgbotapi.types.files.abstracts.TelegramMediaFile",
// "dev.inmo.tgbotapi.types.InlineQueries.abstracts.InlineQuery",
// "dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.InlineQueryResult",
// "dev.inmo.tgbotapi.types.InlineQueries.abstracts.InputMessageContent",
// "dev.inmo.tgbotapi.types.InputMedia.InputMedia",
// "dev.inmo.tgbotapi.types.polls.Poll",
// "dev.inmo.tgbotapi.types.update.abstracts.Update"
)
}
}

View File

@@ -0,0 +1,69 @@
import com.github.matfax.klassindex.KlassIndex
import dev.inmo.tgbotapi.types.CallbackQuery.CallbackQuery
import dev.inmo.tgbotapi.types.ChatMember.abstracts.ChatMember
import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.InlineQueryResult
import dev.inmo.tgbotapi.types.InlineQueries.abstracts.InlineQuery
import dev.inmo.tgbotapi.types.InlineQueries.abstracts.InputMessageContent
import dev.inmo.tgbotapi.types.InputMedia.InputMedia
import dev.inmo.tgbotapi.types.actions.BotAction
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.InlineKeyboardButton
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
import dev.inmo.tgbotapi.types.chat.abstracts.Chat
import dev.inmo.tgbotapi.types.dice.DiceAnimationType
import dev.inmo.tgbotapi.types.files.abstracts.TelegramMediaFile
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ChatEvent
import dev.inmo.tgbotapi.types.message.abstracts.Message
import dev.inmo.tgbotapi.types.message.content.abstracts.ResendableContent
import dev.inmo.tgbotapi.types.passport.PassportElementError
import dev.inmo.tgbotapi.types.passport.decrypted.abstracts.SecureValue
import dev.inmo.tgbotapi.types.polls.Poll
import dev.inmo.tgbotapi.types.update.abstracts.Update
import dev.inmo.tgbotapi.utils.PreviewFeature
import kotlin.reflect.KClass
fun printlnInstanceSubclassesFuns(kclass: KClass<*>) {
KlassIndex.getSubclasses(Message::class).forEach { subclass ->
println("inline fun ${kclass.simpleName}.as${subclass.simpleName}(): ${subclass.simpleName}? = this as? ${subclass.simpleName}")
}
}
fun printlnInstancesSubclassesFuns(kclass: KClass<*>, subclasses: Set<KClass<*>>): List<Pair<String, String>> {
return subclasses.map { subclass ->
val typeUpperBounds = subclass.typeParameters.map { it.upperBounds.first() }
val imports = "import ${subclass.qualifiedName}" + if (typeUpperBounds.isEmpty()) "" else typeUpperBounds.joinToString("\nimport ", "\nimport ")
val subtype = "${subclass.simpleName}${if (typeUpperBounds.isEmpty()) "" else "<${typeUpperBounds.joinToString() { (it.classifier as KClass<*>).simpleName!! }}>"}"
val code = "@PreviewFeature\ninline fun ${kclass.simpleName}.as${subclass.simpleName}(): $subtype? = this as? $subtype\n" +
"@PreviewFeature\ninline fun ${kclass.simpleName}.require${subclass.simpleName}(): $subtype = this as $subtype\n" +
"@PreviewFeature\ninline fun <T> ${kclass.simpleName}.when${subclass.simpleName}(block: (${subclass.simpleName}) -> T): $subtype = as${subclass.simpleName}() ?.let(block)"
imports to code
}
}
val result = mutableMapOf<KClass<*>, Set<KClass<*>>>()
fun main() {
result[Message::class] = KlassIndex.getSubclasses(dev.inmo.tgbotapi.CommonAbstracts.WithOptionalLanguageCode::class).toSet()
println("import dev.inmo.tgbotapi.utils.PreviewFeature")
val importsToFuns = result.keys.flatMap {
println("import ${it.qualifiedName}")
printlnInstancesSubclassesFuns(it, result.getValue(it))
}
importsToFuns.forEach { println(it.first) }
println()
importsToFuns.forEach { println(it.second) }
// printlnInstanceSubclassesFuns(Message::class)
// printlnInstanceSubclassesFuns(Chat::class)
// printlnInstanceSubclassesFuns(CallbackQuery::class)
// printlnInstanceSubclassesFuns(KeyboardMarkup::class)
// printlnInstanceSubclassesFuns(BotAction::class)
// printlnInstanceSubclassesFuns(InlineKeyboardButton::class)
// printlnInstanceSubclassesFuns(ChatMember::class)
// printlnInstanceSubclassesFuns(TelegramMediaFile::class)
// printlnInstanceSubclassesFuns(InlineQuery::class)
// printlnInstanceSubclassesFuns(InlineQueryResult::class)
// printlnInstanceSubclassesFuns(InputMessageContent::class)
// printlnInstanceSubclassesFuns(InputMedia::class)
// printlnInstanceSubclassesFuns(Poll::class)
// printlnInstanceSubclassesFuns(Update::class)
}