Commit Graph

233 Commits

Author SHA1 Message Date
9c433ba0ab
use EventEnv as event encapsulate instead of Update
- make MornyOnTelegramCommand provides InputCommand
  - change OnUniMeowTrigger consume InputCommand
2023-10-12 18:10:11 +08:00
1b3a847fc8
update gradle build src for capability with IDEA 2023-10-12 14:39:18 +08:00
b305f52493
[[release 1.1.1]]
## 📇 Function & Mechanisms

- cha 尊嘟假嘟 from full match to endswith match

## 🧯 Bug Fix

- fix MedicationTimer thread controller fault

## 🔩 for self-hosted/developer

- change param --outdated-block to --outdated-ignore
  - deprecated param --outdated-block
2023-10-11 18:22:36 +08:00
9ec10a6674
complete some encrypt test and InputCommand test 2023-10-11 16:56:54 +08:00
12a49b71d1
fix Medication Timer wrong sleep, fix 尊嘟假嘟 match 2023-10-11 16:04:17 +08:00
51d0f2a75b
cha 尊嘟假嘟 from full-match to endswith match 2023-10-11 15:32:45 +08:00
0898d08fa7
add MedicationTimerTest 2023-10-10 15:19:41 +08:00
b617b3e059
change outdated-block to outdated-ignore
- and remove config field eventOutdatedTimestamp
2023-10-10 13:37:43 +08:00
30c5ae71cc
[[release 1.1.0*nanchang]]
## 📇 Function & Mechanisms

- add /chuang command (from @autoziyaobot)
- add 尊嘟假嘟 reply event (from @hasutestbot)

## 🧯 Bug Fix

- fix OnQuestionMarkReply false-checked message due to a huge amount of repeating normal message
2023-10-09 22:09:20 +08:00
692abb9f56
fix OnQuestionMarkReply false-trigger, add 尊嘟假嘟 2023-10-09 21:51:22 +08:00
253208e830
add /chuang 2023-10-09 18:32:36 +08:00
49bbc03ec0
[[[release 1.0.0*beiping]]]
## 📇 Function & Mechanisms

- new /info command
  - root /info command with new introduction page design
  - /start command with new design like new /info
  - /version and /runtime merged to /info
    - old command still available though been hidden
- new "/x?" in random tools
- new function: reply ? for a ?

## 🔌 for Trusted/Admin

- new MornyReport report exceptions or startup/exit events to telegram chat
- cha *msg supported body-less send check

## 🔩 for self-hosted/developer

- Project port to Scala
- add Dockerfile & docker-compose.yml
- add param for Medication Timer
  - param: --medication-notify-chat / -medc
  - param:--medication-notify-timezone / -medtz
  - param: --medication-notify-times / -medt
- cha unset default params (--master ect. is -1 as default)
  - add ID_501 as Morny function return while not supported by provided master

## 🧯 Bug Fix

