fixed small big in date-get used from ppd, refactored date-get into helper func
authorKyle Spaans <kspaans@student.math.uwaterloo.ca>
Mon, 20 Apr 2009 14:21:17 +0000 (10:21 -0400)
committerKyle Spaans <kspaans@student.math.uwaterloo.ca>
Mon, 20 Apr 2009 14:21:17 +0000 (10:21 -0400)
common.ss
date.ss [deleted file]
nntp-to-dot.ss
ppd.ss

index 1723255..53810c4 100644 (file)
--- a/common.ss
+++ b/common.ss
@@ -7,9 +7,10 @@
 #lang scheme
 
 (require net/nntp)
 #lang scheme
 
 (require net/nntp)
+(require srfi/19)
 
 (provide message-getter get-refs make-dot-id ins-user-id ins-mid-u from-regexp
 
 (provide message-getter get-refs make-dot-id ins-user-id ins-mid-u from-regexp
-         mid-regexp ref-regexp subj-regexp date-regexp)
+         mid-regexp ref-regexp subj-regexp date-regexp get-date)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
         (hash-set! htable mid user)
         ;; Mid already exists?
        (error 'mid-collision))))
         (hash-set! htable mid user)
         ;; Mid already exists?
        (error 'mid-collision))))
+
+;; get-date: string -> date
+;; Returns an SRFI-19 date object based on the date header from the newsgroup
+;; Date headers seem to be either 32,36,37,42 or 43 chars long
+;;   can this be generalized better?
+(define (get-date date-str)
+  (let [(mlen (string-length date-str))]
+    (cond
+      [(= 32 mlen) (string->date (substring date-str 6)
+                                 "~d ~b ~Y ~H:~M:~S ~z")]
+      [(= 36 mlen) (string->date (substring date-str 6)
+                                 "~a, ~d ~b ~Y ~H:~M:~S ~z")]
+      [(= 37 mlen) (string->date (substring date-str 6)
+                                 "~a, ~d ~b ~Y ~H:~M:~S ~z")]
+      [(= 42 mlen) (string->date (substring date-str 6)
+                                 "~a, ~d ~b ~Y ~H:~M:~S ~z")]
+      [(= 43 mlen) (string->date (substring date-str 6)
+                                 "~a, ~d ~b ~Y ~H:~M:~S ~z")]
+      [else (printf "date string was unknown length ~a~n" mlen) #xDEADBEEF])))
diff --git a/date.ss b/date.ss
deleted file mode 100644 (file)
index d07eebb..0000000
--- a/date.ss
+++ /dev/null
@@ -1,19 +0,0 @@
-#lang scheme
-
-(require srfi/19)
-
-;; get-date: string -> date
-;; Returns an SRFI-19 date object based on the date header from the newsgroup
-;; Date headers seem to be either 32,36,37 or 43 chars long
-;;   can this be generalized better?
-(define (get-date date-str)
-  (let [(mlen (string-length date-str))]
-    (cond
-      [(= 32 mlen) (string->date (substring (car message) 5)
-                                 "~d ~b ~Y ~H:~M:~S ~z")]
-      [(= 36 mlen) (string->date (substring (car message) 5)
-                                 "~a, ~d ~b ~Y ~H:~M:~S ~z")]
-      [(= 37 mlen) (string->date (substring (car message) 5)
-                                 "~a, ~d ~b ~Y ~H:~M:~S ~z")]
-      [(= 43 mlen) (string->date (substring (car message) 5)
-                                 "~a, ~d ~b ~Y ~H:~M:~S ~z")])))
index f6bf184..feaaef1 100644 (file)
@@ -40,7 +40,7 @@
 (define (read-all first last newsd)
   (cond
     [(= first last) (printf "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n")]
 (define (read-all first last newsd)
   (cond
     [(= first last) (printf "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n")]
-    [else (let [(message (message-getter uwnews first (list from-regexp subj-regexp mid-regexp ref-regexp)))]
+    [else (let [(message (message-getter newsd first (list from-regexp subj-regexp mid-regexp ref-regexp date-regexp)))]
             (cond
               [(boolean? message) (void)]
               [else (for-each (lambda (header) (printf "~a~n" header))
             (cond
               [(boolean? message) (void)]
               [else (for-each (lambda (header) (printf "~a~n" header))
@@ -75,8 +75,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; CODE TO EXECUTE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; CODE TO EXECUTE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;(posts-per-day first last uwnews)
-(count-users first last uwnews)
+(posts-per-day first last uwnews)
+;(count-users first last uwnews)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (close-output-port dotfile)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (close-output-port dotfile)
diff --git a/ppd.ss b/ppd.ss
index b53a739..223e059 100644 (file)
--- a/ppd.ss
+++ b/ppd.ss
     [else (let [(message (message-getter newsd first (list date-regexp)))]
             (cond
               [(boolean? message) (void)]
     [else (let [(message (message-getter newsd first (list date-regexp)))]
             (cond
               [(boolean? message) (void)]
-              [else ;(printf "~a~n~a~n" (string-length (car message)) (car message))
-               (let [(mlen (string-length (car message)))]
-               (cond
-                 [(= 32 mlen) (set! date-list (cons (string->date (substring (car message) 5) "~d ~b ~Y ~H:~M:~S ~z") date-list))]
-                 [(= 36 mlen) (set! date-list (cons (string->date (substring (car message) 5) "~a, ~d ~b ~Y ~H:~M:~S ~z") date-list))]
-                 [(= 37 mlen) (set! date-list (cons (string->date (substring (car message) 5) "~a, ~d ~b ~Y ~H:~M:~S ~z") date-list))]
-                 [(= 43 mlen) (set! date-list (cons (string->date (substring (car message) 5) "~a, ~d ~b ~Y ~H:~M:~S ~z") date-list))]))]))
+              [else (set! date-list (cons (get-date (car message)) date-list))]))
           (posts-per-day (+ first 1) last newsd)]))
           (posts-per-day (+ first 1) last newsd)]))