Uit Hack42
Ga naar: navigatie, zoeken
Regel 52: Regel 52:
 
# Scriptje om een Growl notify te krijgen bij openen (en sluiten) van de space
 
# Scriptje om een Growl notify te krijgen bij openen (en sluiten) van de space
 
# jvhaarst, 13/2/2011 8h47
 
# jvhaarst, 13/2/2011 8h47
 +
# Aangepast door Deckardt
 +
# Aangepast jvhaarst 13/2/2011 15h03
 +
# Aangepast jvhaarst 13/2/2011 21h20 (datum van statuswijziging toegevoegd)
 +
# Aangepast jvhaarst 13/2/2011 21h50 (datum van statuswijziging uit state.time)
 
# Nodig:
 
# Nodig:
 
# bash
 
# bash
Regel 58: Regel 62:
 
# growlnotify (in extras directory van de Growl dmg)
 
# growlnotify (in extras directory van de Growl dmg)
 
# plaatje van https://hack42.nl/wiki/index.php/Huisstijl
 
# plaatje van https://hack42.nl/wiki/index.php/Huisstijl
 
+
# Start debugging from here
 +
#set -o xtrace
 +
#set -o verbose
 
# variabelen
 
# variabelen
 
DEBUG=false
 
DEBUG=false
 
OLDSTATE="closed"
 
OLDSTATE="closed"
IMAGE="~jvhaarst/bin/code/42/Hack42.png"
+
IMAGE=~jvhaarst/bin/code/42/Hack42_white.png
  
# Oneindige loop
+
# Oneindige loop, iedere 60 sec draait ie
while true;  
+
while TRUE; do
do
+
# check op state, ignore 404's, but returm error state
# check op state
+
CURRENTSTATE=`curl -f -s http://hack42.nl/spacestate/state`
CURRENTSTATE=`curl -s http://hack42.nl/spacestate/state`
+
CURL_ERROR=$?
 
# debug
 
# debug
if $DEBUG;then echo $CURRENTSTATE;fi
+
$DEBUG && echo $CURRENTSTATE
 +
 
 
# check op verandering
 
# check op verandering
if [ "$CURRENTSTATE" != "$OLDSTATE" ]
+
if [[ "$CURRENTSTATE" != "$OLDSTATE" && $CURL_ERROR -eq 0 ]];then
then
+
# Haal tijd van verandering op
if [ "$CURRENTSTATE" == "open" ]
+
TIME=`curl -s http://hack42.nl/spacestate/state.time`
then
+
# Growl de state !
growlnotify -s -m '#42 is open! ('`date "+%R"`')' --image $IMAGE
+
growlnotify -s -m "#42 is $CURRENTSTATE! ("$TIME")" --image $IMAGE
else
+
# De huidige is de oude, zodat bij we een nieuwe state dat merken (lekker cryptisch, niet ?)
growlnotify -s -m '#42 is closed! ('`date "+%R"`')' --image $IMAGE
 
fi
 
 
OLDSTATE=$CURRENTSTATE
 
OLDSTATE=$CURRENTSTATE
 
fi
 
fi
sleep 60;
+
sleep 60
 
done
 
done
 
</pre>
 
</pre>

Versie van 7 mrt 2011 21:40

Project: SpaceStateSwitch
Schroefje24.png
Schroefje24.png
Schroefje24.png
Schroefje24.png
SpaceStateSwitch Picture.jpg

SpaceStateSwitch

Naam SpaceStateSwitch
Door RickDeckardt
Status Afgerond
Madskillz madhacks
Doel / Omschrijving
Een coole schakelaar die de spacestate twittert/irc/etc met rudimentaire api
Alle Projecten - Project Toevoegen
File:SpaceStateSwitch_Picture.jpg noez

Hardware

De SpaceStateSwitch is een tweepolige maakschakelaar die gekoppeld is aan de tweede ethernetpoort van een Soekris accesspoint. Sluiten van de schakelaar verbindt tx+/rx+ en tx-/rx-, waardoor eth1 de link up detecteert.

Software

Het Access Point draait linux, hierop draait cron en die draait iedere minuut een script genaamd statecheck.sh Die kijkt met ethtool of eth1 link heeft.

Pseudocode van het statecheck.sh script:

IF connection_state_eth1 eq connected AND laststate eq closed;
  curl http://user@pass:host/spacestate/setstate.php?state=open
  IF curl_success; set laststate open
 
IF connection_state_eth1 eq disconnected AND laststate eq open;
  curl http://user@pass:host/spacestate/setstate.php?state=closed
  IF curl_success; set laststate closed

'API'-mogelijkheid voor externe apps

Tweets

De koppeling naar twitter wordt vanuit het setstate.php script gedaan: Het phpscript twittert de spacestate op @hack42 en past de volgende lokale files aan: - http://hack42.nl/spacestate/index.html

Koppeling naar IRC

Op irc://irc.hack42.nl/#hack42 draait een gozerbot met rss-feed plugin Een van de rss-feeds die hij volgt is die van http;//twitter.com/hack42, elke minuut kijkt hij naar nieuwe tweets van hack42 en bij een nieuwe tweet blaft hij deze het irckanaal in.

XSS in je eigen webpagina!

Plak deze code in je webpagina voor de hack42 spacestate-bar

<iframe width="390" height="50" scrolling="no" style="border: none;" src="https://hack42.nl/spacestate/"></iframe>

Growlnotifier door jvhaarst

Knippen en plakken naar hack42notify.sh

#!/bin/bash
# Scriptje om een Growl notify te krijgen bij openen (en sluiten) van de space
# jvhaarst, 13/2/2011 8h47
# Aangepast door Deckardt
# Aangepast jvhaarst 13/2/2011 15h03
# Aangepast jvhaarst 13/2/2011 21h20 (datum van statuswijziging toegevoegd)
# Aangepast jvhaarst 13/2/2011 21h50 (datum van statuswijziging uit state.time)
# Nodig:
# bash
# curl
# Growl (http://growl.info/)
# growlnotify (in extras directory van de Growl dmg)
# plaatje van https://hack42.nl/wiki/index.php/Huisstijl
# Start debugging from here
#set -o xtrace
#set -o verbose
# variabelen
DEBUG=false
OLDSTATE="closed"
IMAGE=~jvhaarst/bin/code/42/Hack42_white.png

# Oneindige loop, iedere 60 sec draait ie
while TRUE; do
	# check op state, ignore 404's, but returm error state
	CURRENTSTATE=`curl -f -s http://hack42.nl/spacestate/state`
	CURL_ERROR=$?
	# debug
	$DEBUG && echo $CURRENTSTATE

	# check op verandering
	if [[ "$CURRENTSTATE" != "$OLDSTATE" && $CURL_ERROR -eq 0 ]];then
		# Haal tijd van verandering op
		TIME=`curl -s http://hack42.nl/spacestate/state.time`
		# Growl de state !
		growlnotify -s -m "#42 is $CURRENTSTATE! ("$TIME")" --image $IMAGE
		# De huidige is de oude, zodat bij we een nieuwe state dat merken (lekker cryptisch, niet ?)
		OLDSTATE=$CURRENTSTATE
	fi
	sleep 60
done

Opties

Het doorverbinden van tx+/rx+ en tx-/rx- kan ook met een tweepolig maakrelais. Dit kan gestuurd worden met een handmatige (enkelpolige) schakelaar, gekoppeld met de ruimteverlichting, een toegangssysteem of bewegingsmelders.