(ns ldview.tasks.runner (:require [ldview.tasks.scrape :as scrape] [ldview.tasks.images :as images] [me.raynes.fs :as fs] [ldview.models.entry :as entry] [ldview.models.competition :as competition] [ldview.models.schema :as schema])) (defn cleanup [] (if (fs/exists? images/base-path) (fs/delete-dir images/base-path)) (fs/mkdirs (str images/base-path "/thumbs/")) (fs/mkdirs (str images/base-path "/fullscreen/")) (fs/mkdirs (str images/base-path "/raw/"))) (defn save-entry [new-entry] (entry/create! new-entry) (if (:images new-entry) (map (fn [image-url] (let [id (:ld_uid new-entry) number (last (first (re-seq #"shot([0-9]+)" image-url))) raw-image-path (images/image-name "raw" id number)] (scrape/save-image-from-url image-url raw-image-path) (images/sourceimage->fullscreen raw-image-path (images/image-name "fullscreen" id number)) (images/sourceimage->thumb raw-image-path (images/image-name "thumbs" id number)))) (:images new-entry)))) (defn fetch-all-content [] (let [pages (range 1)] ;(scrape/number-of-pages)] (for [page pages] (for [ld-uid (scrape/entries-on-page (inc page))] (if-not (entry/exists? ld-uid) (save-entry (scrape/entry-details ld-uid))))))) (defn prepare [] (cleanup) (schema/create-tables) (competition/create! 27 "10 Seconds")) ; FIXME: Make it dynamic (ldview.tasks.scrape#competition) (defn start [] (fetch-all-content))