fix screen name & add untrimmed option

master
jem 4 years ago
parent 8ccdbde8ec
commit 0a0e9fb2ae

@ -8,9 +8,13 @@
(s/def ::created-at any?) (s/def ::created-at any?)
(s/def ::text string?) (s/def ::text string?)
(s/def ::untrimmed-text string?)
(s/def ::media-links string?) (s/def ::media-links string?)
(s/def ::screen_name string?) (s/def ::screen_name string?)
(def element? (s/keys :req-un [::created-at ::text ::media-links ::screen_name])) (def input? (s/keys :req-un [::created-at ::text ::screen_name]
:opt-un [::media-links ::untrimmed-text]))
(def mastodon-output? (s/keys :req-un [::created-at ::text]
:opt-un [::media-links]))
(defn trim-text [text max-post-length] (defn trim-text [text max-post-length]
(cond (cond
@ -26,17 +30,19 @@
(str text " " word))) (str text " " word)))
"" ""
(string/split text #" ")) (string/split text #" "))
:else text)) :else text))
(defn-spec to-mastodon any? (defn-spec to-mastodon mastodon-output?
[mastodon-config masto/mastodon-config? [mastodon-config masto/mastodon-config?
input element?] input input?]
(let [{:keys [created-at text media-links screen_name]} input] (let [{:keys [created-at text media-links screen_name untrimmed-text]} input]
{:created-at created-at {:created-at created-at
:text (trim-text :text (str (trim-text
(str text text
(if (masto/append-screen-name? mastodon-config) (masto/max-post-length mastodon-config))
(str "\n - " screen_name) "")) (if (some? untrimmed-text)
(masto/max-post-length mastodon-config)) (str " " untrimmed-text) "")
(if (masto/append-screen-name? mastodon-config)
(str "\n - " screen_name) ""))
:media-links media-links})) :media-links media-links}))

@ -47,6 +47,7 @@
{:keys [screen_name]} :user :as tweet}] {:keys [screen_name]} :user :as tweet}]
{:created-at (js/Date. created-at) {:created-at (js/Date. created-at)
:text (chop-tail-media-url text media) :text (chop-tail-media-url text media)
:screen_name screen_name
:media-links (keep #(when (= (:type %) "photo") (:media_url_https %)) media)}) :media-links (keep #(when (= (:type %) "photo") (:media_url_https %)) media)})
(defn-spec user-timeline any? (defn-spec user-timeline any?