Commit Graph

16 Commits

Author SHA1 Message Date
e1c87aeae4 feat: 将 TelegramBots 升级至 8.0.0, 并适配 TelegramBots 的新改动.
将 TelegramBots 升级至新版本, 以支持新的 API.
由于 TelegramBots 发生无法兼容旧版本的重大变更, 因此 ScalaBot 将随着此次更新一同进行重大更改.

BREAKING CHANGE: ScalaBot 所依赖的 TelegramBots 发生重大更改, 所有扩展都需要进行适配.
  有关 TelegramBots 的重大变更说明请参考官方文档.
  ScalaBot 的最低 Java 版本已全部升级至 Java 17 (这是 TelegramBots 的最低兼容性要求), 所有扩展都应该至少迁移至 Java 17 版本.
  ScalaBot 的重大更改:
   - scalabot-extension
     - `net.lamgc.scalabot.extension.util.AbilityBots.getBotAccountId(BaseAbilityBot): long` 已被移除, 由于 BaseAbilityBot 不再允许获取 botToken, 因此该方法被移除. 作为代替, 请通过 `net.lamgc.scalabot.extension.BotExtensionFactory.createExtensionInstance` 所得到的 `BotExtensionCreateOptions` 中获取 botAccountId.

  另外, scalabot-extension 中的 `org.jetbrains.kotlinx.binary-compatibility-validator` 似乎不再对 Java 代码起作用, 因此移除该插件, 并在后续寻找替代品.
  TelegramBots 文档: https://rubenlagus.github.io/TelegramBotsDocumentation/how-to-update-7.html
2024-12-10 23:32:29 +08:00
3ba4364a07 test(config): 补全对 ProxyConfig 的单元测试.
先前加了个 ProxyConfig.toString 方法, 所以补充了一下测试项.
2022-08-04 19:13:45 +08:00
3c54c33364 fix(config): 修复因正则表达式错误导致的 Token 检查失败.
由于表达式中限定的 BotId 为 Int 范围, 而目前的 TelegramUserId 已经扩展到 Long 了, 所以新的 Bot 是无法通过检查的, 已修正表达式问题.
2022-07-04 16:26:01 +08:00
c144755913 feat(config): 增加 BotAccountSerializer, 主要用于检查字段值.
增加 BotAccount 的序列化器, 便于检查有关字段的值是否有效.
2022-07-03 02:32:37 +08:00
9ed55204c0 refactor(config): 调整序列化工具类, 便于进行测试.
修正序列化工具类的类名, 并调整访问权为 internal.
同时将 `checkJsonKey` 改成更方便的 `JsonObject.getPrimitiveValueOrThrow`.
2022-07-03 01:35:23 +08:00
06acc78180 test(config): 补全单元测试用例.
由于 `MavenRepositoryConfig.authentication` 有关联的序列化器, 因此不可忽略对该属性进行检查;
现已补充单元测试用例以确保反序列化结果正确.
2022-06-26 03:06:14 +08:00
db010d6c86 test(config): 为测试补充一个新的断言.
补充新的断言状况, 以保证功能正常使用.
2022-06-26 02:52:11 +08:00
61b611b22e test(config): 为 BotConfig 补充最少参数的反序列化测试项.
补充最少参数的反序列化测试项, 以确保在 Json 属性缺失的情况下依然能正确反序列化出正确的对象.
2022-06-26 02:51:33 +08:00
c7c24fa454 fix(config): 修复潜在的无状况错误问题.
由于在 MavenRepositoryConfigSerializer 反序列化中过滤了 Json 的类型, 导致用户在配置中使用了错误的 Json 数据类型将不会有任何错误信息.
该改动已解决该问题.
2022-06-26 02:42:35 +08:00
045b3e5d54 test(config): 统一 Test 注解的使用, 修改测试代码的顺序.
Test 注解将统一使用 kotlin.test.Test, 这么做可以保持兼容性;
将 MavenRepositoryConfigSerializerTest.`json primitive deserialize test` 中的两段代码顺序调整一下, 以避免出现歧义.
2022-06-26 02:32:53 +08:00
d6b25c4560 test(config): 将 UsernameAuthenticatorSerializerTest 迁移到 SerializersKtTest.
将测试类移动到对应的文件中.
2022-06-25 23:02:11 +08:00
df484d6bd7 test(config): 调整测试数据, 以符合该测试用例的情况.
为 BotConfig 的完整序列化测试添加 Artifact 值, 覆盖解析 BotConfig 所涉及的 Artifact 序列化.
2022-06-25 19:19:55 +08:00
128e33e545 test(config): 移动 UsernameAuthenticatorTest 到新的包路径.
UsernameAuthenticatorTest 所测试的 UsernameAuthenticator 是属于 config 包的, 所以修正了一下这个问题.
2022-06-24 19:44:31 +08:00
85e59f4a64 test(config): 将 ArtifactSerializerTest 合并到 SerializersKtTest, 并添加新的单元测试.
为了归类单元测试, 所以将 ArtifactSerializerTest 合并到 SerializersKtTest;
添加 ProxyConfig 和 BotConfig 的单元测试类.
2022-06-24 19:43:06 +08:00
8f8d763566 test(config): 合并 BotAccountTest 并补充其他配置类的解析测试.
将 BotAccountTest 合并入 ConfigsTest, 方便归类测试, 并补充其他配置类的 JSON 解析;
此部分独立于 Serializer 以防止后续更改出现潜在的解析错误.
2022-06-24 19:38:47 +08:00
289b9678f2 refactor(config): 将与配置相关的内容迁移到 scalabot-meta 模块.
通过将配置迁移到单独的模块, 可以方便使用其他程序扩展 ScaleBot, 而不仅仅是让 ScaleBot 成为扩展的平台.

BREAKING CHANGE: 与配置有关的 Class 移动到了 scalabot-meta 模块.

目前仅所有配置类(以 `Config` 结尾的 Class)和相应的序列化类(以 `Serializer` 结尾的)都迁移到了 meta 模块, 但其工具方法则作为扩展函数保留在 app 模块中.
这么做的好处是为了方便其他应用(例如 ScalaBot 外部管理程序)根据需要生成配置文件.
scalabot-meta 将会作为依赖项发布, 可根据需要获取 ScalaBot-meta 生成 ScalaBot 的配置.
此次改动普通用户无需迁移.
2022-06-20 20:55:04 +08:00