(in-package :cl-user) (defpackage #:assboard.wot (:use :cl :assboard.utils) (:export #:get-trustlist #:*trustlist-cache*)) (in-package #:assboard.wot) (defparameter +trustlist-url+ "http://files.bitcoin-assets.com/wot/trustlist.txt" "Precompiled list of L1/L2 assbot's trustees") (defvar *trustlist-cache* nil "Latest fetched trustlist") (defun get-fingerprint-and-username (line) (cons (subseq line 0 40) (subseq line (1+ (position #\Space line :start 41))))) (defun get-trustlist () (let ((stream (drakma:http-request +trustlist-url+ :external-format-in :utf-8 :want-stream t))) (setf *trustlist-cache* (loop for line = (read-line stream nil) while line collect (get-fingerprint-and-username line)))))