Update dev tools and fix write history
This commit is contained in:
parent
564341e209
commit
e77b46af01
@ -2,4 +2,5 @@
|
|||||||
:min_score 600
|
:min_score 600
|
||||||
:chat ""
|
:chat ""
|
||||||
:bot_token ""
|
:bot_token ""
|
||||||
|
:run_every_miliseconds 3600000
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,12 @@
|
|||||||
; Parse JSON
|
; Parse JSON
|
||||||
[cheshire "5.8.1"]
|
[cheshire "5.8.1"]
|
||||||
]
|
]
|
||||||
|
:plugins [
|
||||||
|
; Dev Tools
|
||||||
|
[lein-auto "0.1.3"]
|
||||||
|
[lein-kibit "0.1.7"]
|
||||||
|
[lein-cljfmt "0.6.4"]
|
||||||
|
]
|
||||||
:main ^:skip-aot isahn.core
|
:main ^:skip-aot isahn.core
|
||||||
:target-path "target/%s"
|
:target-path "target/%s"
|
||||||
:profiles {:uberjar {:aot :all}})
|
:profiles {:uberjar {:aot :all}})
|
||||||
|
@ -3,11 +3,9 @@
|
|||||||
[config.core :refer [env]]
|
[config.core :refer [env]]
|
||||||
[clojure.java.io :as io]
|
[clojure.java.io :as io]
|
||||||
[clj-http.client :as client]
|
[clj-http.client :as client]
|
||||||
[cheshire.core :refer :all]
|
[cheshire.core :refer :all])
|
||||||
)
|
|
||||||
(:gen-class))
|
(:gen-class))
|
||||||
|
|
||||||
|
|
||||||
" VARIABLES "
|
" VARIABLES "
|
||||||
|
|
||||||
" URL send for Telegram "
|
" URL send for Telegram "
|
||||||
@ -25,7 +23,7 @@
|
|||||||
" Path file save history "
|
" Path file save history "
|
||||||
(def path_history "isahn_history.json")
|
(def path_history "isahn_history.json")
|
||||||
(def history (if (.exists (io/file path_history)) (parse-string (slurp (io/file path_history)) true) (str "")))
|
(def history (if (.exists (io/file path_history)) (parse-string (slurp (io/file path_history)) true) (str "")))
|
||||||
(def history_ids (map #(:id %) history))
|
(def history_ids (map :id history))
|
||||||
|
|
||||||
" FUNCTIONS "
|
" FUNCTIONS "
|
||||||
|
|
||||||
@ -40,17 +38,26 @@
|
|||||||
" Get all ids stories"
|
" Get all ids stories"
|
||||||
(def ids_stories (parse-string (:body (client/get url_all_stories {:accept :json}))))
|
(def ids_stories (parse-string (:body (client/get url_all_stories {:accept :json}))))
|
||||||
" Get all API urls stories "
|
" Get all API urls stories "
|
||||||
(def urls_stories (map #(one_story %) ids_stories))
|
(def urls_stories (map one_story ids_stories))
|
||||||
" Get all data stories "
|
" Get all data stories "
|
||||||
(map #(parse-string (:body (client/get % {:accept :json}))) urls_stories))
|
(map #(parse-string (:body (client/get % {:accept :json}))) urls_stories))
|
||||||
|
|
||||||
(defn lazy-contains? [col key]
|
(defn lazy-contains? [col key]
|
||||||
(some #{key} col))
|
(some #{key} col))
|
||||||
|
|
||||||
|
(defn set-interval [callback ms]
|
||||||
|
" Run function every ms "
|
||||||
|
(future (while true (do (Thread/sleep ms) (callback)))))
|
||||||
|
|
||||||
(defn save_history
|
(defn add_history
|
||||||
[]
|
" Add to file history news_stories "
|
||||||
(prn "salvado")
|
[news_stories]
|
||||||
|
(def history_news_ids (concat history_ids (map #(get-in % ["id"]) news_stories)))
|
||||||
|
(def history_all (map #(assoc {} :id %) (vec history_news_ids)))
|
||||||
|
(prn history_all)
|
||||||
|
(prn (generate-string history_all))
|
||||||
|
(with-open [w (clojure.java.io/writer path_history :append false)]
|
||||||
|
(.write w (generate-string history_all)))
|
||||||
)
|
)
|
||||||
|
|
||||||
(defn filter_stories
|
(defn filter_stories
|
||||||
@ -68,19 +75,25 @@
|
|||||||
(defn send_stories_telegram
|
(defn send_stories_telegram
|
||||||
[stories]
|
[stories]
|
||||||
" Send stories by Telegram Channel "
|
" Send stories by Telegram Channel "
|
||||||
(doall (iterate #((client/post url_telegram_send {:basic-auth ["user" "pass"]
|
(doall (iterate #((client/post url_telegram_send {:body (generate-string {:chat_id (:chat env)
|
||||||
:body (generate-string {
|
|
||||||
:chat_id (:chat env)
|
|
||||||
:text (str (get-in % ["title"]) ": " (get-in % ["url"]))
|
:text (str (get-in % ["title"]) ": " (get-in % ["url"]))
|
||||||
:disable_notification true
|
:disable_notification true})
|
||||||
})
|
|
||||||
:content-type :json
|
:content-type :json
|
||||||
:accept :json})) stories)))
|
:accept :json})) stories)))
|
||||||
|
|
||||||
|
(defn check_stories
|
||||||
|
" Check news stories and send message to Telegram "
|
||||||
|
[]
|
||||||
|
(def stories_top (filter_stories (get_all_stories url_all_stories)))
|
||||||
|
(doall (add_history stories_top))
|
||||||
|
;;(doall (add_history ({"id" 45} {"id" 55})))
|
||||||
|
(prn stories_top)
|
||||||
|
)
|
||||||
|
|
||||||
(defn -main
|
(defn -main
|
||||||
"Main execution"
|
"Main execution"
|
||||||
[]
|
[]
|
||||||
|
" Run first time "
|
||||||
(def stories_top (filter_stories (get_all_stories url_all_stories)))
|
(check_stories)
|
||||||
(prn stories_top)
|
" Run every :run_every_miliseconds "
|
||||||
)
|
(set-interval check_stories (:run_every_miliseconds env)))
|
||||||
|
Loading…
Reference in New Issue
Block a user