Add Gaja to the list of computers
This commit is contained in:
19
off.sh
19
off.sh
@ -20,6 +20,24 @@ gabi_check()
|
|||||||
doas loginctl terminate-user gabi
|
doas loginctl terminate-user gabi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gaja_check()
|
||||||
|
{
|
||||||
|
ping -c 1 -W 1 192.168.1.122 2>&1 >/dev/null || { echo "Gaja's PC is unreachable."; return; }
|
||||||
|
|
||||||
|
# Check if Gaja has any sessions
|
||||||
|
sshpass -p Nagaja ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -F /dev/null gaja@192.168.1.122 \
|
||||||
|
"loginctl list-sessions --no-pager 2>/dev/null | grep -q gaja" 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Gaja is not online."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Terminate all of Gaja's sessions (SSH drops = success)
|
||||||
|
sshpass -p Nagaja ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -F /dev/null gaja@192.168.1.122 \
|
||||||
|
"loginctl terminate-user gaja" 2>/dev/null
|
||||||
|
echo "Gaja's PC: logged out."
|
||||||
|
}
|
||||||
|
|
||||||
S=$(date -d "$TIME_START" +%s)
|
S=$(date -d "$TIME_START" +%s)
|
||||||
T=$(date -d "$TIME_STOP" +%s)
|
T=$(date -d "$TIME_STOP" +%s)
|
||||||
C=$(date +%s)
|
C=$(date +%s)
|
||||||
@ -32,6 +50,7 @@ then
|
|||||||
else
|
else
|
||||||
echo "ACTIVE: Executing for the next $((T - C)) seconds."
|
echo "ACTIVE: Executing for the next $((T - C)) seconds."
|
||||||
gabi_check
|
gabi_check
|
||||||
|
gaja_check
|
||||||
tv_check
|
tv_check
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
17
server.py
17
server.py
@ -51,13 +51,26 @@ def parse_output(text: str) -> list[dict]:
|
|||||||
|
|
||||||
# User checks
|
# User checks
|
||||||
if "Gabi is not online" in line:
|
if "Gabi is not online" in line:
|
||||||
actions.append({"icon": "👤", "title": "Gabi's PC", "detail": "Not logged in — no action needed"})
|
actions.append({"icon": "💻", "title": "Gabi's PC", "detail": "Not logged in — no action needed"})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if "terminate-user gabi" in line or "terminated" in line.lower():
|
m = re.match(r"terminate-user gabi\b", line)
|
||||||
|
if m or "session terminated" in line.lower():
|
||||||
actions.append({"icon": "💻", "title": "Gabi's PC", "detail": "Session terminated"})
|
actions.append({"icon": "💻", "title": "Gabi's PC", "detail": "Session terminated"})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if "Gaja is not online" in line:
|
||||||
|
actions.append({"icon": "💻", "title": "Gaja's PC", "detail": "Not logged in — no action needed"})
|
||||||
|
continue
|
||||||
|
|
||||||
|
if "Gaja's PC is unreachable" in line:
|
||||||
|
actions.append({"icon": "❌", "title": "Gaja's PC", "detail": "Unreachable (ping failed)"})
|
||||||
|
continue
|
||||||
|
|
||||||
|
if "Gaja's PC: logged out" in line:
|
||||||
|
actions.append({"icon": "💻", "title": "Gaja's PC", "detail": "Logged out"})
|
||||||
|
continue
|
||||||
|
|
||||||
# If no structured items found, fallback to raw
|
# If no structured items found, fallback to raw
|
||||||
if not actions:
|
if not actions:
|
||||||
actions.append({"icon": "📜", "title": "Output", "detail": text.strip() or "(empty)"})
|
actions.append({"icon": "📜", "title": "Output", "detail": text.strip() or "(empty)"})
|
||||||
|
|||||||
Reference in New Issue
Block a user