itgoyo / 500Days-Of-Github

⭐ 瞎JB折腾Mac/Linux/Windows过程中遇到的所有问题和解决方式 ⭐
https://itgoyo.github.io/500Days-Of-Github
138 stars 13 forks source link

安装青龙qinglong面板 #266

Open itgoyo opened 2 years ago

itgoyo commented 2 years ago

青龙

项目地址:https://github.com/whyour/qinglong

1、Docker环境

官网:https://www.docker.com

安装完成之后,所有系统(win linux mac),但凡是终端docker可以输入内容即表示安装成功。

2、安装青龙面板qinglong

docker run -dit \

  -v $PWD/ql_d/config:/ql/config \

  -v $PWD/ql_d/log:/ql/log \

  -v $PWD/ql_d/db:/ql/db \

  -v $PWD/ql_d/repo:/ql/repo \

  -v $PWD/ql_d/raw:/ql/raw \

  -v $PWD/ql_d/scripts:/ql/scripts \

  -v $PWD/ql_d/jbot:/ql/jbot \

  -p 5704:5700 \

  --name qinglong_dd \

  --hostname qinglong_dd \

  --restart unless-stopped \

  whyour/qinglong:latest

其中ql_d名字你随意,还有5704随意在可用范围即可,我只是突出这两个地方是可以根据自定义修改的。如果你修改5704,那么以后主页的端口就根据你修改的端口来访问,默认端口就是5700

3、获取京东的cookie

操作步骤:

  1. 电脑浏览器打开京东网址: https://m.jd.com/

  2. 按键盘 F12 键打开开发者工具,然后点下图中的图标,切换到触屏版界面浏览

  3. 此时是未登录状态 (建议使用手机短信验证码登录),如已登录请忽略此步骤

    • 使用手机短信验证码登录 (此方式 cookie 有效时长大概 31 天,其他登录方式比较短)
  4. 登录后,选择 Network, 有很多链接的话点箭头这里清空下

  5. 然后再点我的,链接就变少了

  6. 点第一个链接 (log.gif) 进去,找到 Cookie,复制出来,新建一个 TXT 文本临时保存一下,下面需要用到

  7. 第六步复制出来的 cookie 比较长,我们只需要 pt_pin=xxxx;pt_key=xxxx; 部分的内容即可 (注:英文引号;是必要的)。可以用下面的脚本,在 Chrome 浏览器按 F12,console 里面输入下面脚本按 enter 回车键

    1. var CV = '单引号里面放第六步拿到的完整cookie';
    2. var CookieValue = CV.match(/pt_pin=.+?;/) + CV.match(/pt_key=.+?;/);
    3. copy(CookieValue);
  8. 这样子整理出关键的的 cookie 已经在你的剪贴板上, 可直接粘贴

  9. 如果需获取第二个京东账号的 cookie, 不要在刚才的浏览器上面退出登录账号一 (否则刚才获取的 cookie 会失效), 需另外换一个浏览器 (Chrome 浏览器 ctr+shift+n 打开无痕模式也行), 然后继续按上面步骤操作即可

获取通知pushplus(最简单)

http://pushplus.hxtrip.com/ 微信扫码登录之后,拿到属于自己的token

itgoyo commented 2 years ago

原教程地址:https://www.aisue.net/know/145.html

1. 搭建青龙面板

docker pull whyour/qinglong:latest

2. 部署青龙面板

  1. docker run -dit \
  2. -v $PWD/ql/config:/ql/config \
  3. -v $PWD/ql/log:/ql/log \
  4. -v $PWD/ql/db:/ql/db \
  5. -v $PWD/ql/repo:/ql/repo \
  6. -v $PWD/ql/raw:/ql/raw \
  7. -v $PWD/ql/scripts:/ql/scripts \
  8. -v $PWD/ql/jbot:/ql/jbot \
  9. -v $PWD/ql/ninja:/ql/ninja \
  10. -p 6831:5700 \
  11. -p 3826:5701 \
  12. --name ql \
  13. --hostname ql \
  14. --restart unless-stopped \
  15. whyour/qinglong:latest

3. 访问青龙面板

