PlaggerをWindowsにインストールしてみる

Mixiでも巡回させようかとPlaggerをインストールしてみる。
参考にしたのはしげふみメモ : Windowsで簡単にPlaggerをインストールする方法

ActivePerlをDLしてインストール

ぐぐるとこれがTOPに出てきた。バージョンは最新の5.8.8.820。
http://www.forest.impress.co.jp/lib/stdy/program/progdevenv/activeperl.html
特に何も考えずにYes連打でインストール終わり。
コマンドプロンプトを立ち上げて

c:\>perl -v
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 18 registered patches, see perl -V for more detail)
・・

とかでればおk
やっぱActivePerlはらくだね。

PPMリポジトリの追加

サイトによると

c:\> ppm 

と打つと

ppm>

とかなって対話式になるみたいなんだけどGUIPPM画面が表示されちゃいました。。

PPMのバージョンが4に上がったんでGUIになったみたい。( Perl Package Manager, version 4.01)
画面から操作しても問題ないんだけど味気ないのでやっぱコマンドラインから操作。
しかもリポジトリの登録法も変わっているので注意。

ppm rep add tcool http://ppm.tcool.org/server/ppmserver.cgi?urn:PPMServer
ppm rep add tcool http://ppm.tcool.org/archives/

リポジトリも追加できたところでPlaggerをインストールしようとしたら

C:\>ppm install  Plagger
Downloading ActiveState Package Repository packlist...failed 500 Can't connect to ppm4.activestate.com:80 (connect: Unknown error)

てな感じでインストールがとまる。
サイトが落ちてるのかとブラウザからppm4.activestate.comにアクセスしてみるとうまくいく。
てことはPPMの通信をだれかが遮ってるってことだ。考え付くのはウイルスセキュリティーしかなかったのでウイルスセキュリティーのFWを一時的に開放してみたところうまくいった。
ブロック対象にもでてこないし、警告ログも出ずにブロックされてて分かりずらい。。。
ウイルスセキュリティーはKAIでも使えなかったり微妙だな。。

んで気を取り直してインストール

C:\>ppm install  Plagger
Downloading ActiveState Package Repository packlist...not modified
Downloading Plagger-0.7.17...done
Downloading DateTime-0.35...done

後は勝手にやってくれる。依存のあるものも全部持ってきてくれるので便利。Maven2といいgemといい便利だね。尚、途中[yes]みたいな感じで聞いてきたらエンターで問題ない。
ちなみに8/11時点で最新のPlaggerは0.7.17

インストールも終わったんで起動してみましょう。

C:\>plagger
'plagger' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

あり?うごかない。
「C:\Perl\bin」配下を見てみるとplagger.batがない。
インストール失敗??とか思いながらディレクトリを見てみると「C:\Perl\site\bin」の下にあった。
PPM4になったから色々変わっているみたい。

C:\>cd C:\Perl\site\bin
C:\Perl\site\bin>plagger -v
Plagger version 0.7.17

起動おっけ〜

config.ymalの作成

「C:\Perl\site\bin」にテキストファイルを新規作成して名前を「config.ymal」に変更する。
とりあえずHelloWorld的に以下内容を書いてみる。

global:
  plugin_path:
    - C:\Perl\site\lib\Plagger\Plugin
  assets_path: C:\Perl\site\lib\Plagger\assets
  timezone: Asia/Tokyo
  log:
    level: debug
  cache:
    base: C:\plagger

plugins:
  - module: Subscription::Config
    config:
       feed:
         - url: http://cookpad.com/
           meta:
             follow_link: /recipe/

  - module: CustomFeed::Simple

  - module: Filter::Rule
    rule:
      module: Deduped
      path: C:\plagger\dedupe-cookpad.db

  - module: Filter::EntryFullText
  - module: Filter::BreakEntriesToFeeds

  - module: Publish::Gmail
    config:
      mailto: example+cookpad@gmail.com
      mailfrom: example@gmail.com
      mailroute:
        via: smtp_tls
        host: smtp.gmail.com:587
        username: example@gmail.com
        password: Gmail_PASSWORD

Gmailのあて先とかパスワードは任意に変更する。
んじゃ実行!

C:\Perl\site\bin>plagger
YAML Error: Stream does not end with newline character
   Code: YAML_PARSE_ERR_NO_FINAL_NEWLINE
   Line: 0
   Document: 0
 at C:/Perl/site/lib/YAML.pm line 33

おっとお約束なエラーだwこれはymalの最後に改行が入っていないエラー。
ちゃんと改行を入れて動かすと

C:\Perl\site\bin>plagger
Plagger [debug] C:\Perl\site\lib\Plagger・・・

おお動いた!しかし

Plagger::Plugin [fatal] file error - gmail_notify.tt: not found at line 144

てな感じでエラーgmail_notify.ttがなくちゃだめなのね。。

gmail_notify.tt

なのでけんさくしたらここからDL出来る。
Plagger – スポーツ:マイライフ
一番下の「Original Format」ってとこからDLして「C:\Perl\site\lib\Plagger\Plugin\common」に保存する。

キャッシュディレクトリの「C:\plagger」を削除してから再実行してみると。。

Plagger::Plugin::Publish::Gmail [info] Sending レシピ検索No.1/料理レシピ載せる
なら クックパッド to XXXXXX+cookpad@gmail.com

おおおおおできた!