about summary refs log tree commit diff
path: root/sh/dyafk
blob: caf1c665df7d248ea62a52c8942e4d1cb5d0f3f0 (plain)
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
#!/bin/sh
# DouYu AFK

# maybe another way: https://open.douyu.com/source

pid=
while :; do
	# credit: MIT licensed https://github.com/DIYgod/RSSHub/blob/master/lib/routes/douyu/room.ts
	if [ "$(curl -s https://www.douyu.com/betard/9640128 | jq '.room.show_status')" -eq 1 ]; then
		if ! pidof -q firefox; then
			firefox --headless --profile "$HOME/.mozilla/firefox/dyafk" https://www.douyu.com/9640128 &
			# assign previous background process to pid variable
			pid=$!
		fi
	else
		if [ "$pid" ]; then
			# seems need to only SIGTERM kill the parent firefox process, else firefox will prompt me firefox closed unexpectedly warning which cause firefox not actually open the url
			# https://www.reddit.com/r/firefox/comments/fq1mhi/kill_firefox_gracefully_via_terminal_headless/
			# firefox seems now can handle SIGTERM on linux? https://bugzilla.mozilla.org/show_bug.cgi?id=1837907
			kill "$pid"
			pid=
		fi
	fi
	# open.douyu.com AUP for api request seems very high, about 6k/min per api? see https://open.douyu.com/source/api/5
	# although I don't use open.douyu.com api but can be used as a reference, so I think 1 request per minute is ok
	sleep 60
done