mixiをGmailへと不完全だったインストールの続き

ええと、上の日記をリンク先を含めてちゃんと読んだ人は分かってると思いますが、これだけではまだ動きません。実際に動かそうとしてはまった所を順に書いていきたいと思います。バカがばれるというものですが、前回インストールだけで一日終わってしまって作業中断せざる得なかったので、読んではいたけど忘れていたことが、色々ありました。

まずは「recipeを使ったConfig」を参考に
http://wiki.shibuya.pl/?recipe%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%259FConfig
config.mixi.yaml,config.sns.yaml,config.base.yamlをコピーしました。yamlは最後に改行が必要とのことなのでご注意を。場所はどこでも良いんだと思いますが、とりあえず。
c:\Perl\site\lib\Plagger\config.sns.yaml
c:\Perl\site\lib\Plagger\config.base.yaml
c:\Perl\site\lib\Plagger\config.mixi.yaml
にしました。まぁとりあえず今は config の使い分けとか考えていないので、config.mixi.yaml は c:\Perl\site\bin\config.yaml に名前を変えてコピーしました。

で、各ファイルを編集しなければいけないわけですが、
c:\Perl\site\bin\config.yaml は、config.base.yaml, config.sns.yamlのある場所を


include:
- c:/Perl/site/lib/Plagger/config.base.yaml
- c:/Perl/site/lib/Plagger/config.sns.yaml
と指定しました(考えてみるとパスの区切りを'/'使ってたり'\'混ぜてました。どっちでも良いみたいです)。

c:\Perl\site\lib\Plagger\config.sns.yaml は、


email: mail
password: pass
をそのままmixiのログインの email と password に変えたら

Plagger [error] password: pass not found in C:\Perl\site\bin\config.yaml
というエラーでした。これはfatalなエラーだったのかどうか分かりませんが、CookieSharingRecipe
http://wiki.shibuya.pl/?CookieSharingRecipe
を見ると、ブラウザのクッキーが使えるということなので(後述)、

password: pass
の行は消してしまいました。

で、一番苦労した c:\Perl\site\lib\Plagger\config.base.yaml ですが、


plugins:
- module: Cache
config:
file: /home/plagger/cache
diff_mode: 1

(2006/12/1追加: こっちはhttp://d.hatena.ne.jp/lightcyan/20061126#1164509491で暫定的に修正。動作は未確認。)と

- module: Search::Rast
config:
encode: euc_jp
replace: 1
dir: /home/plagger/rast
(2006/12/3追加 こっちはhttp://d.hatena.ne.jp/lightcyan/20061203#1165113392で修正を試みましたが動きませんでした)は消してしまいました。いや後でちゃんとやろうかと思ってたんですが、風邪なもんで今は気力が無いです。まぁこのせいで、plaggerを実行すると前回取ってきた日記をまたとってくるじゃないかと思いますが。

で、結論から言って結局どうなったかといいますと、


global:
plugin_path:
- c:/Perl/site/lib/Plagger/Plugin
template_path: c:/Perl/site/lib/Plagger/Template
assets_path: C:\Perl\site\lib\Plagger\assets
timezone: Asia/Tokyo
user_agent:
cookies:
file: c:/Documents and Settings/***/Application Data/Mozilla/Firefox/Profiles/********.default/cookies.txt

define_recipes:
publish:
- module: Publish::Gmail
rule:
- module: Rating
rate: '>= 0'
config:
mailto: ***@gmail.com
mailfrom: ***@gmail.com
mailroute:
via: smtp_tls
host: smtp.gmail.com:587
username: ***@gmail.com
password: ***

です。で、解説等を


- c:/Perl/site/lib/Plagger/Plugin
template_path: c:/Perl/site/lib/Plagger/Template
assets_path: C:\Perl\site\lib\Plagger\assets
c:/Perl/site/lib/Plagger/Plugin は、ここにそういうフォルダがあったので、また
c:/Perl/site/lib/Plagger/Template は、ここに Template.pm というファイルがあったので指定しました。
C:\Perl\site\lib\Plagger\assets というのが(なぜかパス区切りを'\'にしてますが。多分酔ってたんでしょうw)、よく言うassetsの罠です。http://blog.livedoor.jp/hakin/archives/50690272.html に書いてあるとおり、http://search.cpan.org/~miyagawa/Plagger-0.7.12/ (Plagger-*.*.*は、自分のバージョンにあったものを選択してください)からPlaggerをDownloadしてください。assetsというのはフォルダなので、全部ダウンロードしてから、解凍したほうが楽でしょう。で、C:\Perl\site\lib\Plaggerにコピーしました(ここにコピーしている人が多いようだったので)。で、http://www.otsune.com/fswiki/plagger.html#p32 や、http://wg.at.webry.info/200604/article_4.html に書いてある通り、global:でassetsのパスを設定しています。

また、同じページにある通り、


via: smtp_tls
host: smtp.gmail.com:587
username: ***@gmail.com
password: ***
とする必要があるようです。

先ほど書いたとおり(http://wiki.shibuya.pl/?CookieSharingRecipeより)、クッキーを使う設定が


user_agent:
cookies:
file: c:/Documents and Settings/***/Application Data/Mozilla/Firefox/Profiles/********.default/cookies.txt
なわけですが(firefoxの場合)、mixiのpassword: は要らなくなったんですが、Gmailは必要でした。理由はちゃんと理解できていません。しかし、よく見ると今の動いている状態でも、

Plagger [error] password: *** not found in C:\Perl\site\bin\config.yaml
とエラーが出ています。ほんとに分かりません。

ここまでで、もう実行できますでしょうか?僕は運が悪かったのか出来ませんでした。


Plagger::Plugin::Publish::Gmail [error] Error while sending emails: Can't load '
C:/Perl/site/lib/auto/Net/SSLeay/SSLeay.dll' for module Net::SSLeay: load_file:?
w???????W???[?????????????????B at C:/Perl/lib/DynaLoader.pm line 230.
at C:/Perl/site/lib/Net/SMTP/TLS.pm line 89
Compilation failed in require at C:/Perl/site/lib/Net/SMTP/TLS.pm line 89.
BEGIN failed--compilation aborted at C:/Perl/site/lib/Net/SMTP/TLS.pm line 89.
Compilation failed in require at C:\Perl\site\lib\Plagger\Plugin\Publish/Gmail.pm line 226.
というエラーと、「LIBEAY32.dllがみつからなかったため…」というダイアログが出ました。なんかもうあんまり正確に覚えていないんですけど、pomo123さんの
http://d.hatena.ne.jp/pomo123/20061004/1159964606 を見て、解決しました。前回の日記のインストールと同じ要領でtheoryx5をリポジトリに加えて一番上に持ってきます。

> ppm

ppm> rep add theoryx5 http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58
[1] tcool
[2] ActiveState Package Repository
[3] theoryx5

ppm> rep up theoryx5
[1] tcool
[2] theoryx5
[3] ActiveState Package Repository

ppm> rep up theoryx5
[1] theoryx5
[2] tcool
[3] ActiveState Package Repository

細かいことはよく覚えてないんですが、出力結果を保存していたのを見ると1番を-forceでインストールしています。上のリンク先を見ると僕の例(下記)で言うと、4.もインストールしなきゃいけないような気がしますが、したかどうかよく覚えていませんし、この問題をちゃんと理解する気力は今はありませんので、これで皆さんも何とかなることを祈ります。


ppm> search SSLeay
Searching in Active Repositories
could not find ParserDetails.ini in C:/Perl/site/lib/XML/SAX
1. Crypt-SSLeay [0.51] OpenSSL glue that provides LWP https support
2. Crypt-SSLeay [0.51] OpenSSL glue that provides LWP https support
3. Crypt-SSLeay [0.51] OpenSSL glue that provides LWP https support
4. Net_SSLeay.pm [1.30] Perl extension for using OpenSSL
5. Net_SSLeay.pm [1.30] Perl extension for using OpenSSL or SSLeay
6. Net_SSLeay.pm [1.30] Perl extension for using OpenSSL or SSLeay

ppm> install -force 1
Package 1:

あとは、


c:\plagger
で、実行できるのではないかと思います。ああ、結局日付が変わってしまった…