检测某48安卓APP是否更新并提醒

酶和ATP 2021年09月02日 831次浏览

又是一个 shell 脚本的使用,比上一个检测迎新网开启的脚本多了一个保存上一次版本到文件的设定。
为了和 XOX 更好的交流写下了这个脚本。很难想象口袋 48 这个 APP 的安卓版本在应用内部竟然不能检测更新,只能在刷微博中猛的竟然更新了或是在浏览器中下载安装后才知道是否有最新版本。我写下这个脚本,方便冈峦们下载新版本的口袋 48。

抓包并提取信息

请求头中含有新版本的信息

curl -I https://pother.48.cn/othersystem/api/version/v1/download/fansapp/android

从中提取出链接。

curl -I https://pother.48.cn/othersystem/api/version/v1/download/fansapp/android | grep Location
#Location: http://download.48.cn/fansapp/pocket48_v6.2.1_b21080802_20210808_01.apk

再使用 cut 来获取最新构建的日期。学习一下用法。

cut -d'符号' -f第几段

我们需要的是 b21080802 这一段,它在 '_与_ '之间,数一数是第四段,所以只需要cut -d'_' -f3

curl -I https://pother.48.cn/othersystem/api/version/v1/download/fansapp/android | grep Location | cut -d'_' -f3

获取下载链接同理.

curl -I https://pother.48.cn/othersystem/api/version/v1/download/fansapp/android | grep Location | cut -d' ' -f2

保存数据

我尝试使用 cat 来储存我们的数据,复习一下。

cat > 你的文件名.txt << END_TEXT
文件内容
END_TEXT

当然 echo 也可以。

echo 文件内容 > 你的文件名.txt

判断是否更新

if [ "$now" != "$old" ]

then

echo '没更新!'

#那就更新old

cat > pocket48.txt << END_TEXT

$now

END_TEXT

else

echo '更新了!'

curl https://YourAPImsg=Pocket48+$now

#然后更新old

cat > pocket48.txt << END_TEXT

$now

END_TEXT

fi

最终代码

如果你想改变文件的位置,只需要把 pcoket48.txt 改成你想要它存在的位置,如/root/123.txt。

old=`cat pocket48.txt`
echo "$old"
now=$(curl -I https://pother.48.cn/othersystem/api/version/v1/download/fansapp/android | grep Location | cut -d'_' -f3 )
link=$(curl -I https://pother.48.cn/othersystem/api/version/v1/download/fansapp/android | grep Location | cut -d' ' -f2 )
now=$now
echo "$now"
if [ "$now" == "$old" ]
then
    echo '没更新!'
    #那就更新old
    cat > pocket48.txt << END_TEXT
$now
END_TEXT
else
    echo '更新了!'
    curl -L -G --data-urlencode msg=口袋48已更新$link "https://YourAPI"
    #然后更新old
    cat > pocket48.txt << END_TEXT
$now
END_TEXT
fi