Add txt to chess position function.
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
0d97469f64
commit
e1dcce8861
|
@ -12,6 +12,7 @@
|
|||
|
||||
|
||||
;;/addwidget https://blog-test.digitaloctave.com/chess?widgetId=dochess
|
||||
;;/addwidget https://blog-test.digitaloctave.com/chess?roomI=!YOyzcCyoomnjylcOFP:matrix.org&widgetId=dochess
|
||||
(def widget (atom {}))
|
||||
|
||||
(defn send-to-parent
|
||||
|
@ -21,16 +22,30 @@
|
|||
js/window.parent
|
||||
#js {:api "fromWidget",
|
||||
:v "1.0"
|
||||
:widgetId @widget
|
||||
:action action}, "*"))
|
||||
([action data]
|
||||
(prn (str "sending " action))
|
||||
(prn (str "sending d " action))
|
||||
(.postMessage
|
||||
js/window.parent
|
||||
#js {:api "fromWidget",
|
||||
:v "1.0"
|
||||
:action action
|
||||
:data data}, "*")))
|
||||
:widgetId @widget
|
||||
|
||||
:data data}, "*"))
|
||||
([action hm-key data]
|
||||
(prn (str "sending kv " action))
|
||||
(.postMessage
|
||||
js/window.parent
|
||||
(clj->js {:api "fromWidget",
|
||||
:v "1.0"
|
||||
:action action
|
||||
:widgetId @widget
|
||||
(keyword hm-key) data
|
||||
}), "*"))
|
||||
|
||||
)
|
||||
|
||||
(defn site-startup []
|
||||
(prn "site start up")
|
||||
|
@ -43,46 +58,33 @@
|
|||
(prn (aget event "data" "action"))
|
||||
(prn (aget event "data" "widgetId"))
|
||||
(when (= (aget event "data" "api") "toWidget")
|
||||
(prn (str "msg type " (.-type (.-data event))))
|
||||
(prn (str "msg type " (-> event .-data .-action )))
|
||||
(prn (str "msg type " (aget event "data" "action") ))
|
||||
(case (aget event "data" "action")
|
||||
"m.room.message" (prn "type msg")
|
||||
"m.room.member" (prn "type member")
|
||||
"capabilities"
|
||||
(do
|
||||
(swap! widget assoc :widget-id (-> event .-data .-widgetId ))
|
||||
(.postMessage
|
||||
js/window.parent
|
||||
#js {:api "fromWidget",
|
||||
:v "1.0"
|
||||
:action "capabilities"
|
||||
:capabilities #js ["m.text" "m.image"]
|
||||
#_#_:action "supported_api_versions"}, "*")
|
||||
(prn "type capa"))
|
||||
(swap! widget assoc :widget-id (aget event "data" "widgetId"))
|
||||
(send-to-parent "capabilities" :capabilities #js ["m.capability.screenshot"]))
|
||||
"notify_capabilities"
|
||||
(do
|
||||
(.postMessage
|
||||
js/window.parent
|
||||
#js {:api "fromWidget",
|
||||
:v "1.0"
|
||||
:action "capabilities"
|
||||
:capabilities #js ["m.text" "m.image"]
|
||||
#_#_:action "supported_api_versions"}, "*")
|
||||
(prn "type capa"))
|
||||
(prn (.-type event)))
|
||||
(send-to-parent "capabilities" :capabilities #js ["m.capability.screenshot"]))
|
||||
(do
|
||||
(prn "unhandled action " (str (aget event "data" "action")))
|
||||
(prn (aget event "data"))))
|
||||
|
||||
(prn (.-origin event))
|
||||
(prn (.-data event)))))
|
||||
#_(prn (.-origin event))
|
||||
#_(prn (.-data event)))))
|
||||
|
||||
(prn "send ready message")
|
||||
|
||||
(send-to-parent "ready")
|
||||
(send-to-parent "widget_ready")
|
||||
(send-to-parent "m.room.message" #js {:body "testing from widget" :msgtype "m.text"})
|
||||
#_(.postMessage js/window.parent #js {:api "fromWidget",
|
||||
:v "1.0"
|
||||
:action "ready"
|
||||
#_#_:action "supported_api_versions"}, "*")
|
||||
|
||||
(prn "send content loaded message")
|
||||
|
||||
#_(.postMessage js/window.parent #js {:api "fromWidget",
|
||||
:v "1.0"
|
||||
|
@ -99,17 +101,33 @@
|
|||
)
|
||||
|
||||
#_(def game-state-viking (r/atom {:board viking-start-state}))
|
||||
|
||||
|
||||
(defn chars->map [text]
|
||||
(when (= 0 (mod (count text) 4))
|
||||
(loop [colour :white
|
||||
positions text
|
||||
results []]
|
||||
|
||||
(prn positions)
|
||||
|
||||
(if (seq positions)
|
||||
(recur
|
||||
(if (= colour :white) :black :white)
|
||||
(drop 4 positions)
|
||||
(conj results {
|
||||
:colour colour
|
||||
:piece (first positions)
|
||||
:pos [(second positions) (nth positions 2)]}))
|
||||
results))))
|
||||
|
||||
|
||||
(defn setup []
|
||||
(prn "register listener")
|
||||
(.addEventListener js/window "load"
|
||||
(fn [event]
|
||||
(prn "on load")
|
||||
(prn (.-location js/window))
|
||||
(prn (-> js/window .-location .-hash))
|
||||
|
||||
(site-startup)
|
||||
))
|
||||
)
|
||||
(site-startup))))
|
||||
|
||||
(defonce test-event (setup))
|
||||
|
||||
|
@ -250,7 +268,7 @@
|
|||
(enhance-board click-square)
|
||||
(place-pieces-on-board v/viking-start-state click-square))}))
|
||||
|
||||
(defonce chess-board-setup
|
||||
(defn chess-board-setup [start-state]
|
||||
(reset! game-state
|
||||
{:player-one {:pieces []
|
||||
:colour :white
|
||||
|
@ -263,7 +281,16 @@
|
|||
(enhance-board click-square)
|
||||
(place-pieces-on-board start-state click-square))}))
|
||||
|
||||
(defn chess-page [{:keys [path-params] :as route}]
|
||||
(defn chess-page [{:keys [path-params query-params] :as route}]
|
||||
(prn route)
|
||||
(prn (:pieces query-params))
|
||||
(prn start-state)
|
||||
|
||||
(prn (chars->map (:pieces query-params)))
|
||||
(if (:pieces query-params)
|
||||
(chess-board-setup (chars->map (:pieces query-params)))
|
||||
(chess-board-setup start-state))
|
||||
|
||||
(fn [{:keys [path-params] :as route}]
|
||||
[:div
|
||||
(let [[pos piece] (get-selected-square)]
|
||||
|
|
Loading…
Reference in New Issue