<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -402,9 +402,9 @@
 			&lt;/array&gt;
 			&lt;key&gt;TableOfContents&lt;/key&gt;
 			&lt;array&gt;
-				&lt;string&gt;1D70EB890ECA0C0C00598C54&lt;/string&gt;
+				&lt;string&gt;1D82853E0EF4516E003B714A&lt;/string&gt;
 				&lt;string&gt;1CE0B1FE06471DED0097A5F4&lt;/string&gt;
-				&lt;string&gt;1D70EB8A0ECA0C0C00598C54&lt;/string&gt;
+				&lt;string&gt;1D82853F0EF4516E003B714A&lt;/string&gt;
 				&lt;string&gt;1CE0B20306471E060097A5F4&lt;/string&gt;
 				&lt;string&gt;1CE0B20506471E060097A5F4&lt;/string&gt;
 			&lt;/array&gt;
@@ -523,7 +523,7 @@
 	&lt;key&gt;StatusbarIsVisible&lt;/key&gt;
 	&lt;true/&gt;
 	&lt;key&gt;TimeStamp&lt;/key&gt;
-	&lt;real&gt;248122368.63772801&lt;/real&gt;
+	&lt;real&gt;250892646.69362801&lt;/real&gt;
 	&lt;key&gt;ToolbarDisplayMode&lt;/key&gt;
 	&lt;integer&gt;1&lt;/integer&gt;
 	&lt;key&gt;ToolbarIsVisible&lt;/key&gt;
@@ -538,7 +538,6 @@
 	&lt;integer&gt;5&lt;/integer&gt;
 	&lt;key&gt;WindowOrderList&lt;/key&gt;
 	&lt;array&gt;
-		&lt;string&gt;1CD10A99069EF8BA00B06720&lt;/string&gt;
 		&lt;string&gt;/Users/ghansard/Projects/DownloadGoogleBooks/DownloadGoogleBooks.xcodeproj&lt;/string&gt;
 	&lt;/array&gt;
 	&lt;key&gt;WindowString&lt;/key&gt;
@@ -621,7 +620,7 @@
 			&lt;key&gt;TableOfContents&lt;/key&gt;
 			&lt;array&gt;
 				&lt;string&gt;1D0C3EFE0DE7A89F0080226A&lt;/string&gt;
-				&lt;string&gt;1D51786A0EC8DEEB0006AA43&lt;/string&gt;
+				&lt;string&gt;1D70EB940ECA0D1B00598C54&lt;/string&gt;
 				&lt;string&gt;1CD0528F0623707200166675&lt;/string&gt;
 				&lt;string&gt;XCMainBuildResultsModuleGUID&lt;/string&gt;
 			&lt;/array&gt;
@@ -888,7 +887,7 @@
 								&lt;key&gt;Frame&lt;/key&gt;
 								&lt;string&gt;{{0, 0}, {650, 209}}&lt;/string&gt;
 								&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-								&lt;string&gt;401 605 650 250 0 0 1440 878 &lt;/string&gt;
+								&lt;string&gt;286 590 650 250 0 0 1440 878 &lt;/string&gt;
 							&lt;/dict&gt;
 							&lt;key&gt;Module&lt;/key&gt;
 							&lt;string&gt;PBXDebugCLIModule&lt;/string&gt;
@@ -911,17 +910,17 @@
 			&lt;key&gt;TableOfContents&lt;/key&gt;
 			&lt;array&gt;
 				&lt;string&gt;1C78EAAD065D492600B07095&lt;/string&gt;
-				&lt;string&gt;1D5178710EC8DEF80006AA43&lt;/string&gt;
+				&lt;string&gt;1D70EB970ECA0D7E00598C54&lt;/string&gt;
 				&lt;string&gt;1C78EAAC065D492600B07095&lt;/string&gt;
 			&lt;/array&gt;
 			&lt;key&gt;ToolbarConfiguration&lt;/key&gt;
 			&lt;string&gt;xcode.toolbar.config.consoleV3&lt;/string&gt;
 			&lt;key&gt;WindowString&lt;/key&gt;
-			&lt;string&gt;401 605 650 250 0 0 1440 878 &lt;/string&gt;
+			&lt;string&gt;286 590 650 250 0 0 1440 878 &lt;/string&gt;
 			&lt;key&gt;WindowToolGUID&lt;/key&gt;
 			&lt;string&gt;1C78EAAD065D492600B07095&lt;/string&gt;
 			&lt;key&gt;WindowToolIsVisible&lt;/key&gt;
