diff --git a/src/main/mastodon_bot/core.cljs b/src/main/mastodon_bot/core.cljs index f9c55cc..11b6cde 100755 --- a/src/main/mastodon_bot/core.cljs +++ b/src/main/mastodon_bot/core.cljs @@ -32,21 +32,16 @@ (def config (infra/load-config)) -(defn in [needle haystack] - (some (partial = needle) haystack)) - - - (defn parse-tweet [{created-at :created_at text :full_text {:keys [media]} :extended_entities {:keys [screen_name]} :user :as tweet}] {:created-at (js/Date. created-at) :text (transform/trim-text - (mastodon-config config) (str (twitter/chop-tail-media-url text media) (if (masto/append-screen-name? (mastodon-config config)) - (str "\n - " screen_name) ""))) + (str "\n - " screen_name) "")) + (masto/max-post-length (mastodon-config config))) :media-links (keep #(when (= (:type %) "photo") (:media_url_https %)) media)}) (defmulti parse-tumblr-post :type) @@ -54,8 +49,8 @@ (defmethod parse-tumblr-post "text" [{:keys [body date short_url]}] {:created-at (js/Date. date) :text (str (transform/trim-text - (mastodon-config config) - body) + body + (masto/max-post-length (mastodon-config config))) "\n\n" short_url)}) (defmethod parse-tumblr-post "photo" [{:keys [caption date photos short_url] :as post}] @@ -93,8 +88,8 @@ (for [{:keys [title isoDate pubDate content link]} (-> % infra/js->edn :items)] {:created-at (js/Date. (or isoDate pubDate)) :text (str (transform/trim-text - (mastodon-config config) - title) + title + (masto/max-post-length (mastodon-config config))) "\n\n" (twitter/strip-utm link))}))))) (defn tumblr-client [access-keys account] diff --git a/src/main/mastodon_bot/transform.cljs b/src/main/mastodon_bot/transform.cljs index 5e0e75f..1a32a57 100644 --- a/src/main/mastodon_bot/transform.cljs +++ b/src/main/mastodon_bot/transform.cljs @@ -3,24 +3,21 @@ [clojure.spec.alpha :as s] [clojure.spec.test.alpha :as st] [orchestra.core :refer-macros [defn-spec]] - [clojure.string :as string] - ;; TODO: not allowed dep - move needed config parts to this ns - [mastodon-bot.mastodon-api :as masto])) + [clojure.string :as string])) -(defn trim-text [masto-config text] - (let [max-post-length (masto/max-post-length masto-config)] - (cond +(defn trim-text [text max-post-length] + (cond - (nil? max-post-length) - text + (nil? max-post-length) + text - (> (count text) max-post-length) - (reduce - (fn [text word] - (if (> (+ (count text) (count word)) (- max-post-length 3)) - (reduced (str text "...")) - (str text " " word))) - "" - (string/split text #" ")) + (> (count text) max-post-length) + (reduce + (fn [text word] + (if (> (+ (count text) (count word)) (- max-post-length 3)) + (reduced (str text "...")) + (str text " " word))) + "" + (string/split text #" ")) - :else text))) \ No newline at end of file + :else text)) \ No newline at end of file