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
#!/bin/bash
# Status bar module for Surge download manager
# Shows daemon status on stargate (via tailscale) and active download count
# Left click opens surge TUI connected to stargate
SURGE_HOST="100.74.152.79"
SURGE_PORT="1700"
SURGE_TOKEN="34b6f205-2ed9-4131-8cd7-cc27b0f1b39e"
SURGE_ADDR="$SURGE_HOST:$SURGE_PORT"
case $BLOCK_BUTTON in
1) setsid -f "$TERMINAL" -e surge connect "http://$SURGE_ADDR" --token "$SURGE_TOKEN" --insecure-http ;;
3) notify-send " Surge module" "Surge download manager on stargate
- Left click: open Surge TUI
- Server: $SURGE_ADDR (tailscale)
- Downloads: /mnt/storage/downloads" ;;
6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;;
esac
# Quick API check — get download list from stargate
response=$(curl -sf -m 2 -H "Authorization: Bearer $SURGE_TOKEN" "http://$SURGE_ADDR/list" 2>/dev/null)
if [ $? -ne 0 ]; then
printf " off\n"
exit 0
fi
# Count active downloads (status "downloading" in JSON array)
# Handle null/empty response (no downloads)
if [ "$response" = "null" ] || [ -z "$response" ]; then
printf "\n"
exit 0
fi
active=$(printf '%s' "$response" | grep -oc '"status":"downloading"' 2>/dev/null || echo 0)
if [ "$active" -gt 0 ]; then
printf " %s\n" "${active}dl"
else
printf "\n"
fi