@@ -104,18 +104,38 @@ public function __construct() {
104104 }
105105
106106 public static function wp2staticCrawl ( string $ crawler_slug ) : void {
107+ global $ wpdb ;
108+
107109 if ( 'wp2static ' === $ crawler_slug ) {
108- $ paths = CrawlQueue::getPathsIter ();
109110 $ crawler = new Crawler ();
110111 $ url_discovery = new URLDiscovery ();
111- $ crawled = $ crawler ->crawlIter ( $ paths );
112+
113+ $ detected = CrawlQueue::getPathsIter ();
114+ $ last_now = $ wpdb ->get_var ( 'SELECT NOW() ' );
115+ $ crawled = $ crawler ->crawlIter ( $ detected );
112116 $ crawled = CrawlCache::remove404s ( $ crawled );
113117 $ crawled = CrawlCache::writeFilesIter ( $ crawled );
114118 if ( $ crawler ->use_crawl_cache ) {
115119 $ crawled = CrawlCache::addPathsIter ( $ crawled );
116120 }
117121 $ crawled = $ url_discovery ->discoverURLs ( $ crawled );
118- foreach ( $ crawled as $ crawled ) {}
122+ foreach ( $ crawled as $ _ ) { }
123+
124+ $ has_new = true ;
125+ while ( $ has_new ) {
126+ $ detected = CrawlQueue::getPathsIter ( $ last_now );
127+ $ last_now = $ wpdb ->get_var ( 'SELECT NOW() ' );
128+ $ crawled = $ crawler ->crawlIter ( $ detected );
129+ $ crawled = CrawlCache::writeFilesIter ( $ crawled );
130+ if ( $ crawler ->use_crawl_cache ) {
131+ $ crawled = CrawlCache::addPathsIter ( $ crawled );
132+ }
133+ $ crawled = $ url_discovery ->discoverURLs ( $ crawled );
134+ $ has_new = false ;
135+ foreach ( $ crawled as $ _ ) {
136+ $ has_new = true ;
137+ }
138+ }
119139 $ crawler ->crawlComplete ();
120140 }
121141 }
0 commit comments