(drak)
2016-01-29: workaround for a bug I don’t understand. workaround for a bug I don’t understand.
diff --git a/crawl-wot.scm b/crawl-wot.scm --- a/crawl-wot.scm +++ b/crawl-wot.scm @@ -69,7 +69,7 @@ (('Identity uri) (set! uris (cons uri uris))) ((a b ...) (map grab-uris sxml)) - (else sxml))) + (else '()))) uris))) (define (wot-uri-key uri) @@ -91,18 +91,25 @@ ;; save the data (dump-wot-id seed (wot-uri-filename seed)) ;; snarf all uris - (let* ((uris (call-with-input-file (wot-uri-filename seed) snarf-wot-ids)) - (new (list-ec (: u uris) (if (not (member (wot-uri-key u) known))) u))) - (when (not (null? new)) - (display 'new:) - (write (car new))(newline)) - (when (not (null? known)) - (display 'known:) - (write (car known))(newline)(write (length known))(newline)) - (set! known (lset-union equal? - (list-ec (: u new) (wot-uri-key u)) - known)) - (n-par-map 10 crawl new))))) + (let ((uris (call-with-input-file (wot-uri-filename seed) snarf-wot-ids))) + (write seed)(newline) + (when (not (null? uris)) + (write (car uris))(newline)) + (let ((new (list-ec (: u uris) (if (and + (not (pair? u)) ; TODO: this is a hack. I do not know why u can be the full sxml. Seems to happen with IDs who do not have any trust set. + (not (member (wot-uri-key u) known)))) u))) + (when (not (null? new)) + (display 'new:) + (write (car new))(newline)) + (when (not (null? known)) + (display 'known:) + (write (car known))(newline)(write (length known))(newline)) + (set! known (lset-union equal? + (list-ec (: u new) (wot-uri-key u)) + known)) + (if (null? new) + known + (append known (map crawl new)))))))) (define (main args) (write args)(newline)