working dot output, with gitignore for dot output file
authorKyle Spaans <kspaans@student.math.uwaterloo.ca>
Wed, 8 Apr 2009 17:49:06 +0000 (13:49 -0400)
committerKyle Spaans <kspaans@student.math.uwaterloo.ca>
Wed, 8 Apr 2009 17:49:06 +0000 (13:49 -0400)
Have error when make-dot-id rolls over to "AA".

.gitignore [new file with mode: 0644]
connect.ss

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..29dc284
--- /dev/null
@@ -0,0 +1 @@
+cs136-trial.dot
index d0d9c83..67b0346 100644 (file)
 ;;  ^^^^^^^^^ I don't think I can. Especailly since I can make it an
 ;;   undirected graph.
 
-;; Need to use the new version of hash tables.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (define users (make-hash))
-
 (define httest (make-hash))
 (define refers (make-hash))
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(define dotfile (open-output-file "cs136-trial.dot" #:exists 'truncate))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (hash-set! users 'kspaans@csclub.uwaterloo.ca '())
 (hash-set! users 'kspaans@csclub.uwaterloo.ca
                        (cons 'nosane@user.com
                             (hash-ref users 'kspaans@csclub.uwaterloo.ca)))
+
+(fprintf dotfile "digraph cs136 {\n")
+(fprintf dotfile "// Trial run starting at: ~a\n" (current-seconds))
 ;; ^^^^ This is kind of tricky? Because I'll have to search the hashtable for each
 ;;   value _while_ inserting it and adding to it... This seems indeal.
 ;; Since hastables are mutable, maybe I can integrate getting they key into the
                                                    (list mid-regexp  ; Ugh, the order coming out of this function
                                                          from-regexp ; depends on what's in the headers, not the
                                                          ref-regexp  ; order I have here. Usually From, Subj, MID, Refs
-                                                         subj-regexp)))]
+                                                         subj-regexp)))
+                  (define node-id (make-dot-id))]
             (cond
              [(and (not (boolean? mesg-from)) (> (length mesg-from) 2))
                (let [(result (map (lambda (x) (hash-ref refers x #f))
                      (mesg-ID (get-refs (caddr mesg-from)))]
                  (cond
                    [(boolean? (car result))
-                    (printf "----~nInserting MID(~a) into hash table.~n" mesg-ID)
-                    (hash-set! refers (car mesg-ID) (make-dot-id))]
+                    (printf "----~nInserting MID(~a) into hash table.~n" (car mesg-ID))
+                    ;(let ([node-id (make-dot-id)])
+                      (fprintf dotfile "// Node ~a\n    ~a;\n" mesg-ID node-id)
+                      (hash-set! refers (car mesg-ID) node-id)];)]
                    [else (printf "MIDs already in hash table?~n    >>~a<<~n" (caddr mesg-from))]))
                (cond [(> (length mesg-from) 3)
                       (printf "Checking References to find threading...~n")
-                      (let [(Refs (get-refs (cadddr mesg-from)))]
+                      (let* [(Refs (get-refs (cadddr mesg-from)))
+                             (hRef (hash-ref refers (car Refs) #f))]
                         (printf "Refs:     ~a~n" Refs)
-                        (printf "          Is it in the table? ~a~n" (hash-ref refers (car Refs) #f)))])
-               (printf "From: ~a~nSubj: ~a~nMID:  ~a~n~n"
-                      (car mesg-from) (cadr mesg-from) (caddr mesg-from))]
+                        (printf "          Is it in the table? ~a~n" hRef)
+                        (if (boolean? hRef) (printf "        Nope.~n")
+                            (fprintf dotfile "    ~a -> ~a;\n" hRef node-id)))])
+               (printf "Headers:\t ~a~n~n" mesg-from)]
+               ;(printf "From: ~a~nSubj: ~a~nMID:  ~a~n~n"
+               ;        (car mesg-from) (cadr mesg-from) (caddr mesg-from))]
               [(not (boolean? mesg-from))
                (printf "Pooppoop!~n")
                (printf "From: ~a~nSubj: ~a~nMID:  ~a~n~n"
           (thread-hash (+ first 1) last newsd)]))
 
 ;(thread-print first (+ first 20) uwnews)
-(thread-hash first (+ first 20) uwnews)
+(thread-hash first (+ first 100) uwnews)
 ;refers
 
 
 ;(read-all first last uwnews)
 ;(read-all first (+ first 1000) uwnews)
+(fprintf dotfile "// Trial run finished at: ~a\n}\n" (current-seconds))
 
-
+(close-output-port dotfile)
 (disconnect-from-server uwnews)
 ;(display "Disconnected.\n")