Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.webBrowser.getSource
on getSource (url, timeoutsecs) { <<returns the HTML source stored at that URL case sys.os () { "MacOS" { local (f = webBrowser.getScriptPrefsFolder () + "HTML Source", s); appleEvent (user.webBrowser.currentid, 'GURL', 'GURL', '----', string (url), 'dest', filespec (f), 'cwin', nil); local (loopstarttime = clock.now ()); while not file.exists (f) { rollbeachball (); if (clock.now () - loopstarttime) > timeoutsecs { <<timeout return ("")}}; while file.isbusy (f) {}; file.open (f); s = string (file.read (f, infinity)); file.close (f); file.delete (f); return (s)}; "Win95"; "WinNT" { local (port = 80, domain, path, urlparts, ix); urlparts = string.urlSplit (url); if not string.lower (urlparts [1]) == "http://" { scriptError ("Can't get source because \"" + url + "\" is not an http url.")}; domain = urlparts [2]; path = "/" + urlparts [3]; ix = string.patternMatch (":", domain); if ix > 0 { port = string.mid (domain, ix, infinity); domain = string.mid (domain, 1, ix - 1)}; return (tcp.examples.httpGet (domain, path, port))}}}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.