blob: a712a1e6a2654bd0d2a12566ea9cce43b9296171 (
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
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
|
#!/bin/sh
ROFI_CMD="rofi -dmenu -theme-str listview{enabled:false;} -p"
LOCAL_STORAGE=~/.local/share/toggle
V2RAYA_URL="http://localhost:2017"
set_token() {
login=$(echo "" | $ROFI_CMD "Enter login > ")
password=$(echo "" | $ROFI_CMD "Enter password > " -theme-str 'entry {enabled: false;}')
response=$(curl -s -X POST \
"${V2RAYA_URL}/api/login" \
-d "{\"username\": \"${login}\", \"password\": \"${password}\"}")
code=$(echo $response | jq -r ".code")
echo "${response}" | jq ".data.token" -r > "${LOCAL_STORAGE}/token"
}
get_status() {
token=$1
response=$(curl -s -X GET \
"${V2RAYA_URL}/api/touch" \
-H "Authorization: ${token}")
echo $response | jq ".data.running" -r
}
toggle() {
token=$1
method=$2
response=$(curl -s -X ${method} \
"${V2RAYA_URL}/api/v2ray" \
-H "Authorization: ${token}")
code=$(echo $response | jq ".code" -r)
echo $response | jq ".data.running" -r
}
if [[ ! -d "${LOCAL_STORAGE}" ]]; then
mkdir "${LOCAL_STORAGE}"
fi
if [[ ! -e "${LOCAL_STORAGE}/token" ]]; then
touch "${LOCAL_STORAGE}/token"
fi
TOKEN=$(cat "${LOCAL_STORAGE}/token")
if [[ -z "${TOKEN}" ]]; then
set_token
TOKEN=$(cat "${LOCAL_STORAGE}/token")
fi
STATUS=$(get_status $TOKEN)
if [[ $STATUS == "true" ]]; then
NEW_STATUS=$(toggle $TOKEN DELETE)
else
NEW_STATUS=$(toggle $TOKEN POST)
fi
if [[ $NEW_STATUS == "null" ]]; then
set_token
fi
notify-send v2rayA "running: ${NEW_STATUS}"
|