Shell脚本(8)——手机扫码写入智能表格

wils
wils

创作者俱乐部成员

今天要实现的是:手机扫描二维码、条形码,结果自动写入智能表格。

首先,在wps里新建智能表格,打开,效率|高级开发|AirScript脚本编辑器,新建一个脚本,内容如下,意思是把收到的content写入下一行。

点击脚本令牌,复制粘贴到记事本。

点击左侧三个点,复制脚本webhook,粘贴到记事本。

💡

let r = ActiveSheet.UsedRange.RowEnd + 1

ActiveSheet.Range("A" + r).Value2 = Context.argv.content

然后,在手机里安装Binary Eye以及termux两个应用,这些应用可以在F-Droid里找到

在Binary Eye里,选中,设置|首选项|转发扫描结果,转发URL设置为http://127.0.0.1:8080/cgi-bin/eye.cgi,请求类型为POST application/json。

在termux里,先安装busybox,命令是pkg install busybox

然后新建文件夹,mkdir cgi-bin

然后建立脚本,其中xxx、yyy、zzz分别来自上面记事本里记录的webhook和令牌:

💡

cat > ./cgi-bin/eye.cgi <<EOF

#!/data/data/com.termux/files/usr/bin/sh

echo -e 'Content-type: text/plain; charset=utf-8\n'

sed 's/.*/{"Context":{"argv":&}}/' | curl -s https://www.kdocs.cn/api/v3/ide/file/xxx/script/yyy/sync_task -H 'AirScript-Token: zzz' -d @-

EOF

最后,手机里的termux启动httpd服务,busybox httpd -p 8080

打开Binary Eye,扫码的结果就会自动写入智能表格的下一行

简单来说,原理如下:

  • 智能表格支持通过http请求执行脚本,脚本是把请求里的content写入下一行

  • Binary Eye这个扫码app支持把扫描的结果发送到指定URL

  • 两者之间,缺少的就是智能表的请求里要包含webhook和令牌信息

  • 于是,手机上可以用busybox里的httpd简单的开个cgi服务,把Binary Eye发送的请求加上webhook和令牌信息,再发送到智能表,这样这条路就通了

另外可以看出,busybox这个小工具,在国产Linux上自带,windows里有个600K的独立exe,手机可以通过termux获得,所写的脚本在这些平台基本是通用的。

cgi有太多方法可以实现,这不是最好的,但它好在足够小、脚本最够短,算是唾手可得的简单工具。

广东省
浏览 418
1
8
分享
8 +1
6
1 +1
全部评论 6
 
158----0298
学习了,大哥!奇思妙想!是不是用手机联合脚本可以做很多事情啊!
· 重庆
回复
wils
wils

创作者俱乐部成员

是的,手机装上termux,如果里面再用anlinux装个debian发行版,基本上和电脑写脚本没有区别,甚至powershell也可以装在debian里
· 海南省
回复
 
uibpqds
da
· 河南省
回复
 
王瑞
金山文档小程序,直接扫码就录入了,pc在线都同步,你所说的短小脱手可得的实现,实则兜了一大圈,脱离了手机扫码所要求的便携性
· 江苏省
回复
wils
wils

创作者俱乐部成员

能详细说下怎么找这个小程序吗,多谢,听起来不错
· 海南省
回复