"Flog"...

らぶべくとる::ぷろぐらみんぐ::ふろっぐ 蛙製造ラボでの辛い労働生活について述べる。一ヶ月で3万ペリカもらえる(笑)

1.まずはじめに

00/06/06

どーも、こんにちはーPaGeです。さてさて。

いま、実はプログラミングにぜんぜん接してないんですよ(笑)いや、なにかと忙しくてね。だから書くことねぇ・・・てわけじゃないんだけどね。このページをとりあえず公開できる状態にしなきゃいけないっていう気持ちもあるし。バイトだるいし(笑) レポートだるいし(笑)

でもネタはそれなりあるので、今日はぽすぺつーる製作日記の第一回ということで。

作りますよ。なにつくるかってぇと、基本的にはチェンジャー。即ち、ソフト(PostPet)を複数インストールせずに、複数のペットが飼えるというアレですな。いろいろ探せばあるんだけど、どーもクソなのばっかなのよー(涙)理想とは遠いのよー。まぁ、たいていのソフトと同じく、これから作るソフトもまぁ一種のランチャーとして機能する(要は、ラッピングしてやるわけですね)んだけどね。

開発コードは・・・ "Flog"(笑)



メインプロセスとしては・・・

  1. Flogを起動。
  2. ペット選択、起動トリガーをスイッチ怨!(ボタン押すとかね)
  3. Flogは隠れる(か、終了するか。常駐するのもやだなぁ)選択したペットでポスペが起動する。

...てなわけですよ。まぁこれだけならプロトタイプなら5分で作れるので(笑)(・・・って誰かさんに言いまくって作ってない俺は・・・)、ってかそういう意味でもないけど、「PostPetの総合的バックアップ(保存じゃないよ)」的なブツが理想にはあるのでね。

だから、付加機能として、

などなど。

でもさ、ぽすぺのリソースを実行時に抜いて自作のソフトに使う(たとえば画像貼り付けるとか)ってやっぱあかんのかなぁ。あかんかー。あかんのかなー。たとえばさー、Flogのバージョン情報を表示するときにぽすぺのバージョン情報の時のあの音楽を鳴らすとか(もちろん、Flogにそのリソースをのっけるんじゃなくて、実行時にぽすぺのexeから抜く)、だめなのかなー。でも、だめだったら、ふつうのリソースぶっこ抜きソフトもだめなような気がするんやけどなー(ポスペの全画像がみれる!とかさ)。そのへんどうなんだろね。ご感想お待ちしております。

2.なぜかperlscriptで

00/10/29

さて、flogの開発はPaGeの怠慢のため全く進んでいないのですが、まぁポスペがらみということで、ちとネタを書きましょうか。

まず、大量にメールが来る人(例えばメールマガジンたくさんとってるとか)は、ポスペを使っているとだんだん発狂するようになってきます。メール管理がまるでできていないソフトなため、時間が経つに連れそのいらだちは大きいものとなっていきます。だいたい、管理フォルダが9つしかないなんてなめてます。送信においては3つです。「管理するな」って言っているようなものです。しかしまぁ、そういうひとはほかのメーラを併用すればいいのですが、まわりにポスペ民が多かったりじんぱち萌へ〜とか言ってる人はそんなこといってられません。わざわざほかのメーラから、ペットメールのみを残してメールをDL・・・ってのもできるけど、めんどいしね。

というわけで、メールログをほかのソフトに移行する作業が必要になってくるわけです。しかし、これはそんなに難しいことではありません。ごく一般的naテキストで持っているダメためです。さすがにそのへんはM$のOutliikExpressとかいうののようにアホではないのでしょう。また、テキストだとperlなどでかんたんにテキスト処理を行うことができますし、うれしいのですよ。

で、ログを眺めてたんだけど・・・ん? なんかおかしいです。受信メールログはOKですが・・・送信にDateフィールドが存在しません。おかしいな・・・ポスペを起動して送信簿を見るときちんと日付が書かれているし・・・ ま、まさか・・・

そのまさかです。大きなデータ構造ではサーチに使うヘッダ情報を別で持つのが楽しいことですが(何のこっちゃ)、こちらにあるDateを表示しているのでした。あちゃー・・・本ログにはないから、日付を吐いてくれんやんか! ということで、このヘッダファイルのDate情報をぶんどって本ログのほうにも与えて野郎!というわけなのです。

・・・で、こんなん作ったんですが、実装はかなりお粗末です。力ずくでマッチングしているだけですし、SubjectにDateっぽいものを書くと、それでお釈迦です。が、どうせ自分のデータさえコンバートされればそれでいいので、どうでもいいっと。


&convert("送信リスト", "送信メール");
&convert("ピンクの引出しリスト", "ピンクの引出し");
&convert("黄色の引出しリスト", "黄色の引出し");
&convert("紫の引出しリスト", "紫の引出し");

exit;


sub convert
{
  $headname = "./$_[0].ppl";
  $bodyname = "./$_[1].ppm";
  
  open(IN, "$headname");
    binmode(IN);
    while(<IN>) { $buf .= $_; }
  close(IN);
  
  @head = split(/\x00/, $buf);
  
  open(IN, "$bodyname");
  open(OUT, "> ./$_[1].new");
    foreach $h (@head) {
      if ($h =~ /(..., \d+ ... \d+ \d\d:\d\d:\d\d)/) {
        $date = "$1 +0900";
        while (1) {
          $s = <IN>;
          $s =~ s/X-Priority:/\n\$SEP\$\nX-Priority:/;
          # 最初に改行を入れるのは、何故かつながっている場合があるからなのだ。
          
          print OUT $s;
          
          if ($s =~ /^CC:/) {
            print OUT "X-Mailer: PostPet for Windows ver. 2.0 jp\n";
            print OUT "Date: $date\n";
            last;
          }
        }
      }
    }
    while(<IN>) { print OUT $_; }
  close(IN);
  close(OUT);
}

という、なんともテキトーなコード・・・でも、これで動いたので、大量のログを移行できます。なつかしいメールも読めます。5ヶ月前のメールに返事してみたりとか、いろいろ楽しかったです。さぁて、レポートやるかな(爆)

50分後に追加記事。よく考えると、Dateフィールドってのはサーバーがくっつけてくれるモンなんだから、のっかってこないのも本来の仕様的には正しいような気もしてきましたが、ヘッダリストにはきちんとのっかってきているし、やはりこういうときのためにも、のっけてほしいと思う今日この頃でした。

TOP | About | Diary | Readings | BBS | Programmings | Download | Link
Copyright© PaGe <0-vector@mionet.org> Ltd. 2000 All rights reserved.