Newsgroup: it.comp.macintosh
Titolo: [WebSMS] DasboaROTFL

Mi par di capire che il 10.4.7 abbia introdotto delle limitazioni a
Dashboard, in particolare non e' piu' possibile lanciare curl da una
widget per ottenere il contenuto di un URL.
Non trovo altri riscontri, ma se e' cosi', davvero DasboaROTFL!
-- 
Firma in ferie

 widget per ottenere il contenuto di un URL.
Solo quello o lo hanno proprio sandboxato? 
Io non ci ho mai lavorato... hai un XMLHttpRequest disponibile?
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.


Non è che hanno semplicemente modificato qualcosa per via del leak di 
dashcode? che fra l'altro ho sul desktop e non ho ancora capito bene 
come usarlo :-P
Luca

 come usarlo :-P
no no, curl non restituisce proprio piu' niente, ne' effettuando la
richiesta in modo sincrono ne' asincrono.
// Basta provare una:
var oString = widget.system("/usr/bin/curl 
http://www.apple.com
",
   null).outputString;
// Per causare un freeze
-- 
Ma piu' mi insultano piu' mi ricarricano

 Io non ci ho mai lavorato... hai un XMLHttpRequest disponibile?
si', l'unica e' passare da curl a XMLHttpRequest :(
Puoi prendere a modello il codice di Request.js tratto da
PHPQuickReference.widget:
--8<--
/**
 *	Variables
 */
var req = null;
/**
 *   Constants
 */
var REF_START = "<H1",
   REF_END = "<br /><br />",
   USR_START = "<small>User Contributed Notes</small><br />",
   USR_END = "<div class=\"foot\">",
   USR_PREFIX = "<div>",
   PHP_REF_URL = "
http://www.php.net/
",
   PHP_MANUAL_URL = PHP_REF_URL + "manual/";
function sendRequest(callback) {
   var url = PHP_REF_URL + getObj('q').value;
   req = new XMLHttpRequest();
   req.onreadystatechange = callback;
   req.open("GET", url, true);
   req.send(null);
}
function handleResponse() {
   if (req.readyState == 4) {
      var response = "";
      if (req.status == 200) {
         if (responseIsValid(req.responseText)) {
            response = parseResponse(req.responseText);
            showResults(response);
         }
         else {
            error("Term not found.");
         }
      }
      else {
         error("No response from server.");
      }
   }
}
function parseResponse(text) {
   var reference, userNotes;
   reference = text.substring(text.indexOf(REF_START),
text.indexOf(REF_END));
   reference = reference.replace(/href=".*function\.([a-z\-]+)\.php"/gi,
'href="javascript:linkedSearch(\'$1\')"'); // grab reference URLs
   reference = reference.replace(/href="(http:\/\/.*)"/gi,
'href="javascript:goToUrl(\'$1\')"'); // grab external URLs
   reference = reference.replace(/href="(.*\.php(#.+)?)"/gi,
'href="javascript:goToUrl(PHP_MANUAL_URL+\'$1\')"'); // grab internal URLs
   if (text.indexOf(USR_END) != -1) {
      userNotes = USR_PREFIX + text.substring(text.indexOf(USR_START),
text.indexOf(USR_END));
   }
   else {
      userNotes = USR_START + '<div class="note">There are no user
contributed notes for this function.</div>';
   }
   return [reference, userNotes];
}
function responseIsValid(text) {
   return (text) && (text.indexOf(REF_START) != -1) &&
(text.substring(text.indexOf(REF_START), text.indexOf(REF_END)).length >
0);


 si', l'unica e' passare da curl a XMLHttpRequest :(
Beh, se riesci a caricare Prototype diventa anche divertente la
faccenda. Ma non so bene quello di cui parlo (quindi non so dire se
abbia senso caricare una libreria Javascript).