宝塔面板 + 多个青龙面板 + Ninja + 拉取脚本全方位教程一步到位【2021-09-26 日更新】

5. 脚本

  • 定时规则 0 0 0 * ,每天凌晨会自动更新库(如果有新的话) 【怨念集合仓库】 ql repo https://hub.fastgit.org/yuannian1112/jd_scripts.git "jd_|jx_|getJDCookie" "activity|backUp" "^jd[^_]|USER|utils" 【zoopanda(动物园)】ql repo https://github.com/shufflewzc/zoo.git "zoo" 【混沌】ql repo https://github.com/whyour/hundun.git "quanx" "tokens|caiyun|didi|donate|fold|Env" 【温某某】ql repo https://ghproxy.com/https://github.com/shufflewzc/Wenmoux.git 【龙珠】ql repo https://github.com/longzhuzhu/nianyu.git "qx" “main” 【更新 lxk 仓库】ql repo https://ghproxy.com/https://github.com/chinnkarahoi/jd_scripts.git "jd_|jx_|getJDCookie" "activity|backUp" "^jd[^_]|USER" 【Faker 集合仓库】国内服务器命令 ql repo https://ghproxy.com/https://github.com/shufflewzc/faker2.git "jd_|jx_|gua_|jddj_|getJDCookie" "activity|backUp" "^jd[^_]|USER|ZooFaker_Necklace.js|JDJRValidator_Pure|sign_graphics_validate" 【ccwav 大佬】ql repo https://github.com/ccwav/QLScript.git "jd_" "" "ql.js|sendNotify.js" 【zero205 大佬】ql repo https://github.com/zero205/JD_tencent_scf.git "jd_|jx_|getJDCookie" "backUp|icon" "^jd[^_]|USER|sendNotify|sign_graphics_validate|JDJR""main" 【Annyoo2021 lxk 最终版及搬运整理】 ql repo https://github.com/Annyoo2021/scripts.git "jd_|jx_|long_|getJDCookie" "activity|backUp" "^jd[^_]|USER|ZooFaker_Necklace|JDJRValidator_Pure|JDJRValidator" "main" 以上命令执行完成之后,搜索:禁用重复任务,将重复任务禁止掉然后删除;其他常用命令名称:京东日资产变动通知、获取互助码、京东资产变动、京东检测 Cookie 是否有效
  • 命令 “京东试用” 需在环境变量中添加变量: 开启京东试用 JD_TRY:true 低于此价格不试用 JD_TRY_PRICE:499(自己随便写,单位元) 超过次申请人数不试用 JD_TRY_APPLYNUMFILTER:9999999 其他变量去青龙面板的 “脚本管理” 内搜索:zero205_JD_tencent_scf_jd_try(不一定是这个,可以去任务里搜京东试用,然后查看其命令)
  • 命令 “种豆得豆” 变量:PLANT_BEAN_SHARECODES
  • 命令 “东东萌宠” 变量:PETSHARECODES
  • 命令 “京东手机狂欢城” 变量:shareCode 同步上游各个大佬的仓库 相当于合集 青龙面板拉取常用脚本 (JD 签到) 目前在维护的脚本更新

5.1 其他签到脚本

其他签到类参考:各种签到合集(值得买、b 站、网易云音乐、爱奇艺、腾讯视频、微博等签到)

6. 内部互助

1.  `#!/usr/bin/env bash`

3.  `## 导入通用变量与函数`
4.  `dir_shell=/ql/shell`
5.  `. $dir_shell/share.sh`

7.  `env_name=(`
8.  `FRUITSHARECODES`
9.  `PETSHARECODES`
10.  `PLANT_BEAN_SHARECODES`
11.  `DREAM_FACTORY_SHARE_CODES`
12.  `DDFACTORY_SHARECODES`
13.  `JDZZ_SHARECODES`
14.  `JDJOY_SHARECODES`
15.  `JXNC_SHARECODES`
16.  `BOOKSHOP_SHARECODES`
17.  `JD_CASH_SHARECODES`
18.  `JDSGMH_SHARECODES`
19.  `JDCFD_SHARECODES`
20.  `JDHEALTH_SHARECODES`
21.  `)`
22.  `var_name=(`
23.  `ForOtherFruit`
24.  `ForOtherPet`
25.  `ForOtherBean`
26.  `ForOtherDreamFactory`
27.  `ForOtherJdFactory`
28.  `ForOtherJdzz`
29.  `ForOtherJoy`
30.  `ForOtherJxnc`
31.  `ForOtherBookShop`
32.  `ForOtherCash`
33.  `ForOtherSgmh`
34.  `ForOtherCfd`
35.  `ForOtherHealth`
36.  `)`

