【达芬奇懒人必备】0成本实现无人值守状态监控

如果你遇到过以下若干情形,那么请继续阅读

首先你是Mac用户

有一些非常耗时但是又不能随便走开的等待操作,例如大量的拷贝或备份

白天有别的任务,只想晚上挂机走人,可是又不放心

先偷摸下楼吃个夜宵,但是如果任务完成就得赶紧继续工作

拷贝/备份因为奇怪的原因容易中断/崩掉

如果戳中了你的痒点,那么你可以和我一起去做出以下尝试

用一个工具帮你关注一行状态信息,并定时把内容发到你的手机上


就想关注一下执行进度

听上去似乎还不错?如果你有兴趣,那么就可以继续阅读下文

首先你需要准备

大约半小时的第一次准备时间,取决于你的网速

之后熟练的话应该只需要3分钟

基础/简单的 终端 使用能力

一个邮箱

一个正常的网络环境

一杯茶

接下来要做的Sao操作思路如下

识别屏幕一块区域内的一行文本;

将文本和其他信息定时发送至一个网络服务商;

推送到你的手机上;

摸出手机阅读你想看到的内容


执行步骤



> 安装准备


首先我们需要一个文本识别(OCR)工具:Tesseract。要获得它,你需要 Homebrew 这个超好用的工具;获得 Homebrew 请将以下命令粘贴至 终端中,按回车执行安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

复制代码太麻烦?访问官网 brew.sh 首页就有这行命令,复制到终端执行即可


粘贴上回车就能执行

安装完毕后,输入以下命令安装

brew install tesseract

等待安装期间,我们先把邮箱绑定到系统自带的邮件app吧


随后我们需要一个在国外炒鸡NB的网络服务,ifttt.com,的账号。免费注册即可。为了将消息推送到手机上,请掏出你的手机,在手机上安装ifttt的app,iOS与安卓都有。

ifttt是啥?

全称为 if this then that

旨在帮助人们利用各网站的开放API,将Facebook、Twitter等各个网站

或应用衔接,完成任务,使“每个人都可以成为整个互联网不用编程的程序员”

不过是在国外炒鸡NB,国内由于许多互联网企业并没有对其开放接口

因此ifttt暂时还是处于墙外开花的阶段

这里我们借助ifttt最基本的

if 收到带特定tag的邮件 这部分叫做 trigger

then 推送消息提醒至移动端 这部分叫做 action

这一自定义功能,官方称其为 applet,来实现我们推送消息的目的,当然稍后会讲解具体操作方式


> 简单地配置


各种安装完成后,我们来开始准备一套 workflow 吧

macOS为我们提供了一个超级强大的自动化工具,Automator。通过它可以将一系列动作串联起来,实现自动化执行的目的。


首先新建一个 工作流程


界面左侧为需要添加的动作,拖放到右侧即可将各种动作连起来。


将以下动作按顺序串起来

运行Shell脚本

设定变量值

新建邮件信息

发送待发邮件

暂停

循环

在 运行Shell脚本 中,粘贴以下命令

screencapture -R 42,640,212,30 ~/Desktop/capture.png

cd /usr/local/Cellar/tesseract/4.0.0_1/bin/

./tesseract ~/Desktop/capture.png ~/Desktop/ocr_output

cat ~/Desktop/ocr_output.txt

screencapture 为系统自带的命令行版截屏工具,-R 选项为指定截图区域,其中,坐标原点在屏幕左上角,具体写法如下图所示


x1,y1,x2,y2

随后将图片保存至桌面

~/Desktop/capture.png

cd 进入tesseract目录,如果版本和我不一致,可以用

brew info tesseract

查看当前详细路径

tesseract 默认可以识别英文,中文需要安装额外的语言包,如果你愿意继续倒腾可以自行了解更复杂的用法,建议大家可以先用英文的软件界面来作尝试,例如我就用来识别达芬奇的界面

按照最基本的用法,输入一张图片,输出一个txt到桌面,这里我们不需要写“.txt”

tesseract input.png output

最后cat获取txt文本内容,传递到下一步

至于为什么分四行,主要为了每一步都可以有文件生成,可以不断尝试

设定变量值

直接点击新建变量,并取一个名字,随后我们可以在窗口下方看到已经有一个变量可用


随后新建邮件信息


收件人需要为 ifttt 指定的邮件输入邮箱,这里我们写的主题就是接下来要推送到手机上的内容

#号后为一个tag,不同的tag在ifttt里可以激活不同的功能,例如这里我先写一个 #MediaManagement 我希望将这个功能用在达芬奇的媒体管理上

随后可以从左侧的变量栏,拖放一些你觉得有用的系统变量来帮助你更好地丰富推送内容

当然别忘了将上一步生成的自定义变量放上去


邮件准备好了,最后就是一组必要动作


暂停决定了你每次发送的间隔,循环就更不用说啦,次数大家看情况就行


> 配置ifttt


差点忘了最关键的 ifttt 的配置方式,不然提取到了信息给谁呢

官网注册登录,右上角头像选择 create ,随后点击This前面巨大的加号


我们可以看到 ifttt 支持非常多的服务,搜索筛选 “email”,并选取


点击进入 trigger 的选择区域,我们最好选择带 tag 的 trigger,当然这里其实已经写得很清楚用法了


输入我们刚刚想好的 MediaManagement 作为 tag,完成 trigger 的设置

重复类似的操作

再次点击That前的加号,选择 Notifications 作为 action


选择左边的简单的推送提醒方式即可


详细设置中,已经识别到了 trigger 为 email ,默认就是将邮件标题作为推送消息。这里你还可以写点别的作为提示用语

最后点击 finish 即可


初次使用 ifttt 的 email 服务时

会要求你绑定你的邮箱

不然 ifttt 也不知道这个邮件对应的是谁哦

当然我已经设置好很久了就没法帮大家截图啦


> 调试


最后我们就算基本搭建好了这套 workflow

点击 automator 右上角的 运行 就能跑起来啦


顺利的话将按以下步骤执行

screencapture 在 -R 指定的区域截取我们想要监视的文本区域

tesseract 将该图片中的文本识别出并保存到txt

cat 获取txt内容并传递给下一步

设定变量的值 获得txt中的文本作为你的自定义变量

发送带tag邮件至 trigger@applet.ifttt.com

ifttt收到你绑定的邮箱后,识别到特定的tag,触发推送服务

手机端收到推送消息

值得注意的是,我们监视的区域应尽量先选择一个较小的范围,最好就一句话,例如一些进度条的状态之类。因为对于tesseract而言还需要一些进一步的优化,针对不同的字体、背景、文本颜色、字号等等,这些大家有条件的可以深入了解一番;但是默认状态下识别一行字是没什么问题的

新建邮件信息 记得选择 ifttt 绑定好的发件人,这需要事先在系统邮件中登录哦。

在 automator 中保存了工作流程,下次再执行打开编辑即可

以上方式适用于任何屏幕上看得见的文字内容,可谓非常暴力惹


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容