wot.lisp 842 B

12345678910111213141516171819202122232425
  1. (in-package :cl-user)
  2. (defpackage #:assboard.wot
  3. (:use :cl :assboard.utils)
  4. (:export #:get-trustlist
  5. #:*trustlist-cache*))
  6. (in-package #:assboard.wot)
  7. (defparameter +trustlist-url+ "http://files.bitcoin-assets.com/wot/trustlist.txt" "Precompiled list of L1/L2 assbot's trustees")
  8. (defvar *trustlist-cache* nil "Latest fetched trustlist")
  9. (defun get-fingerprint-and-username (line)
  10. (cons
  11. (subseq line 0 40)
  12. (subseq line (1+ (position #\Space line :start 41)))))
  13. (defun get-trustlist ()
  14. (let ((stream
  15. (drakma:http-request +trustlist-url+
  16. :external-format-in :utf-8
  17. :want-stream t)))
  18. (setf *trustlist-cache*
  19. (loop for line = (read-line stream nil)
  20. while line
  21. collect (get-fingerprint-and-username line)))))