aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClyne Sullivan <clyne@bitgloo.com>2023-07-11 07:54:57 -0400
committerClyne Sullivan <clyne@bitgloo.com>2023-07-11 07:54:57 -0400
commit5523960bef3c76aba8d52a25fb0c352e4374f61d (patch)
treeac526b16f8e68f351fce924419b5053cb51af39e
parent174d96bd2c35b9954a7b506aa77384f559de9fb0 (diff)
bring back comment content; some refactoring
-rw-r--r--src/lemmold/core.clj37
1 files changed, 20 insertions, 17 deletions
diff --git a/src/lemmold/core.clj b/src/lemmold/core.clj
index 73f96f7..7e211b9 100644
--- a/src/lemmold/core.clj
+++ b/src/lemmold/core.clj
@@ -22,18 +22,21 @@
(defn comments-list [post]
(-> (make-api-url INSTANCE COMMENTS)
- (api-call {:post_id (str (get-in post ["post" "id"]))})
+ (api-call {:limit "50" :post_id (str (get-in post ["post" "id"]))})
(get "comments")))
(defn show-post-item [post]
- (println (get-in post ["creator" "name"]) "on" (get-in post ["community" "name"]))
- (println (get-in post ["post" "name"]))
- (println "at" (get-in post ["post" "published"]) "(" (get-in post ["counts" "comments"]) "comments)")
- (println)
- )
+ (let [items [["creator" "name"]
+ ["community" "name"]
+ ["post" "name"]
+ ["post" "published"]
+ ["counts" "comments"]]
+ data (mapv (partial get-in post) items)]
+ (apply (partial printf "%s on %s\n%s\nat %s (%d comments)\n\n") data)))
(defn show-comment-item [commnt]
(println (get-in commnt ["creator" "name"]) "says:")
+ (println (get-in commnt ["comment" "content"]))
(println)
)
@@ -56,31 +59,31 @@
(first (read-line)))
(defn view-post [post]
- (println "Viewing post id:" (get-in post ["post" "id"]))
(loop [offset 0 comments (comments-list post)]
- (println (count comments) offset)
(show-comments (if (pos? offset) (drop (* 5 offset) comments) comments))
- (flush)
(case (show-comments-prompt)
\B (println)
\N (recur (inc offset) comments)
\P (recur (dec offset) comments)
(do (println "Unknown command.") (recur offset comments)))))
-(defn -main [& args]
+(defn view-page []
(loop [top true page 1 posts (post-list page)]
(show-posts (if top posts (drop 5 posts)))
- (flush)
(case (show-posts-prompt)
\N (if top (recur false page posts)
(recur true (inc page) (post-list (inc page))))
\P (if top (recur false (dec page) (post-list (dec page)))
(recur true page posts))
- \Q (println "Goodbye.")
- \1 (do (view-post (nth posts 0)) (recur top page posts))
- \2 (do (view-post (nth posts 1)) (recur top page posts))
- \3 (do (view-post (nth posts 2)) (recur top page posts))
- \4 (do (view-post (nth posts 3)) (recur top page posts))
- \5 (do (view-post (nth posts 4)) (recur top page posts))
+ \Q (do)
+ \1 (do (view-post (nth posts (cond-> 5 top (- 5)))) (recur top page posts))
+ \2 (do (view-post (nth posts (cond-> 6 top (- 5)))) (recur top page posts))
+ \3 (do (view-post (nth posts (cond-> 7 top (- 5)))) (recur top page posts))
+ \4 (do (view-post (nth posts (cond-> 8 top (- 5)))) (recur top page posts))
+ \5 (do (view-post (nth posts (cond-> 9 top (- 5)))) (recur top page posts))
(do (println "Unknown command.") (recur top page posts)))))
+(defn -main [& args]
+ (view-page)
+ (println "Goodbye."))
+