Implement basic post recording

This commit is contained in:
Charlotte Allen 2020-01-27 18:54:24 -08:00
parent 44d0da8f46
commit c787cacc52
No known key found for this signature in database
GPG Key ID: 3A64C3A6C69860B0
2 changed files with 36 additions and 0 deletions

1
.gitignore vendored
View File

@ -15,3 +15,4 @@ profiles.clj
/node_modules
/log
*.swp
resources/posts/

View File

@ -0,0 +1,35 @@
(ns shapey-shifty.posts.posts-io
(:require
[clojure.data.json :as json]
[shapey-shifty.posts.core :as core]))
(def post-filename "post.json")
(def base-path "resources/posts")
(defn create-path-by-date [year month day]
{:year year :month month :day day})
(defn pathmap-to-path [{:keys [year month day]}]
(format "%d/%d/%d" year month day))
(defn count-posts-in-date [dt-path]
(let [path (pathmap-to-path dt-path)
final-path (format "%s/%s" base-path path)]
(->> final-path
clojure.java.io/file
file-seq
(filter #(.isDirectory %))
count
dec)))
(defn jsonify-post [post]
(json/write-str post))
(defn write-post [post dt-path]
(let [path (pathmap-to-path dt-path)
increment (inc (count-posts-in-date dt-path))
final-path (format "%s/%s/%d/%s" base-path path increment post-filename)]
(clojure.java.io/make-parents final-path)
(spit final-path post)))