[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)
; 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)))
(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)
#:program
"tt crawl"
#:args file-paths
- (let* ([peers-all-file
+ (let* ([peers-sort
+ (λ (peers) (sort peers (match-lambda**
+ [((Peer n1 _) (Peer n2 _))
+ (string<? (if n1 n1 "")
+ (if n2 n2 ""))])))]
+ [peers-all-file
(build-path tt-home-dir "peers-all")]
[peers-mentioned-file
(build-path tt-home-dir "peers-mentioned")]
[peers-mentioned-prev
(file->peers 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