Guile Freenet
 
(drak)
2016-02-10: can parse the trust values

can parse the trust values

diff --git a/parse-crawled.scm b/parse-crawled.scm
--- a/parse-crawled.scm
+++ b/parse-crawled.scm
@@ -29,12 +29,29 @@
          (lambda (key . args) (format #t "~A: ~A" key args)(newline) '())))
 
 
+(define (wot-uri-key uri)
+  (let ((index (string-index uri #\/)))
+    (if index 
+        (string-take uri index)
+        uri))) ;; no / in uri, so it is already a key.
+
+
+
 (define (parse-trust-values filename)
   (let* ((port (open-input-file filename))
          (sxml (non-breaking-sxml-reader port))
-         (closed (close-port port)))
-    #f))
-    
+         (closed (close-port port))
+         (trust '()))
+    (let extract-trust ((sxml sxml))
+      (match sxml
+        (('Trust ('@ ('Value value) ('Identity uri) rest ...))
+         (set! trust (cons (cons (wot-uri-key uri) value) trust)))
+        ((a b ...)
+         (map extract-trust sxml))
+        (else '())))
+    trust))
+
+
 
 (define (main args)
   (let ((dir (if (null? (cdr args))