X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=tt.rkt;h=afc94f620d9e5047ffa57b4999acf1622eb0306e;hb=a139076c658d1569033a075072836688d949f7ca;hp=bc8e8bc5c134b92f596b08b59bfc37ce3a8865a8;hpb=a60c484e9105bad3ec0bd90148b27f44dbfeb266;p=tt.git diff --git a/tt.rkt b/tt.rkt index bc8e8bc..afc94f6 100644 --- a/tt.rkt +++ b/tt.rkt @@ -207,7 +207,7 @@ [nick "foo"] [uri "bar"] [actual (str->msg nick uri (string-append ts tab text))] - [expected (Msg 1605756129 ts nick uri text)]) + [expected (Msg 1605756129 ts nick uri text '())]) (check-equal? (Msg-ts-epoch actual) (Msg-ts-epoch expected) @@ -476,6 +476,7 @@ ; TODO No need for map - can just iter (void (concurrent-filter-map num-workers peer-download peers))) +(: uniq (∀ (α) (-> (Listof α) (Listof α)))) (define (uniq xs) (set->list (list->set xs))) @@ -505,7 +506,7 @@ (map string->path paths)])] [peers (append* (map file->peers paths))]) (log-info "Read-in ~a peers." (length peers)) - peers)) + (uniq peers))) (: log-writer-stop (-> Thread Void)) (define (log-writer-stop log-writer) @@ -607,7 +608,12 @@ #:program "tt crawl" #:args file-paths - (let* ([peers-all-file + (let* ([peers-sort + (λ (peers) (sort peers (match-lambda** + [((Peer n1 _) (Peer n2 _)) + (stringpeers peers-mentioned-file)] [peers-mentioned - (uniq (append peers-mentioned-prev - peers-mentioned-curr))] + (peers-sort (uniq (append peers-mentioned-prev + peers-mentioned-curr)))] [peers-all-prev (file->peers peers-all-file)] [peers-all - (uniq (append peers - peers-mentioned - peers-all-prev))]) + (list->set (append peers + peers-mentioned + peers-all-prev))] + [n-peers-discovered + (set-count (set-subtract peers-all + (list->set peers-all-prev)))] + [peers-all + (peers-sort (set->list peers-all))]) + (log-info "Discovered ~a new peers." n-peers-discovered) (peers->file peers-mentioned peers-mentioned-file) (peers->file peers-all