home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 5
/
FREESOFT.BIN
/
mopterm
/
fapx405b
/
fapxupld.plp
< prev
next >
Wrap
Text File
|
1992-08-19
|
15KB
|
602 lines
/************************************************************************
* 自動アップロード処理の定義 *
*************************************************************************/
/* 現在の会議室にメッセージをアップする */
%MSGup {
[replyto,title,text]
var roomful [3];
var reply [3];
roomful:={No};
reply:=replyto;
loop ({
case (reply<1||reply>999||reply={},
{No},
{
type({RE }|reply|{\n});
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{\n:},{type({1\n})},
{◆該当する発言はありません◆},
{
WAITABORT(Wtime2);
reply:={};
im({Yes});
},
{行頭で/E)\n},{im({No})},
{-登録個数が最大のため登録出来ません-},
{
WAITABORT(Wtime2);
display({会議室が満杯のためアップロード}|
{しないで次の処理に移ります\n});
roomful:={Yes};
im({No});
}
);
},
{Yes},
{
type({SAY\n});
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{属性 (1:メッセージ 2:コメント)\n:},
{
type({1\n});
WAITCHAR(Wtime2,{行頭で/E)\n},{});
im({No});
},
{-登録個数が最大のため登録出来ません-},
{
WAITABORT(Wtime2);
display({会議室が満杯のためアップロード}|
{しないで次の処理に移ります\n});
roomful:={Yes};
im({No});
});
});
});
case (roomful,
{No},
{
case (title={},
{No},{type({SUB:}|title|{\n})},
{Yes},{type({SUB:自動アップロードです\n})}
);
case(text<>{},{Yes},{send(text)});
type({\n/POST\n});
WAITABORT(Wtime2);
});
};
/* 現在のフォーラムの会議室を指定してメッセージをアップする */
%MESup {
[mesno,replyto,title,text]
case (mesno<1||mesno>20||mesno={},
{Yes},{MSGup(replyto,title,text)},
{No},
{
type({MES }|mesno|{\n});
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{該当する会議室がありません},
{WAITABORT(Wtime4)},
{\n>},
{MSGup(replyto,title,text)}
);
}
);
};
/* フォーラムと会議室を指定してメッセージをアップする */
%FORUMup{
[forum,mesno,replyto,title,text]
display(forum|{の会議室}|mesno|{番にアップロードします\n});
footnote({フォーラム会議室へのアップロード中});
case (forum={},
{Yes},{MESup(mesno,replyto,title,text)},
{No},
{
type({GO }|forum|{\n});
case (@FORUMTOP={OK},
{No},,
{Yes},
{MESup(mesno,replyto,title,text)}
);
}
);
};
/* バイナリメールをアップする */
%BMAILup1{
[sendto,date]
var send2 [90];
var iderr [3];
send2:=sendto;
iderr:={No};
loop ({
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{(IDか同報グループ名 改行で終了)\n:},
{case (@head(send2,{,})={},
{Yes},
{type({\n})},
{No},
{type(@head(send2,{,})|{\n})}
);
}
);
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{(1:OK 2:NG) \n:},
{type({1\n});send2:=@body(send2,{,});im({Yes})},
{◆入力データエラー◆},
{send2:=@body(send2,{,});im({Yes})},
{◆既に入力されています◆},
{send2:=@body(send2,{,});im({Yes})},
{◆宛先を指定して下さい◆},
{send2:=ID;iderr:={Yes};im({Yes})},
{送信},
{im({No})},
);
});
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{1:送信する 2:しない)\n:},
{case(iderr,{Yes},{type({2\n})},{No},{type({1\n}}))},
{2:しない 3:期日指定)\n:},
{case (iderr,
{Yes},{type({2\n})},{No},
{case (date={},
{Yes},{type({1\n})},
{No},
{type({3\n});
WAITCHAR(Wtime2,
{例:990101)\n:},{type(date|{\n})});
wait (Wtime2,
{AbortOff({ホストがおもいよ~})},
{(1:OK 2:NG) \n:},{type({1\n})},
{例:990101)\n:},{type({\n})});
/* 日付指定間違いの場合即時送信する */
}
);
}
);
}
);
};
%BMAILup{
[sendto,title,file,date]
display(sendto|{へバイナリメールを送ります\n});
footnote({バイナリメール送信中});
type({GO MAIL\n});
WAITCHAR(Wtime2,{0:その他 E:終了)\n>},
{type({UPLOAD TYPE:BIN PROT:BPL\n})});
WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{type(file|{\n})});
WAITCHAR(,{-アップロード終了-},{});
WAITCHAR(Wtime2,{題名 (漢字で20文字まで)\n:},
{case (title<>{},
{Yes},{type(title|{\n})},
{No}, {type({自動メール送信です\n})}
)
});
WAITCHAR(Wtime2,{(1:OK 2:NG)\n:},{type({1\n})});
BMAILup1(sendto,date);
WAITCHAR(Wtime2,{1:受信 2:送信 3:送信簿 0:その他 E:終了)\n>},{});
};
/* 宛先が複数あれば複数指定する(テキストメールのみ) */
%MAILup3{
[address]
case (@head(address,{,})={},
{Yes},,
{No},
{
type({TO:}|@head(address,{,})|{\n});
MAILup3(@body(address,{,}));
}
);
};
/* 題名や宛先を実行時に指定する */
%MAILup2{
wait (Wtime2,,
{題名 (漢字で20文字まで)\n:},
{type({自動送信メール\n});MAILup2},
{又は FAX番号 改行で終了)\n:},
{type({\n});MAILup2},
{◆宛先を指定して下さい◆}, /*宛先IDがない場合自分に送信*/
{WAITCHAR(Wtime2,{改行で終了)\n:},{type(ID|{\n});MAILup2})},
{◆入力データエラー◆},
{MAILup2},
{◆既に入力されています◆},
{MAILup2},
{(1:OK 2:NG)\n:},
{type({1\n});MAILup2},
{(1:OK 2:NG) \n:},
{type({1\n});MAILup2},
{(1:OK 2:NG)\n:}, /* FAX番号の場合 */
{type({1\n});MAILup2},
{送信 (1:送信する 2:しない)\n:},
{type({1\n});MAILup2},
{送信(1:送信する 2:しない 3:期日指定)\n:},
{type({1\n});MAILup2}, /* エグゼクティブオプション */
{(西暦下 2桁で指定 改行で期日指定なし 例:990101)\n:},
{type({\n});MAILup2}, /* 期日指定誤りの場合 */
{\n>},
);
};
/* メールをアップする */
%MAILup {
[sendto,title,text,date]
display(sendto|{へメールを送ります\n});
footnote({メール送信中});
type({GO MAIL\n});
WAITCHAR(Wtime2,{0:その他 E:終了)\n>},{type({2\n})});
WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
MAILup3(sendto);
case(title={},{Yes},,{No},{type({SUB:}|title|{\n})});
case(date={},{Yes},,{No},{type({SDATE:}|date|{\n})});
case(text,{},,,{send(text)});
type({\n/POST\n});
MAILup2;
};
/* HPにメッセージをアップする */
%HPup1 {
[title,text]
type({WRITE\n});
WAITCHAR(Wtime2,{モードで20文字以内)\n:},{type(title|{\n})});
WAITCHAR(Wtime2,{(1:OK 2:NG) \n:},{type({1\n})});
WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
case(text,{},,,{send(text)});
type({\n/POST\n});
WAITCHAR(Wtime2,{\nHP>},{});
};
%HPup {
[hpid,pass,title,text]
display(hpid|{のホームパーティにアップロードします\n});
footnote({ホームパーティへのアップロード中});
case (hpid<>{},
{Yes},
{
type({GO HP\n});
WAITCHAR(Wtime2,{2. Home Partyの説明\n>},{type({1\n})});
WAITCHAR(Wtime2,{:自分のHP)\n:},{type(hpid|{\n})});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{◆該当する利用者のHome Partyはありません◆\n},
{
WAITCHAR(Wtime2,
{2. Home Partyの説明\n>},
{
SNDMSG({okasi_f.snd});
display({ホームパーティのID}|
{が違っています\n});
})
},
{(1:設定する 2:しない)\n:},
{type({2\n});WAITABORT(Wtime2);},
{パスワード\n:},
{
loop ({
type(pass|{\n});
wait (Wtime2,
{AbortOff({\nホストの反応が}|
{鈍いよぉ~\n})},
{\nHP>},
{
HPup1(title,text);
im({No});
},
{パスワード\n:},
{im({Yes})},
{2. Home Partyの説明\n>},
{im({No})}
);
});
});
},
{No},
{HPup1(title,text)}
);
};
/* プロフィール情報をアップする */
%PROFup {
[text]
display(ID|{のプロフィール情報を登録します\n});
footnote({プロフィール情報登録中});
type({GO PROFILE\n});
WAITCHAR(Wtime2,{ 2:登録 3:修正 4:削除 E:終了)\n>},{type({2\n})});
WAITCHAR(Wtime2,{プロフィール ( 100行まで 終了は行頭で/E)\n},{});
case(text,{},,,{send(text)});
type({\n/E\n});
WAITCHAR(Wtime2,{(1:修正する 2:しない)\n:},{type({2\n})});
WAITCHAR(Wtime2,{(1:登録する 2:しない)\n:},{type({1\n})});
WAITABORT(Wtime2);
};
/* データライブラリにアップする */
%LIBup1 {
[libno,dataname,keyword,docfile,datafile]
type({LIB }|libno|{\n});
wait (Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},
{3:アップロード(無料) 4:ダウンロード E:終了)\n>},
{
type({UPLOAD PROT:BPL TYPE:BIN\n});
WAITCHAR(Wtime2,{データ名 (漢字20字まで)\n:},{});
type(dataname|{\n});
WAITCHAR(Wtime2,{(1:OK 2:NG)\n:},{});
type({1\n});
WAITCHAR(Wtime2,{(漢字10字以内/1KEY 入力可能数:5)\n:},{});
type(keyword|{\n});
WAITCHAR(Wtime2,{確認 (1:OK 2:NG)\n:},{});
type({1\n});
wait (Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},
{補足説明 ( 300行まで 終了は行頭で/E)\n},,
{改行で入力終了)\n:},
{
type({\n});
wait(Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},
{補足説明 ( 300行まで 終了は行頭で/E)\n},);
});
send(docfile);
type({\n/POST\n});
WAITCHAR(Wtime2,{項目 (1:OK 2:NG 3:修正)\n:},{});
type({1\n});
WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{});
type(datafile|{\n});
wait(,,{-アップロード終了-});
WAITCHAR(Wtime2,{4:ダウンロード E:終了)\n>},{});
},
{\n>},
{
SNDMSG({okasi_f.snd});
display({ライブラリ番号が違うため次の処理を行います\n});
});
};
%DLIBup {
[forum,libno,dataname,keyword,docfile,datafile]
case (dataname<>{} && keyword<>{} &&
@filechk(docfile) && @filechk(datafile),
{Yes},
{
display(forum|{の}|libno|{番ライブラリにアップロードします\n});
footnote({データライブラリへのアップロード中});
case (forum<>{},
{Yes},
{
type({GO }|forum|{\n});
case (@FORUMTOP,
{OK}, {LIBup1(libno,dataname,keyword,
docfile,datafile)}
);
});
},
{No},
{display({必要なデータが揃っていないため}|
{次の処理へスキップします\n})}
);
};
%SMAILup{
[forum,title,text]
case (forum<>{} && @filechk(text),
{Yes},
{
display(forum|{のシスオペ宛メールをアップロードします\n});
footnote({シスオペ宛メールのアップロード中});
case (forum<>{},
{Yes},
{
type({GO }|forum|{\n});
case (@FORUMTOP,
{OK},
{
type({SYM\n});
WAITCHAR(Wtime2,
{(1:送信 2:アップロード E:終了)\n},
{});
type({1\n});
WAITCHAR(Wtime2,
{(300 行まで 終了は行頭で/E)\n},{});
send(text);
type({\n/POST\n});
WAITCHAR(Wtime2,
{題名 (漢字で20文字まで)\n:},{});
case (title<>{},
{Yes},{type(title|{\n})},
{No},{type({自動アップロードです\n})});
WAITCHAR(Wtime2,{(1:OK 2:NG)\n:},{});
type({1\n});
WAITABORT(Wtime2);
});
});
},
{No},
{display({必要なデータが揃っていないため}|
{次の処理へスキップします\n})}
);
};
/************************************************************************
* 制御ファイルの内容に従って自動アップロードする *
*************************************************************************/
/* アップロードするテキストファイル名を決定する */
%UPtext {
[fname]
case (fname={memo1}||fname={memo2}||fname={memo3}||fname={memo4}||
fname={memo5}||fname={memo6}||fname={memo7}||fname={memo8}||
fname={memo9},
{Yes},
{
case (@mlast>=@getchar(fname,5,1)&&@mcheck==0,
{Yes},
{
mwrite(TEMP2|{_moptext.txt},@getchar(fname,5,1));
im(TEMP2|{_moptext.txt});
},
{No},
{
SNDMSG({okasi_f.snd});
display(fname|{が使えません\n});
im({});
})
},
{No},
{im(fname)}
);
};
/* アップ先の振り分け */
%AUTOup1{
line:=line+1;
linebuf:={};
case (file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{case (@mlast>=@getchar(file,5,1)&&@mcheck==0,
{Yes},
{linebuf:=@memo(@getchar(file,5,1),line,1)},
{No},
{
SNDMSG({okasi_f.snd});
display(file|{が使えません\n});
linebuf:={};
})
},
{No},
{linebuf:=@read(file,line,1)}
);
case (
@head(linebuf,{=}),
{forum}, /* フォーラムへアップ */
{
var FILE [256];
FILE:=@tail(linebuf,{file=},{;});
loop ({
case (@head(FILE,{,})<>{},
{Yes},
{FORUMup(@tail(linebuf,{forum=},{;}),
@tail(linebuf,{mes=},{;}),
@tail(linebuf,{reply=},{;}),
@tail(linebuf,{title=},{;}),
@UPtext(@head(FILE,{,})))}
);
FILE:=@body(FILE,{,});
im(FILE<>{});
});
AUTOup1;
},
{mail}, /* メールをアップ */
{
var FILE [256];
FILE:=@tail(linebuf,{file=},{;});
loop ({
case (@head(FILE,{,})<>{},
{Yes},
{MAILup (@tail(linebuf,{mail=},{;}),
@tail(linebuf,{title=},{;}),
@UPtext(@head(FILE,{,})),
@tail(linebuf,{date=},{;}))}
);
FILE:=@body(FILE,{,});
im(FILE<>{});
});
AUTOup1;
},
{bmail}, /* バイナリメールをアップ */
{
var FILE [256];
FILE:=@tail(linebuf,{file=},{;});
loop ({
case (@head(FILE,{,})<>{},
{Yes},
{BMAILup(@tail(linebuf,{bmail=},{;}),
@tail(linebuf,{title=},{;}),
@head(FILE,{,}),
@tail(linebuf,{date=},{;}))}
);
FILE:=@body(FILE,{,});
im(FILE<>{});
});
AUTOup1;
},
{hp}, /* ホームパーティへアップ */
{
var FILE [256];
FILE:=@tail(linebuf,{file=},{;});
loop ({
case (@head(FILE,{,})<>{},
{Yes},
{HPup (@tail(linebuf,{hp=},{;}),
@tail(linebuf,{pass=},{;}),
@tail(linebuf,{title=},{;}),
@UPtext(@head(FILE,{,})))},
);
FILE:=@body(FILE,{,});
im(FILE<>{});
});
AUTOup1;
},
{profile}, /* プロフィール情報をアップ */
{
PROFup(@UPtext(@tail(linebuf,{file=},{;})));
AUTOup1;
},
{forumlib}, /* データライブラリにアップ */
{
DLIBup (@tail(linebuf,{forumlib=},{;}),
@tail(linebuf,{libno=},{;}),
@tail(linebuf,{dataname=},{;}),
@tail(linebuf,{keyword=},{;}),
@UPtext(@tail(linebuf,{docfile=},{;})),
@tail(linebuf,{datafile=},{;}));
AUTOup1;
},
{sysmail}, /* シスオペ宛メールをアップ */
{
SMAILup (@tail(linebuf,{sysmail=},{;}),
@tail(linebuf,{title=},{;}),
@UPtext(@tail(linebuf,{file=},{;})));
AUTOup1;
},
{},, /* 空文字列なら終了 */
,AUTOup1 /* それ以外なら次の行を読む */
);
};
%AUTOup {
[file]
case (@filechk(file)||file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{line:=0;AUTOup1},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
});
};
/* アップロード制御ファイル指定の有無の判定処理 */
%AUTOUPLD
{
display({自動アップロードを開始します\n});
footnote({自動アップロードをしています});
case(upldcntl<>{},{Yes},{AUTOup(upldcntl);upldcntl:={}});
case (@filechk(TEMP2|{_mopres.ctl}),
{Yes},
{
AUTOup(TEMP2|{_mopres.ctl});
dispoff({Yes});
command({del }|TEMP2|{_mopres.bak});
command({ren }|TEMP2|{_mopres.ctl _mopres.bak});
dispoff({No});
});
};
var line [3]; /* アップロード制御ファイル行カウンタ */
var linebuf [258]; /* アップロード制御文バッファ */
AUTOUPLD;