-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathboxHelper.sh
656 lines (628 loc) · 22.7 KB
/
boxHelper.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
#!/bin/bash
#=================================================
# Description: BoxHelper
# Version: 1.0.0
# Author: SpereShelde
#=================================================
#获取PID
check_pid(){
PID=`ps -ef| grep "BoxHelper"| grep -v grep| grep -v ".sh"| grep -v "init.d"| grep -v "service"| awk '{print $2}'`
}
install_boxhelper(){
echo -e "开始下载 BoxHelper ..."
rm -rf BoxHelper
mkdir BoxHelper
wget --no-check-certificate -qO BoxHelper.jar https://raw.githubusercontent.com/SpereShelde/BoxHelper/master/BoxHelper.jar
mv BoxHelper.jar BoxHelper
touch BoxHelper/config.json
mkdir BoxHelper/cookies
jdk_status=$(java -version 2>&1)
if [[ ${jdk_status/"1.8"//} == $jdk_status ]]
then
echo "没有安装 JDK 1.8, 开始安装 ..."
wget --no-check-certificate -qO java.sh https://raw.githubusercontent.com/SpereShelde/Scripts/master/java.sh
chmod +x java.sh
mv java.sh BoxHelper
bash BoxHelper/java.sh
fi
echo -e "开始编辑 BoxHelper 配置文件 ..."
add_config
start_boxhelper
source ~/.bashrc
}
add_config(){
echo
echo -e "为了简化操作,请提前查看Wiki: https://github.com/SpereShelde/BoxHelper/wiki"
echo
echo -e " 输入 Deluge 的 WebUI 地址:"
read -e -p " (默认: 不设置 Deluge):" de_url
if [ ! -n "$de_url" ] ;then
echo "不设置 Deluge ..."
else
echo -e " 输入 Deluge WebUI 的登录密码:"
read -e -p " (默认: 取消):" de_passwd
if [ ! -n "$de_passwd" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 Deluge 管辖的种子体积和的上限,GB:"
read -e -p " (默认: 取消):" de_total
if [ ! -n "$de_total" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入超出上述上限后的删种策略,slow,add,small,large,ratio:"
read -e -p " (默认: large):" de_action
[[ -z "$de_action" ]] && de_action="large"
echo -e " 请输入 BoxHelper 按照上述策略删除的种子个数:"
read -e -p " (默认: 2):" de_num
[[ -z "$de_num" ]] && de_num=2
fi
fi
fi
echo
echo -e " 输入 qBittorrent 的 WebUI 地址:"
read -e -p " (默认: 不设置 qBittorrent):" qb_url
if [ ! -n "$qb_url" ] ;then
echo "不设置 qBittorrent ..."
else
echo -e " 输入 qBittorrent WebUI 的账号和密码,以-分隔,如admin-admin:"
read -e -p " (默认: 取消):" qb_sid
if [ ! -n "$qb_sid" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 qBittorrent 中 BoxHelper 下载的种子体积和的上限,GB:"
read -e -p " (默认: 取消):" qb_total
if [ ! -n "$qb_total" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入超出上述上限后的删种策略,slow,add,complete,active,small,large,ratio:"
read -e -p " (默认: large):" qb_action
[[ -z "$qb_action" ]] && qb_action="large"
echo -e " 请输入 BoxHelper 按照上述策略删除的种子个数:"
read -e -p " (默认: 2):" qb_num
[[ -z "$qb_num" ]] && qb_num=2
fi
fi
fi
echo
echo -e " 输入 Transmission 的 WebUI 地址:"
read -e -p " (默认: 不设置 Transmission):" tr_url
if [ ! -n "$tr_url" ] ;then
echo "不设置 Transmission ..."
else
echo -e " 输入 Transmission WebUI 的账号和密码,以:分隔,如admin:admin:"
read -e -p " (默认: 取消):" tr_sid
if [ ! -n "$tr_sid" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 Transmission 中 BoxHelper 下载的种子体积和的上限,GB:"
read -e -p " (默认: 取消):" tr_total
if [ ! -n "$tr_total" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入超出上述上限后的删种策略,slow,add,complete,active,small,large,ratio:"
read -e -p " (默认: large):" tr_action
[[ -z "$tr_action" ]] && tr_action="large"
echo -e " 请输入 BoxHelper 按照上述策略删除的种子个数:"
read -e -p " (默认: 2):" tr_num
[[ -z "$tr_num" ]] && tr_num=2
fi
fi
fi
echo -e " 请输入 BoxHelper 管辖的所有客户端内最大同时下载种子个数:"
read -e -p " (默认: 5):" down_amount
[[ -z "$down_amount" ]] && down_amount=5
echo -e " 请输入 BoxHelper 监听周期, 单位为秒:"
read -e -p " (默认: 20):" cycle
[[ -z "$cycle" ]] && cycle=20
add_urls
page_len=${#page[*]}
let page_len--
i=0
while [ $i -lt $page_len ]
do
if [ $i == 0 ]
then
urls="[\"${page[$i]}\", ${lower[$i]}, ${higher[$i]}, \"${cli[$i]}\", ${download[$i]}, ${upload[$i]}, ${load[$i]}]"
else
urls=$urls", [\"${page[$i]}\", ${lower[$i]}, ${higher[$i]}, \"${cli[$i]}\", ${download[$i]}, ${upload[$i]}, ${load[$i]}]"
fi
let i++
done
echo "{">BoxHelper/config.json
if [ -n "$de_url" ] ;then
echo "\"de_config\":[\"$de_url\", \"$de_passwd\", $de_total, \"$de_action\", $de_num],">>BoxHelper/config.json
fi
if [ -n "$qb_url" ] ;then
echo "\"qb_config\":[\"$qb_url\", \"$qb_sid\", $qb_total, \"$qb_action\", $qb_num],">>BoxHelper/config.json
fi
if [ -n "$tr_url" ] ;then
echo "\"tr_config\":[\"$tr_url\", \"$tr_sid\", $tr_total, \"$tr_action\", $tr_num],">>BoxHelper/config.json
fi
echo "\"url_size_speed_cli\":[">>BoxHelper/config.json
echo " $urls">>BoxHelper/config.json
echo "],">>BoxHelper/config.json
echo "\"total_downloading_amount\":$down_amount,">>BoxHelper/config.json
echo "\"cycle\":$cycle">>BoxHelper/config.json
echo "}">>BoxHelper/config.json
}
add_urls(){
n=0
while true
do
echo -e " 请输入要监听的种子页面:"
if [ $n == 0 ]
then
read -e -p " (默认: 取消):" page[$n]
[[ -z "${page[$n]}" ]] && echo -e "取消..." && exit 1
else
read -e -p " (默认: 停止添加):" page[$n]
[[ -z "${page[$n]}" ]] && echo -e "停止添加监控页面..." && break
fi
domain[$n]=$(echo ${page[$n]} | awk -F'[/:]' '{print $4}')
if [ -e BoxHelper/cookies/${domain[$n]}.json ]; then
echo " 存有此站点的Cookie, 是否修改原Cookie?[y/n]:"
read -e edit
if [[ "${edit}" == [Yy] ]]
then
echo " 请以Json格式输入此站点的Cookie, 无需回车:"
read -e -d "]" -p " (默认: 取消):" cookie
echo "${cookie}]">BoxHelper/cookies/${domain[$n]}.json
fi
else
echo " 请以Json格式输入此站点的Cookie, 无需回车:"
read -e -d "]" -p " (默认: 取消):" cookie
[[ -z "${cookie}]" ]] && echo -e "已取消..." && exit 1
echo "$cookie]">BoxHelper/cookies/${domain[$n]}.json
fi
echo -e " 请输入此页面筛选的种子最小体积, 单位为GB, -1 为不限制:"
read -e -p " (默认: -1):" lower[$n]
[[ -z "${lower[$n]}" ]] && lower[$n]=-1
echo -e " 请输入此页面筛选的种子最大体积, 单位为GB, -1 为不限制:"
read -e -p " (默认: -1):" higher[$n]
[[ -z "${higher[$n]}" ]] && higher[$n]=-1
echo -e " 请输入下载此页面种子使用的客户端,qb,de:"
read -e -p " (默认: qb):" cli[$n]
[[ -z "${cli[$n]}" ]] && cli[$n]="qb"
echo -e " 请输入此页面下载的种子下载限速, 单位为MB/s, -1 为不限制:"
read -e -p " (默认: -1):" download[$n]
[[ -z "${download[$n]}" ]] && download[$n]=-1
echo -e " 请输入此页面下载的种子上传限速, 单位为MB/s, -1 为不限制:"
read -e -p " (默认: -1):" upload[$n]
[[ -z "${upload[$n]}" ]] && upload[$n]=-1
echo -e " 请输入是否加载此页面已存在的 Free 种[y/n]:"
read -e -p " (默认: n):" load[$n]
if [ ! -n "load[$n]" ];then
load[$n]=false
elif [[ "${load[$n]}" == [Yy] ]];then
load[$n]=true
else
load[$n]=false
fi
let n++
done
let n--
}
get_config(){
has_de=$(cat BoxHelper/config.json | jq 'has("de_config")')
has_qb=$(cat BoxHelper/config.json | jq 'has("qb_config")')
has_tr=$(cat BoxHelper/config.json | jq 'has("tr_config")')
if [ $has_de == true ]; then
de_config=$(cat BoxHelper/config.json | jq '.de_config[]')
de_cfg_url=$(echo ${de_config} | awk -F' ' '{print $1}')
de_cfg_passwd=$(echo ${de_config} | awk -F' ' '{print $2}')
de_cfg_total=$(echo ${de_config} | awk -F' ' '{print $3}')
de_cfg_action=$(echo ${de_config} | awk -F' ' '{print $4}')
de_cfg_num=$(echo ${de_config} | awk -F' ' '{print $5}')
fi
if [ $has_qb == true ]; then
qb_config=$(cat BoxHelper/config.json | jq '.qb_config[]')
qb_cfg_url=$(echo ${qb_config} | awk -F' ' '{print $1}')
qb_cfg_passwd=$(echo ${qb_config} | awk -F' ' '{print $2}')
qb_cfg_total=$(echo ${qb_config} | awk -F' ' '{print $3}')
qb_cfg_action=$(echo ${qb_config} | awk -F' ' '{print $4}')
qb_cfg_num=$(echo ${qb_config} | awk -F' ' '{print $5}')
fi
if [ $has_tr == true ]; then
tr_config=$(cat BoxHelper/config.json | jq '.tr_config[]')
tr_cfg_url=$(echo ${tr_config} | awk -F' ' '{print $1}')
tr_cfg_passwd=$(echo ${tr_config} | awk -F' ' '{print $2}')
tr_cfg_total=$(echo ${tr_config} | awk -F' ' '{print $3}')
tr_cfg_action=$(echo ${tr_config} | awk -F' ' '{print $4}')
tr_cfg_num=$(echo ${tr_config} | awk -F' ' '{print $5}')
fi
urls=$(cat BoxHelper/config.json | jq '.url_size_speed_cli[][]')
cycle=$(cat BoxHelper/config.json | jq '.cycle')
amount=$(cat BoxHelper/config.json | jq '.total_downloading_amount')
array=(${urls//'" "'/ })
config_page_num=`echo $urls | grep -o '" "' |wc -l`
let config_page_num++
let config_page_num/=7
}
edit_boxhelper(){
jq_status=$(jq --help)
if [[ -z ${jq_status} ]]; then
echo "准备中 ..."
wget 'https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64'
mv jq-linux64 jq
chmod +x jq
mv jq /bin/
fi
get_config
echo " 当前配置:"
if [ $has_de == true ]; then
echo " Deluge WebUI 地址 : $de_cfg_url"
echo " Deluge WebUI 登录密码 : $de_cfg_passwd"
echo " Deluge 磁盘使用上限 : $de_cfg_total GB"
echo " Deluge 删种策略 : $de_cfg_action"
echo " Deluge 删种个数 : $de_cfg_num 个"
fi
if [ $has_qb == true ]; then
echo " qBittorrent WebUI 地址 : $de_cfg_url"
echo " qBittorrent WebUI 账号密码 : $de_cfg_passwd"
echo " qBittorrent 磁盘使用上限 : $de_cfg_total GB"
echo " qBittorrent 删种策略 : $de_cfg_action"
echo " qBittorrent 删种个数 : $de_cfg_num 个"
fi
if [ $has_tr == true ]; then
echo " Transmission WebUI 地址 : $tr_cfg_url"
echo " Transmission WebUI 账号密码 : $tr_cfg_passwd"
echo " Transmission 磁盘使用上限 : $tr_cfg_total GB"
echo " Transmission 删种策略 : $tr_cfg_action"
echo " Transmission 删种个数 : $tr_cfg_num 个"
fi
echo " BoxHelper 的最大下载个数 : $amount 个"
echo " BoxHelper 的监听周期 : $cycle 秒"
i=0
len=${#array[*]}
while [ $i -lt $len ]
do
echo " BoxHelper 监听页面 $[i/7+1] : 监听 ${array[$i]} 内 大于 ${array[$[i+1]]} GB 且小于 ${array[$[i+2]]} GB 的种子, 使用 ${array[$[i+3]]} 客户端下载,限制下载速度为 ${array[$[i+4]]} MB/s 上传速度为 ${array[$[i+5]]} MB/s, 是否加载之前的 Free 种:${array[$[i+6]]}"
let i+=7
done
echo -e "
${Green_font_prefix} 1.${Font_color_suffix} 修改 BoxHelper 使用的客户端
${Green_font_prefix} 2.${Font_color_suffix} 修改 BoxHelper 的监听周期
${Green_font_prefix} 3.${Font_color_suffix} 修改 BoxHelper 的最大下载个数
${Green_font_prefix} 4.${Font_color_suffix} 修改 BoxHelper 的监听页面及相关限制" && echo
read -e -p " 请输入数字 [1-3]:" num
case "$num" in
1)
edit_cli
;;
2)
edit_cycle
;;
3)
edit_amount
;;
4)
edit_urls
;;
*)
echo " 请输入正确数字 [1-4]"
;;
esac
echo
echo -e " 是否重启 BoxHelper 来加载配置 [y/n]:"
read -e -p " (默认: y):" reboot
if [[ "${reboot}" == [Yy] ]]; then restart_boxhelper
else
exit 1
fi
}
edit_amount(){
echo
echo -e " 修改 BoxHelper 的最大下载个数:"
read -e -p " (默认: 取消):" amount
[[ -z "$amount" ]] && echo "已取消..." && exit 1
sed -i 's/\("total_downloading_amount":\).*/\1'"$amount,"'/g' BoxHelper/config.json
}
edit_cli(){
get_config
echo " 当前配置:"
if [ $has_de == true ]; then
echo " Deluge WebUI 地址 : $de_cfg_url"
echo " Deluge WebUI 登录密码 : $de_cfg_passwd"
echo " Deluge 磁盘使用上限 : $de_cfg_total GB"
echo " Deluge 删种策略 : $de_cfg_action"
#--!--#
echo " Deluge 删种个数 : $de_cfg_num 个"
fi
if [ $has_qb == true ]; then
echo " qBittorrent WebUI 地址 : $de_cfg_url"
echo " qBittorrent WebUI 账号密码 : $de_cfg_passwd"
echo " qBittorrent 磁盘使用上限 : $de_cfg_total GB"
echo " qBittorrent 删种策略 : $de_cfg_action"
#--!--#
echo " qBittorrent 删种个数 : $de_cfg_num 个"
fi
if [ $has_tr == true ]; then
echo " Transmission WebUI 地址 : $tr_cfg_url"
echo " Transmission WebUI 账号密码 : $tr_cfg_passwd"
echo " Transmission 磁盘使用上限 : $tr_cfg_total GB"
echo " Transmission 删种策略 : $tr_cfg_action"
echo " Transmission 删种个数 : $tr_cfg_num 个"
fi
echo
if [ $has_de == true ]; then
echo -e " ${Green_font_prefix} 1.${Font_color_suffix} 修改 Deluge 相关配置"
fi
if [ $has_qb == true ]; then
echo -e " ${Green_font_prefix} 2.${Font_color_suffix} 修改 qBittorrent 相关配置"
fi
if [ $has_tr == true ]; then
echo -e " ${Green_font_prefix} 3.${Font_color_suffix} 修改 Transmission 相关配置"
fi
read -e -p " 请输入数字 [1-3]:" num
case "$num" in
1)
edit_de
;;
2)
edit_qb
;;
3)
edit_tr
;;
*)
echo " 请输入正确数字 [1-3]"
;;
esac
}
edit_de(){
echo
echo -e " 输入 Deluge 的 WebUI 地址:"
read -e -p " (默认: 取消):" de_url
if [ ! -n "$de_url" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 Deluge WebUI 的登录密码:"
read -e -p " (默认: 取消):" de_passwd
if [ ! -n "$de_passwd" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 Deluge 管辖的种子体积和的上限,GB:"
read -e -p " (默认: 取消):" de_total
if [ ! -n "$de_total" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入超出上述上限后的删种策略,slow,add,small,large,ratio:"
read -e -p " (默认: large):" de_action
[[ -z "$de_action" ]] && de_action="large"
echo -e " 请输入 BoxHelper 按照上述策略删除的种子个数:"
read -e -p " (默认: 2):" de_num
[[ -z "$de_num" ]] && de_num=2
fi
fi
fi
sed -i 's/\("de_config":\["\).*/\1'"$de_url"\","\"$de_passwd"\","$de_total","\"$de_action"\","$de_num"\],'/g' BoxHelper/config.json
}
edit_qb(){
echo
echo -e " 输入 qBittorrent 的 WebUI 地址:"
read -e -p " (默认: 取消):" qb_url
if [ ! -n "$qb_url" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 qBittorrent WebUI 的账号密码,以-分隔,如admin-admin:"
read -e -p " (默认: 取消):" qb_sid
if [ ! -n "$qb_sid" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 qBittorrent 中 BoxHelper 下载的种子体积和的上限,GB:"
read -e -p " (默认: 取消):" qb_total
if [ ! -n "$qb_total" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入超出上述上限后的删种策略,slow,add,complete,active,small,large,ratio:"
read -e -p " (默认: large):" qb_action
[[ -z "$qb_action" ]] && qb_action="large"
echo -e " 请输入 BoxHelper 按照上述策略删除的种子个数:"
read -e -p " (默认: 2):" qb_num
[[ -z "$qb_num" ]] && qb_num=2
fi
fi
fi
sed -i 's/\("qb_config":\["\).*/\1'"$qb_url"\","\"$qb_sid"\","$qb_total","\"$qb_action"\","$qb_num"\],'/g' BoxHelper/config.json
}
edit_tr(){
echo
echo -e " 输入 Transmission 的 WebUI 地址:"
read -e -p " (默认: 取消):" tr_url
if [ ! -n "$tr_url" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 Transmission WebUI 的账号密码,以:分隔,如admin:admin:"
read -e -p " (默认: 取消):" tr_sid
if [ ! -n "$tr_sid" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入 Transmission 中 BoxHelper 下载的种子体积和的上限,GB:"
read -e -p " (默认: 取消):" tr_total
if [ ! -n "$tr_total" ] ;then
echo "已取消..." && exit 1
else
echo -e " 输入超出上述上限后的删种策略,slow,add,complete,active,small,large,ratio:"
read -e -p " (默认: large):" tr_action
[[ -z "$tr_action" ]] && tr_action="large"
echo -e " 请输入 BoxHelper 按照上述策略删除的种子个数:"
read -e -p " (默认: 2):" tr_num
[[ -z "$tr_num" ]] && tr_num=2
fi
fi
fi
sed -i 's/\("tr_config":\["\).*/\1'"$tr_url"\","\"$tr_passwd"\","$tr_total","\"$tr_action"\","$tr_num"\],'/g' BoxHelper/config.json
}
edit_cycle(){
echo
echo -e " 修改 BoxHelper 的监听周期, 单位是 秒:"
read -e -p " (默认: 取消):" cycle
[[ -z "$cycle" ]] && echo "已取消..." && exit 1
sed -i 's/\("cycle":\).*/\1'"$cycle"'/g' BoxHelper/config.json
}
edit_urls(){
get_config
i=0
len=${#array[*]}
while [ $i -lt $len ]
do
echo " BoxHelper 监听页面 $[i/7+1] : 监听 ${array[$i]} 内 大于 ${array[$[i+1]]} GB 且小于 ${array[$[i+2]]} GB 的种子, 使用 ${array[$[i+3]]} 客户端下载,限制下载速度为 ${array[$[i+4]]} MB/s 上传速度为 ${array[$[i+5]]} MB/s, 是否加载之前的 Free 种:${array[$[i+6]]}"
let i+=7
done
echo && echo -e "
${Green_font_prefix} 1.${Font_color_suffix} 添加 BoxHelper 监控页面
${Green_font_prefix} 2.${Font_color_suffix} 删除 BoxHelper 监控页面" && echo
read -e -p " 请输入数字 [1-2]:" num
case "$num" in
1)
add_url
;;
2)
remove_url
;;
*)
echo "请输入正确数字 [1-2]"
;;
esac
}
add_url(){
echo -e " 请输入要监听的种子页面:"
read -e -p " (默认: 取消):" page
[[ -z "${page}" ]] && echo -e "取消..." && exit 1
domain=$(echo ${page} | awk -F'[/:]' '{print $4}')
if [ -e BoxHelper/cookies/${domain}.json ]; then
echo " 存有此站点的Cookie, 是否修改原Cookie?[y/n]:"
read -e edit
if [[ "${edit}" == [Yy] ]]
then
echo " 请以Json格式输入此站点的Cookie, 无需回车:"
read -e -d "]" -p " (默认: 取消):" cookie
echo "$cookie]">BoxHelper/cookies/${domain}.json
fi
else
echo " 请以Json格式输入此站点的Cookie, 无需回车:"
read -e -d "]" -p " (默认: 取消):" cookie
[[ -z "${cookie}]" ]] && echo -e "已取消..." && exit 1
echo "$cookie]">BoxHelper/cookies/${domain}.json
fi
echo -e " 请输入此页面筛选的种子最小体积, 单位为GB, -1 为不限制:"
read -e -p " (默认: -1):" lower
[[ -z "${lower}" ]] && lower=-1
echo -e " 请输入此页面筛选的种子最大体积, 单位为GB, -1 为不限制:"
read -e -p " (默认: -1):" higher
[[ -z "${higher}" ]] && higher=-1
echo -e " 请输入下载此页面种子使用的客户端,qb,de:"
read -e -p " (默认: qb):" cli
[[ -z "${cli}" ]] && cli="qb"
echo -e " 请输入此页面下载的种子下载限速, 单位为MB/s, -1 为不限制:"
read -e -p " (默认: -1):" download
[[ -z "${download}" ]] && download=-1
echo -e " 请输入此页面下载的种子上传限速, 单位为MB/s, -1 为不限制:"
read -e -p " (默认: -1):" upload
[[ -z "${upload}" ]] && upload=-1
echo -e " 请输入是否加载此页面已存在的 Free 种[y/n]:"
read -e -p " (默认: n):" load
if [ ! -n "load" ];then
load=false
elif [[ "${load}" == [Yy] ]];then
load=true
else
load=false
fi
sed -i '/url_size_speed_cli/a\'\\t\[\""$page"\","$lower","$higher","\"$cli"\","$download","$upload","$load"\],'' BoxHelper/config.json
}
remove_url(){
echo -e " 抱歉,暂时不支持脚本操作,请手动删除 BoxHelper/config.json 中的对应行,注意最后一行不要有逗号"
# echo -e " 请输入要删除的监听页面的 「序号」 :"
# read -e -p " (默认: 取消):" page_num
# [[ -z "${page_num}" ]] && echo -e "已取消..." && exit 1
# if [ $page_num -lt $len ]; then
# let page_num--
# domain=$(echo ${page} | awk -F'[/:]' '{print $4}')
# page=$(echo ${page} | awk -F'[/:]' '{print $5}')
# sed -i "/$domain\/$page/d" BoxHelper/config.json
# else
# echo "不存在这个页面, 取消 ..." && exit 1
# fi
}
uninstall_boxhelper(){
echo "正在关闭 BoxHelper ..."
[[ -z ${PID} ]] && echo -e " BoxHelper 没有运行"
kill -9 ${PID}
echo "正在无残留卸载 BoxHelper ..."
rm -rf BoxHelper
}
update_boxhelper(){
rm -rf BoxHelper/BoxHelper.jar
wget --no-check-certificate -qO BoxHelper.jar https://raw.githubusercontent.com/SpereShelde/BoxHelper/master/BoxHelper.jar
mv BoxHelper.jar BoxHelper
echo "BoxHelper 更新完成 ..."
}
start_boxhelper(){
source ~/.bashrc
cd BoxHelper
java -jar BoxHelper.jar
}
stop_boxhelper(){
echo "正在关闭 BoxHelper ..."
[[ -z ${PID} ]] && echo -e " BoxHelper 没有运行" && exit 1
kill -9 ${PID}
}
restart_boxhelper(){
start_boxhelper
stop_boxhelper
}
#菜单
menu(){
echo
echo " #############################################"
echo " # BoxHelper #"
echo " # Github: https://github.com/SpereShelde #"
echo " # Author: SpereShelde #"
echo " #############################################"
echo -e "
${Green_font_prefix} 0.${Font_color_suffix} 更新 BoxHelper
————————————————————————
${Green_font_prefix} 1.${Font_color_suffix} 安装 BoxHelper
${Green_font_prefix} 2.${Font_color_suffix} 编辑 BoxHelper
${Green_font_prefix} 3.${Font_color_suffix} 卸载 BoxHelper
————————————————————————
${Green_font_prefix} 4.${Font_color_suffix} 启动 BoxHelper
${Green_font_prefix} 5.${Font_color_suffix} 停止 BoxHelper
${Green_font_prefix} 6.${Font_color_suffix} 重启 BoxHelper"
check_pid
if [[ ! -z "${PID}" ]]; then
echo -e " 当前状态: BoxHelper ${Green_font_prefix}已启动${Font_color_suffix}"
else
echo -e " 当前状态: BoxHelper ${Red_font_prefix}未启动${Font_color_suffix}"
fi
echo
read -e -p " 请输入数字 [0-6]:" num
case "$num" in
0)
update_boxhelper
;;
1)
install_boxhelper
;;
2)
edit_boxhelper
;;
3)
uninstall_boxhelper
;;
4)
start_boxhelper
;;
5)
stop_boxhelper
;;
6)
restart_boxhelper
;;
*)
echo "请输入正确数字 [0-6]"
;;
esac
}
menu