"use" serapeum and alexandria
This commit is contained in:
@@ -12,10 +12,10 @@
|
||||
(keys (mapcar #'string-to-hash-table-key (subseq header 0 num-fields-to-keep)))
|
||||
(drops (map 'vector
|
||||
(lambda (row)
|
||||
(serapeum:pairhash keys (subseq row 0 num-fields-to-keep)))
|
||||
(pairhash keys (subseq row 0 num-fields-to-keep)))
|
||||
(cdr csv))))
|
||||
(setf *chronostory-drops* drops)
|
||||
(alexandria-2:write-string-into-file
|
||||
(write-string-into-file
|
||||
(shasht:write-json drops nil)
|
||||
"drops.json"
|
||||
:if-exists :overwrite
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
(declare (ignore _))
|
||||
(uiop:println "Retrieved chronostory items. Writing out to json file...")
|
||||
(setf *chronostory-items* chrono-items)
|
||||
(alexandria-2:write-string-into-file
|
||||
(write-string-into-file
|
||||
(shasht:write-json chrono-items nil)
|
||||
"items.json"
|
||||
:if-exists :overwrite
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
(defparameter *chronostory-gacha-search-format* "https://chronostory.onrender.com/api/gacha-search?itemId=~a")
|
||||
(defparameter *chronostory-gacha-url-format "https://chronostory.onrender.com/api/gacha-items?gachaId=~a")
|
||||
|
||||
(serapeum:comment
|
||||
(comment
|
||||
(reload-mob-data)
|
||||
|
||||
(defvar foo nil)
|
||||
(setf foo (serapeum/bundle:random-elt *chronostory-mobs*))
|
||||
*chronostory-drops*
|
||||
|
||||
(serapeum:filter-map
|
||||
(filter-map
|
||||
(lambda (m)
|
||||
(when (= (parse-integer (gethash "DROPPERID" m))
|
||||
(parse-integer (serapeum:href foo "mob" "mob_id")))
|
||||
(parse-integer (href foo "mob" "mob_id")))
|
||||
(gethash "ITEMNAME" m)))
|
||||
(coerce *chronostory-drops* 'list)))
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
(declare (ignore _))
|
||||
(uiop:println "Retrieved chronostory mobs. Writing out to json file...")
|
||||
(setf *chronostory-mobs* chrono-mobs)
|
||||
(alexandria-2:write-string-into-file chrono-mobs-str "mobs.json" :if-exists :overwrite :if-does-not-exist :create)
|
||||
(write-string-into-file chrono-mobs-str "mobs.json" :if-exists :overwrite :if-does-not-exist :create)
|
||||
(uiop:println "Done!")))
|
||||
|
||||
(defun reload-mob-data ()
|
||||
|
||||
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*))
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
(defpackage :lispostory
|
||||
(:use cl))
|
||||
(:use :cl :alexandria :serapeum))
|
||||
|
||||
(in-package :lispostory)
|
||||
|
||||
@@ -18,5 +18,5 @@
|
||||
(map 'vector func vec))
|
||||
|
||||
(defun string-to-hash-table-key (s)
|
||||
(let ((k2 (string-upcase (serapeum:string-replace " " s ""))))
|
||||
(let ((k2 (string-upcase (string-replace " " s ""))))
|
||||
(intern k2 :keyword)))
|
||||
|
||||
Reference in New Issue
Block a user