微信钉钉通用的消息监控处理机器人(mac)

本文转载自:https://www.jianshu.com/p/263a3392ee82

实践

解决方案确立了,接下来无非就是验证加实现,这里还是以Mac为例。

来来来,看看苹果的系统中心好不好攻占,首先,咋们来确立系统中心数据的存储方式,进入终端:

cd `getconf DARWIN_USER_DIR`/com.apple.notificationcenter/db2
ls
db     db-shm db-wal

可以看到,有三个文件,哎,好熟悉,SQLite呗。

打开:

分别有以下几个表:

  • app
  • categories
  • dbinfo
  • delivered
  • displayed
  • record
  • requests
  • snoozed

可能有点多,但我们只需要关注两个表就行:

  • app:应用id
  • record:监控的应用消息

建表语句分别如下:

create table app
(
    app_id     INTEGER
        primary key,
    identifier VARCHAR,
    badge      INTEGER
);

create table record
(
rec_id INTEGER
primary key,
app_id INTEGER,
uuid BLOB,
data BLOB,
request_date REAL,
request_last_date REAL,
delivered_date REAL,
presented Bool,
style INTEGER,
snooze_fire_date REAL
);

在app表的这行,可以看到微信应用的id35

app_id  identifier
35          com.tencent.xinwechat   

知道应用id后就可以直接在record表里面直接找到通知消息:

SELECT app_id,data, presented, delivered_date FROM record WHERE app_id IN (35)  ORDER BY delivered_date DESC;

得到结果如下:

[图片上传失败...(image-51e74e-1571723510570)]

一切顺利,但定睛一看,中间那一大串是什么?不要慌,里面bplist,给了很大的提示。

在Python的世界里,没有什么问题是引入一个第三方包解决不了的,如果有,那么引入两个第三方包就可以了。

pip install biplist

利用biplist会将那一串加载成我们人类可以看懂的语言。

好像没有一点阻碍,那就可以直接编码实现了。

编码

算了,不多说,多了我也说不出来,直接开源吧,见 https://github.com/howie6879/examiner ,不要吝啬你的Star(可点击阅读原文)。

git clone https://github.com/howie6879/examiner
cd examiner
# 推荐使用pipenv 你也可以使用自己中意的环境构建方式
pipenv install --python=/Users/howie6879/anaconda3/envs/python36/bin/python3.6  --skip-lock

接下来只需要在根目录构建自己的监控脚本就行,比如监控微信,监理文件命名为 wechat_app.py:


from examiner.notification import notification_factory
def get_data(app_names: list):
    os_notification = notification_factory(app_names)
    info_list = os_notification.get_target_notification()
    for each in info_list:
        # 自行实现监控逻辑以及处理方案
        print(each)
if __name__ == "__main__":
    app_names = ["WeChat"]
    get_data(app_names)

和上一篇比起来,这代码,不需要配置、不需要提前准备什么,只需要在列表里面填上你想监控的目标应用即可(我顺便支持了多应用),你可以同时监控钉钉和微信等等

自己可以慢慢玩,一般会这样输出:

{'title': '老胡的储物柜', 'subtitle': '', 'body': '测试消息监控,任何应用都行', 'delivered_date': datetime.datetime(2019, 10, 20, 21, 40, 26, 428654), 'presented': 1, 'app_identifier': 'com.tencent.xinwechat', 'app_name': 'WeChat', 'md5': '75e24e2ccc502f01c101fcbd3637950b'}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信钉钉都具有通话功能和悬浮窗功能。微信的通话功能可以通过音频或视频与其他微信用户进行通话。钉钉也提供了类似的通话功能,可以用于与钉钉用户进行语音或视频通话。 至于悬浮窗功能,微信在最新版本中引入了一个方便的功能,即允许用户在阅读公众号文章时,将文章内容悬浮在聊天窗口上方,方便同时进行聊天和阅读。这样,当有人给你发微信时,你可以继续浏览文章而无需切换页面。 钉钉也具有类似的悬浮窗功能,可以将聊天窗口或其他功能的界面悬浮在屏幕上,以便于同时进行其他操作。这使得用户可以方便地进行多任务处理,提高工作效率。 总结起来,微信钉钉都提供通话功能和悬浮窗功能,它们在实现方式和用户体验上可能有些差异,但都旨在提供便利和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android仿微信文章悬浮窗效果的实现代码](https://download.csdn.net/download/weixin_38659648/14027288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [又一款社交软件黑马,微信缺的它都有!](https://blog.csdn.net/mingongge/article/details/113749982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值