src/yetibot/commands/ebay.clj
(ns yetibot.commands.ebay
(:require
[yetibot.api.ebay :refer [find-item]]
[yetibot.core.hooks :refer [cmd-hook]]))
(defn price-and-title [json]
(let [price ((comp (partial str "$") :__value__ first :currentPrice first :sellingStatus) json)
title ((comp first :title) json)]
(format "%s: %s" price title)))
(defn format-listings [json]
(let [items (-> json :findItemsByKeywordsResponse first :searchResult first :item)]
(map (comp flatten
(juxt price-and-title
:viewItemURL
:galleryURL))
(take 3 items))))
(defn find-cmd
"ebay <term> # search ebay listings for <term>"
[{:keys [args]}]
(format-listings (find-item args)))
(cmd-hook #"ebay"
_ find-cmd)