惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
Intezer
C
Cyber Attacks, Cyber Crime and Cyber Security
The Register - Security
The Register - Security
量子位
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
MyScale Blog
MyScale Blog
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
Jina AI
Jina AI
博客园 - 【当耐特】
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
宝玉的分享
宝玉的分享
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
有赞技术团队
有赞技术团队
T
Tor Project blog
H
Hacker News: Front Page
A
Arctic Wolf
NISL@THU
NISL@THU
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
V
V2EX
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
I
InfoQ
D
Docker
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42

梓言堂 - Yuk's Blog

使用Obsidian优雅地写Hugo博客文章 魔改PaperMod主题和博客改动 Android 提取boot.img 并安装Magisk Android抓包和中间人攻击实现HTTP数据拦截篡改 从Wordpress迁移到Hexo,我都做了些什么 Caddy搭建Typecho并用脚本监控重启 Sony Xperia XZ1(G8342)强刷笔记 Android软件数据备份以及管理优化 记一次使用Crontab的错误排查 以更低的价格购买和续费域名 使用AirtestIDE和iOS-Tagent实现iOS端自动化测试 Python虚拟环境大杂烩
脚本助手:云手机上跑脚本的好伙伴
Yuk · 2022-12-18 · via 梓言堂 - Yuk's Blog

写在前面

书接上篇文章的刷初始,即使自己写了脚本简化了工作量,但是这游戏爆率实在难顶,一个好开局遥遥无期,凑巧在群里看到一些云手机里已经提供了对应的脚本,于是租了几个来刷一刷试试,效果确实好很多,效率也翻倍了。

可是一个新的需求出现了,当脚本卡住或刷出满足设定要求的时候会自动停下,我想要第一时间知道,而不是自己手动隔一段时间去查看其状态。

实现需求很简单,隔一段时间截图比对就行,通知就用最实用的发邮件。

基于 PyAndroidControl 这个项目俺写了ScriptAssistan【脚本助手】这个app, 点击下载

服务端我这边设置的是每五分钟检测一次,抽空扔Github上,到时候也可以自行搭建

图标长这样

架构设计

简单做了个图,大概如下图所示,基本大架构没怎么变。 主要新增了些Server端的处理逻辑,安卓端规范POST请求以及权限使用的优化。

架构图

使用方法

制作了个gif以便于直观展示,悬浮窗控制监控是否开启,软件需要root权限。

软件第一栏填写服务端地址,可以直接用我的http://sa.yuk7.com,每五分钟检测一次。 第二栏填写该设备标示,用于在邮件提醒中多设备区分。 第三栏填写通知邮箱,第一栏如果用我提供的则会用inform # yuk7.com(#>>@) 发送提醒邮件,不要屏蔽即可。

邮件提醒效果展示

邮件提醒

开发札记

广为流传的错误代码

Python中实现图像对比发现很多都是用 这篇博客中的方法 核心代码如下:

from PIL import Image
from PIL import ImageChops 
image_one = Image.open(path_one)
image_two = Image.open(path_two)
diff = ImageChops.difference(image_one, image_two)

然而这广为抄袭到处转载的代码,实际上是错误的,大部分情况下不管怎么判断都会认定是相同的一张图,需要改成:

...
image_one = Image.open(path_one).convert('RGB') 
image_two = Image.open(path_two).convert('RGB')
...

类似的 Stackoverflow也有讨论,大概是原方法是通过有无像素来判断是否为同一张图。而并非判断像素颜色。

PS:Google这简中搜索质量属实不行,这几个月内容农场仍在泛滥,简中一搜一大堆XX知识网在首页,这里分享一篇专门介绍和应对内容农场的文章 清理「内容农场」,还你清爽的 Google 中文搜索体验

Google对简中确实缺少重视,搜索用英文体验更好,麻了,以后试试英文写写博客?笑。

变量命名再也不纠结

CODELF主页上的图

CODELF 这个网站可以让你查询单词来看到GitHub上同行们都是怎么命名的,挺有意思。

Ubuntu部署Flask WSGI

参考 Flask+Gunicorn+Gevent+Supervisor+Nginx生产环境部署 这里只简单提及一些关键点,日后会专门写一篇详细的

如果pip安装Gevent时编译失败,则安装以下组件即可

sudo apt-get install python3 python-dev python3-dev \
     build-essential libssl-dev libffi-dev \
     libxml2-dev libxslt1-dev zlib1g-dev \

这里WSGI用的是Gunicorn和Gevent的组合 使用Supervisor管理进程

# /etc/supervisor/conf.d/ScriptAssistant.conf
[program:ScriptAssistant]
command=/home/ubuntu/ScriptAssistant/venv/bin/gunicorn -w 4 -b 127.0.0.1:2333 -k gevent wsgi:app
directory=/home/ubuntu/ScriptAssistant/
autorestart = true
startsecs = 5
startretries = 3
user = root
nodaemon = false

配置nginx开机自启

sudo systemctl enable nginx

添加每天零点删除screenshots文件夹脚本clean_screenshots.sh

# ~/ScriptAssistant/clean_screenshots.sh
find . -type d -name "screenshots" -exec rm -rf {} \;
chmod u+x ./clean_screenshots.sh    # 配置可执行
crontab -e
0 0 * * *  ~/ScriptAssistant/clean_screenshots.sh > /dev/null 2>&1 # 每天零点执行