[PREVIOUS CHAPTER] [NEXT CHAPTER]
5 library コマンド

5.1	library コマンド

library コマンドはMLの中に配送されないsubのMLを含んでいるような状
態です。次のようなコマンドがあります(help ファイルも見てね)
"library" commands are a sub-mailing list. This command has its own
summary file and archive directories. "put" file is stored in
$LIBRARY_ARCHIVE_DIR ($SPOOL_DIR for ML) and summary file is
$LIBRARY_DIR/summary. The system is closed under $LIBRARY_DIR.
This system uses the same routines as the usual ML. Hence the file
name is number. Also FML does not permit the freedom of file names to
put for security.


等があります。 削除にあたっては From: のアドレスがそのファイルをかつて
突っ込んだ人と同じである必要があります。

ファイル名が数字なのは一つにはML本体と全く同じように実装しているから
です。そして security 上ファイル名をユーザが自由に選ぶことはさせません。
やるなら submit した後で管理者が後で名前の変更 rename(2) をするべきで
す。

$DIR の代わりに対応するものとして次のものがが定義されています。

	$LIBRARY_DIR		library コマンドの HOME ($DIRに相当)
	$LIBRARY_ARCHIVE_DIR	library コマンドの SPOOL($SPOOL_DIRに相当)

library コマンドの特定のコマンドを使えないようにするには 
@DenyLibraryProcedure に定義します。シンタックスと理屈は 
@DenyProcudure と同様です。
4.1
4.1

例: 'library put' を使えないようにする。

	@DenyLibraryProcedure = ('put');

5.2	メンバーリストファイルの拡張について (libmember_name.pl)

1998/01/09 AUTHOR: 福井 誠之 <fukui@sonic.nm.fujitsu.co.jp>

libmember_name.pl は members にメンバー各個人の名前を付加するモジュー
ルです。

この機能を有効にするには、config.ph にて、

      $USE_MEMBER_NAME = 1;

の一行を記述するだけで OK です。既に運用中の ML でも OK です。
makefml config のメニューでもできます。


[機能説明]

  これまでの fml では、メンバー一覧を 'members' コマンドで取り寄せると
メンバー全員のアドレスが返送されてきますが、アドレスだけでは誰が誰なのか
わかりにくい場合がありました。
  このモジュール libmember_name.pl は、その問題を解決するために、各メンバー
の名前 (基本的には、mail の From: ヘッダに書かれている名前(gecos)) を管理
する機能を付加します。
  このモジュールを有効にすることにより、機能が追加・変更される項目を以下
に記述します。


● 自動登録モード

    自動登録時 ('confirm','subscribe' コマンドによる登録も含む) に、
  mail の From: 行に書かれているアドレスが $MEMBER_LIST に追加されますが、
  その際に From: 行に書かれている名前 (gecos) も保存するようになります。

● 'members', 'member' コマンド

    'members', 'member' コマンドによるメンバー一覧の取り寄せで、メン
  バーのアドレスに対応する名前が登録されている場合には、その名前が付加さ
  れて返送されます。


● 'name' コマンド (新規)

  コマンド文法 : name [新しい名前]

    コマンドを送ってきた者の登録されている名前を [新しい名前] に変更します。
  古い名前が登録されていない場合は、新規に登録されます。
  また、[新しい名前] を省略すると、現在登録されている名前を削除します。

● 'admin name' コマンド (新規)

  コマンド文法 : admin name アドレス [新しい名前]

    リモート管理機能を使用している場合に有効になる、管理者用の名前変更コマ
  ンドです。アドレスを指定することにより、各メンバーの名前を変更することが
  できます。([新しい名前] の取り扱いについては、'name' コマンドと同様)

    この 'name' と 'admin name' コマンドを使用することにより、自動登録
  でない ML や、既に運用されている ML でも、名前の新規登録や変更ができるよ
  うになります。さらに、自動登録時には無条件に gecos が登録されるのとは違
  い、コマンドのオペランドにより自由な名前を登録することができますので、
  例えば、
      - 内輪の ML で、メンバーのニックネームを登録
      - 職場の ML で、名前だけでなく所属も付加して登録
  等の応用ができます。


5.3	Traffic を調べる (libtraffic.pl)

AUTHOR: yuao@infonia.or.jp (Yuao Tanigawa)

[libtraffic.pl の説明]

  メイルの投稿量の統計をとるコマンドです。

  使い方は、

% libtraffic.pl [-n <best?>] [-m <mails>] [-d] [where is summary?]

で、オプションを指定しないで、

% libtraffic.pl

とすると、デフォルトで、カレントディレクトリのsummaryを読んで、

1. 月毎のメイル投稿量
2. メイル投稿量毎の日数
3. 時間帯別の投稿量
4. 1日25通以上投稿があった日
5. 投稿者ベストテン
6. 1日当たりの平均投稿量と最大投稿量

を出力します。

  オプションで、-d を指定すると、さらに、

0. 日毎の投稿量

も得られます。デフォルトでは表示しません。

  オプション -n は、5.の投稿量の多い人のベスト何人まで表示するかを
数字で指定します。デフォルトでは、-n 10 と同じです。

  オプション -m は、4.の何通以上あった日を表示するかを数字で指定し
ます。デフォルトでは、-m 25 と同じです。

5.4	traffic で 複数のアドレスを持つ人物を同一視してカウントする 技

	Author: Yuao Tanigawa <yuao@infonia.or.jp>
	fml-support: 00736
	fml-support: 02578
> $TRF_NAME_HOOK = q#
>     $name =~ s/umura@solan\.chu/umura@nn.solan./oi;
> #;
> 
>  と設定しています。これは
> 
>    umura@solan.chu -> umura@nn.solan.
> 
>  という書き換えを行うことになります。

  こんな感じで、$name にsummaryに書いてあるアドレスが入っている
ので、config.ph の中で $TRF_NAME_HOOK にいちいちアドレスを置き
換えるコードを書いて下さい。あとは、

if ( $name eq 'yuao@drei.mech.' || $name eq 'XN9Y-TNGW@j.asa' ) {
	$name = 'tanigawa@tribo.';
}

など、ほんとに、好きなように書いて下さい。同一人物データベースと
かつくって自動的にやってくれるようなインテリジェントな作りには
なっていないので、ごめんなさい。(_o_)
# ということで、メンバ全員、対応させようとすると、本当にシンドイ
# です。^_^;


[PREVIOUS CHAPTER] [NEXT CHAPTER]