ready to start putting reference headers into a hash table
authorKyle Spaans <kspaans@student.math.uwaterloo.ca>
Sun, 5 Apr 2009 04:51:23 +0000 (00:51 -0400)
committerKyle Spaans <kspaans@student.math.uwaterloo.ca>
Sun, 5 Apr 2009 04:51:23 +0000 (00:51 -0400)
connect.ss
ref-helper.ss

index 51f6895..0a5ae05 100644 (file)
@@ -19,6 +19,7 @@
 (define users (make-hash))
 
 (define httest (make-hash))
+(define refers (make-hash))
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (hash-set! users 'kspaans@csclub.uwaterloo.ca '())
             (cond
              [(and (not (boolean? mesg-from)) (> (length mesg-from) 3))
                (printf "From: ~a~nSubj: ~a~nMID:  ~a~nRefs: ~a~n~n"
-                      (car mesg-from) (cadr mesg-from) (caddr mesg-from) (cadddr mesg-from))]
+                      (car mesg-from) (cadr mesg-from) (caddr mesg-from) (get-refs (cadddr mesg-from)))]
               [(not (boolean? mesg-from))
-              (printf "From: ~a~nSubj: ~a~nMID:  ~a~nRefs: ~a~n~n"
-                      (car mesg-from) (cadr mesg-from) (caddr mesg-from) (cdddr mesg-from))]))
+              (printf "From: ~a~nSubj: ~a~nMID:  ~a~n~n"
+                      (car mesg-from) (cadr mesg-from) (caddr mesg-from))]))
           (thread-all (+ first 1) last newsd)]))
 
-;(thread-all first (+ first 1000) uwnews)
-(get-refs "<3zzli631eo.fsf@ds1.cs> <111131eo.fsf@ds1.cs>")
-(get-refs "your mom!")
+(thread-all first (+ first 20) uwnews)
 
 ;(read-all first last uwnews)
 ;(read-all first (+ first 1000) uwnews)
index d40179a..ba19b5b 100644 (file)
@@ -5,12 +5,13 @@
 ;; Given an NNTP "References:" header line, will extract all Message-IDs in it
 (define references-regexp #rx"<[^>]*>")
 (define (get-refs refline)
-  (let ([ref-match (regexp-match references-regexp refline)]
-        );[strposn (cdar (regexp-match-positions references-regexp refline))])
+  (let ([ref-match (regexp-match references-regexp refline)])
     (cond
       [(boolean? ref-match) empty]
       [else (cons (car ref-match)
                   (get-refs (substring refline
+                                      ;; Need to only go to the last matching
+                                      ;; index so that we don't go out of range
                                        (cdar (regexp-match-positions
                                               references-regexp
                                               refline)))))])))