mirror of
https://github.com/InsanusMokrassar/TelegramBotApiLibraries.git
synced 2025-10-27 18:20:27 +00:00
Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 165a3a9856 | |||
| f811968b05 | |||
| c2e3b49786 | |||
| 6d813ef142 | |||
| 9083b888c6 | |||
| 7ac8effb5f | |||
| 4dc009b222 | |||
| 0ace1c760d | |||
| c4e7e05ff2 | |||
| 681848a908 | |||
| 1e2cf00ffe | |||
| d940a266ac | |||
| cdbcf29409 | |||
| a88b6d17a2 | |||
| e0cf102ec8 | |||
| 3dc2515e57 | |||
| ee21a44270 | |||
| eee918cd9f | |||
| 459d4dc5e2 | |||
| b974d4dfdc | |||
| 79e1112c77 | |||
| b76a574929 | |||
| 06d5cb904b |
@@ -3,5 +3,5 @@
|
||||
This project was created due to neccessity of additional libraries over [tgbotapi](https://github.com/InsanusMokrassar/TelegramBotAPI).
|
||||
Currently there are plans to create several libraries at the start of this project:
|
||||
|
||||
* Cache library for media (saving and autorefreshing of `fileId`)
|
||||
* Cache library for admins (saving chat admins, autoupdate and refreshing by command (maybe))
|
||||
* Cache library for media (saving and autorefreshing of `fileId`) (**currently in TBD state**)
|
||||
* Cache library for admins (saving chat admins, autoupdate and refreshing by command (maybe)) (you may retrieve it using github packages for now)
|
||||
|
||||
@@ -8,7 +8,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.0.2'
|
||||
classpath 'com.android.tools.build:gradle:4.2.2'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
||||
classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:$dexcount_version"
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
package dev.inmo.tgbotapi.libraries.cache.admins
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.utils.asGroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.ChatMember.abstracts.AdministratorChatMember
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
|
||||
interface AdminsCacheAPI {
|
||||
suspend fun getChatAdmins(chatId: ChatId): List<AdministratorChatMember>?
|
||||
suspend fun isAdmin(chatId: ChatId, userId: UserId): Boolean = getChatAdmins(chatId) ?.any {
|
||||
it.user.id == userId
|
||||
} == true
|
||||
suspend fun sentByAdmin(groupContentMessage: GroupContentMessage<*>): Boolean
|
||||
suspend fun sentByAdmin(message: Message): Boolean? {
|
||||
return sentByAdmin(message.asGroupContentMessage() ?: return null)
|
||||
}
|
||||
|
||||
suspend fun settings(): AdminsCacheSettingsAPI
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import dev.inmo.tgbotapi.extensions.api.bot.getMe
|
||||
import dev.inmo.tgbotapi.extensions.api.chat.get.getChatAdministrators
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.ChatMember.abstracts.AdministratorChatMember
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
interface DefaultAdminsCacheAPIRepo {
|
||||
@@ -49,6 +50,17 @@ class DefaultAdminsCacheAPI(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun sentByAdmin(groupContentMessage: GroupContentMessage<*>): Boolean {
|
||||
return when (groupContentMessage) {
|
||||
is AnonymousGroupContentMessage -> true
|
||||
is CommonGroupContentMessage -> isAdmin(
|
||||
groupContentMessage.chat.id,
|
||||
groupContentMessage.user.id
|
||||
)
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun settings(): AdminsCacheSettingsAPI = settingsAPI
|
||||
|
||||
}
|
||||
|
||||
@@ -6,32 +6,32 @@ kotlin.incremental.js=true
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
||||
kotlin_version=1.4.32
|
||||
kotlin_serialisation_core_version=1.1.0
|
||||
kotlin_version=1.5.20
|
||||
kotlin_serialisation_core_version=1.2.1
|
||||
|
||||
github_release_plugin_version=2.2.12
|
||||
|
||||
tgbotapi_version=0.33.1
|
||||
micro_utils_version=0.4.31
|
||||
exposed_version=0.29.1
|
||||
plagubot_version=0.1.6
|
||||
tgbotapi_version=0.35.1
|
||||
micro_utils_version=0.5.15
|
||||
exposed_version=0.32.1
|
||||
plagubot_version=0.3.1
|
||||
|
||||
# ANDROID
|
||||
|
||||
android_minSdkVersion=21
|
||||
android_compileSdkVersion=30
|
||||
android_buildToolsVersion=30.0.2
|
||||
dexcount_version=2.0.0
|
||||
android_buildToolsVersion=30.0.3
|
||||
dexcount_version=2.1.0-RC01
|
||||
junit_version=4.12
|
||||
test_ext_junit_version=1.1.2
|
||||
espresso_core=3.3.0
|
||||
|
||||
# Dokka
|
||||
|
||||
dokka_version=1.4.20
|
||||
dokka_version=1.4.32
|
||||
|
||||
# Project data
|
||||
|
||||
group=dev.inmo
|
||||
version=0.0.3
|
||||
android_code_version=3
|
||||
version=0.0.11
|
||||
android_code_version=10
|
||||
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
project.version = "$version" + System.getenv("additional_version")
|
||||
project.version = "$version"
|
||||
project.group = "$group"
|
||||
|
||||
apply from: "$publishGradlePath"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
project.version = "$version" + System.getenv("additional_version")
|
||||
project.version = "$version"
|
||||
project.group = "$group"
|
||||
|
||||
apply from: "$publishGradlePath"
|
||||
|
||||
@@ -4,10 +4,8 @@ project.group = "$group"
|
||||
apply from: "$publishGradlePath"
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
compilations.main.kotlinOptions.useIR = true
|
||||
}
|
||||
js (BOTH) {
|
||||
jvm()
|
||||
js (IR) {
|
||||
browser()
|
||||
nodejs()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user