REBOL [ Title: "GISMo - Graphical Internet Server Monitor" File: %gismo.r Version: 1.1.0 Author: "Carl Sassenrath" Needs: [view 1.3.1] ] time-out: 5 ; Seconds to wait for the connection (adjust it!) poll-time: 0:10:00 system/schemes/default/timeout: time-out system/schemes/http/timeout: time-out sites: [ ; List of URLs (http or tcp are allowed) http://www.rebol.com http://www.rebol.net http://www.rebol.org http://mail.rebol.net http://www.altme.com ] foreach site sites [ ; Convert any http to tcp on port 80 if find/match site http:// [ insert remove/part site 7 tcp:// append site ":80" ] ] img: make image! [200x40 0.0.0.255] draw img [ pen coal fill-pen linear 0x0 0 44 89 1 1 silver gray coal silver box 8.0 0x0 199x39 ] out: [backeffect [gradient 0x1 black coal]] foreach site sites [ port: make port! site append out compose/deep [ image img (port/host) [check-site face] [browse face/data] with [data: (site)] ] ] append out [ pad 50x0 btn water 100 "Refresh" rate poll-time feel [ engage: func [f a e] [if find [time down] a [check-sites]] ] ] color-face: func [face color] [ face/effect: reduce ['colorize color] show face ] check-site: func [face] [ color-face face gray color-face face either attempt [close open face/data true][green][red] ] check-sites: does [ foreach face out/pane [ if face/style = 'image [check-site face] ] ] out: layout out view/new out check-sites do-events