From ee8e89cb14dcb1d8db71f03c727f09852759869f Mon Sep 17 00:00:00 2001 From: Leon Date: Wed, 23 Jun 2021 19:07:36 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=9Acode.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Conf/Qinglong/code.sh | 225 +++++++++++++++++++++ Conf/Qinglong/{ => expired}/task_before.sh | 0 2 files changed, 225 insertions(+) create mode 100644 Conf/Qinglong/code.sh rename Conf/Qinglong/{ => expired}/task_before.sh (100%) diff --git a/Conf/Qinglong/code.sh b/Conf/Qinglong/code.sh new file mode 100644 index 0000000..7a4b0f6 --- /dev/null +++ b/Conf/Qinglong/code.sh @@ -0,0 +1,225 @@ +#!/usr/bin/env bash + +## 导入通用变量与函数 +dir_shell=/ql/shell +. $dir_shell/share.sh + +env_name=( + FRUITSHARECODES + PETSHARECODES + PLANT_BEAN_SHARECODES + DREAM_FACTORY_SHARE_CODES + DDFACTORY_SHARECODES + JDZZ_SHARECODES + JDJOY_SHARECODES + JXNC_SHARECODES + BOOKSHOP_SHARECODES + JD_CASH_SHARECODES + JDSGMH_SHARECODES + JDCFD_SHARECODES + JDHEALTH_SHARECODES +) +var_name=( + ForOtherFruit + ForOtherPet + ForOtherBean + ForOtherDreamFactory + ForOtherJdFactory + ForOtherJdzz + ForOtherJoy + ForOtherJxnc + ForOtherBookShop + ForOtherCash + ForOtherSgmh + ForOtherCfd + ForOtherHealth +) + +name_js=( + chinnkarahoi_jd_scripts_jd_fruit + chinnkarahoi_jd_scripts_jd_pet + chinnkarahoi_jd_scripts_jd_plantBean + chinnkarahoi_jd_scripts_jd_dreamFactory + chinnkarahoi_jd_scripts_jd_jdfactory + chinnkarahoi_jd_scripts_jd_jdzz + chinnkarahoi_jd_scripts_jd_crazy_joy + chinnkarahoi_jd_scripts_jd_jxnc + chinnkarahoi_jd_scripts_jd_bookshop + chinnkarahoi_jd_scripts_jd_cash + chinnkarahoi_jd_scripts_jd_sgmh + chinnkarahoi_jd_scripts_jd_cfd + chinnkarahoi_jd_scripts_jd_health +) + +name_config=( + Fruit + Pet + Bean + DreamFactory + JdFactory + Jdzz + Joy + Jxnc + BookShop + Cash + Sgmh + Cfd + Health +) + +name_chinese=( + 东东农场 + 东东萌宠 + 京东种豆得豆 + 京喜工厂 + 东东工厂 + 京东赚赚 + crazyJoy任务 + 京喜农场 + 口袋书店 + 签到领现金 + 闪购盲盒 + 京喜财富岛 + 东东健康社区 +) + +gen_pt_pin_array() { + local envs=$(eval echo "\$JD_COOKIE") + local array=($(echo $envs | sed 's/&/ /g')) + local tmp1 tmp2 i pt_pin_temp + for i in "${!array[@]}"; do + pt_pin_temp=$(echo ${array[i]} | perl -pe "{s|.*pt_pin=([^; ]+)(?=;?).*|\1|; s|%|\\\x|g}") + [[ $pt_pin_temp == *\\x* ]] && pt_pin[i]=$(printf $pt_pin_temp) || pt_pin[i]=$pt_pin_temp + done +} + +export_codes_sub() { + local task_name=$1 + local config_name=$2 + local chinese_name=$3 + local config_name_my=My$config_name + local config_name_for_other=ForOther$config_name + local i j k m n pt_pin_in_log code tmp_grep tmp_my_code tmp_for_other user_num random_num_list + if cd $dir_log/$task_name &>/dev/null && [[ $(ls) ]]; then + ## 寻找所有互助码以及对应的pt_pin + i=0 + pt_pin_in_log=() + code=() + pt_pin_and_code=$(ls -r *.log | xargs awk -v var="的$chinese_name好友互助码" 'BEGIN{FS="[( )】]+"; OFS="&"} $3~var {print $2,$4}') + for line in $pt_pin_and_code; do + pt_pin_in_log[i]=$(echo $line | awk -F "&" '{print $1}') + code[i]=$(echo $line | awk -F "&" '{print $2}') + let i++ + done + + ## 输出My系列变量 + if [[ ${#code[*]} -gt 0 ]]; then + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + tmp_my_code="" + j=$((m + 1)) + for ((n = 0; n < ${#code[*]}; n++)); do + if [[ ${pt_pin[m]} == ${pt_pin_in_log[n]} ]]; then + tmp_my_code=${code[n]} + break + fi + done + echo "$config_name_my$j='$tmp_my_code'" + done + else + echo "## 从日志中未找到任何互助码" + fi + + ## 输出ForOther系列变量 + if [[ ${#code[*]} -gt 0 ]]; then + echo + case $HelpType in + 0) ## 全部一致 + tmp_for_other="" + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + j=$((m + 1)) + tmp_for_other="$tmp_for_other@\${$config_name_my$j}" + done + echo "${config_name_for_other}1=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + for ((m = 1; m < ${#pt_pin[*]}; m++)); do + j=$((m + 1)) + echo "$config_name_for_other$j=\"\${${config_name_for_other}1}\"" + done + ;; + + 1) ## 均等助力 + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + tmp_for_other="" + j=$((m + 1)) + for ((n = $m; n < $(($user_sum + $m)); n++)); do + [[ $m -eq $n ]] && continue + if [[ $((n + 1)) -le $user_sum ]]; then + k=$((n + 1)) + else + k=$((n + 1 - $user_sum)) + fi + tmp_for_other="$tmp_for_other@\${$config_name_my$k}" + done + echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + done + ;; + + 2) ## 本套脚本内账号间随机顺序助力 + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + tmp_for_other="" + random_num_list=$(seq $user_sum | sort -R) + j=$((m + 1)) + for n in $random_num_list; do + [[ $j -eq $n ]] && continue + tmp_for_other="$tmp_for_other@\${$config_name_my$n}" + done + echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + done + ;; + + *) ## 按编号优先 + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + tmp_for_other="" + j=$((m + 1)) + for ((n = 0; n < ${#pt_pin[*]}; n++)); do + [[ $m -eq $n ]] && continue + k=$((n + 1)) + tmp_for_other="$tmp_for_other@\${$config_name_my$k}" + done + echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + done + ;; + esac + fi + else + echo "## 未运行过 $task_name.js 脚本,未产生日志" + fi +} + +export_all_codes() { + gen_pt_pin_array + echo -e "\n# 从日志提取互助码,编号和配置文件中Cookie编号完全对应,如果为空就是所有日志中都没有。\n\n# 即使某个MyXxx变量未赋值,也可以将其变量名填在ForOtherXxx中,jtask脚本会自动过滤空值。\n" + echo -n "# 你选择的互助码模板为:" + case $HelpType in + 0) + echo "所有账号助力码全部一致。" + ;; + 1) + echo "所有账号机会均等助力。" + ;; + 2) + echo "本套脚本内账号间随机顺序助力。" + ;; + *) + echo "按账号编号优先。" + ;; + esac + for ((i = 0; i < ${#name_js[*]}; i++)); do + echo -e "\n## ${name_chinese[i]}:" + export_codes_sub "${name_js[i]}" "${name_config[i]}" "${name_chinese[i]}" + done +} + +log_time=$(date "+%Y-%m-%d-%H-%M-%S") +log_path="$dir_code/$log_time.log" +make_dir "$dir_code" +export_all_codes | perl -pe "{s|京东种豆|种豆|; s|crazyJoy任务|疯狂的JOY|}" | tee $log_path \ No newline at end of file diff --git a/Conf/Qinglong/task_before.sh b/Conf/Qinglong/expired/task_before.sh similarity index 100% rename from Conf/Qinglong/task_before.sh rename to Conf/Qinglong/expired/task_before.sh