 
 (defmulti save-badge-content! content-type)
 
-(defmethod save-badge-content! :blank [_ _]
+(defmethod save-badge-content! :blank [_ _ & _]
   (throw (Exception. "badge/MissingBadgeContent")))
 
-(defmethod save-badge-content! :url [ctx input]
-  (save-badge-content! ctx (with-meta (u/http-get input) {:url input})))
+(defmethod save-badge-content! :url [ctx input & _]
+  (save-badge-content! ctx (u/http-get input) {:url input}))
 
-(defmethod save-badge-content! :json [ctx input]
-  (let [data (json/read-str input :key-fn keyword)]
+(defmethod save-badge-content! :json [ctx input & more]
+  (let [input-meta (or (meta input) (first more) {})
+        data (json/read-str input :key-fn keyword)]
     (merge
       (save-badge-content! ctx (with-meta {:id ""
                                            :name        (:name data)

                      :url   (:url data)
                      :email (:email data)
                      :json_url ((meta input) :json-url "")}
                     (meta input)))))

(defmethod save-creator-content! :default [ctx input]
  (s/validate schemas/CreatorContent input)
  (let [id (content-id input)]
    (insert-creator-content! (assoc input :id id) (u/get-db ctx))

                     (map :attrs link-tags))]
    (try (u/http-get md-url) (catch Exception _ ""))))

(defn- content-type [_ input & _]
  (cond
    (map? input)          :default
    (string/blank? input) :blank