- fix unclosed quote will cause exceptions while parsing command.
- fix some hidden command cannot execute due to no support to non-ascii command name. (also changed its behavor while I won't tell too much here)
- fix error while converting millisecond to nanosecond in Medication Timer
- inline query ShareBilibiliVideo now will not receive illegal av/BV id which can cause exceptions.
- /nbnhhsh will now send 404 when there's no input text.
- fix --trusted-chat -1 will caused MornyTrusted throws exception, now it will judge(ignore) the value as design.
- fixed --report-to -1 not process normally
- added missing --dinner-chat startup param.
- Some minor fixes while porting coeur to scala is not listed.
2023-10-09 15:46:30 +08:00
45a85e15f5
unset all function defaults config, fix universal command parse
unset the following defaults value:
  - master
  - trusted chat
  - dinner chat id
  - report to chat
  - medication notify to chat
and make the related function can be shutdown by the new -1 defaults:
  - MedicationTimer daemon will not run when medication-notify-to-chat or notify-at-hour is not set
  - MornyReport will do not report when report-to is not set
  - OnCallMe will send ID_501 when there's no master
  - OnCallMe.requestLastDinner will send ID_501 when there's no dinner-chat

fix when using universal command parse may throw exception
2023-10-07 22:07:00 +08:00
985fde9aa2
fix sources jar gen in scala 2023-10-06 22:24:14 +08:00
981098cf6e
update README 2023-10-06 21:52:31 +08:00
69086b1f36
publish 1.0.0-RC5 2023-10-06 21:42:50 +08:00
1bd795873c
code optimize
- add UseSelect
- add scaladoc for some internal trait
- code optimize, mostly use Option now
2023-10-06 20:55:26 +08:00
bfacb0d039
refactor ExtraAction to TelegramExtensions, some coeur startup changes
- refactor ExtraAction to TelegramExtensions
  - make exec a TelegramBot extension
  - refactor isUserInGroup to Chat extension hasMember and memberHasPermission
  - added LimBoUser and LimboChat for capability
- deleted TelegramUpdatesListener, and make EventListenerManager implemented UpdatesListener
- change some value definition, change startup and exit process in MornyCoeur
  - removed updatesListener, extract its manager to eventManager in Coeur
  - added account.shutdown before other's
  - moved Morny's startup/exit report to Coeur
  - change exitCleanup thread name from "morny-exiting" to "system-exit"
2023-09-23 21:44:06 +08:00
511036e2ce
refactor runtime context from class instance to using/given 2023-09-23 16:38:07 +08:00
92aa0e260e
Merge branch 'scala' into 'master' 2023-09-18 22:49:01 +08:00
6e82227447
bug fix for scala port 2023-09-17 15:18:57 +08:00
a8b7562b51
complete scala port 2023-09-16 23:12:44 +08:00
ddfe77350e
scala port stage3 (not tested) 2023-09-10 22:43:39 +08:00
1a31a22cd9
scala port stage2 (not tested) 2023-09-07 22:15:06 +08:00
aafdcc1fb2
scala port stage1 (not tested) 2023-09-05 14:14:01 +08:00
213798dab7
added /info(main) and /start, added support for assets
- add /info (without subcommand)
  - add about pic
  - add morny about links
- add MornyAssets to manager & use assets
- add TelegramImages to manager images that in use
  - with a AssetsFileImage
  - with IMG_ABOUT
- add MornyAbout
  - changed MornyHello to MornyAbout
  - add about links (used in /info)
- remove HelloOnStart
2023-08-27 13:00:36 +08:00
7589e8661d
added --dinner-chat startup param, code quality optimization.
- added `--dinner-chat`/`-chd` startup param for setup dinner chat id
- fixed some unclosed resource
  - TrackerDataManager changed method to get FileChannel (I don't know if it works)
  - MornyCLI scanner uses try-with-resources
- declared directly used dependencies
  - okhttp: 4.11.0
  - gson: 2.10.1
- some minor refactors
  - MornyCoeur.main rename to .init
  - added package `internal` and move @BuildConfigField to it
  - added new util class OkHttpPublic with MediaTypes in use
  - added javadoc for TrackerDataManager
  - and so on...
2023-08-20 23:11:10 +08:00
69a33933f5
add docker, update gradle wrapper
- added Dockerfile and simple example docker-compose.yml
- upgrade gradle wrapper: 7.5.1 -> 8.2.1
- tiny code refactor
2023-08-15 14:10:13 +08:00
518bde9404
put Welcome Message echo first 2023-04-08 15:01:12 +08:00
e153d9e47f
support log level setting; remove git submodule _book; bug fix.
- update dependencies
  - messiva: 0.1.0.1 -> 0.1.1
- add param -d/--dbg/--debug to enable the Debug/Trace log output.
- fix UniversalCommand occurs ArrayOutOfBounds while the quotes not closed.
2023-04-08 13:10:36 +08:00
9c03a59512
fix input av/bv may be too long or too small to process 2023-04-07 16:55:09 +08:00
f990df70ea
/nbnhhsh will send 404 while no content, add some javadoc 2022-12-24 23:18:49 +08:00
031a799070
support QuestionMarkReply to reply more than 1 mark char message. add javadoc 2022-11-20 12:45:20 +08:00
0e3a9d3f9b
add function to randomly reply "?" message, added a CommonRandom tool, replace all jb.NotNull to javax.Nonnull 2022-11-19 23:27:45 +08:00
17c29036b3
add a function "if something?" to OnUserRandoms
- and now uses @Deprecated not @SuppressWarnings("unused") to tag those unused event.
2022-11-19 22:48:20 +08:00
8e28bbbce1
add -medc/medt/medtz params and configs for customize MedicationTimer status, fix millis/nanos conv problem again
- add configs for medication timer
  - medicationNotifyToChat
    - default is -1001729016815L(Annie medication notify chat)
    - add param --medication-notify-chat / -medc to set it, accept a long number.
  - medicationTimerUseTimezone
    - default is ZoneOffset.UTC(means +00:00)
    - add param --medication-notify-timezone / -medtz to set it, accept a number that means timezone hours
  - medicationNotifyAt
    - default is a empty Set
    - add param --medication-notify-times / -medt to set it, accept a hour(0~23) list seperated by ","
- now medication timer will exit if the notify-times is empty
 - changed the Test data-source for MedicationTimer#calcNextRoutineTimestamp
2022-11-18 17:49:39 +08:00
2ffab30ef1
fix error while converting millis to nanos in MedicationTimer 2022-11-17 13:54:48 +08:00
2c7c4a2a6b
变更吃药提醒为 12:00 一次,修改了吃药提醒的时间计算方式,为吃药提醒的时间计算添加了一个测试
- 将吃药提醒的时间计算变更为基于 LocalDateTime 的计算
  - 为其添加了 USE_TIME_ZONE 和 NOTIFY_AT_HOUR 两个参数
2022-11-13 13:22:17 +08:00
a83930efd0
修复未预见 --report-to 设置为 -1 的问题 2022-11-12 17:40:51 +08:00
a863570be2
Merge branch 'major/1.0' 2022-11-12 16:13:51 +08:00
c4a709491d
为 loginReport 添加了版本号,重构 version/runtime 的内部调用链
- 修改了 system 的显示方式将 os名称/版本/架构 移为了一行
- 将 version/runtime 的执行体移动到了 MornyInformations 当中
- MornyInformations 中对一些复杂的 version/runtime 部件为其独立出了一个方法
2022-11-12 13:42:23 +08:00
fbbfe73ac1
修改了 "meow-set" 部分的文案,并为其添加了特异化回复的功能,修复其以及 --report-to 的 bug
- 修复了上次提交的 --report-to 参数没有被正确处理问题
- 创建了一个新的补丁事件,修复了 meow-set 无法使用的问题
2022-11-11 18:32:44 +08:00
3689962cb3
添加了 morny login/exit 的报告,*msg 现在支持了只包含发送 id 不包含发送体
- 为 MornyCoeur 添加了 whileExitReason (exit/getExitReason) 接口,用于安全退出时指定推出原因
- MornyConfig 添加了一个 Sensitive 注解用于标明字段值属于敏感字段不应该被打印
-
2022-11-11 16:37:24 +08:00
01b4eea917
为error和exit/save 403 实现了 Morny Report,trustedChat= -1,typo 以及文案 fix
- 优化了 coeur 中 exception 的 stackTrace 的输出方式
  - 大幅度修改了 EventListenerManager 中报错的逻辑使其更加正常了许多
- 添加了 reportToChat 以及 --report-to 选项用在 MornyReport 中
- 为 coeur 中的错误报告添加了 MornyReport.exception
- 为 save/exit 两个需要权限的命令添加了 MornyReport.unauthenticatedAction
- 添加了一个方法可以检查 coeur(telegram_bot) 是否已完成初始化以存取 coeur 的内容
2022-11-10 23:06:52 +08:00
618d777463
fix gradlew exec perm 2022-11-09 14:03:53 +08:00
837ec178d3
将带有 git 的 version 更名为 version-full,原先的 version 去除 git 等附加属性,作为 maven 包版本使用 2022-11-09 12:03:17 +08:00
48a8fd9daa
修复 /info 无参数的错误反应 2022-11-09 01:48:03 +08:00
201c8bcd1a
添加项目 git 链接相关配置,大改动版本显示方式,/version 与 /runtime 合并进 /info
- 将 /version 和 /runtime 合并为了 /info 的子命令
  - 旧的 /version 和 /runtime 命令仍然可用
  - runtime 现在是 /info 的无参数行为
- 更新了各种位置的版本显示方式
  - /version 现在通过组装的方式显示版本号的 BASE 与 DELTA 部分,并支持了可能的 git commit 显示,同时支持输出 commit 链接
  - /runtime 现在通过组装的方式显示版本号的 BASE, DELTA, GIT 部分,其中也支持了 git commit 链接,同时 CODENAME 的显示方式规范为了 `version*CODENAME` 的格式
  - ServerMain 的 -v 修改了显示格式,同时添加了 gitstat 字段显示 build 时的 git 信息
  - ServerMain 的启动版本回显(仍使用完全体VERSION)将 md5hash 和 code-time 移到了新行
- dependencies update
  - java-telegram-bot-api: 5.6.0 -> 6.2.0
2022-11-09 01:41:01 +08:00
d8eb372063
修复构建脚本中 version delta 相关判断问题
- 现在如果 use_delta 为 false 则输出 BuildConfig.VERSION_DELTA 为 null
2022-11-08 22:37:46 +08:00
f362d08f34
更新了打包配置
- 设置了全局 archivesBaseName
- 对一些属性的声明方式进行了调整
- 为 maven publish 添加了动态配置,以在没有配置 publish url 的机器上也能够正常运行基础功能
- gradle plugin: shadow: 7.1.0 -> 7.1.2
- gradle wrapper: 7.3 -> 7.5.1
- 稍微修改了 git 状态的 log 输出方式
2022-11-07 12:54:01 +08:00