| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- // :CATEGORY:Database
- // :NAME:SlPhant
- // :AUTHOR:SLPhant
- // :KEYWORDS:
- // :CREATED:2014-09-24 14:54:34
- // :EDITED:2014-09-24
- // :ID:1050
- // :NUM:1664
- // :REV:1
- // :WORLD:Second Life
- // :DESCRIPTION:
- // A simple external database for SL
- // :CODE:
- // See https://data.sparkfun.com/
- // SLPhant_v1_0.lsl
- // *****************************************************************************************
- // SLPhant v1.0 Header
- // *** Enter Public/Private/Delete Keys below *** //
- string sSLPHANT_PUBLIC_KEY = "7JvgN1NbE5H2JwAvlza0";
- string sSLPHANT_PRIVATE_KEY = "mzqm6g6GNaS0q6D7RrNy";
- // Save your Delete Key here so you never lose it "xxxxxxxxxxxxxxxxxxxx";
- // *** Enter your Field Names below (Case Sensitive!) in SAME ORDER as Phant Returns *** //
- // *** For Example: list lSLPHANT_FIELDNAMES { Id, Temperature, Pressure, Humidity, WindSpeed };
- //list lSLPHANT_FIELDNAMES = [ "avatarname", "id", "regionname" ];
-
- // *** If running your own Phant Server, enter URL below *** //
- string sSLPHANT_BASE_URL = "https://data.sparkfun.com/";
- // SLPhant Data Formats (must begin w/ a period ".")
- string sSLPHANT_FORMAT_CSV = ".csv";
- string sSLPHANT_FORMAT_JSON = ".json";
- string sSLPHANT_FORMAT_SQL = ".sql";
- string sSLPHANT_FORMAT_PSQL = ".psql";
- string sSLPHANT_FORMAT_ATOM = ".atom";
- // string sSLPHANT_FORMAT_xxxx = "."; // Place holder for future formats
- // *****************************************************************************************
- key SLPhant_Clear() {
- // Clear All Data: http://data.sparkfun.com/input/PUBLIC_KEY/clear?private_key=PRIVATE_KEY
- return llHTTPRequest(sSLPHANT_BASE_URL+"input/"+sSLPHANT_PUBLIC_KEY+"/clear?private_key="+sSLPHANT_PRIVATE_KEY, [], "");
- }
- // *****************************************************************************************
- // It is *YOUR* responsibility to have sData in format "Field1=Value1&Field2=Value2..."
- // Fields must be the valid names for YOUR stream.
- // Values must be put thru llEscapeURL(sURL).
- // Name/Value pairs must be separated by "&".
- //
- // *** For example...
- // SLPhant_AddData(
- // "avatarname="+llEscapeURL(llKey2Name(llGetOwner()))+
- // "&id="+llEscapeURL(llGetOwner())+
- // "®ionname="+llEscapeURL(llGetRegionName()));
- key SLPhant_AddData(string sData) {
- // Add Data: http://data.sparkfun.com/input/PUBLIC_KEY?private_key=PRIVATE_KEY&FIELD1=VALUE1&=FIELD2=VALUE2
- return llHTTPRequest(sSLPHANT_BASE_URL+"input/"+sSLPHANT_PUBLIC_KEY+"?private_key="+sSLPHANT_PRIVATE_KEY+"&"+sData, [], "");
- }
- // *****************************************************************************************
- key SLPhant_RequestData(string sFormat) {
- // Get Data: http://data.sparkfun.com/output/PUBLIC_KEY.FORMAT?page=PAGE_NUMBER
- return llHTTPRequest(sSLPHANT_BASE_URL+"output/"+sSLPHANT_PUBLIC_KEY+sFormat, [], "");
- }
- // *****************************************************************************************
- key SLPhant_RequestStats(string sFormat) {
- // Get Stats: http://data.sparkfun.com/output/PUBLIC_KEY/stats.FORMAT
- return llHTTPRequest(sSLPHANT_BASE_URL+"output/"+sSLPHANT_PUBLIC_KEY+"/stats"+sFormat, [], "");
- }
- // *****************************************************************************************
- // *****************************************************************************************
- // *****************************************************************************************
- //
- // Copy everything above this line to your own Program.
- // Then modify the Key Constants to use your own Stream's Keys.
- //
- // *****************************************************************************************
- // *****************************************************************************************
- // *****************************************************************************************
- //
- // Example Program...
- //
- integer iTestNumber = 0;
- key kSLPhantHttpRequest = NULL_KEY;
- default {
- // *****************************************************************************************
- state_entry() {
- iTestNumber = 0;
- llOwnerSay("Test "+(string)iTestNumber+": Clearing Data...");
- kSLPhantHttpRequest = SLPhant_Clear();
- }
- // *****************************************************************************************
- http_response(key kRequestId, integer iStatus, list lMetadata, string sBody) {
- llOwnerSay("http_response("+(string)kRequestId+", "+(string)iStatus+", ["+llList2CSV(lMetadata)+"], "+sBody+")");
- if(kRequestId==kSLPhantHttpRequest) {
- llSleep(1.0); // Phant sometimes messes up if polled too fast.
- if(iTestNumber==0) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Adding Data...");
- kSLPhantHttpRequest = SLPhant_AddData("avatarname="+llEscapeURL(llKey2Name(llGetOwner()))+"&id="+llEscapeURL(llGetOwner())+"®ionname="+llEscapeURL(llGetRegionName()));
- } else if(iTestNumber==1) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Requesting Data in Default Format...");
- kSLPhantHttpRequest = SLPhant_RequestData("");
- } else if(iTestNumber==2) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Requesting Data in "+sSLPHANT_FORMAT_CSV+" Format...");
- kSLPhantHttpRequest = SLPhant_RequestData(sSLPHANT_FORMAT_CSV);
- } else if(iTestNumber==3) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Requesting Data in "+sSLPHANT_FORMAT_JSON+" Format...");
- kSLPhantHttpRequest = SLPhant_RequestData(sSLPHANT_FORMAT_JSON);
- } else if(iTestNumber==4) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Requesting Data in "+sSLPHANT_FORMAT_SQL+" Format...");
- kSLPhantHttpRequest = SLPhant_RequestData(sSLPHANT_FORMAT_SQL);
- } else if(iTestNumber==5) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Requesting Data in "+sSLPHANT_FORMAT_PSQL+" Format...");
- kSLPhantHttpRequest = SLPhant_RequestData(sSLPHANT_FORMAT_PSQL);
- } else if(iTestNumber==6) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Requesting Data in "+sSLPHANT_FORMAT_ATOM+" Format...");
- kSLPhantHttpRequest = SLPhant_RequestData(sSLPHANT_FORMAT_ATOM);
- } else if(iTestNumber==7) {
- iTestNumber++;
- llOwnerSay("Test "+(string)iTestNumber+": Requesting Stats in "+sSLPHANT_FORMAT_JSON+" Format...");
- kSLPhantHttpRequest = SLPhant_RequestStats(sSLPHANT_FORMAT_JSON);
- } else {
- llOwnerSay("Done. You can view your data at "+sSLPHANT_BASE_URL+"streams/"+sSLPHANT_PUBLIC_KEY);
- }
- }
- }
- // *****************************************************************************************
- }
- // *****************************************************************************************
|