   "Imports photos from respective directory."
   [{:keys [put-fn]}]
   (let [files (file-seq (clojure.java.io/file "data/image-import"))]
-    (doseq [img (f/filter-by-name files #"[A-Za-z0-9_]+.jpg")]
+    (log/info "importing photos")
+    (doseq [img (f/filter-by-name files #"[A-Za-z0-9_]+.(jpg|JPG|PNG|png)")]
       (let [filename (.getName img)]
+        (log/info "Trying to import " filename)
         (try (let [rel-path (.getPath img)
                    file-info (exif-for-file img)
                    target-filename (str (:timestamp file-info) "-" filename)

        gps-date (get raw-exif "GPS Date Stamp")
        gps-time (get raw-exif "GPS Time-Stamp")]
    {:raw-exif  raw-exif
     :timestamp (if gps-date
                  (extract-ts (str gps-date " " gps-time))
                  ;; workaround since EXIF editor doesn't add timezone
                  (extract-ts (str (get raw-exif "Date/Time") ".00 UTC")))
     :latitude  (dms-to-dd lat-dms lat-ref)
     :longitude (dms-to-dd lon-dms lon-ref)}))


  when not all 3 groups dm, m, and s are contained in coord string. Result negative
  when coord in Western or Southern Hemisphere according to ref argument."
  [coord ref]
  (when coord
    (let [matcher (re-matcher #"(\d{1,3})° (\d{1,2})' (\d{1,2}\.?\d+?)" coord)
          [_dms d m s] (re-find matcher)]
      (when (and d m s)
        (let [d (read-string d)
              m (read-string m)
              s (read-string s)
              dd (float (+ d (/ m 60) (/ s 3600)))]
          (if (contains? #{"W" "S"} ref)
            (- dd)
            dd))))))

(defn extract-ts
  "Converts concatenated GPS timestamp strings into milliseconds since epoch.