38.  `name_js=(`
39.  `yuannian1112_jd_scripts_jd_fruit`
40.  `yuannian1112_jd_scripts_jd_pet`
41.  `yuannian1112_jd_scripts_jd_plantBean`
42.  `yuannian1112_jd_scripts_jd_dreamFactory`
43.  `yuannian1112_jd_scripts_jd_jdfactory`
44.  `yuannian1112_jd_scripts_jd_jdzz`
45.  `yuannian1112_jd_scripts_jd_crazy_joy`
46.  `yuannian1112_jd_scripts_jd_jxnc`
47.  `yuannian1112_jd_scripts_jd_bookshop`
48.  `yuannian1112_jd_scripts_jd_cash`
49.  `yuannian1112_jd_scripts_jd_sgmh`
50.  `yuannian1112_jd_scripts_jd_cfd`
51.  `yuannian1112_jd_scripts_jd_health`
52.  `)`

54.  `name_config=(`
55.  `Fruit`
56.  `Pet`
57.  `Bean`
58.  `DreamFactory`
59.  `JdFactory`
60.  `Jdzz`
61.  `Joy`
62.  `Jxnc`
63.  `BookShop`
64.  `Cash`
65.  `Sgmh`
66.  `Cfd`
67.  `Health`
68.  `)`

70.  `name_chinese=(`
71.  `东东农场`
72.  `东东萌宠`
73.  `京东种豆得豆`
74.  `京喜工厂`
75.  `东东工厂`
76.  `京东赚赚`
77.  `crazyJoy任务`
78.  `京喜农场`
79.  `口袋书店`
80.  `签到领现金`
81.  `闪购盲盒`
82.  `京喜财富岛`
83.  `东东健康社区`
84.  `)`

86.  `gen_pt_pin_array()  {`
87.  `local envs=$(eval echo "\$JD_COOKIE")`
88.  `local array=($(echo $envs | sed 's/&/ /g'))`
89.  `user_sum="${#array[*]}"`
90.  `local tmp1 tmp2 i pt_pin_temp`
91.  `for i in  "${!array[@]}";  do`
92.  `pt_pin_temp=$(echo ${array[i]}  | perl -pe "{s|.*pt_pin=([^; ]+)(?=;?).*|\1|; s|%|\\\x|g}")`
93.  `[[ $pt_pin_temp ==  *\\x*  ]]  && pt_pin[i]=$(printf $pt_pin_temp)  || pt_pin[i]=$pt_pin_temp`
94.  `done`
95.  `}`

97.  `export_codes_sub()  {`
98.  `local task_name=$1`
99.  `local config_name=$2`
100.  `local chinese_name=$3`
101.  `local config_name_my=My$config_name`
102.  `local config_name_for_other=ForOther$config_name`
103.  `local i j k m n pt_pin_in_log code tmp_grep tmp_my_code tmp_for_other user_num random_num_list`
104.  `if cd $dir_log/$task_name &>/dev/null  &&  [[ $(ls)  ]];  then`
105.  `## 寻找所有互助码以及对应的pt_pin`
106.  `i=0`
107.  `pt_pin_in_log=()`
108.  `code=()`
109.  `pt_pin_and_code=$(ls -r *.log | xargs awk -v var="的$chinese_name好友互助码"  'BEGIN{FS="[( )】]+"; OFS="&"} $3~var {print $2,$4}')`
110.  `for line in $pt_pin_and_code;  do`
111.  `pt_pin_in_log[i]=$(echo $line | awk -F "&"  '{print $1}')`
112.  `code[i]=$(echo $line | awk -F "&"  '{print $2}')`
113.  `let i++`
114.  `done`

