Releases: Eyre-S/Coeur-Morny-Cono
Morny 1.3.3*guanggu
add support for https://m.weibo.cn/status/123456
link type in weibo share.
Morny 1.3.2*guanggu
Update the new Bilibili av/BV conversion algorithm (and fix some input limition) to support up to av id 251 (av2251799813685248).
The new algorithm is from bvid说明 | BAC Document.
Morny 1.3.1*guanggu
Fix Bilibili av/BV conversion error when av id is bigger that 230.
It may still have some problem in some specific numbers, submit an issue if it happens.
Morny 1.3.0*GUANGGU
Brand new social media's content share method
Morny now supports to fetch social media's status' content and share them to Telegram.
Now, Twitter (or X.com) tweet and Weibo status are supported except Weibo status' attached video is not supported.
Morny provided two different ways to using this feature: /get
command or private messaging. Both of them supports full output features (multiple medias, videos etc.). The /get
command only accept a supported URL as parameter; While messaging to the private, Morny will automatically check every URL in the message and will fetch from and output all matched supported URL.
Morny also provided inline method to fetch social media's contents: to use this feature, you need type a supported url in the inline input and add prefix or suffix get
(like @morny get <url>
or @morny <url> get
). But, due to technic limits, while using inline method, the Twitter tweet will only output the combined image but not multiple full images, and the Weibo status' pics will not be output.
Twitter tweet URL inline re-format changes
Due to some changes from upstream BetterFixTweet(vxtwitter), the Share with VxTwitter (combined) option is removed. And, a Share with FixTweet option is added
also, the URL parser is now supported x.com
series URLs.
Code block syntax highlight support
Recently, Telegram have released a new version with code block language highlight support.
Morny in this version have updated the message template for supporting language highlight.
Currently supported functions:
/event_hack
returns JSON- Morny Report exceptions report with the JSON formatted Telegram bot API raw response
New Task System
Morny imported a Scheduler
toolset to manager all daemon tasks instead of each daemon manager its own daemon thread.
Currently, there's one problem is it is not supported multi-threading. We will fix it in later version (if needed).
related /info
subcommand
Add /info tasks
subcommand (to /info
) to show current Morny's task scheduler status.
Currently it shows only simple status includes scheduler's current running status and task count in this scheduler.
Statistics might appear in following updates.
Event/Update processor statistics
Added statistics for EventListenerManager
, it will collect the process duration of each event/update and make a simple statistic.
Statistic data will be cleared when every end of one day. The clearing will use time-zone same with the following Morny Daily Report.
Statistics data can be shown by new (sub-command of /info
) command /info event
Related technic changes.
Morny's
EventListener
interface have added two methodsatEventPost
andexecuteFilter
.
Those two events provide a very different managing and processing logic along events.Also, due to some unknown reason, sometime there's one event seems not be processed at all but
its final statis is OK and its execution duration is 0ms. It is a known issue and we are looking into it.
Morny Daily Report
Added new Morny Daily Report to report today statistics.
There's Event processor statistic in this version.
A coeur startup parameter --report-zone
is added to control which time-zone the report should use. It accepts a TimeZone accepted string and the default is system's default time-zone.
Minor changes
Feature randomly repeat question marks now will recognize ⸘
as a question mark.
Bug fixes
fix internal error while Morny received message which have only /
character.
fixed InputCommand throws OOB while input is empty
fix get user CDN failed with result <no-cdn-information>
.
Due to the base hostname have been changed to
.cdn-telegram.org
from.telegram-cdn.org
.New CDN base hostname have been added to detect keyword.
fix wrong time parse in get last dinner in OnCallMe
Morny 1.2.1*xiongan
fix featured-image error. Now the commands /info
and /start
which uses the featured-image can be used normally.
fix morny startup report is missing @
in username field.
Morny v1.2.0*XIONGAN
url-encode in new /encrypt
added algorithms urlencoder
/ urldecoder
(with some aliases) to command /encrypt
.
urlencoder
and urldecoder
allows only text input, will not process files. They use UTF-8
as the default encoding.
And also add new alias /enc
for /encrypt
.
b23.tv links support
Now, Share Tool Bilibili supports share the b23.tv share link and b23.tv video link.
Tracking information in b23.tv will not be sent or stored or cached for protect your privacy. We only use the video id in it to let you can share the video to others.
The video p
(part) param parser is also optimized that can parse the p
param inside the useless (tracking) params for support getting video part information from b23.tv links or others.
Changes for self-hosted or developers
EventListener
have been changed from receiving Update
to receiving EventEnv
contains Update
and other information. There's also a new thing you can do using EventEnv
is use provide
and consume
to reuse some custom data from earlier listener to later listeners.
Add two new log level, and add a new log formatter.
The new log formatter now can echo the human-readable time using system time zone.
And the new log level is:
NOTICE
notice, is slightly higher level thanINFO
, means there's some information on morny (but not the coeur), mostly, nothing to be worried.ATTION
attention, is higher than levelNOTICE
but lower than levelWARN
, usually means there's some unusual things happened in the morny, not much important than the coeur level WARN things which might break something, but still worthy to take attention.
Morny v1.1.1 *nanchang
for 尊嘟假嘟, now it will check if the text is ends with "尊嘟假嘟", instead of pervious checking if text is fully equals to "尊嘟假嘟". same for 3 keywords (尊嘟假嘟
, O.o
, o.O
)
for Medication Timer, fix it is unavailable due to the inner thread control failure.
for coeur params, added --outdated-ignore
to replace old --outdated-block
. It should be more clear to understand what the param is for. old --outdated-block
have been tagged outdated, using it in the newer version will recieve a runtime warn. It may be removed on next minor version or major version (It will lives at lease 1 month for you update it).
Morny v1.1.0 *NANCHANG
尊嘟假嘟
Morny now will reply "尊嘟"/"假嘟" for "尊嘟假嘟" or "O.o".
As a new function of User Randoms, it doesn't need to use the /
slash prefix!
Thanks for @hasuchan's idea.
/chuang
Add command /chuang xxx
, it will reply you a dump truck(泥头车) with xxx.
The idea is from @autoziyaobot. As a entertainment-oriented content, it will not show up in command list.
It support custom texts and multiline texts in the dump truck, but it does not have default text currently.(if there's no param, Morny will take no action.)
Bug Fixes
fix OnQuestionMarkReply false-checked message due to a huge amount of repeating normal message
Morny v1.0.0 *BEIPING
Full Changelog: 0.8.0.11...1.0.0
Brand new /info
command
The new /info
command can send a user-friendly introduction. And the /start
command (normally be used in a use is first use the telegram bot) have been redesigned to similar to the new /info
command.
New /info command |
Redesigned /start command |
---|---|
Commands /version
and /runtime
now merged to the /info
command as a sub-command.
Old /version
and /runtime
is still supported though they won't be listed on command list.
It also have some some formatting changes in version
and runtime
, and now supported to show a git commit link.
New in Random Tools
In the older version, it already supported to use / this or that
to random this
or that
.
Now, the new / do it?
grammar has been added, it will return do it
or 不do it
.
Currently, it is only support to return with Chinese words
不
.*And, note that prefix slash
/
is required, this is for avoid false trigger.
New interesting function: Reply ?
for a ?
If you send a ?
, then Morny have change to reply you a ?
.
Multiple ?
and strange ?
(or ❔
or ¿
but not only those) is all supported. It should support all unicode characters can describe a question, if some character is missing, please report to me.
Currently the probability of trigger this function is fixed 1/8.
Changes for administrator / trusted users
*msg
now supported a send test have only the header without text body.
It will not report error while there's no message body in a send and will normally check the header -- completely skipped the message body check. It is useful to just test a chat id is available without meant to send something.
Trying to send this body-less send will still be a error.
Morny Report
The new MornyReport morny daemon will proactively send some runtime information or exception to a telegram chat, it will be useful to monitor Morny's runtime status without access to host terminal.
Currently when Morny startup, exit, some exception occurred, or some administrator execution is forbidden will send a report.
On exited or startup | On some exception occurred |
---|---|
Changes for self-hosted or developers
Official docker / docker-compose basic support have been added
Morny's repository have added the Dockerfile
and a example docker-compose.yml
. You can easily start Morny Coeur with docker using these two file now.
Add params for controlling Medication Timer
- add param
--medication-notify-chat
/-medc
for controlling where notify should send to.- It accept a long value means the notify chat id, accept only one value.
- default is
-1
, which will shutdown Medication Timer.
- add param
--medication-notify-timezone
/-medtz
for controlling what timezone should use to calculate the time.- It accept a hour number that means the timezone offset hour. for example
+09:00
(Japan) is9
,-11:00
is-11
- default is UTC timezone (+00:00)
- It accept a hour number that means the timezone offset hour. for example
- add param
--medication-notify-times
/-medt
for controlling when to notify.- it accept a list of hour number, separated by
,
. for example, set0,7,21
means you want to notify at 00:00 and 7:00 and 21:00. - default is empty, which will shutdown Medication Timer.
- it accept a list of hour number, separated by
If there's no enough params: if notify-chat or notify-times is not set, the Medication Timer will not run. (Note that the default timezone is UTC 0 time)
Unset all params default value of Morny
Before, all of the function related params have a default value -- this is how the original master of Morny uses Morny.
Now, all of those default values have been removed, means you do not need to manually explictly set them to -1 or something else to disable them.
This affects those params: --master
(-mm
) | --trsuted-chat
(-trs
) | --dinner-chat
(-chd
); And those 1.0.0 new function and params follows the no-default behavor too: --medication-notify-chat
(-medc
) | --report-to
This also means these function is now can be disabled by not set the related param:
- On Call Me will send ID_501 when there's no master
- Request Last Dinner will send ID_501 when there's no dinner-chat
- and Morny Report and Medication Timer
Programming Language and build script
Morny Coeur have been ported to Scala3 as the main programming language.
imported buildconfig and grgit to make automation compile information better.
fixed the exec permission issue in /gradlew
and /gradlew.bat
Bug fixes
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.
1.0.0-RC6
Full Changelog: 1.0.0-RC5...1.0.0-RC6
Changes for self-hosted & developers
Now, all of the params have no default value, means you have no need to explictly set them to -1 to disable them.
This changes affected those params: --master
(-mm
) | --trsuted-chat
(-trs
) | --report-to
| --dinner-chat
(-chd
) | --medication-notify-chat
(-medc
)
This is also related to the following functions -- the new defaults behavor is shut them down(you will also seen them have been disabled in log):
- Medication Timer daemon will not run when medication-notify-to-chat or notify-at-hour is not set
- Morny Report will do not report when report-to is not set
- On Call Me will send ID_501 when there's no master
- Request Last Dinner will send ID_501 when there's no dinner-chat
there also imported one new sticker reply: ID_501:
Bug fix
fix unclosed quote will cause exceptions while parsing command. again.