Simplify extraction code

This commit is contained in:
Jeroen van Dijk 2021-05-27 16:08:59 +03:00
parent 169c9b8717
commit b181dde066

View file

@ -14,14 +14,12 @@
";document.body.appendChild(s);")) ";document.body.appendChild(s);"))
(defn pr-code [code-str] (defn pr-code [code-str]
(let [s (pr-str (str "#_CODE_" code-str "#_CODE_"))] (pr-str (str "#_CODE_" code-str "#_CODE_")))
(str "\"" (subs s 1 (dec (count s))) "\"")))
(defn read-code [code] (defn read-code [code-str]
(read-string (str "\"" code "\""))) (when-let [raw-code (second (re-find #"#_CODE_(.+)#_CODE_" code-str))]
;; Use read-string to undo escaping of characters by pr-str (e.g. newlines)
(defn extract-code [code-str] (read-string (str "\"" raw-code "\""))))
(second (re-find #"#_CODE_(.+)#_CODE_" code-str)))
(defn bookmarklet-href [code-str] (defn bookmarklet-href [code-str]
(str "javascript:(function(){" (str "javascript:(function(){"
@ -63,8 +61,7 @@
[:textarea {:rows 10 :cols 80 [:textarea {:rows 10 :cols 80
:on-drop (fn [e] :on-drop (fn [e]
(let [bookmarklet (js/decodeURIComponent (.. e -dataTransfer (getData "text"))) (let [bookmarklet (js/decodeURIComponent (.. e -dataTransfer (getData "text")))
cljs-snippet (some-> (extract-code bookmarklet) cljs-snippet (read-code bookmarklet)
read-code)
new-code (if cljs-snippet new-code (if cljs-snippet
(str "; Extracted snippet\n" cljs-snippet) (str "; Extracted snippet\n" cljs-snippet)
(str "; Failed to extract snippet\n" bookmarklet))] (str "; Failed to extract snippet\n" bookmarklet))]