-			&lt;true/&gt;
+			&lt;false/&gt;
 		&lt;/dict&gt;
 		&lt;dict&gt;
 			&lt;key&gt;Identifier&lt;/key&gt;</diff>
      <filename>DownloadGoogleBooks.xcodeproj/ghansard.mode1v3</filename>
    </modified>
    <modified>
      <diff>@@ -45,7 +45,7 @@
 	};
 	29B97313FDCFA39411CA2CEA /* Project object */ = {
 		activeArchitecture = i386;
-		activeBuildConfigurationName = Debug;
+		activeBuildConfigurationName = Release;
 		activeExecutable = 1D0C3E7F0DE7A5F30080226A /* &#171;PROJECTNAMEASIDENTIFIER&#187; */;
 		activeTarget = 8D1107260486CEB800E47090 /* DownloadGoogleBooks */;
 		addToTargets = (
@@ -128,8 +128,8 @@
 					PBXFileDataSource_Warnings_ColumnID,
 				);
 			};
-			PBXPerProjectTemplateStateSaveDate = 248122368;
-			PBXWorkspaceStateSaveDate = 248122368;
+			PBXPerProjectTemplateStateSaveDate = 250892646;
+			PBXWorkspaceStateSaveDate = 250892646;
 		};
 		sourceControlManager = 1D0C3E8D0DE7A5FD0080226A /* Source Control */;
 		userBuildSettings = {</diff>
      <filename>DownloadGoogleBooks.xcodeproj/ghansard.pbxuser</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@
 	
 	(- (id) fetch:(id)sender is
 		((self printButton) setEnabled:NO)
-		(set url (NSURL URLWithString:((self urlField) stringValue)))
+		(set url (NSURL URLWithString:(NSString stringWithString:((self urlField) stringValue))))
 		(set count ((self numberField) intValue))
 		(self setPageCount:count)
 		(NSThread detachNewThreadSelector:&quot;beginThreadedFetch:&quot; toTarget:self withObject:url) )</diff>
      <filename>nu/controller.nu</filename>
    </modified>
    <modified>
      <diff>@@ -1,49 +1,58 @@
 (class GoogleBooksDownloader is NSObject
-     (ivar 	(id) pageHTML
-           (id) delegate)
-     
-     (ivar-accessors)
-     
-     (+ (id) downloader is
-        (((self class) new) autorelease))
-     
-     (- (id) downloadBookAtURL:(id) url pages:(int) numberOfPages is
+	 (ivar	(id) pageHTML
+		   (id) delegate)
+	 
+	 (ivar-accessors)
+	 
+	 (+ (id) downloader is
+		(((self class) new) autorelease))
+	 
+	 (- (id) downloadBookAtURL:(id) url pages:(int) numberOfPages is
 		(unless (/&amp;output=html/ findInString:(url description))
 			(set url (+ (url description) &quot;&amp;output=html&quot;)))
-        (set pages (NSMutableArray array))
-        (if (!= (NSURL class) (url class))
-            (set url (NSURL URLWithString:url)))
-        (self setPageHTML:(NSString stringWithContentsOfURL:url))
-        (numberOfPages times:(do (pageNumber)
-                                 (pages addObject:(self _downloadCurrentPage))
-                                 (if ((self delegate) respondsToSelector:&quot;downloadedPage:of:&quot;)
-                                     ((self delegate) downloadedPage:(+ 1 pageNumber) of:numberOfPages))
-                                 (set m (/.*&lt;a href=&quot;(.*?)&quot;  accesskey=&quot;n&quot;/ findInString:(self pageHTML)))
-                                 (set x (NSURL URLWithString:(m groupAtIndex:1)))
-                                 (self setPageHTML:(NSString stringWithContentsOfURL:x)) ))
-        (pages) )
-     
-     (- (id) _downloadCurrentPage is
-        (set m (/\.html_page_image { background-image: url\(&quot;(.*?)\&quot;\)/ findInString:(self pageHTML)))
-        (set pageURL (NSURL URLWithString:(m groupAtIndex:1)))
-        (set page ((NSImage alloc) initWithContentsOfURL:pageURL))
-        (page))
-     
-     (- (id) joinedImageFromPageArray:(id) pageArray is
-        (set maxWidth 0)
-        (set maxHeight 0)
-        (pageArray each:(do (page)
-                            (set size (page size))
-                            (set w (head size))
-                            (set h (head (tail size)))
-                            (if (&gt; w maxWidth) (set maxWidth w))
-                            (if (&gt; h maxHeight) (set maxHeight h)) ))
-        (set img ((NSImage alloc) initWithSize:(list maxWidth (* maxHeight (pageArray count)) )) )
-        (img lockFocus)
-        (set yPos (* maxHeight (pageArray count)))
-        (pageArray each:(do (page)
-                            (page dissolveToPoint:(list 0 (- yPos maxHeight)) fraction:1.0)
-                            (set yPos (- yPos maxHeight)) ))
-        (img unlockFocus)
-        (img) )
-     )
\ No newline at end of file
+		(set pages (NSMutableArray array))
+		(if (!= (NSURL class) (url class))
+			(set url (NSURL URLWithString:url)))
+		(self setPageHTML:(NSString stringWithContentsOfURL:url))
+		(numberOfPages times:(do (pageNumber)
+			(pages addObject:(self _downloadCurrentPage))
+			(if ((self delegate) respondsToSelector:&quot;downloadedPage:of:&quot;)
+				((self delegate) downloadedPage:(+ 1 pageNumber) of:numberOfPages))
+			(set m (/&lt;a href=&quot;([\w\d\+:\/.=\-?&amp;]+)&quot;[ \t]+accesskey=&quot;n&quot;/ findInString:(self pageHTML)))
+			(if (!= nil (m groupAtIndex:1))
+				(set x (NSURL URLWithString:(m groupAtIndex:1)))
+				(puts (x description))
+				(self setPageHTML:(NSString stringWithContentsOfURL:x))
+			(else
+				(puts &quot;Error on page #{(+ 1 pageNumber)}&quot;)
+				(break) )) ))
+		(pages) )
+	 
+	 (- (id) _downloadCurrentPage is
+		(set m (/\.html_page_image[ ]*{[ ]*background-image:[ ]*url\(&quot;(.*?)\&quot;\)/ findInString:(self pageHTML)))
+		(if (== '() (m groupAtIndex:1))
+			; Restricted page
+			((NSImage alloc) initWithSize:'(200 200))
+		(else
+			(set pageURL (NSURL URLWithString:(m groupAtIndex:1)))
+			(set page ((NSImage alloc) initWithContentsOfURL:pageURL))
+			(page) )) )
+	 
+	 (- (id) joinedImageFromPageArray:(id) pageArray is
+		(set maxWidth 0)
+		(set maxHeight 0)
+		(pageArray each:(do (page)
+							(set size (page size))
+							(set w (head size))
+							(set h (head (tail size)))
+							(if (&gt; w maxWidth) (set maxWidth w))
+							(if (&gt; h maxHeight) (set maxHeight h)) ))
+		(set img ((NSImage alloc) initWithSize:(list maxWidth (* maxHeight (pageArray count)) )) )
+		(img lockFocus)
+		(set yPos (* maxHeight (pageArray count)))
+		(pageArray each:(do (page)
+							(page dissolveToPoint:(list 0 (- yPos maxHeight)) fraction:1.0)
+							(set yPos (- yPos maxHeight)) ))
+		(img unlockFocus)
+		(img) )
+	 )
\ No newline at end of file</diff>
      <filename>nu/downloadGoogleBook.nu</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fad72d5d0117e41d7c01b4984580c1da3eab852e</id>
    </parent>
  </parents>
  <author>
    <name>Grayson Hansard</name>
    <email>info@fromconcentratesoftware.com</email>
  </author>
  <url>http://github.com/Grayson/downloadgooglebooks/commit/e3e3e55dd7b5e7975d666ed4e4f63e5263607b45</url>
  <id>e3e3e55dd7b5e7975d666ed4e4f63e5263607b45</id>
  <committed-date>2008-12-13T13:15:27-08:00</committed-date>
  <authored-date>2008-12-13T13:15:27-08:00</authored-date>
  <message>Improved download reliability.</message>
  <tree>9f4298a91c83fabe3bc2a74aed78cc1eea00fcbd</tree>
  <committer>
    <name>Grayson Hansard</name>
    <email>info@fromconcentratesoftware.com</email>
  </committer>
</commit>