116.  `## 输出My系列变量`
117.  `if  [[ ${#code[*]}  -gt 0  ]];  then`
118.  `for  ((m =  0; m < ${#pt_pin[*]}; m++));  do`
119.  `tmp_my_code=""`
120.  `j=$((m +  1))`
121.  `for  ((n =  0; n < ${#code[*]}; n++));  do`
122.  `if  [[ ${pt_pin[m]}  == ${pt_pin_in_log[n]}  ]];  then`
123.  `tmp_my_code=${code[n]}`
124.  `break`
125.  `fi`
126.  `done`
127.  `echo "$config_name_my$j='$tmp_my_code'"`
128.  `done`
129.  `else`
130.  `echo "## 从日志中未找到任何互助码"`
131.  `fi`

133.  `## 输出ForOther系列变量`
134.  `if  [[ ${#code[*]}  -gt 0  ]];  then`
135.  `echo`
136.  `case $HelpType in`
137.  `0)  ## 全部一致`
138.  `tmp_for_other=""`
139.  `for  ((m =  0; m < ${#pt_pin[*]}; m++));  do`
140.  `j=$((m +  1))`
141.  `tmp_for_other="$tmp_for_other@\${$config_name_my$j}"`
142.  `done`
143.  `echo "${config_name_for_other}1=\"$tmp_for_other\""  | perl -pe "s|($config_name_for_other\d+=\")@|\1|"`
144.  `for  ((m =  1; m < ${#pt_pin[*]}; m++));  do`
145.  `j=$((m +  1))`
146.  `echo "$config_name_for_other$j=\"\${${config_name_for_other}1}\""`
147.  `done`
148.  `;;`

150.  `1)  ## 均等助力`
151.  `for  ((m =  0; m < ${#pt_pin[*]}; m++));  do`
152.  `tmp_for_other=""`
153.  `j=$((m +  1))`
154.  `for  ((n = $m; n < $(($user_sum + $m)); n++));  do`
155.  `[[ $m -eq $n ]]  &&  continue`
156.  `if  [[ $((n +  1))  -le $user_sum ]];  then`
157.  `k=$((n +  1))`
158.  `else`
159.  `k=$((n +  1  - $user_sum))`
160.  `fi`
161.  `tmp_for_other="$tmp_for_other@\${$config_name_my$k}"`
162.  `done`
163.  `echo "$config_name_for_other$j=\"$tmp_for_other\""  | perl -pe "s|($config_name_for_other\d+=\")@|\1|"`
164.  `done`
165.  `;;`

167.  `2)  ## 本套脚本内账号间随机顺序助力`
168.  `for  ((m =  0; m < ${#pt_pin[*]}; m++));  do`
169.  `tmp_for_other=""`
170.  `random_num_list=$(seq $user_sum | sort -R)`
171.  `j=$((m +  1))`
172.  `for n in $random_num_list;  do`
173.  `[[ $j -eq $n ]]  &&  continue`
174.  `tmp_for_other="$tmp_for_other@\${$config_name_my$n}"`
175.  `done`
176.  `echo "$config_name_for_other$j=\"$tmp_for_other\""  | perl -pe "s|($config_name_for_other\d+=\")@|\1|"`
177.  `done`
178.  `;;`

180.  `*)  ## 按编号优先`
181.  `for  ((m =  0; m < ${#pt_pin[*]}; m++));  do`
182.  `tmp_for_other=""`
183.  `j=$((m +  1))`
184.  `for  ((n =  0; n < ${#pt_pin[*]}; n++));  do`
185.  `[[ $m -eq $n ]]  &&  continue`
186.  `k=$((n +  1))`
187.  `tmp_for_other="$tmp_for_other@\${$config_name_my$k}"`
188.  `done`
189.  `echo "$config_name_for_other$j=\"$tmp_for_other\""  | perl -pe "s|($config_name_for_other\d+=\")@|\1|"`
190.  `done`
191.  `;;`
192.  `esac`
193.  `fi`
194.  `else`
195.  `echo "## 未运行过 $task_name.js 脚本,未产生日志"`
196.  `fi`
197.  `}`

