diff --git a/README.md b/README.md
index bfe550f..cf8f1f6 100644
--- a/README.md
+++ b/README.md
@@ -355,6 +355,14 @@ Bot Commands
!stats: Returns a list of Username [telegram_id]: msg_num
+
time.lua
diff --git a/plugins/steam.lua b/plugins/steam.lua
new file mode 100644
index 0000000..954e209
--- /dev/null
+++ b/plugins/steam.lua
@@ -0,0 +1,67 @@
+-- See https://wiki.teamfortress.com/wiki/User:RJackson/StorefrontAPI
+
+do
+
+local BASE_URL = 'http://store.steampowered.com/api/appdetails/?appids='
+local DESC_LENTH = 200
+
+function unescape(str)
+ str = string.gsub( str, '<', '<' )
+ str = string.gsub( str, '>', '>' )
+ str = string.gsub( str, '"', '"' )
+ str = string.gsub( str, ''', "'" )
+ str = string.gsub( str, '(%d+);', function(n) return string.char(n) end )
+ str = string.gsub( str, '(%d+);', function(n) return string.char(tonumber(n,16)) end )
+ str = string.gsub( str, '&', '&' ) -- Be sure to do this after all others
+ return str
+end
+
+function get_steam_data (appid)
+ local url = BASE_URL..appid
+ local res,code = http.request(url)
+ if code ~= 200 then return nil end
+ local data = json:decode(res)[appid].data
+ return data
+end
+
+
+function send_steam_data(data, receiver)
+-- local title = data.name
+ local description = string.sub(unescape(data.about_the_game:gsub("%b<>", "")), 1, DESC_LENTH) .. '...'
+ local title = data.name
+ local price = "$"..(data.price_overview.initial/100)
+ local sale_price = "$"..(data.price_overview.final/100)
+ local percent_savings = data.price_overview.discount_percent
+ local price_display = price
+
+ if percent_savings ~= 0 then
+ price_display = price.." -> "..sale_price.." ("..percent_savings.."%)"
+ end
+
+ local text = title..' '..price_display..'\n'..description
+ local image_url = data.screenshots[1].path_full
+ local cb_extra = {
+ receiver = receiver,
+ url = image_url
+ }
+ send_msg(receiver, text, send_photo_from_url_callback, cb_extra)
+end
+
+
+function run(msg, matches)
+ local appid = matches[1]
+ local data = get_steam_data(appid)
+ local receiver = get_receiver(msg)
+ send_steam_data(data, receiver)
+end
+
+return {
+ description = "Grabs Steam info for Steam links.",
+ usage = "",
+ patterns = {
+ "http://store.steampowered.com/app/([0-9]+)",
+ },
+ run = run
+}
+
+end
|