Compare commits

...

17 Commits
0.3.1 ... 0.5.1

10 changed files with 63 additions and 36 deletions

View File

@@ -1,5 +1,35 @@
# Changelog
## 0.5.1
* `Versions`
* `tgbotapi`: `0.38.4`
* `microutils`: `0.9.5`
## 0.5.0
* `Versions`
* `kotlin`: `1.6.10`
* `coroutines`: `1.6.0`
* `serialization`: `1.3.2`
* `exposed`: `0.37.2`
* `tgbotapi`: `0.38.0`
* `microutils`: `0.9.0`
## 0.4.1
Temporal update for compatibility with java 1.8
## 0.3.2
* `Versions`
* `kotlin`: `1.5.20` -> `1.5.31`
* `coroutines`: `1.5.0` -> `1.5.2`
* `serialization`: `1.2.1` -> `1.2.2`
* `exposed`: `0.32.1` -> `0.34.2`
* `tgbotapi`: `0.35.1` -> `0.35.9`
* `microutils`: `0.5.15` -> `0.5.28`
## 0.3.1
* `Versions`

View File

@@ -11,8 +11,8 @@ You can create your bot using
| Template: | [![Use template](badges/use_template.svg)](https://github.com/InsanusMokrassar/PlaguBotPluginTemplate/generate) |
|-----------|-----------------------------------------------------------------------------------------------------------------|
| Bot version: | [![Download](https://api.bintray.com/packages/insanusmokrassar/PlaguBot/plagubot.bot/images/download.svg)](https://bintray.com/insanusmokrassar/PlaguBot/plagubot.bot/_latestVersion) |
| Plugin version: | [![Download](https://api.bintray.com/packages/insanusmokrassar/PlaguBot/plagubot.plugin/images/download.svg)](https://bintray.com/insanusmokrassar/PlaguBot/plagubot.plugin/_latestVersion) |
| Bot version: | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/dev.inmo/plagubot.bot/badge.svg)](https://maven-badges.herokuapp.com/maven-central/dev.inmo/plagubot.bot) |
| Plugin version: | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/dev.inmo/plagubot.plugin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/dev.inmo/plagubot.plugin) |
That is a set of libraries for plagubots. Look at the
[PlaguBot Plugin template](https://insanusmokrassar.github.io/PlaguBotPluginTemplate/) to find how to create your bot.

View File

@@ -41,3 +41,8 @@ kapt {
}
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

View File

@@ -5,18 +5,6 @@ import kotlinx.coroutines.*
import kotlinx.serialization.InternalSerializationApi
import java.io.File
@Deprecated(
"This method is redundant due to new class PlaguBot",
ReplaceWith(
"PlaguBot(config).start(scope)",
"dev.inmo.plagubot.PlaguBot"
)
)
suspend inline fun initPlaguBot(
config: Config,
scope: CoroutineScope = CoroutineScope(Dispatchers.Default)
): Job = PlaguBot(config).start(scope)
/**
* This method by default expects one argument in [args] field: path to config
*/

View File

@@ -4,8 +4,7 @@ import dev.inmo.micro_utils.coroutines.safelyWithoutExceptions
import dev.inmo.plagubot.config.*
import dev.inmo.tgbotapi.bot.Ktor.telegramBot
import dev.inmo.tgbotapi.extensions.api.bot.setMyCommands
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
import dev.inmo.tgbotapi.extensions.behaviour_builder.buildBehaviour
import dev.inmo.tgbotapi.extensions.behaviour_builder.*
import dev.inmo.tgbotapi.types.BotCommand
import dev.inmo.tgbotapi.types.botCommandsLimit
import kotlinx.coroutines.*
@@ -50,7 +49,7 @@ data class PlaguBot(
*/
suspend fun start(
scope: CoroutineScope = CoroutineScope(Dispatchers.Default)
): Job = bot.buildBehaviour(scope) {
): Job = bot.buildBehaviourWithLongPolling(scope) {
invoke(database, paramsMap)
}
}

View File

@@ -63,7 +63,7 @@ internal class InternalPluginSerializer(
) : KSerializer<Plugin> {
override val descriptor: SerialDescriptor = PluginSerializer.descriptor
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun deserialize(decoder: Decoder): Plugin {
val asJson = JsonElement.serializer().deserialize(decoder)
@@ -75,7 +75,7 @@ internal class InternalPluginSerializer(
}
}
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun serialize(encoder: Encoder, value: Plugin) {
params.keys.firstOrNull { params[it] === value } ?.also {
encoder.encodeString(it)
@@ -90,7 +90,7 @@ internal class InternalModuleSerializer(
) : KSerializer<Module> {
override val descriptor: SerialDescriptor = PluginSerializer.descriptor
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun deserialize(decoder: Decoder): Module {
val asJson = JsonElement.serializer().deserialize(decoder)
@@ -101,7 +101,7 @@ internal class InternalModuleSerializer(
}
}
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun serialize(encoder: Encoder, value: Module) = DefaultModuleSerializer.serialize(encoder, value)
}
@@ -119,7 +119,7 @@ internal object PluginsConfigurationSerializer : KSerializer<PluginsConfiguratio
private val moduleSerializer = ModuleSerializer()
override val descriptor: SerialDescriptor = jsonSerializer.descriptor
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun deserialize(decoder: Decoder): PluginsConfiguration {
val json = jsonSerializer.deserialize(decoder)
val jsonFormat = (decoder as? JsonDecoder) ?.json ?: configAndPluginsConfigJsonFormat
@@ -154,7 +154,7 @@ internal object PluginsConfigurationSerializer : KSerializer<PluginsConfiguratio
}
}
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun serialize(encoder: Encoder, value: PluginsConfiguration) {
val params = value.params
val serializer = when (value) {

View File

@@ -4,19 +4,19 @@ org.gradle.parallel=true
kotlin.js.generate.externals=true
kotlin.incremental=true
kotlin_version=1.5.20
kotlin_coroutines_version=1.5.0
kotlin_serialisation_runtime_version=1.2.1
kotlin_exposed_version=0.32.1
kotlin_version=1.6.10
kotlin_coroutines_version=1.6.0
kotlin_serialisation_runtime_version=1.3.2
kotlin_exposed_version=0.37.2
sdi_version=0.5.0
tgbotapi_version=0.35.1
microutils_version=0.5.15
sdi_version=0.6.0
tgbotapi_version=0.38.4
microutils_version=0.9.5
klassindex_version=4.1.0-rc.1
sqlite_version=3.34.0
sqlite_version=3.36.0.3
github_release_plugin_version=2.2.12
group=dev.inmo
version=0.3.1
version=0.5.1

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -15,3 +15,8 @@ dependencies {
api "dev.inmo:tgbotapi:$tgbotapi_version"
api "dev.inmo:micro_utils.repos.exposed:$microutils_version"
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

View File

@@ -15,7 +15,7 @@ object PluginSerializer : KSerializer<Plugin> {
private val polymorphic = PolymorphicSerializer(Plugin::class)
override val descriptor: SerialDescriptor = JsonObject.serializer().descriptor
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun deserialize(decoder: Decoder): Plugin {
val format = (decoder as? JsonDecoder) ?.json ?: defaultJson
val asJson = JsonElement.serializer().deserialize(decoder)
@@ -45,9 +45,9 @@ object PluginSerializer : KSerializer<Plugin> {
}
}
@InternalSerializationApi
@OptIn(InternalSerializationApi::class)
override fun serialize(encoder: Encoder, value: Plugin) {
val serializer = (value::class.serializerOrNull() ?: polymorphic) as KSerializer<Plugin>
serializer.serialize(encoder, value)
}
}
}