Shell 批量获取力扣做题量工具
这是一个批量统计国内版 LeetCode 做题量的工具,写这个小工具的起因是我们实验室准备每周统计大家 leetcode 的做题量,我们实验室十几个人,如果一人一个人看,太费时间了,作为高效程序员这不是我们做事的风格,于此就有了这个小工具。对于平常的事务我一贯对待的风格是:能规范化的尽量使其流程化,能流程化的尽量使其自动化。追逐效率工具能解放我们更多的时间,这没什么可说的。
脚本代码
#!/bin/bash
payload_pre='{
"operationName": "userPublicProfile",
"variables": {
"userSlug": "'
payload_post='"
},
"query": "query userPublicProfile($userSlug: String!) {\n userProfilePublicProfile(userSlug: $userSlug) {\n username\n submissionProgress {\n totalSubmissions\n waSubmissions\n acSubmissions\n reSubmissions\n otherSubmissions\n acTotal\n questionTotal\n __typename\n }\n }\n}\n"
}'
# 获取信息的leetcode用户
# 两数组元素需保持相同, shell数组格式: arr=( "a" "b" "c"),三个元素的数组arr
account_arr=( "hun-tun-5" "mrlin-rh" ) # 个人主页用户名 https://leetcode-cn.com/u/freezer/
name_arr=( "张三" "李四" )
# 时间
date
#${#array[@]}获取数组长度
for (( i=0;i<${#account_arr[@]};i++ )) do
account="${account_arr[i]}"
ret=`curl -s -L -X POST 'https://leetcode-cn.com/graphql/' -H 'Content-Type: application/json' --data "$payload_pre$account$payload_post"`
count=`echo $ret | grep -Eo '"acTotal":\d+' | grep -Eo '\d+'`
name="${name_arr[i]}"
echo "$name,$count"
done
使用方法
将脚本复制到文件leetcodeutil.sh
,直接运行脚本,无需参数。
sh ./leetcodeutil.sh
或
bash ./leetcodeutil.sh
执行效果: