diff --git a/.gitignore b/.gitignore index f00ae81..3549330 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,8 @@ target/ config.yaml log/logger1.log* *.jar -resources/*.tar \ No newline at end of file +resources/*.tar +resources/themes/clojure/static.tar +resources/themes/dark/static.tar +resources/themes/light/static.tar +resources/themes/sepia/static.tar diff --git a/Makefile b/Makefile index f354cc1..0114dc7 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,6 @@ build: make build.templates lein uberjar - make rm.statics echo "Finish!" build.templates: diff --git a/project.clj b/project.clj index 1b86d39..1d0dfa0 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject rsspaper "1.2.1" +(defproject rsspaper "1.2.2" :description "RSSpaper" :url "https://github.com/tanrax/RSSpaper" :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0" diff --git a/src/rsspaper/feeds.clj b/src/rsspaper/feeds.clj index 73331b3..194f3f6 100644 --- a/src/rsspaper/feeds.clj +++ b/src/rsspaper/feeds.clj @@ -16,13 +16,17 @@ (defn filter-edition [articles] - (let [daily (c/to-long (t/minus (t/now) (t/days 1))) + (let [daily (c/to-long (t/minus (t/now) (t/days 1))) weekly (c/to-long (t/minus (t/now) (t/weeks 1)))] (case (:edition config) - "daily" (filter (fn [article] (and (not (nil? (:published-date article))) (>= (:published-date article) daily))) articles) + "daily" (filter (fn [article] (and (not (nil? (:published-date article))) (>= (:published-date article) daily))) articles) "weekly" (filter (fn [article] (and (not (nil? (:published-date article))) (>= (:published-date article) weekly))) articles) articles))) +(defn remove-future-editions + [articles] + (filter (fn [article] (and (not (nil? (:published-date article))) (< (:published-date article) (c/to-long (t/now))))) articles)) + (defn add-datetimes-formatter [articles] (map (fn [article] @@ -35,10 +39,9 @@ ;; Add in every article, all information from feed (concat articles (map (fn [article] (assoc ;; Add feed-url - (assoc article :feed + (assoc article :feed ;; Add feed - (:feed (update-in feed [:feed] dissoc :entries))) :feed-url (:feed-url feed))) (get-in feed [:feed :entries])))) [] feeds)) - + (:feed (update-in feed [:feed] dissoc :entries))) :feed-url (:feed-url feed))) (get-in feed [:feed :entries])))) [] feeds)) (defn add-domain-to-relative-path [url-complete url-relative] @@ -49,7 +52,6 @@ url-with-domain (if is-relative (str (get url-elements 1) (get url-elements 2) url-relative) url-relative)] url-with-domain)) - (defn add-cover-article [articles] ;; Add cover to article search first image in description @@ -63,7 +65,7 @@ url-og-image (second (re-find #"].*?property=\"og:image(?::url)?\".*?content=\"(.*?)\".*?>|].*?content=\"(.*?)\".*?property=\"og:image(?::url)?\".*?>" html)) url-first-image (second (re-find #"[\s\S]+]+src=\"([^\">]+)\"|id=['\"] ?main ?['\"]>[\s\S]+]+src=\"([^\">]+)\"|class=['\"] ?main ?[\'\"]>[\s\S]+]+src=\"([^\">]+)\"" html)) images [url-og-image url-first-image] - url-valid (first (filter (fn [item] (not (nil? item))) images)) + url-valid (first (remove nil? images)) url-final-image (add-domain-to-relative-path (:feed-url article) url-valid)] (assoc article :cover url-final-image))) articles)) @@ -76,22 +78,23 @@ [] ;; Get all feeds from config -> feeds (-> - (reduce - (fn [feeds feed-url] + (reduce + (fn [feeds feed-url] ; Read feed - (let [feed (parse-url feed-url {:insecure? true :throw-exceptions false})] + (let [feed (parse-url feed-url {:insecure? true :throw-exceptions false})] ; User feedback - (prn (str "Reading RSS > " feed-url)) + (prn (str "Reading RSS > " feed-url)) ; Check is not null - (if-not (nil? feed) + (if-not (nil? feed) ; Add feed and add key feed original - (conj feeds (assoc feed :feed-url feed-url)) + (conj feeds (assoc feed :feed-url feed-url)) ; Alert fail - (prn (str "Error with '" feed-url) "'")))) - [] (:feeds config)) - zip-feeds-in-articles - datetimes-to-unixtime - filter-edition - order-published - add-cover-article - add-datetimes-formatter)) + (prn (str "Error with '" feed-url) "'")))) + [] (:feeds config)) + zip-feeds-in-articles + datetimes-to-unixtime + filter-edition + remove-future-editions + order-published + add-cover-article + add-datetimes-formatter))