侧边栏壁纸
博主头像
Elltor

用心发现生活,积极面对工作、事,坚持每天让自己进步一点。

  • 累计撰写 169 篇文章
  • 累计创建 1 个标签
  • 累计收到 12 条评论
标签搜索

目 录CONTENT

文章目录

Shell|批量获取力扣做题量工具

Elltor
2022-01-09 / 0 评论 / 0 点赞 / 465 阅读 / 1,299 字 / 正在检测是否收录...

这是一个批量统计国内版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 

执行效果:

image.png


EOF
0

评论区