Merge branch 'master' of https://git.okoyono.de/mezzomix/buch_des_monats.git
This commit is contained in:
commit
4c65c61413
3 changed files with 18 additions and 12 deletions
|
@ -1,9 +1,10 @@
|
||||||
(defproject buchdesmonats "1.1"
|
(defproject buchdesmonats "1.2"
|
||||||
:description "A simple tool to fetch all books of the month from the okoyono.de project."
|
:description "A simple tool to fetch all books of the month from the okoyono.de project."
|
||||||
:url "https://git.okoyono.de/mezzomix/buch_des_monats"
|
:url "https://git.okoyono.de/mezzomix/buch_des_monats"
|
||||||
:license {:name "MIT License"
|
:license {:name "MIT License"
|
||||||
:url "http://opensource.org/licenses/MIT"}
|
:url "http://opensource.org/licenses/MIT"}
|
||||||
:dependencies [[org.clojure/clojure "1.6.0"]
|
:dependencies [[org.clojure/clojure "1.6.0"]
|
||||||
|
[org.clojure/tools.logging "0.3.1"]
|
||||||
[enlive "1.1.5"]
|
[enlive "1.1.5"]
|
||||||
[me.raynes/fs "1.4.5"]
|
[me.raynes/fs "1.4.5"]
|
||||||
[clj-http "0.9.2"]]
|
[clj-http "0.9.2"]]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
@import url(http://fonts.googleapis.com/css?family=Gilda+Display);
|
@import url(http://fonts.googleapis.com/css?family=Gilda+Display);
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color: #CEC3A7;
|
background-color: #f5efdb;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
;;; Copyright (C) 2014 Aaron Mueller <mail@aaron-mueller.de>
|
;;; Copyright (C) 2014-2015 Aaron Fischer <mail@aaron-fischer.net>
|
||||||
;;;
|
;;;
|
||||||
;;; Permission is hereby granted, free of charge, to any person obtaining a copy of
|
;;; Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
;;; this software and associated documentation files (the "Software"), to deal in
|
;;; this software and associated documentation files (the "Software"), to deal in
|
||||||
|
@ -23,6 +23,7 @@
|
||||||
[clj-http.client :as http-client]
|
[clj-http.client :as http-client]
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[clojure.java.io :as io]
|
[clojure.java.io :as io]
|
||||||
|
[clojure.tools.logging :as log]
|
||||||
[me.raynes.fs :as fs]))
|
[me.raynes.fs :as fs]))
|
||||||
|
|
||||||
(defn imgurl->bytes [lovelybooks-url]
|
(defn imgurl->bytes [lovelybooks-url]
|
||||||
|
@ -51,18 +52,22 @@
|
||||||
(str/replace #"[^a-z0-9-_.]" "")
|
(str/replace #"[^a-z0-9-_.]" "")
|
||||||
(#(io/file target-dir %)))))
|
(#(io/file target-dir %)))))
|
||||||
|
|
||||||
(defn scrape-book-urls [github-url]
|
(defn scrape-book-urls [datasource-url]
|
||||||
(->> (http-client/get github-url)
|
(->> (http-client/get datasource-url {:insecure? true})
|
||||||
:body
|
:body
|
||||||
str/split-lines
|
str/split-lines
|
||||||
(map #(second (re-find #"^\* .*\[.+\]\((.+)\)" %)))
|
(map #(second (re-find #"^\* .*\[.+\]\((.+)\)" %)))
|
||||||
(remove nil?)))
|
(remove nil?)))
|
||||||
|
|
||||||
(defn scrape-book-cover [url target-dir]
|
(defn scrape-book-cover [url target-dir]
|
||||||
(let [target-file (url->file url target-dir)
|
(try
|
||||||
encoded-url (encode-url url)]
|
(let [target-file (url->file url target-dir)
|
||||||
(with-open [out (io/output-stream target-file)]
|
encoded-url (encode-url url)
|
||||||
(.write out (imgurl->bytes encoded-url)))))
|
bytes (imgurl->bytes encoded-url)]
|
||||||
|
(with-open [out (io/output-stream target-file)]
|
||||||
|
(.write out bytes)))
|
||||||
|
(catch Exception e
|
||||||
|
(log/info "Problems with " url ", skip it."))))
|
||||||
|
|
||||||
(defn find-missing-covers [books-url target-dir]
|
(defn find-missing-covers [books-url target-dir]
|
||||||
(remove #(fs/exists? (url->file % target-dir))
|
(remove #(fs/exists? (url->file % target-dir))
|
||||||
|
@ -85,10 +90,10 @@
|
||||||
(.write out content))))
|
(.write out content))))
|
||||||
|
|
||||||
(defn -main [& args]
|
(defn -main [& args]
|
||||||
(let [github-url "https://git.okoyono.de/mezzomix/buch_des_monats/raw/master/README.mkd"
|
(let [datasource-url "https://git.okoyono.de/mezzomix/buch_des_monats/raw/master/README.mkd"
|
||||||
target-dir (io/file "public" "book-covers")]
|
target-dir (io/file "public" "book-covers")]
|
||||||
(fs/mkdirs target-dir)
|
(fs/mkdirs target-dir)
|
||||||
(generate-html (scrape-book-urls github-url) "public")
|
(generate-html (scrape-book-urls datasource-url) "public")
|
||||||
(doall (pmap #(scrape-book-cover % target-dir)
|
(doall (pmap #(scrape-book-cover % target-dir)
|
||||||
(find-missing-covers github-url target-dir)))
|
(find-missing-covers datasource-url target-dir)))
|
||||||
(System/exit 0)))
|
(System/exit 0)))
|
||||||
|
|
Loading…
Reference in a new issue