commit 9b14431d3edc94ff068a74de28cf24f71b96c64a
parent 9e980a8ad539412e0013a1254d17fdb09500e547
Author: Brian C. Lane <bcl@brianlane.com>
Date:   Fri, 15 Oct 2010 07:14:54 -0700
Add error checks to getDirectoryListing
Diffstat:
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/HMS/source/DirParser.brs b/HMS/source/DirParser.brs
@@ -3,29 +3,35 @@
 ' **  Copyright (c) 2010 Brian C. Lane All Rights Reserved.
 ' ********************************************************************
 
-Sub MainTest()
+Sub getDirectoryListing(url as String) As Object
     http = CreateObject("roUrlTransfer")
-    http.SetUrl("http://wyatt.brianlane.com/")
+    http.SetUrl(url)
     dir = http.GetToString()
 
-    ' Try parsing as if it is XML
+    if dir = invalid then
+        print "Could not get directory listing"
+        return invalid
+    end if
+
+    ' Try parsing the html as if it is XML
     rsp=CreateObject("roXMLElement")
     if not rsp.Parse(dir) then
         print "Cannot parse directory listing as XML"
-        stop
+        return invalid
     end if
+
     ' grab all the <a href /> elements
-    urls = GetUrls([], rsp)
-    print urls
+    urls = getUrls([], rsp)
+    return urls
 End Sub
 
-Sub GetUrls(array as Object, element as Object) As Object
+Sub getUrls(array as Object, element as Object) As Object
     if element.GetName() = "a" and element.HasAttribute("href") then
         array.Push(element.GetAttributes()["href"])
     end if
     if element.GetChildElements()<>invalid then
         for each e in element.GetChildElements()
-            GetUrls(array, e)
+            getUrls(array, e)
         end for
     end if
     return array