read a random file that was created on this day and add it to the
message of the day
This commit is contained in:
parent
e9b785dcb2
commit
a03ca0b389
47
src/dhyan/connections/files.clj
Normal file
47
src/dhyan/connections/files.clj
Normal file
|
@ -0,0 +1,47 @@
|
|||
(ns dhyan.connections.files
|
||||
(:require [clojure.java.shell :refer [sh]]
|
||||
[clojure.string :as string]))
|
||||
|
||||
(defn get-birth
|
||||
"Using stat, get the birth of the full file path passed"
|
||||
[file]
|
||||
(->> file
|
||||
(sh "stat" "%w")
|
||||
:out
|
||||
(string/split-lines)
|
||||
(last)
|
||||
(re-find #"\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])")
|
||||
(first)))
|
||||
|
||||
(defn get-files
|
||||
"Using find, Get a list of all the files in the folder passed"
|
||||
[folder]
|
||||
(->> (sh "find" folder "-maxdepth" "1" "-type" "f")
|
||||
:out
|
||||
(string/split-lines)))
|
||||
|
||||
(def folder "/home/anish/kitaab/vimwiki")
|
||||
|
||||
; Alternative:
|
||||
; we could search through the git log to get the initial commit, but that only goes back 2 years
|
||||
(defn on-this-day
|
||||
"Find files also created on the current day/month
|
||||
Expects filenames to be in format *YYMMDD* based on creation"
|
||||
[]
|
||||
(let [month (-> (sh "date" "+%m")
|
||||
:out
|
||||
(string/trim-newline))
|
||||
day (-> (sh "date" "+%d")
|
||||
:out
|
||||
(string/trim-newline))
|
||||
regex (re-pattern (str ".*\\d{2}" month day ".*"))]
|
||||
(->> (get-files folder)
|
||||
(filter #(some? (re-matches regex %))))))
|
||||
|
||||
(defn slurp-if-file
|
||||
"If there was a file that was created on this day read a random one and return the text"
|
||||
[]
|
||||
(let [files (on-this-day)]
|
||||
(if (> (count files) 0)
|
||||
(slurp (rand-nth files))
|
||||
"No file created on this day, a great day to journal!")))
|
|
@ -1,6 +1,7 @@
|
|||
(ns dhyan.main
|
||||
(:require [dhyan.connections.shaarli :as shaarli]
|
||||
[dhyan.connections.wallabag :as wallabag]
|
||||
[dhyan.connections.files :as files]
|
||||
[clojure.string :as string]
|
||||
[dhyan.connections.matrix :as matrix]))
|
||||
|
||||
|
@ -15,16 +16,16 @@
|
|||
rand-nth)
|
||||
shaarli-message (str "Album of the day is: " (get album-of-the-day :title)
|
||||
"\n available at: " (get album-of-the-day :url))
|
||||
wallabag-data (wallabag/get-archived-annotated-entries)
|
||||
wallabag-entry-of-the-day (rand-nth wallabag-data)
|
||||
wallabag-entry-of-the-day (rand-nth (wallabag/get-archived-annotated-entries))
|
||||
wallabag-annotation-of-the-day (rand-nth (get wallabag-entry-of-the-day :annotations))
|
||||
wallabag-message (str "Annotation of the day: " wallabag-annotation-of-the-day
|
||||
"\n from the article: " (get wallabag-entry-of-the-day :title)
|
||||
"\n available at: " (get wallabag-entry-of-the-day :url)
|
||||
"\n tagged as: " (string/join ", " (get wallabag-entry-of-the-day :tags)))
|
||||
message (string/join "\n\n" [shaarli-message wallabag-message])
|
||||
on-this-day-file (files/slurp-if-file)
|
||||
message (string/join "\n\n" [shaarli-message wallabag-message on-this-day-file])]
|
||||
;file-data (sh "ls" (System/getenv "folder"))
|
||||
; remove anything in () [] {}
|
||||
;filtered-file-data (filterv #(string/replace % #"(.*)" "") file-data)
|
||||
]
|
||||
|
||||
(matrix/post-message message)))
|
||||
|
|
Loading…
Reference in a new issue