home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 5 / FREESOFT.BIN / mopterm / fapx405b / fapxloop.plp < prev    next >
Text File  |  1992-08-19  |  10KB  |  351 lines

  1. /*    フォーラム毎にダウンロードファイルを作成する処理    */
  2. %LOGforum{
  3.     [fname,mode]
  4.     case    (mode,
  5.         {start},
  6.         {
  7.         display({\n}|@tail(fname,{\})|{のダウンロードを開始します\n});
  8.         case    (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
  9.             {Yes},
  10.             {
  11.             mkdir2(@body(TEMP2|fname,,{\}));
  12.             dispoff({Yes});
  13.             command({del }|TEMP2|fname|{.log});
  14.             dispoff({No});
  15.             receive(TEMP2|fname|{.log});
  16.             },
  17.             {No},
  18.             {receive(LOG2|fname|{\}|@crefile(LOG2|fname,{log}))},
  19.             );
  20.         },
  21.         {stop},
  22.         {
  23.         stoprec;
  24.         display({\n}|@tail(fname,{\})|{のダウンロードを終了しました\n});
  25.         case    (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
  26.             {Yes},
  27.             {
  28.             mkdir2(@body(LOG2|fname,,{\}));
  29.             dispoff({Yes});
  30.             setcdir(TEMP);
  31.             %file    @nowfile2(TEMP2|fname|{.log},TEMP);
  32.             dispoff({Yes});
  33.             command(ARCHIVER|{ a }|LOG2|fname|{.lzh }|TEMP2|file);
  34.             command({del }|TEMP2|file);
  35.             dispoff({No});
  36.             });
  37.         setcdir(CDIR);
  38.         });
  39.     };
  40.  
  41. /************************************************************************
  42. *    フォーラム処理の定義                        *
  43. *    Forum({フォーラム名},{会議室番号リスト},{ライブラリ番号リスト})        *
  44. *        フォーラム名で指定されたフォーラムの                *
  45. *        会議室番号リストで指定された会議室の未読を読み        *
  46. *        ライブラリ番号リストが指定されていればデータライブラリをちらっと見る    *
  47. *************************************************************************/
  48.  
  49. /*    down forum from boad number        */
  50. %Forum    {
  51.     [fname,boadlist,lib]
  52.     footnote(fname|{をダウンロードしています});
  53.     case    (LOGmode={forum},{Yes},{LOGforum(fname,{start})});
  54.     type({GO }|fname|{\n});
  55.     case    (@FORUMTOP={OK},
  56.         {Yes},
  57.         {MESREAD(boadlist);case(lib<>{},{Yes},{DATALIB(lib)})});
  58.     case    (LOGmode={forum},{Yes},{LOGforum(fname,{stop})});
  59.     };
  60.  
  61. /*    指定された会議室の未読を全部読む    */
  62. %MESREAD{
  63.     [boadlist]
  64.     case    (boadlist<>{},
  65.         {Yes},
  66.         {
  67.         type({MES\n});
  68.         WAITABORT(Wtime2);
  69.         %limit    @case(LIMIT,{},{im({})},,{im({ LIMIT:}|LIMIT)});
  70.         type({MREAD}|limit|{ ROOM:}|boadlist|{\n});
  71.         wait(1);
  72.         type({\n});    /* 「次頁は・・・」を出力させるため */
  73.         loop    ({
  74.             wait    (,,
  75.                 {◆次頁はありません◆\n>},
  76.                 {
  77.                 wait(2);
  78.                 im(@nochar(@tail(@laststr,{\n>}))>0);
  79.                 },
  80.                 {NO CARRIER},    /* モデムキャリア断時の処理 */
  81.                 {
  82.                 wait(5);
  83.                 %a @tail(@laststr,{NO CARRIER});
  84.                 case    (@nochar(a)<5,
  85.                     {Yes},{AbortOff({\nモデムのキャリアが}|
  86.                             {切れちゃった\n});
  87.                         im({No})},
  88.                     {No},{im({Yes})}
  89.                     );
  90.                 });
  91.             });
  92.         });
  93.     };
  94.  
  95. /*    データライブラリをちらっと見る処理    */
  96. %DATALIB{
  97.     [lib]
  98.     case    (lib={LIB}||lib={lib},
  99.         {No}, {LIBLIST(lib);},
  100.         {Yes},{type({LIB\n});WAITABORT(Wtime2);}
  101.         );
  102.     };      
  103.  
  104. /*    ライブラリーの最新登録状況を見る処理    */
  105. %LIBLIST{
  106.     [lib]
  107.     display({LIBの最新登録状況を見ます\n});
  108.     liblist:=lib;
  109.     type({SET PAGE ON\n});
  110.     WAITABORT(Wtime2);
  111.     loop    ({
  112.         case    (@head(liblist,{,})={},
  113.             {Yes},{im({No})},
  114.             {No},
  115.             {
  116.             type({LIB }|@head(liblist,{,})|{\n});
  117.             wait    (Wtime2,
  118.                 {AbortOff({\nホストの反応が鈍いよぉ~\n})},
  119.                 {ダウンロード  E:終了)\n>},
  120.                 {
  121.                 type({DIR\n});
  122.                 WAITABORT(Wtime2);
  123.                 liblist:=@body(liblist,{,});
  124.                 im({Yes});
  125.                 },
  126.                 {\n>},        /* n番ライブラリなしの場合 */
  127.                 {liblist:=@body(liblist,{,});im({Yes})}
  128.                 );
  129.             });
  130.         });
  131.     };
  132.  
  133. /************************************************************************
  134. *    ホームパーティの未読を読む処理の定義                *
  135. *        hphostid    HPの設置者のID                *
  136. *        hppasswd    HPのパスワード    {*}の場合は実行時に入力    *
  137. *************************************************************************/
  138. %GOHP    { 
  139.     [hphostid,hppasswd]
  140.     footnote(hphostid|{のHPダウンロード処理中});
  141.  
  142.     %readall{
  143.         wait    (,,
  144.             {続き(改行のみ:次頁)\n>},
  145.             {type({\n});readall;},
  146.             {\nHP>},
  147.             );
  148.         };
  149.  
  150.     display(hphostid|{のホームパーティの未読を読みます\n});
  151.     type({GO HP\n});
  152.     WAITCHAR(Wtime2,{2. Home Partyの説明\n>},
  153.         {
  154.         case(LOGmode={forum},{Yes},{LOGforum({HP\}|hphostid,{start})});
  155.         type({1\n});
  156.         });
  157.     WAITCHAR(Wtime2,{:自分のHP)\n:},{type(hphostid|{\n})});
  158.     wait    (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  159.         {◆該当する利用者のHome Partyはありません◆\n},
  160.         {WAITCHAR(Wtime2,{2. Home Partyの説明\n>},
  161.             {SNDMSG({okasi_f.snd});
  162.              display({ホームパーティのIDが違っています\n})});
  163.         },
  164.         {(1:設定する  2:しない)\n:},
  165.         {
  166.         SNDMSG({okasi_f.snd});
  167.         display({ホームパーティのIDが違っています\n});
  168.         type({2\n});WAITABORT(Wtime2);
  169.         },
  170.         {パスワード\n:},
  171.         {
  172.         loop    ({
  173.             type(hppasswd|{\n});
  174.             wait    (Wtime2,
  175.                 {AbortOff({\nホストの反応が鈍いよぉ~\n})},
  176.                 {\nHP>},
  177.                 {
  178.                 type({READ NEW\n});
  179.                 readall;
  180.                 im({No});
  181.                 },
  182.                 {パスワード\n:},{im({Yes})},
  183.                 {2. Home Partyの説明\n>},
  184.                 {
  185.                 SNDMSG({okasi_f.snd});
  186.                 display(hphostid|{のパスワードが違います\n});
  187.                 im({No})}
  188.                 );
  189.             });
  190.         });
  191.     case(LOGmode={forum},{Yes},{LOGforum({HP\}|hphostid,{stop})});
  192.     };
  193.  
  194. /************************************************************************/
  195. /*    別のIDでNIFTYにログインする                */
  196. /************************************************************************/
  197. %RECONECT{
  198.     [newid,newpswd]
  199.     footnote(newid|{で再ログイン処理中です});
  200.     display(newid|{でログインし直します\n});
  201.     type({LOG\n});
  202.     wait    (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  203.         {Enter User-ID  --->},{type(newid|{\n})});
  204.     wait    (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  205.         {Enter Password --->},
  206.         {
  207.         case    (newpswd={*}||newpswd={},
  208.             {Yes},
  209.             {
  210.             SNDMSG({nyuryo.snd});
  211.             type(@input({パスワードを入力してください})|{\n});
  212.             },
  213.             {No},{type(newpswd|{\n})}
  214.             );
  215.         wait    (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  216.             {\n Password ERROR},
  217.             {AbortOff({\nパスワードがおかしいですよ?\n})},
  218.             {NIFTY-Serve     TOP},{WAITABORT(Wtime2)},
  219.             {CUG トップ},GONIF,        /* CUG */
  220.             {\n>},{type({\n});TOPMENU}
  221.             );
  222.         },
  223.         {\n User-ID Error},{AbortOff({\nID間違ってない?\n})}
  224.         );
  225.     type({SET MENU ON\n});    WAITABORT(Wtime2);
  226.     type({SET FF OFF\n});    WAITABORT(Wtime2);
  227.     type({SET PAGE OFF\n});    WAITABORT(Wtime2);
  228.     setcdir(CDIR);
  229.     #FAPXMAIL.PLP;
  230.     };
  231.  
  232. /************************************************************************
  233. *    課金情報を見る処理                        *
  234. *************************************************************************/
  235. %GOBILL    {
  236.     %d    @getdt;
  237.     %file    @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2)|{00.log};
  238.     case    (@filechk(LOG2|{FMNEWS\}|file),
  239.         {No},
  240.         {
  241.         footnote({課金情報を確認しています});
  242.         display({あなたの課金情報を見ます\n});
  243.         type({GO BILL\n});
  244.         wait    (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  245.             {ご利用料金一覧  3:説明  E:終了)\n>},{type({1\n})});
  246.         case    (LOGmode={forum}||LOGmode={mes},
  247.             {Yes},{LOGforum({BILL},{start})});
  248.         WAITABORT(Wtime2);
  249.         case    (LOGmode={forum}||LOGmode={mes},
  250.             {Yes},{LOGforum({BILL},{stop})});
  251.         });
  252.     };
  253.  
  254. /************************************************************************
  255. *    FMNEWSをちょっと見る処理                    *
  256. *************************************************************************/
  257. %GOFMNEWS{
  258.     %d    @getdt;
  259.     %file    @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2)|{00.log};
  260.     case    (@filechk(LOG2|{FMNEWS\}|file),
  261.         {No},
  262.         {
  263.         footnote({FMNEWSをちょっと覗いています});
  264.         display({FMNEWSをちょっと覗いてみます\n});
  265.         type({GO FMINFO\n});
  266.         WAITABORT(Wtime2);
  267.         type({1\n});
  268.         case    (LOGmode={forum}||LOGmode={mes},
  269.             {Yes},{LOGforum({FMNEWS},{start})});
  270.         WAITABORT(Wtime2);
  271.         case    (LOGmode={forum}||LOGmode={mes},
  272.             {Yes},{LOGforum({FMNEWS},{stop})});
  273.         });
  274.     };
  275.  
  276. /************************************************************************
  277. *           NEW(今週のお知らせ) を見る処理                         *
  278. *************************************************************************/
  279. %GONEW    {
  280.     %d    @getdt;
  281.     %file    @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2)|{00.log};
  282.     case    (@filechk(LOG2|{NOW\}|file),
  283.         {No},
  284.         {
  285.         footnote({今週のお知らせダウンロード中});
  286.         display({今週のお知らせをダウンロードします\n});
  287.         type({GO NEW\n});
  288.         WAITABORT(Wtime2);
  289.         type({SET PAGE OFF\n});    WAITABORT(Wtime2);
  290.         case    (LOGmode={forum},{Yes},{LOGforum({NEW},{start})});
  291.         type({1-\n});
  292.         loop    ({
  293.             wait    (Wtime2*5,
  294.                 {AbortOff({\nホストの反応が鈍いよぉ~\n})},
  295.                 {続き (改行で次文書 E:終了)\n>},
  296.                 {type({\n});im({Yes})},
  297.                 {表示終了\n>},{im({No})}
  298.                 );
  299.             });
  300.         case    (LOGmode={forum},{Yes},{LOGforum({NEW},{stop})});
  301.         });
  302.     };
  303.  
  304. /************************************************************************/
  305. /*    自動通信処理                            */
  306. /************************************************************************/
  307.  
  308. %DOnifty{
  309.     var    DATE    [24];
  310.     var    n    [3];
  311.     %nifty1    {
  312.         case    (@nth(a,1,{/}),
  313.             {フォーラム},
  314.             {Forum(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/}))},
  315.             {ホームパーティ},{GOHP(@nth(a,3,{/}),@nth(a,4,{/}))},
  316.             {課金情報確認},{GOBILL},
  317.             {FM情報確認},{GOFMNEWS},
  318.             {自由行動},{setcdir(CDIR);#FAPXCHAT.PLP},
  319.             {再ログイン},{RECONECT(@nth(a,3,{/}),@nth(a,4,{/}))},
  320.             {お知らせ},{GONEW}
  321.             )
  322.         };
  323.     DATE:=@getdt;
  324.     n:=0;
  325.     loop    ({
  326.         n:=n+1;
  327.         %a    @getline(NIFTY,n,1);
  328.         case    (a={},
  329.             {Yes},{im({No})},,
  330.             {
  331.             case    (@nth(a,2,{/}),
  332.                 {毎日},nifty1,
  333.                 {奇数},{case    (@getchar(DATE,10,1),
  334.                         {1},nifty1,{3},nifty1,
  335.                         {5},nifty1,{7},nifty1,
  336.                         {9},nifty1)},
  337.                 {偶数},{case    (@getchar(DATE,10,1),
  338.                         {0},nifty1,{2},nifty1,
  339.                         {4},nifty1,{6},nifty1,
  340.                         {8},nifty1)},
  341.                 ,{case    (@getchar(@nth(a,2,{/}),1,2),
  342.                     @getchar(DATE,13,2),nifty1,/* 曜日 */
  343.                     @getchar(DATE,9,2),nifty1)}/* 日付 */
  344.                 );
  345.             im({Yes});
  346.             });
  347.         });
  348.     };
  349.  
  350. DOnifty;
  351.