Skip to content

Commit

Permalink
update current ffeature
Browse files Browse the repository at this point in the history
  • Loading branch information
MokkeMeguru committed Jul 6, 2020
1 parent ce677ed commit 03882af
Show file tree
Hide file tree
Showing 5 changed files with 279 additions and 74 deletions.
60 changes: 60 additions & 0 deletions src/cljs/practical_customizable_alerm/alarm_serialize.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
(ns practical-customizable-alerm.alarm-serialize
(:require [re-frame.core :as rf]
[practical-customizable-alerm.events :as events]
[practical-customizable-alerm.lstorage :as lstorage]))


;; (re-frame/dispatch [::reset-alarm])
;; (re-frame/dispatch [::add-alarm "1,2020-06-19-08-30,1,/home/pi/PPS/assets/PretenderWithPiano.ogg,3"])
(defn format-setting [s]
(let [bases (clojure.string/split s ",")
date (clojure.string/split (nth bases 1) "-")
format-date (clojure.string/join "/" (take 3 date))
format-time (clojure.string/join ":" (drop 3 date))
format-name (last (clojure.string/split (nth bases 3) "/"))
format-freq (last bases)]
;;bases
[format-date format-time format-name format-freq]
))

(defn serial-setting [[date time name freq]]
(let [serial-name (str "/home/pi/PPS/assets/" name)
serial-date
(clojure.string/join
"-"
(-> date (clojure.string/split "/")))
serial-time (clojure.string/join "-" (-> time (clojure.string/split ":")))
serial-datetime (str serial-date "-" serial-time)
serial-id (str 1)
serial-source (str 2)
serial-repeat (str freq)]
(clojure.string/join
","
[serial-id serial-datetime serial-source serial-name serial-repeat])))


(defn re-format-setting-as-hiccup [s]
(let [[d t n f] (format-setting s)]
[:div.columns
[:div.column.is-10>p t [:span {:style {:font-size "0.4rem" :color "gray" :margin "0 0.5rem"}} d]
[:span " (" n " "] f ")" ]
[:div.column.is-2
[:button.button.is-small {:on-click #(rf/dispatch [::events/remove-alarm (lstorage/get-item! "raspihost") s])
:style {:margin-left "auto"}} "X"]]]))

(defn re-format-date [date]
(clojure.string/replace date #"-" "/"))

;; (re-format-date "2020-10-02")


;; (re-format-setting-as-hiccup (format-setting "1,2020-06-19-08-30,1,/home/pi/PPS/assets/PretenderWithPiano.ogg,3"))


;; (format-setting (serial-setting (format-setting "1,2020-06-19-08-30,1,/home/pi/PPS/assets/PretenderWithPiano.ogg,3")))





;; (map str (sort #{1 2 3}))
1 change: 1 addition & 0 deletions src/cljs/practical_customizable_alerm/db.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
:viewing-setting "alarm"
:raspihost ""
:sounds []
:alarms #{}
:indexed-db (r/atom {})
})
84 changes: 81 additions & 3 deletions src/cljs/practical_customizable_alerm/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
(:require
[re-frame.core :as re-frame]
[practical-customizable-alerm.db :as db]
[practical-customizable-alerm.lstorage :as lstorage]
[reitit.frontend.controllers :as refc]
[reitit.frontend.easy :as resy]
[day8.re-frame.tracing :refer-macros [fn-traced]]
Expand All @@ -23,7 +24,6 @@
(re-frame/reg-event-fx
::get-sounds
(fn [{:keys [db]} [_ val]]
(println val)
{:db (assoc db :show-twirly true)
:http-xhrio {:method :get
:uri (str val "/sound") ;;val + "/sounds"
Expand All @@ -33,11 +33,57 @@
:on-failure [::bad-http-result]
}}))


(re-frame/reg-event-fx
::erase-sounds
(fn [{:keys [db]} [_ val]]
{:db (assoc db :show-twirly true)
:http-xhrio {:method :delete
:uri (str val "/clear-sound") ;;val + "/sounds"
:timeout 8000
:format (ajax/json-request-format)
:response-format (ajax/json-response-format {:keywords? true})
:on-success [::regist-sounds]
:on-failure [::bad-http-result]}}))


(re-frame/reg-event-fx
::upload-sounds
(fn [{:keys [db]} [_ val url name]]
(println "called!!!" val url name)
{:db (assoc db :show-twirly true)
:http-xhrio {:method :post
:uri (str val "/sound") ;;val + "/sounds"
:timeout 8000
:params {:SoundSource url :SoundName name}
:format (ajax/json-request-format)
:response-format (ajax/json-response-format {:keywords? true})
:on-success [::detect-status]
:on-failure [::bad-http-result]}}))

(re-frame/reg-event-db
::detect-status
(fn [db [_ result]]
;;(re-frame/dispatch [::get-sounds (lstorage/get-item! "raspihost")])
(dissoc db :failed-http-result)))

;; (re-frame/dispatch-sync
;; [::upload-sounds "http://localhost:8080"
;; "https://firebasestorage.googleapis.com/v0/b/personalcustomizablealerm.appspot.com/o/official_sample%2Fbasic-code.wav?alt=media&token=eabf88cf-3428-4642-90f9-293763071bcd"
;; "basic-c-code.wav"])

(re-frame/reg-event-db
::clear-sounds
(fn [db [_ val]]
(re-frame/dispatch [::erase-sounds val])
(assoc db :sounds [])))


(re-frame/reg-event-db
::bad-http-result
(fn [db [_ result]]
(.log js/console result)
db))
(println result)
(assoc db :failed-http-result result)))

(re-frame/reg-event-db
::regist-sounds
Expand Down Expand Up @@ -105,4 +151,36 @@
(fn [db [_ idb]]
(assoc db :indexed-db idb)))

(re-frame/reg-event-fx
::sync-alarms
(fn [{:keys [db]} [_ val settings]]
(println "called!!!" val)
{:db (assoc db :show-twirly true)
:http-xhrio {:method :post
:uri (str val "/alarm") ;;val + "/sounds"
:timeout 8000
:params {:AlarmList settings}
:format (ajax/json-request-format)
:response-format (ajax/json-response-format {:keywords? true})
:on-success [::detect-status]
:on-failure [::bad-http-result]
}}))

(re-frame/reg-event-db
::add-alarm
(fn [db [_ val setting-string]]
(let [settings (conj (:alarms db) setting-string)]
(re-frame/dispatch [::sync-alarms val (vec settings)])
(assoc db :alarms settings))))

(re-frame/reg-event-db
::reset-alarm
(fn [db [_ _]]
(assoc db :alarms #{})))

(re-frame/reg-event-db
::remove-alarm
(fn [db [_ val setting-string]]
(let [settings (disj (:alarms db) setting-string)]
(re-frame/dispatch [::sync-alarms val (vec settings)])
(assoc db :alarms settings))))
9 changes: 9 additions & 0 deletions src/cljs/practical_customizable_alerm/subs.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,12 @@
(fn [db]
(:sounds db)))

(re-frame/reg-sub
::failed-http-result
(fn [db]
(:failed-http-result db)))

(re-frame/reg-sub
::alarms
(fn [db]
(:alarms db)))
Loading

0 comments on commit 03882af

Please sign in to comment.