"use" serapeum and alexandria
This commit is contained in:
14
spawns.lisp
14
spawns.lisp
@@ -61,7 +61,7 @@ separate csvs."
|
||||
(result (make-array 0 :adjustable t :fill-pointer 0)))
|
||||
(loop for row in csv
|
||||
with mapname = ""
|
||||
for hm = (serapeum:pairhash keys row (serapeum:dict))
|
||||
for hm = (pairhash keys row (dict))
|
||||
when (let ((name (gethash :monster hm)))
|
||||
(and (string-not-equal "" name)
|
||||
(string-not-equal "-" name)
|
||||
@@ -74,7 +74,7 @@ separate csvs."
|
||||
result))
|
||||
|
||||
(defun parse-sheet (sheet)
|
||||
(let* ((lines (serapeum:lines sheet))
|
||||
(let* ((lines (lines sheet))
|
||||
(field (find-first-empty-field (car lines)))
|
||||
(first-half (loop for line in lines
|
||||
when (not (uiop:string-prefix-p ",,," line))
|
||||
@@ -84,20 +84,20 @@ separate csvs."
|
||||
for second-half = (second-half line field)
|
||||
when (not (uiop:string-prefix-p ",,," second-half))
|
||||
collect second-half))
|
||||
(joined (serapeum:string-join (concatenate 'list first-half second-half) #\Newline)))
|
||||
(joined (string-join (concatenate 'list first-half second-half) #\Newline)))
|
||||
(csv-to-hash-tables (cl-csv:read-csv joined))))
|
||||
|
||||
(defun refresh-spawn-data ()
|
||||
(let ((spawn-data (serapeum:pairhash
|
||||
(let ((spawn-data (pairhash
|
||||
(mapcar #'car *chronostory-spawn-gids*)
|
||||
(mapcar (lambda (pair)
|
||||
(let* ((gid (cdr pair))
|
||||
(data (drakma:http-request (chronostory-spawn-url gid))))
|
||||
(uiop:println (serapeum:concat "Requesting data for " (symbol-name (car pair))))
|
||||
(uiop:println (concat "Requesting data for " (symbol-name (car pair))))
|
||||
(parse-sheet data)))
|
||||
*chronostory-spawn-gids*))))
|
||||
(setf *chronostory-spawns* spawn-data)
|
||||
(alexandria-2:write-string-into-file
|
||||
(write-string-into-file
|
||||
(shasht:write-json spawn-data nil)
|
||||
"spawns.json"
|
||||
:if-exists :overwrite
|
||||
@@ -110,7 +110,7 @@ separate csvs."
|
||||
spawn-data))
|
||||
|
||||
(defun load-spawn-data ()
|
||||
(serapeum:if-not *chronostory-spawns*
|
||||
(if-not *chronostory-spawns*
|
||||
(reload-spawn-data)
|
||||
*chronostory-spawns*))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user