199.  `export_all_codes()  {`
200.  `gen_pt_pin_array`
201.  `echo -e "\n# 从日志提取互助码,如果为空就是所有日志中都没有。\n"`
202.  `echo -n "# 你选择的互助码模板为:"`
203.  `case $HelpType in`
204.  `0)`
205.  `echo "所有账号助力码全部一致。"`
206.  `;;`
207.  `1)`
208.  `echo "所有账号机会均等助力。"`
209.  `;;`
210.  `2)`
211.  `echo "本套脚本内账号间随机顺序助力。"`
212.  `;;`
213.  `*)`
214.  `echo "按账号编号优先。"`
215.  `;;`
216.  `esac`
217.  `for  ((i =  0; i < ${#name_js[*]}; i++));  do`
218.  `echo -e "\n## ${name_chinese[i]}:"`
219.  `export_codes_sub "${name_js[i]}"  "${name_config[i]}"  "${name_chinese[i]}"`
220.  `done`
221.  `}`

223.  `export_all_codes | perl -pe "{s|京东种豆|种豆|; s|crazyJoy任务|疯狂的JOY|}"`

225.  `combine_sub()  {`
226.  `local what_combine=$1`
227.  `local combined_all=""`
228.  `local tmp1 tmp2`
229.  `local envs=$(eval echo "\$JD_COOKIE")`
230.  `local array=($(echo $envs | sed 's/&/ /g'))`
231.  `local user_sum=${#array[*]}`
232.  `for  ((i =  1; i <= $user_sum; i++));  do`
233.  `local tmp1=$what_combine$i`
234.  `local tmp2=${!tmp1}`
235.  `combined_all="$combined_all&$tmp2"`
236.  `done`
237.  `echo $combined_all | perl -pe "{s|^&||; s|^@+||; s|&@|&|g; s|@+&|&|g; s|@+|@|g; s|@+$||}"`
238.  `}`

240.  `## 正常依次运行时,组合所有账号的Cookie与互助码`
241.  `combine_all()  {`
242.  `echo -e "\n## 互助变量:"`
243.  `for  ((i =  0; i < ${#env_name[*]}; i++));  do`
244.  `result=$(combine_sub ${var_name[i]})`
245.  `if  [[ $result ]];  then`
246.  `echo "export ${env_name[i]}=\"$result\""`
247.  `fi`
248.  `done`
249.  `}`

251.  `if  [[ $(ls $dir_code)  ]];  then`
252.  `latest_log=$(ls -r $dir_code | head -1)`
253.  `. $dir_code/$latest_log`
254.  `combine_all`
255.  `fi`

7. 编译及安装 xdd

cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

8. 禁用重复任务可自定义保留的库

注意:禁用前把之前你禁用的任务批量全部启用 注意:禁用前把之前你禁用的任务批量全部启用 注意:禁用前把之前你禁用的任务批量全部启用

确定你想要保留的库例如 faker 的库 则修改 禁用重复任务可自定义保留的库.py 这个文件 修改第 13 行代码 substr=”shufflewzc_faker2” 其他同理

然后把这个 py 文件放到 /ql/scripts 目录

然后创建任务

名称:禁用重复任务可自定义保留的库 命令:task 禁用重复任务可自定义保留的库.py 定时规则:25 0 0 *

创建定时任务运行这个 py

9. 互助码

下载 code.sh 文件 上传到 /ql/scripts

在青龙面板中添加自动任务,名称助力码 (也可以自定义) task code.sh

个别不助力的情况下在 task_before.sh 中添加

  1. if [[ $(ls $dir_code) ]]; then
  2. latest_log=$(ls -r $dir_code | head -1)
  3. . $dir_code/$latest_log
  4. fi

青龙 2.8.3 多容器➕xdd-plus 扫码搭建教程!

10. 青龙部署美团脚本

10.1 设置定时任务

ql repo https://ghproxy.com/https://github.com/fuguiKz/meituan-shenquan.git

10.2 进入 docker 并分次执行命令

docker exec -it qinglong bash cd scripts python3 fuguiKz_meituan-shenquan_meituanshenquanterminal.py 或者 python fuguiKz_meituan-shenquan_meituanshenquanterminal.py

10.3 接着跟着命令跑完就好了

token 之类的参数可以去 github 地址上找;获取经纬度可以用高德地图 API