## 📇 Function & Mechanisms
- add for /encrypt
- add urlencode / urldecode sub-command: they process text input only
- add alias /enc
- add for InlineBilibiliShare
- add b23.tv share-link parse
- add b23.tv video link parse
## 🔩 for self-hosted/developer
- cha EventListener use EventEnv instead of Update
- new LogLevel NOTICE(notice) and ATTION(attention)
- with new formatter
- add MornyLogLevels with new log level NOTICE(notice) and ATTION(attention)
- make mechanic and morny (but not coeur) related INFO to NOTICE, warn to ATTION
- add MornyFormatterConsole to support the formatted time display, and some other formatter changed
- now startup key output will hide key except the starting and ending 4 chars
- change the function definition of consume in EventEnv
- removed src/test/scala/live/LiveMain
- and added gitignore for src/test/scala/live
## 📇 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
## 📇 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.
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
- 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"
- 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
- 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...