Skip to content

Instantly share code, notes, and snippets.

@moxuse
Created December 11, 2012 08:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moxuse/4256745 to your computer and use it in GitHub Desktop.
Save moxuse/4256745 to your computer and use it in GitHub Desktop.
Auto sensor value speaker of cosm.com feed 87638 (Circuit Lab Environmental Sensors)
(
t = Task ({
inf.do ({
var dataList, en_subject, jp_subject;
dataList = Array.new;
en_subject = "";
jp_subject = "";
x = DOMDocument.new;
x.parseXML( "curl --request GET \ --header \"X-ApiKey: APIKEY\" \ http://api.cosm.com/v2/feeds/87638.xml".unixCmdGetStdOut; );
m = x.getElementsByTagName("data");
m.do({arg item;
var dataDict;
var child;
dataDict = Dictionary.new;
v = item.getAttribute("id");
dataDict.add( \title -> v );
child = item.getChildNodes;
child.do({arg ch;
if ( "current_value" == ch.getTagName , {
dataDict.add( \value -> ch.getText );
});
if ( "unit" == ch.getTagName , {
dataDict.add( \unit -> ch.getText );
});
});
dataList = dataList.add( dataDict );
});
dataList.do({arg ls;
en_subject = en_subject ++ " Now " ++ ls.at( \title ) ++ " is " ++ ls.at(\value) ++ ls.at(\unit) ++ ".";
jp_subject = jp_subject ++ "ただいまの " ++ ls.at(\title) ++ " わ " ++ ls.at(\value) ++ ls.at(\unit) ++ "です。";
});
("say hello this is circuit lab internet radio. " ++ en_subject ++ "." ).unixCmd;
25.0.wait;
("say -v kyoko こんにちは、こちらはサーキットラボインターネットラジオです。" ++ jp_subject ++ "。" ).unixCmd;
35.0.wait;
})
});
)
t.play;
t.stop;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment