home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / f / finet93a.zip / SCRIPTS.ZIP / FINET3.SLT < prev    next >
Text File  |  1993-01-01  |  6KB  |  237 lines

  1. // IN DEVELOPMENT>>>>>  needs work yet to receive IN.RLY, rest works
  2.  
  3. // this script needs work. it gets to send the upload packet, it does not
  4. // yet get to receive the in.rly packet... but is the start of a great
  5. // script that does check for how long login, upload and download is
  6. // online, preventing getting stuck online for hours.....
  7.  
  8. // finet mail script for telix to call Freedom Infonet RBBS************
  9. // must have set rbbs novice/expert menu options to "X" expert!
  10. // for this to work.  replace "NODE_ID" with your node id.
  11.  
  12.  
  13.  
  14. str user_name[] = "fname;lastname";
  15. str open_door[] = "D FIHUB /G";
  16. str node_path[] = "C:\TRANSFER\NODE_ID.RLY";
  17. str number_to_dial[] = "29";
  18. int times_to_dial = 5;
  19. str capfile[] = "ON";
  20. str cap_filename[] = "FINET.CAP";
  21. str usefile[] = "ON";
  22. str use_filename[] = "FINET.USE";
  23. int login_limit = 2;
  24. int mail_limit = 6;
  25. str protocol[] = "Z";
  26.     // "D" the script will use external DSZ, but ONLY if it is set up
  27.     // in Telix to respond to the D key!  "Z" is internal zmodem
  28.  
  29. main()
  30. {
  31. // make backup copy of mail upload packet, "node_id.rly"
  32. dos("copy c:\transfer\node_id.rly c:\transfer\rly.sav",0);
  33.         dial_hub();
  34.         logon();
  35. }
  36.  
  37. dial_hub()
  38. {
  39.         if (capfile=="ON") capture(cap_filename);
  40.         if (usefile=="ON") usagelog(use_filename);
  41.         dial(number_to_dial,times_to_dial,1);
  42.         if (carrier())
  43.                 {
  44.                 return;
  45.                 }
  46.         else
  47.                 {
  48.                 status_wind("Unable to connect",50);
  49.                 hangup();
  50.                 exittelix();
  51.                 }
  52. }
  53. logon()
  54. {
  55.  int stat;
  56.  int t1,
  57.      t2,
  58.      t3,
  59.      t4,
  60.      t5,
  61.      t6,
  62.      t7,
  63.      t8,
  64.      t9,
  65.      t10;
  66.  int tmark;
  67.  alarm (1);
  68.  if (not _entry_pass) 
  69.   {
  70.    status_wind("Sorry, I don't know the password for this BBS!",50);
  71.    hangup();
  72.    exittelix();
  73.   }
  74.  
  75.  t1 = track ("Do you want graphics", 1);
  76.  t2 = track ("IRST name?", 1);
  77.  t3 = track ("dots echo)?", 1);
  78.  t4 = track ("A,J>?", 1);
  79.  t5 = track ("Scan message base",1);
  80.  t6 = track ("X,4>?",1);
  81.  t7 = track ("wapping",1);
  82.  t8 = track ("[Y],N)?",1);
  83.  t9 = track ("to continue",1);
  84.  t10= track ("more?",1);
  85.  
  86.  tmark = timer_start (600*login_limit);    // wait up to x  minutes for login
  87.  status_wind("logging on...",20);       // answer any logon questions
  88.  while (not time_up (tmark))
  89.   {
  90.    terminal();                          // let Telix process any chars and keys
  91.    stat = track_hit (0);                // see which (if any) track was hit
  92.    if (stat == t1)                      // say whether we want graphics
  93.     {
  94.      delay (5);
  95.      cputs ("n q ns^M");
  96.     }
  97.    else if (stat == t2)                 // send name
  98.     {
  99.      cputs (user_name);
  100.      cputs ("^M");
  101.     }
  102.    else if (stat == t3)                 // send password
  103.     {
  104.      cputs (_entry_pass);
  105.      cputs ("^M");
  106.     }
  107.    else if (stat == t10)
  108.      {
  109.        cputs("Y");
  110.        cputs("^M");
  111.      }
  112.    else if (stat == t4)                 // specific to main.nws
  113.     {
  114.      delay (5);
  115.      cputs ("A^M^M");
  116.     }
  117.    else if (stat == t5)
  118.     {
  119.      delay(5);
  120.      cputs("n^M");
  121.     }
  122.    else if (stat == t8)
  123.     {
  124.     delay(4);
  125.     cputs("n");
  126.     cputs("^M");
  127.     }
  128.    else if (stat == t9)
  129.     {
  130.      delay(5);
  131.      cputs("^M");
  132.     }
  133.    else if (stat == t6)
  134.     {
  135.      status_wind("Login Successful",20);
  136.      cputs(open_door);
  137.      cputs("^M");
  138.      terminal();
  139.     }
  140.    else if (stat == t7)
  141.     {
  142.         status_wind("opening mail door!",10);
  143.         sendpacket();
  144.         recpacket();
  145.         status_wind("TEST POINT",60);
  146.           hangup();
  147.         backup();
  148.           exittelix();
  149.     }
  150. }
  151.  if (time_up (tmark))
  152.   {
  153.   status_wind("Logon failed!",20);
  154.   hangup();
  155.   exittelix();
  156.   }
  157.  
  158.  timer_free (tmark);                    // free timer channel
  159.  track_free (0);                        // and all track channels
  160. }
  161.  
  162. // this is end of program.
  163.  
  164. sendpacket()
  165. {
  166.    int t2,tmark,stat;
  167.    track_free(tmark);
  168.    t2 = track("fe64",1);
  169. //  use "**" instead of "fe64" on generic zmodem....
  170.  
  171.    tmark = timer_start(600*mail_limit);
  172.    while (not time_up(tmark))
  173.       {
  174.         terminal();
  175.         stat = track_hit (0);
  176.         if (stat == t2)
  177.           {
  178.                 status_wind("Sending Packet",10);
  179.                 if (protocol == "D" ) send('D',node_path);
  180.                 else if (protocol == "Z") send('Z',node_path);
  181.                 return;
  182.           }
  183. //      return;
  184.       }
  185.    if (time_up(tmark))
  186.       {
  187.         status_wind("Timeout Waiting To Send Packet",40);
  188.         hangup();
  189.         exittelix();
  190.       }
  191. return;
  192. }
  193.  
  194.  
  195. recpacket()
  196. {
  197.       int tmark,t3,stat;
  198.       timer_free(tmark);
  199.       t3 = track("dd38",1);
  200.       tmark= timer_start(600*mail_limit);               // wait for reply
  201.       status_wind("Waiting for mail...",20);
  202.       while (not time_up(tmark))
  203.        {
  204.         terminal();
  205.         stat = track_hit(0);
  206.         if (stat == t3)
  207.           {
  208.                 status_wind("Receiving Packet",10);
  209.                 if (protocol == "D" ) receive('D',"");
  210.                 else if (protocol == "Z") receive('Z',"");
  211.                 return;
  212.           }
  213.  
  214.         //check for no carrier and timeout here
  215.         return;
  216.       }
  217.   return;
  218. }
  219.  
  220.  
  221. backup()
  222. {
  223.  
  224. //        make backup of old in.rly packet, if exists
  225. // we assume that dsz is used and overwrite is enable of new file over
  226. // old file in.rly.
  227.       status_wind("making backup of in.rly packets",20);
  228.       dos("if exist c:\transfer\in.2 copy c:\transfer\in.2 c:\transfer\in.3",0);
  229.       dos("if exist c:\transfer\in.2 del c:\transfer\in.2",0);
  230.       dos("if exist c:\transfer\in.1 ren c:\transfer\in.1 c:\transfer\in.2",0);
  231. //        make backup of present in.rly packet
  232.       dos("copy c:\transfer\in.rly in.1",0);
  233.       hangup();
  234.       exittelix();
  235.       return;
  236. }
  237.