You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
4.7 KiB
Clojure
151 lines
4.7 KiB
Clojure
(ns user
|
|
(:require [clojure.string :as string]
|
|
[clojure.tools.deps.alpha.repl :refer [add-lib]]
|
|
[clojure.tools.namespace.repl :refer [set-refresh-dirs]]
|
|
[integrant.repl :as repl]
|
|
[taoensso.carmine :as car]
|
|
[taoensso.carmine.message-queue :as car-mq]
|
|
[integrant.repl.state :as state]
|
|
[com.darklimericks.server.handlers :as handlers]
|
|
[integrant.core :as ig]
|
|
[hawk.core :as hawk]
|
|
[clojure.java.io :as io]
|
|
[com.darklimericks.util.identicon :as identicon]
|
|
[com.darklimericks.server.limericks :as limericks]
|
|
[com.darklimericks.db.albums :as db.albums]
|
|
[com.darklimericks.db.limericks :as db.limericks]
|
|
[com.darklimericks.server.util :as util]
|
|
[reitit.core :as reitit]))
|
|
|
|
(comment
|
|
(-> state/system
|
|
:app/router
|
|
(reitit/routes))
|
|
)
|
|
|
|
(set-refresh-dirs "src" "resources")
|
|
|
|
(defn add-project-dep
|
|
([lib-name lib-version]
|
|
(let [dep-name (symbol lib-name)
|
|
dep-version (name lib-version)]
|
|
(add-lib dep-name {:mvn/version dep-version}))))
|
|
|
|
(defn- clojure-file? [_ {:keys [file]}]
|
|
(re-matches #"[^.].*(\.clj|\.edn)$" (.getName file)))
|
|
|
|
(defn- auto-reset-handler [ctx event]
|
|
(binding [*ns* *ns*]
|
|
(integrant.repl/reset)
|
|
ctx))
|
|
|
|
(defn auto-reset []
|
|
(hawk/watch! [{:paths ["src/" "resources/" "dev/"]
|
|
:filter clojure-file?
|
|
:handler auto-reset-handler}]))
|
|
|
|
(defn init []
|
|
(let [config (-> "config.edn"
|
|
io/resource
|
|
slurp
|
|
ig/read-string)]
|
|
(ig/load-namespaces config)
|
|
(-> config
|
|
ig/prep
|
|
constantly
|
|
repl/set-prep!)
|
|
(repl/go)))
|
|
|
|
(defn reset []
|
|
(repl/halt))
|
|
|
|
(comment
|
|
(require '[clojure.java.jdbc :as sql])
|
|
|
|
(let [db (-> state/system :com.darklimericks.db.core/connection)
|
|
session (java.util.UUID/fromString "47e25213-6cd7-493d-a92a-b5bae635c8f4")]
|
|
(db.limericks/limericks-by-session db session))
|
|
|
|
(require '[taoensso.carmine.ring :as cr])
|
|
(let [kv (-> state/system :com.darklimericks.kv.core/connection)]
|
|
(cr/carmine-store kv))
|
|
|
|
(require '[com.darklimericks.db.limericks :as db.limericks])
|
|
(let [session
|
|
(java.util.UUID/fromString "47e25213-6cd7-493d-a92a-b5bae635c8f4")]
|
|
(db.limericks/limericks-by-session
|
|
(-> state/system :com.darklimericks.db.core/connection)
|
|
session))
|
|
|
|
(init)
|
|
|
|
(let [db (-> state/system :database.sql/connection)
|
|
albums (db.albums/most-recent-albums db)]
|
|
(->> albums
|
|
(map :album/name)
|
|
(map #(string/replace % #" " "-"))
|
|
(map string/lower-case)
|
|
(map #(identicon/generate % 128))))
|
|
|
|
(repeatedly
|
|
5
|
|
(fn []
|
|
(car/wcar
|
|
(-> state/system :database.kv/connection)
|
|
(car-mq/enqueue "limericks" '((A 8) (A 8) (B 4) (B 4) (A 8))))))
|
|
|
|
(->> (car/wcar
|
|
(-> state/system :database.kv/connection)
|
|
#_#_(car/ping)
|
|
(car/set "baz" "buzz")
|
|
(car/keys "*"))
|
|
(map
|
|
#(car/wcar (-> state/system :database.kv/connection) (car/get %))))
|
|
|
|
(car/wcar
|
|
(-> state/system :database.kv/connection)
|
|
(car/get "carmine:session:174a7525-04cb-4d73-a03c-1141bef6ad75"))
|
|
|
|
(limericks/get-artist-and-album-for-new-limerick (-> state/system :database.sql/connection))
|
|
|
|
(repeatedly
|
|
1
|
|
(fn []
|
|
(let [handler (handlers/limerick-generation-post-handler
|
|
(-> state/system :com.darklimericks.db.core/connection)
|
|
(-> state/system :com.darklimericks.kv.core/connection))
|
|
session-id "carmine:session:174a7525-04cb-4d73-a03c-1141bef6ad75"
|
|
router (state/system :com.darklimericks.server.router/router)]
|
|
(handler {:params {:scheme "A9 A9 B6 B6 A9" #_'((A 9) (A 9) (B 5) (B 5) (A 9))}
|
|
:session/key session-id
|
|
::reitit/router router}))))
|
|
|
|
;; If the namespace gets dirty, this can clear it up.
|
|
(run!
|
|
#(ns-unalias (find-ns 'user) %)
|
|
(keys (ns-aliases 'user)))
|
|
|
|
;; Making a request from the REPL
|
|
(let [handler (handlers/show-rhyme-suggestion
|
|
(-> state/system :com.darklimericks.db.core/connection)
|
|
(-> state/system :com.darklimericks.kv.core/connection))
|
|
router (state/system :com.darklimericks.server.router/router)]
|
|
(handler {:params {:rhyme-target "foo"}
|
|
::reitit/router router}))
|
|
|
|
(let [router (state/system :com.darklimericks.server.router/router)]
|
|
(reitit/match-by-path router "/.well-known/foo.txt"))
|
|
|
|
|
|
(db.albums/num-albums
|
|
(-> state/system :database.sql/connection))
|
|
|
|
(limericks/get-artist-and-album-for-new-limerick
|
|
(-> state/system :database.sql/connection))
|
|
|
|
(reitit/match-by-path
|
|
(-> state/system :app/router)
|
|
"/limericks/1/1")
|
|
|
|
)
|