home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 5
/
FREESOFT.BIN
/
mopterm
/
fapx405b
/
fapxloop.plp
< prev
next >
Wrap
Text File
|
1992-08-19
|
10KB
|
351 lines
/* フォーラム毎にダウンロードファイルを作成する処理 */
%LOGforum{
[fname,mode]
case (mode,
{start},
{
display({\n}|@tail(fname,{\})|{のダウンロードを開始します\n});
case (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
{Yes},
{
mkdir2(@body(TEMP2|fname,,{\}));
dispoff({Yes});
command({del }|TEMP2|fname|{.log});
dispoff({No});
receive(TEMP2|fname|{.log});
},
{No},
{receive(LOG2|fname|{\}|@crefile(LOG2|fname,{log}))},
);
},
{stop},
{
stoprec;
display({\n}|@tail(fname,{\})|{のダウンロードを終了しました\n});
case (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
{Yes},
{
mkdir2(@body(LOG2|fname,,{\}));
dispoff({Yes});
setcdir(TEMP);
%file @nowfile2(TEMP2|fname|{.log},TEMP);
dispoff({Yes});
command(ARCHIVER|{ a }|LOG2|fname|{.lzh }|TEMP2|file);
command({del }|TEMP2|file);
dispoff({No});
});
setcdir(CDIR);
});
};
/************************************************************************
* フォーラム処理の定義 *
* Forum({フォーラム名},{会議室番号リスト},{ライブラリ番号リスト}) *
* フォーラム名で指定されたフォーラムの *
* 会議室番号リストで指定された会議室の未読を読み *
* ライブラリ番号リストが指定されていればデータライブラリをちらっと見る *
*************************************************************************/
/* down forum from boad number */
%Forum {
[fname,boadlist,lib]
footnote(fname|{をダウンロードしています});
case (LOGmode={forum},{Yes},{LOGforum(fname,{start})});
type({GO }|fname|{\n});
case (@FORUMTOP={OK},
{Yes},
{MESREAD(boadlist);case(lib<>{},{Yes},{DATALIB(lib)})});
case (LOGmode={forum},{Yes},{LOGforum(fname,{stop})});
};
/* 指定された会議室の未読を全部読む */
%MESREAD{
[boadlist]
case (boadlist<>{},
{Yes},
{
type({MES\n});
WAITABORT(Wtime2);
%limit @case(LIMIT,{},{im({})},,{im({ LIMIT:}|LIMIT)});
type({MREAD}|limit|{ ROOM:}|boadlist|{\n});
wait(1);
type({\n}); /* 「次頁は・・・」を出力させるため */
loop ({
wait (,,
{◆次頁はありません◆\n>},
{
wait(2);
im(@nochar(@tail(@laststr,{\n>}))>0);
},
{NO CARRIER}, /* モデムキャリア断時の処理 */
{
wait(5);
%a @tail(@laststr,{NO CARRIER});
case (@nochar(a)<5,
{Yes},{AbortOff({\nモデムのキャリアが}|
{切れちゃった\n});
im({No})},
{No},{im({Yes})}
);
});
});
});
};
/* データライブラリをちらっと見る処理 */
%DATALIB{
[lib]
case (lib={LIB}||lib={lib},
{No}, {LIBLIST(lib);},
{Yes},{type({LIB\n});WAITABORT(Wtime2);}
);
};
/* ライブラリーの最新登録状況を見る処理 */
%LIBLIST{
[lib]
display({LIBの最新登録状況を見ます\n});
liblist:=lib;
type({SET PAGE ON\n});
WAITABORT(Wtime2);
loop ({
case (@head(liblist,{,})={},
{Yes},{im({No})},
{No},
{
type({LIB }|@head(liblist,{,})|{\n});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{ダウンロード E:終了)\n>},
{
type({DIR\n});
WAITABORT(Wtime2);
liblist:=@body(liblist,{,});
im({Yes});
},
{\n>}, /* n番ライブラリなしの場合 */
{liblist:=@body(liblist,{,});im({Yes})}
);
});
});
};
/************************************************************************
* ホームパーティの未読を読む処理の定義 *
* hphostid HPの設置者のID *
* hppasswd HPのパスワード {*}の場合は実行時に入力 *
*************************************************************************/
%GOHP {
[hphostid,hppasswd]
footnote(hphostid|{のHPダウンロード処理中});
%readall{
wait (,,
{続き(改行のみ:次頁)\n>},
{type({\n});readall;},
{\nHP>},
);
};
display(hphostid|{のホームパーティの未読を読みます\n});
type({GO HP\n});
WAITCHAR(Wtime2,{2. Home Partyの説明\n>},
{
case(LOGmode={forum},{Yes},{LOGforum({HP\}|hphostid,{start})});
type({1\n});
});
WAITCHAR(Wtime2,{:自分のHP)\n:},{type(hphostid|{\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:},
{
SNDMSG({okasi_f.snd});
display({ホームパーティのIDが違っています\n});
type({2\n});WAITABORT(Wtime2);
},
{パスワード\n:},
{
loop ({
type(hppasswd|{\n});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\nHP>},
{
type({READ NEW\n});
readall;
im({No});
},
{パスワード\n:},{im({Yes})},
{2. Home Partyの説明\n>},
{
SNDMSG({okasi_f.snd});
display(hphostid|{のパスワードが違います\n});
im({No})}
);
});
});
case(LOGmode={forum},{Yes},{LOGforum({HP\}|hphostid,{stop})});
};
/************************************************************************/
/* 別のIDでNIFTYにログインする */
/************************************************************************/
%RECONECT{
[newid,newpswd]
footnote(newid|{で再ログイン処理中です});
display(newid|{でログインし直します\n});
type({LOG\n});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{Enter User-ID --->},{type(newid|{\n})});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{Enter Password --->},
{
case (newpswd={*}||newpswd={},
{Yes},
{
SNDMSG({nyuryo.snd});
type(@input({パスワードを入力してください})|{\n});
},
{No},{type(newpswd|{\n})}
);
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n Password ERROR},
{AbortOff({\nパスワードがおかしいですよ?\n})},
{NIFTY-Serve TOP},{WAITABORT(Wtime2)},
{CUG トップ},GONIF, /* CUG */
{\n>},{type({\n});TOPMENU}
);
},
{\n User-ID Error},{AbortOff({\nID間違ってない?\n})}
);
type({SET MENU ON\n}); WAITABORT(Wtime2);
type({SET FF OFF\n}); WAITABORT(Wtime2);
type({SET PAGE OFF\n}); WAITABORT(Wtime2);
setcdir(CDIR);
#FAPXMAIL.PLP;
};
/************************************************************************
* 課金情報を見る処理 *
*************************************************************************/
%GOBILL {
%d @getdt;
%file @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2)|{00.log};
case (@filechk(LOG2|{FMNEWS\}|file),
{No},
{
footnote({課金情報を確認しています});
display({あなたの課金情報を見ます\n});
type({GO BILL\n});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{ご利用料金一覧 3:説明 E:終了)\n>},{type({1\n})});
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({BILL},{start})});
WAITABORT(Wtime2);
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({BILL},{stop})});
});
};
/************************************************************************
* FMNEWSをちょっと見る処理 *
*************************************************************************/
%GOFMNEWS{
%d @getdt;
%file @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2)|{00.log};
case (@filechk(LOG2|{FMNEWS\}|file),
{No},
{
footnote({FMNEWSをちょっと覗いています});
display({FMNEWSをちょっと覗いてみます\n});
type({GO FMINFO\n});
WAITABORT(Wtime2);
type({1\n});
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({FMNEWS},{start})});
WAITABORT(Wtime2);
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({FMNEWS},{stop})});
});
};
/************************************************************************
* NEW(今週のお知らせ) を見る処理 *
*************************************************************************/
%GONEW {
%d @getdt;
%file @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2)|{00.log};
case (@filechk(LOG2|{NOW\}|file),
{No},
{
footnote({今週のお知らせダウンロード中});
display({今週のお知らせをダウンロードします\n});
type({GO NEW\n});
WAITABORT(Wtime2);
type({SET PAGE OFF\n}); WAITABORT(Wtime2);
case (LOGmode={forum},{Yes},{LOGforum({NEW},{start})});
type({1-\n});
loop ({
wait (Wtime2*5,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{続き (改行で次文書 E:終了)\n>},
{type({\n});im({Yes})},
{表示終了\n>},{im({No})}
);
});
case (LOGmode={forum},{Yes},{LOGforum({NEW},{stop})});
});
};
/************************************************************************/
/* 自動通信処理 */
/************************************************************************/
%DOnifty{
var DATE [24];
var n [3];
%nifty1 {
case (@nth(a,1,{/}),
{フォーラム},
{Forum(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/}))},
{ホームパーティ},{GOHP(@nth(a,3,{/}),@nth(a,4,{/}))},
{課金情報確認},{GOBILL},
{FM情報確認},{GOFMNEWS},
{自由行動},{setcdir(CDIR);#FAPXCHAT.PLP},
{再ログイン},{RECONECT(@nth(a,3,{/}),@nth(a,4,{/}))},
{お知らせ},{GONEW}
)
};
DATE:=@getdt;
n:=0;
loop ({
n:=n+1;
%a @getline(NIFTY,n,1);
case (a={},
{Yes},{im({No})},,
{
case (@nth(a,2,{/}),
{毎日},nifty1,
{奇数},{case (@getchar(DATE,10,1),
{1},nifty1,{3},nifty1,
{5},nifty1,{7},nifty1,
{9},nifty1)},
{偶数},{case (@getchar(DATE,10,1),
{0},nifty1,{2},nifty1,
{4},nifty1,{6},nifty1,
{8},nifty1)},
,{case (@getchar(@nth(a,2,{/}),1,2),
@getchar(DATE,13,2),nifty1,/* 曜日 */
@getchar(DATE,9,2),nifty1)}/* 日付 */
);
im({Yes});
});
});
};
DOnifty;