天然パーマです。

はてブでみんながほしいと感じた記事がひとめでわかる「これ☆ほしい」を作ってみた

つい先日「iPod Touch」などを衝動買いしてしまった僕ですが、 そんな物欲をさらに加速させるようなサイト「これ☆ほしい」を作ってみました。 「これ☆ほしい」とは、ウェブで話題の「みんなの物欲」がひとめでわかるサイトであります。 はてなブックマークされたエントリーの中からユーザーが「欲しい」とか「買いたい」などといった、 タグやコメントをつけたものをピックアップし、カウントして表示しています。

これ☆ほしい - みんなの物欲 このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
これ☆ほしい

機能としては、

  • トップページにて最近みんなが「ほしい」と注目されているエントリーを閲覧できる
  • 24時間以内、今週、などといった期間別に人気の記事を並べ替える
  • タグ別に絞り込む
  • 楽天及びAmazonの注目アイテムを詳細とともに見る
  • といったものがあります。

ウェブの記事に対してどれだけの人がほしいと思っているかをカウントするために、 「欲しい」「買いたい」などといったキーワードと、 はてなブックマークのタグ及びコメントをマッチングさせています。 複数のキーワードに対応していて、いろいろそれっぽいのを登録しました。 こうしてカウントすることで「10 ほしい」といった数字が出てくるわけですね。

さてご覧いただくとお判りの通り、2ヶ月ほど前に話題となった 「これはひどい」、「これはすごい」というサイトにインスパイアされて作りました。 「これ☆ほしい」を作ったいきさつはこんな感じです。

  1. これはひどい&これはすごいを見て、「それPlaggerでできるんじゃね?
  2. じゃあ俺が作るんだったら「これはエロい」だな
  3. 実際作ってみる
  4. はてなブックマークで「これはエロい」とか「エロ」などのタグをつけているエントリーを集めて、並べる。が、しかし
  5. ちょwww、テラスパムサイト多いんだけどwww
  6. 萎える
  7. でも、せっかくそれ用にPlaggerのPluginとか作ったからなんか他に収集したら面白いキーワードないかな?
  8. 丁度その頃、「Mash up Award 3rd」の対象APIに楽天のウェブサービスが入っていることを知る
  9. 楽天と言えば、「商品」だよな
  10. じゃあ、楽天に限らず「商品」、「物」の販売ページや紹介サイトの記事の中でどれだけみんなが欲しがっているかがわかったらいいかも
  11. それ、はてなブックマークで「これほしい」とか「買いたい」とかのタグをカウントすればよさげ
  12. やってみる、結構おもろいかも
  13. せっかくなので「Mash up Award 3rd」に出したい。そこで、楽天のアイテムに関してはAPIを使って詳細情報を埋め込むことにした
  14. さらに、「注目のAmazon」も加えた
  15. とりあえず、動作確認
  16. おお、iPod Touch みんな欲しがってるー
  17. ネーミングで悩むがストレートな「これほしい」にして、さらにブームが去りつつあるかもしれんが「」を入れる(ちなみに、Englishネームは"wewantit"、開発時のコードネームは「みんぶよ」)
  18. 公開←今ここ

では、作り方を解説。基本的にはErolystCDTubeと同じく、 「Plaggerでアグリゲート→Store-DBIC→sqliteのDB→Catalystで読み込んで表示」という具合で動いています。 以前名づけた「Plalyst or PlaCata」メソッドです。 Plaggerの部分で、以下のオリジナルPlugin4つ使ってます。やたら作りました。

以下はconfig.yamlの例です。

 global:
  assets_path: /path/to/assets
  timezone: Asia/Tokyo

plugins:
  - module: Subscription::HatenaBookmark
    config:
      tags:
        - これ欲しい
        - これほしい
        - 欲しい
        - ほしい
        - これは欲しい
        - これはほしい
        - 物欲
        - 買う
        - 買い物
        - 買いたい!
        - あとで買う
        - 欲しいもの
        - 購入候補
        - ちょっと欲しいもの
        - +ほしい
        - shopping
        - ショッピング
        - goods
        - グッズ
        - wishlist

  - module: Subscription::Config
    config:
      feed:
       - http://b.hatena.ne.jp/entrylist?mode=rss&url=http%3A%2F%2Fitem.rakuten.co.jp&sort=hot&threshold=2
       - http://b.hatena.ne.jp/entrylist?mode=rss&url=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fproduct%2F&sort=hot&threshold=2
        
  - module: Filter::AddHatenaBookmarkTagsCount
    config:
      tags:
        - これ欲しい
        - これほしい
        - 欲しい
        - ほしい
        - ほすぃ
        - 買おう
        - これは欲しい
        - これはほしい
        - 欲っしー
        - 物欲
        - 買う
        - 買い物
        - 買いたい!
        - あとで買う
        - 欲しいもの
        - 購入候補
        - ちょっと欲しいもの
        - +ほしい
        - wishlist
      add_count_to_rate: 1
      body_check: 1
      date_as_newest: 1

  - module: Filter::RakutenWebService
    config:
      developer_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      affiliate_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  - module: Filter::AddAmazonDescription
    config:
      associate_id: XXXXXXXXXX-22
      developer_token: XXXXXXXXXXXX
      locale: jp
      set_title: 1
      template: amazon.tt

  - module: Filter::HTMLScrubber
    config:
      rules:
        br: 0
        style: 0
        script: 0
        img: 0
        b: 0
        table: 0


  - module: Filter::Rule
    rule:
      module: Deduped
      path: ./deduped.db

  - module: Store::DBIC
    config:
      schema_class: Plagger::Schema::SQLite
      connect_info: [ 'dbi:SQLite:/path/to/plagger.db', ]

ということで、物欲を刺激されたい方、衝動買いをしたい方、 エロサイト富豪でお金を持て余らしている方、などなど、興味のある方はチェクってみてください。