每天进步一点点:红点消除器

in #cn4 years ago

通知功能(Notification)是HIVE上一个比较有用的功能,在通知列表(Notifications)中我们可以看到最近发生了哪些和自己账户相关的事情,比如说谁给我点赞点赞价值又是多少、谁转发了我的帖子、谁回复了我等等。

image.png
(图源 :pixabay)

但是每当有新消息需要通知,我们的头像上就会多出来红色小椭圆,里边显示未读的消息数目,有时候几天不进通知列表里查看和设置已读,这个数字甚至会达到数千。

对于强迫症患者来讲,这是让人无法忍受的事情,看着红点就想消除,而且显示的数字越多就越烦躁,于是想如果有一种方式能自动消除红点,那到应该不错。

那么如何消除红点呢?其实就是之前我写过的custom_json

image.png

可见实际上就是用户广播一条id为notify,内容为:["setLastRead",{"date":"2020-06-13T13:47:58"}]的自定义JSON内容,知道了这点,我们就可以编程实现红点消除了。

核心代码以及逻辑大致如下:

获取当前时间字符串:

import datetime
date = datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S')

定义并填充JSON内容:

json_clear_notifications = ["setLastRead",{"date":date}]

使用用户的Posting KEY广播:

client.custom_json("notify", json_data=json_clear_notifications, required_posting_auths=[user], wif=wif)

我使用oflyhigh.test 以及对应wif,广播出去的事务(transaction)大致这样:

image.png

广播成功后,在https://hiveblocks.com/中会查询到如下信息:

image.png

相应地,再刷新的时候,会发现头像上的红圈圈不见了。

以上代码只是实现了红点消除功能,如果需要定时消除红点(比如一天一次或者半天一次)那么可以考虑在Linux系统下设置对应的计划任务(crontab),这个一般大家都会,就不再赘述了。

image.png
(图源 :pixabay)

当然了,用红点消除功能不意味着不去看通知,通知还是蛮重要的,就是不喜欢头像上数额巨大的红圈圈而已。

相关链接

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 63339.90
ETH 3485.02
USDT 1.00
SBD 2.53