個人ニュースサイトをGmailでまとめて読もう(Plagger使わない編)

最初に言っておきますがこれPlaggerでできます


Plaggerでやりたい!という方は
個人ニュースサイトをPlaggerで見よう&Plagger役立ちリンク集: 304 Not Modified
個人ニュースサイトをGmailでまとめて読もう 導入編 - なつみかん@はてな
このあたりを参考にすればいいんじゃないかな。


Plagger自分でも試してみましたが面白いですね。でもまだまだ使いこなせてないわけで。
自分の読みやすいフォーマットにしたいなーとか思った時点で頓挫です。


こうなったら自分の得意分野に引き込んでみようということで
秀丸エディタを使ってニュースサイト(カトゆー家断絶)をGmailで読めるようにしてみます。


秀丸エディタ(笑)得意分野(笑)

目標

自分の好きなフォーマットで「カトゆー家断絶」をGmailで読めるようにする。

材料

秀丸エディタ
Hidemarnet Explorer(秀丸がブラウザぽくなる素敵ソフト)
SMAIL(送信専用コマンドラインメールソフト)

設定で気をつけること

  • Hidemarnet Explorerの設定「HTTPを開くときWebブラウズモードで開く」をOFFに

(秀丸エディタのメニュー「ファイル⇒Web⇒詳細」から設定。HTMLソースを直接表示するため)

(整形マクロを動作させるときに自動折り返しが利いてるとうまく動かないかも)

  • SMAILでGmailに送る設定がちょっと面倒。SMAIL同梱のtechnical.txtをみればいい。

実行用のバッチファイルを作る

C:
cd C:\Program Files\Hidemaru
hidemaru.exe /h /xD:\tool\smail-v4\pick_katoyuu.MAC http://www6.ocn.ne.jp/~katoyuu/
D:
cd D:\tool\smail-v4
smail.exe -hsmtp.gmail.com -fxxxxxfrom@gmail.com -sカトゆー家断絶更新情報 -FD:\tool\smail-v4\data\katoyuu.txt xxxxxto@gmail.com

・「C:\Program Files\Hidemaru」は秀丸のインストールフォルダ
・「D:\tool\smail-v4\pick_katoyuu.MAC」は整形用マクロのパス&ファイル名
・「D:\tool\smail-v4」はsmail.exeのある場所。
・「D:\tool\smail-v4\data\katoyuu.txt」は中間ファイルのパス&ファイル名
・「-sカトゆー家断絶更新情報」はメールのsubjectの指定
・「-fxxxxxfrom@gmail.com」は送信元の指定、「xxxxxto@gmail.com」は送信先アドレスの指定

適当ですわ><

  • カトゆー家断絶のアドレスで秀丸エディタ(表示しないモード)を開く
  • HTMLが読み終えたらマクロ「pick_katoyuu.MAC」が動作する。後述するこのマクロでkatoyuu.txtを生成するので
  • それをsmail.exeで送信


って感じです。

pick_katoyuu.MACはこんな感じ

相変わらず適当。
もう説明書くの面倒なんでコメント見て(殴
Aタグ引っ張ってきてるだけですわ

// pick_katoyuu.MAC
// 秀丸エディタでHTMLコンテンツが読み込まれた直後にコールされるマクロ

// 一回保存して開きなおさないとファイルが編集許可にならないようだ
saveas "D:\\tool\\smail-v4\\data\\katoyuu.txt";
loadfile "D:\\tool\\smail-v4\\data\\katoyuu.txt";

// 第一段階:コンテンツ中のAタグのみ抽出

// カトゆーさんとこのコンテンツは
// <!--テンプレ-->〜<!--テンプレ-->までが本文なので
// まずはそこだけ抜き出しておく。

// 1つ目の<!--テンプレ-->以前をdel
beginsel;
gofiletop;
searchdown "<!--テンプレ-->";
delete;
deleteline;

// 次の<!--テンプレ-->以降をdel
searchdown "<!--テンプレ-->";
beginsel;
gofileend;
delete;

// Aタグ抜き出し
// ファイルの最後にマークつけとく。
// 抽出したAタグはこのマーク以降に移動される。
gofileend;
insert "<***mark***>\n";
gofiletop;

// Aタグ探してはカット→ペースト
while(1)
{
	gofiletop;
	searchdown "<A href=\".*\">.*</A>",regular; // 秀丸正規表現でリンク探してる。ちょっと怪しい

	// Aタグ無かったらおわり
	if(result == false) break;

	// Aタグで囲まれた部分だけカット→ファイル末尾にペースト
	searchdown ">";
	right;
	beginsel;
	searchdown "</A>";
	cut;
	gofileend;
	insert "■";
	paste;
	insertreturn;

	// Aタグの中のURLをカット→ファイル末尾にペースト
	gofiletop;
	searchdown "<A href=\".*\">.*</A>",regular; // 秀丸正規表現でリンク探してる。ちょっと怪しい
	right;
	insert "*"; // 次検索してもヒットしないようにゴミ入れとく
	left 2;
	right strlen("<*A href=\"");
	beginsel;
	searchdown "\"";
	cut;
	gofileend;
	paste;
	insertreturn;
	insertreturn;

}

// もうAタグ無いのでマーク以前を消してしまう
gofiletop;
searchdown "<***mark***>";
deleteline;
beginsel;
gofiletop;
delete;

saveexit;

結果

実行用のバッチファイルを叩いても何も起こりませんが裏で秀丸が一所懸命受信&整形しているはずです。
しばらくするとSMAILが動作して、バッチが終了するはず。


↓送信までうまく完了したらこんな感じで見れるようになります(色悪い)

結論

perlとかPlaggerとか使わなくてもなんとかなるものです。
相当遠回りではあるけどゴールにはたどり着くということで。

今度は

RSSを取得・整形してまとめてメールで読んでみる、とかやってみようかしら。もちろん秀丸