dmmのブログパーツ自作してみた by heroku + sinatra

ブログのサイドバーがさみしいので、まとめサイトみたいに画像だけをたくさんばーっと縦に並べたい
と思いdmmのブログパーツ見てみたけど、画像だけ20個並べるとかそういうのなかった

dmm、web apiあるしherokuでsinatra使ったらできるんじゃね
ということで作ってみた

herokuのアカウントあるし、dmmのweb api使用登録も済んでるからあとは書くだけ

app.rb
# coding: utf-8
require "rack/cache"
require "sinatra"
require "dmm/api"
require "coffee-script"
if development?
  require 'sinatra/reloader' 
  set :bind, '0.0.0.0'
end

use Rack::Cache

Dmm::Api.configure do |options|
  options[:api_id] = "api id"
  options[:affiliate_id] = "affiliate id"
  options[:site] = "DMM.co.jp"
end

get '/dmm.js' do

  # 1 day cache
  cache_control :public, :max_age => 86400

  res = Dmm::Api.get({:keyword => "あうー",:hits => "20",:sort => "rank"})
  s= res["result"]["items"]["item"].each.inject("") do |s,v|
    s << "<a href='%s' target='_blank'><img alt='%s' src='%s'></a>" % [v["affiliateURL"],v["title"],v["imageURL"]["small"]]
  end
  coffee "document.write \"#{s}\""
end
Gemfile
source 'https://rubygems.org'
ruby '2.0.0'
gem 'sinatra'
gem 'rack-cache'
gem "dmm-api"
gem "coffee-script"
group :development do
  gem 'sinatra-contrib'
end
Procfile
web: bundle exec ruby app.rb -p $PORT

ファイル3つ作ってherokuへ上げるだけ

cd hoge
git init
git add .
git commit -m "1st"
heroku create hoge --stack cedar
git push heroku master

あとはブログ側で呼び出し

<script type="text/javascript" src="http://hoge.herokuapp.com/dmm.js"></script>

やっぱherokuさんとかsinatraさんとかすごいっす