home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / OLMS201.ZIP / DEVELOP.ZIP / QWKE.DOC next >
Encoding:
Text File  |  1994-12-04  |  17.4 KB  |  468 lines

  1.  
  2.                            QWKE Specifications 1.01
  3.       (also known as EQWK - pronounced Quicky, and E-quick respectively)
  4.  
  5.  
  6.                          Copyright 1994, Peter Rocca
  7.                              Fidonet 1:2401/123
  8.                        Internet: support@mcc.uti.com
  9.                       (519) 660-8981 / (519) 660-6908
  10.                                  28,800 Baud
  11.  
  12.  
  13.  This documentation may be freely used to enhance/create 1st, 2nd or 3rd
  14.  party applications or utilities without any legal obligation to the author.
  15.  Please do not extend or further the QWKE without contacting Pete Rocca, in
  16.  order to keep the standard from becoming a 'non-standard'. - Thank you.
  17.  
  18.  
  19.  QWKE Specifications
  20.  ───────────────────
  21.  
  22.  All files and formats match the QWK 1.0 standards.  If you are not familiar
  23.  with them, I would suggest getting QWKLAY??.ZIP by Patrick Y. Lee. (it is
  24.  freqable from my system)
  25.  
  26.  The only differences to the standard QWK format lay in four files.
  27.  
  28.          CONTROL.DAT  - conference area names are no longer limited
  29.                         to 13 characters, they are limited to 255
  30.                         characters now.
  31.  
  32.          DOOR.ID      - contains additional CONTROLTYPE names.
  33.  
  34.          TOREADER.EXT - a file created by the door that contains
  35.                         additional information for the reader.
  36.  
  37.          TODOOR.EXT   - a file created by the reader that contains
  38.                         additional information for the door.
  39.  
  40.  In addition, certain kludge lines should be imported to messages when
  41.  downloading, if their length exceeds 25 characters.
  42.  
  43.    These kludges are...
  44.  
  45.                            To:
  46.                            From:
  47.                            Subject:
  48.  
  49.    ...they should be at the top of the message, and terminated by
  50.    either a carriage return, or the 'π' QWK terminator.  At the end
  51.    of the last imported kludge, there should be a blank line, however
  52.    you should program to handle if one is not present.  Additional
  53.    kludge names can be created, but your reader/door should at least
  54.    handle these three.
  55.  
  56.    Also, the kludge lines To/Subject should be imported into the message
  57.    fields when posting the messages. (uploading)  The From kludge can
  58.    be accepted, but remember to check the security of it (ie make sure
  59.    that the name is allowed, ie alias base, etc)  Also, regarding the
  60.    To: kludge... keep in mind that UUCP software likes the To: line
  61.    left in the first line of a message, therefore it should not be
  62.    removed from the message if this message is destined to be sent
  63.    through an UUCP gateway.
  64.  
  65.    A sample message with kludge lines might look like:
  66.  
  67.      1       10        20   25
  68.      |---+----|----+----|----|
  69.   TO:PETER ROCCAZISKINZIDONING
  70. FROM:BOB WILIKERS
  71. SUBJ:This is a test of the sys                       <--- HEADER
  72.      --------------------------------------------------------------------
  73.      To: PETER ROCCAZISKINZIDONINGLY                 <--- MESSAGE TEXT
  74.      Subject: This is a test of the system, as you can see!
  75.      <blank line>
  76.      The real message starts here now, but it was short, so
  77.      see you later.
  78.  
  79.    As you can see, only the To/Subject lines were imported, since the
  80.    From line did not exceed the 25 character limit.
  81.  
  82.    One command question is NETMAIL? How do you do it?  A standard that
  83.    I would suggest is the "Subject line method" which is simply an "at"
  84.    symbol, followed by the full netmail address.  For example to send
  85.    mail to Pete Rocca at 1:2401/305.200, the message header would look
  86.    like this:
  87.  
  88.    To: PETE ROCCA
  89.    Fm: JOE USER
  90.    Sb: @1:2401/305.200
  91.  
  92.    How about internet mail?
  93.  
  94.    Well, internet mail going out a fido gateway would simply be a netmail
  95.    message with a To: <address> on the first line. It is upto the mail
  96.    door not to import a "To:" kludge when sending internet netmail mail.
  97.    For example (Fido->Internet)
  98.  
  99.    To: UUCP
  100.    Fm: JOE USER
  101.    Sb: @1:1/31
  102.    ------------------------------------
  103.    To: support@mcc.uti.com
  104.    Subject: Hello there
  105.  
  106.    A regular internet message would simply be a regular message, but with
  107.    a "To" kludge to avoid the 25 character limit in the To field.
  108.    For example (regular Internet)
  109.  
  110.    To: INTERNET                         <--- this gets replaced on import
  111.    Fm: JOE USER
  112.    Sb: Hello there
  113.    ------------------------------------
  114.    To: support@mcc.uti.com
  115.  
  116.    Of course, as a door or reader author, you can make this completely
  117.    transparent to the user.
  118.  
  119.  
  120. ══════════════════════════════════════════════════════════════════════════════
  121.  
  122.  File: TOREADER.EXT
  123.  ──────────────────
  124.  
  125.   Desc: This file is simply an ASCII text file that is included
  126.         in the QWK packet, and contains information used by the
  127.         QWK reader. (created by the mail door)
  128.  
  129.  Each line has an identifier, followed by the relevant information
  130.  for the extended information. (Arguments in < > are required,
  131.  and ones in [ ] are optional)
  132.  
  133.    ALIAS     <users' alias name>
  134.    AREA      <conference#> <settings>
  135.    BULL      <filename> <description>
  136.    ATTACH    <filename> <conference#> <message#>
  137.    FILE      <filename> [description]
  138.    KEYWORD   <keyword>
  139.    FILTER    <filter>
  140.    TWIT      <twit>
  141.  
  142. ──────────────────────────────────────────────────────────────────────────────
  143.  
  144. Identifier: ALIAS <users' alias name>
  145.  
  146.    This simply passes the users' alias name to the door in order to be
  147.    able to present it to the user when entering mail in 'alias' areas.
  148.  
  149.    An example would be: ALIAS Rawhide
  150.  
  151. ──────────────────────────────────────────────────────────────────────────────
  152.  
  153. Identifier: AREA <conference#> <settings>
  154.  
  155.    This presents a list of selected areas (or all areas optionally), and
  156.    what the flag settings for each area are.  The <conference#> is the
  157.    number of the area that is selected and the <settings> contains the
  158.    flags for that area.
  159.  
  160.    The possible flags are:
  161.  
  162.        a   for all messages
  163.        p   for personal messages
  164.        g   for general messages (personal and those addressed to 'ALL')
  165.  
  166.    In addition, some mail doors can add the following flags: (this
  167.    information is set by the mail door itself, and overrides and standard
  168.    BBS settings)
  169.  
  170.        w   if this area should include mail written by themselves
  171.        k   if this area should be included in keyword searches
  172.        f   if this area should be included in filter exclude searches
  173.        F   if this area is forced to be read
  174.        B   if this area is blocked from getting replies
  175.  
  176.    In further addition, area information should be given - this information
  177.    is gathered from the BBS records.
  178.  
  179.        P   if the area is private mail only
  180.        O   if the area is public mail only
  181.        X   if either private or public mail is allowed
  182.        R   if the area is read-only
  183.        Z   if the area doesn't allow replies (no continuation of thread)
  184.  
  185.        L   if the area is a local message area
  186.        N   if the area is a netmail area
  187.        E   if the area is an echomail area
  188.        I   if the area is an internet area
  189.        U   if the area is an newsgroup area
  190.  
  191.        H   if the area is an handles only message area
  192.        A   if the area allows messages 'from' any name (pick-an-alias)
  193.        &   if the area allows file attaches
  194.            (does not override CONTROLTYPE=ALLOWATTACH)
  195.  
  196.    Again the door should enforce security to messages with private
  197.    flags and/or different names to ensure that they are allowed.
  198.  
  199.    For example, if a user had 4 areas selected, it might look like this:
  200.  
  201.    AREA 23 awOU
  202.    AREA 31 aFPLA
  203.    AREA 44 pkPN&
  204.    AREA 172 gwkfPI
  205.  
  206.    ...please note that the flags ARE case sensitive & and any unknown
  207.    flags should be ignored.
  208.  
  209. ──────────────────────────────────────────────────────────────────────────────
  210.  
  211. Identifier: BULL <filename> <description>
  212.  
  213.    This is a way of describing the bulletins a little better than
  214.    the file name BLT-x.y method.  The actual files should still be
  215.    in the BLT-x.y format to ensure backward compatibility, but by
  216.    describing the filenames here, you can have something like
  217.    looks like:
  218.  
  219.         Bulletins
  220.           - System Stats
  221.           - Top Users
  222.           - Contest galore!
  223.  
  224.    Instead of:
  225.  
  226.         Bulletins
  227.           - BLT-1.4
  228.           - BLT-3.2
  229.           - BLT-6.1
  230.  
  231.    In this example, the TOREADER.EXT file would have three lines
  232.    added to create these descriptions:
  233.  
  234.    BULL BLT-1.4 System Stats
  235.    BULL BLT-3.2 Top Users
  236.    BULL BLT-6.1 Contest galore!
  237.  
  238. ──────────────────────────────────────────────────────────────────────────────
  239.  
  240. Identifier: ATTACH <filename> <conference#> <message#>
  241.  
  242.    This is a method used to identify which messages have files attached
  243.    that were downloaded with the packet.  It is upto the mail door
  244.    to decide whether or not to send attached files, this is simply a
  245.    method for the reader to acknowledge such files.
  246.  
  247.    For an example:  Say that message number 782 in conference 12 had
  248.    the file TEST.ZIP attached to it, and the mail door included this
  249.    TEST.ZIP file in the BOARDID.QWK archive.  The TOREADER.EXT file
  250.    would have the follow entry to let the mail reader know about this
  251.    file.
  252.  
  253.    ATTACH TEST.ZIP 782 12
  254.  
  255. ──────────────────────────────────────────────────────────────────────────────
  256.  
  257. Identifier: FILE <filename> [description]
  258.  
  259.    This is a method used to identify which files in the QWK archive
  260.    are file requests from the bulletin board.  It is upto the mail door
  261.    to decide whether or not to send these requested files, and this
  262.    is simply a method for the reader to acknowledge such files.
  263.  
  264.    For an example:  Say that the file GOODGAME.ARJ was requested and
  265.    added to the BOARDID.QWK archive.  When the mail reader expanded it,
  266.    it would not know which files had been requested by the user, nor
  267.    what the description of those files were.  Place using the FILE
  268.    identifier, the reader can easily present a nice listing of requested
  269.    files, rather than having to guess at the file names, and having
  270.    no idea of the description (although the description is optional).
  271.    In the GOODGAME.ARJ example, the mail door should add the following
  272.    line to the TOREADER.EXT file.
  273.  
  274.    FILE GOODGAME.ARJ This is a great new SVGA action game!
  275.  
  276.    or
  277.  
  278.    FILE GOODGAME.ARJ
  279.  
  280. ──────────────────────────────────────────────────────────────────────────────
  281.  
  282. Identifier: KEYWORD <data>
  283. Identifier: FILTER  <data>
  284. Identifier: TWIT    <data>
  285.  
  286.    These identifiers are for mail doors that can process keywords,
  287.    filters and twit listings. It is used only to inform the mail
  288.    reader of the settings used, in order to make offline configuration
  289.    much easier for the user.  For example, if the TOREADER.EXT file
  290.    had the following lines...
  291.  
  292.    KEYWORD olms
  293.    KEYWORD qwk
  294.    FILTER hacking
  295.    TWIT Death Wizard
  296.  
  297.    ...then the mail reader could present a list of these settings
  298.    and allow changes to be made to them, and create the proper
  299.    TODOOR.EXT lines to alter the configuration.
  300.  
  301. ══════════════════════════════════════════════════════════════════════════════
  302.  
  303.  File: TODOOR.EXT
  304.  ────────────────
  305.  
  306.   Desc: This file is simply an ASCII text file that is included
  307.         in the QWK packet, and contains information used by the
  308.         QWK mail door. (created by the mail reader) It must be
  309.         read back and processed by the door.
  310.  
  311.  Each line has an identifier, followed by the relevant information
  312.  for the extended information. (Arguments in < > are required,
  313.  and ones in [ ] are optional)
  314.  
  315.    AREA      <conference#> <settings>
  316.    RESET     <conference#> [#ofmessages]
  317.    ATTACH    <filename> <reply#>
  318.    FILE      <filename> [description]
  319.    REQUEST   <filename>
  320.    REQUEST   <conference#> <message#>
  321.    KEYWORD   [-]<keyword>
  322.    FILTER    [-]<filter>
  323.    TWIT      [-]<twit>
  324.  
  325. ──────────────────────────────────────────────────────────────────────────────
  326.  
  327. Identifier: AREA <conference#> <settings>
  328.  
  329.    This presents a list of CHANGES areas, and what the flag settings
  330.    for each area changed are. The <conference#> is the number of the area
  331.    that is to be changed and the <settings> contains the flags for that area.
  332.  
  333.    The possible flags are:
  334.  
  335.        D   drop area
  336.        a   for all messages
  337.        p   for personal messages
  338.        g   for general messages (personal and those addressed to 'ALL')
  339.  
  340.    In addition, some mail doors can add the following flags:
  341.  
  342.        w   if this area should include mail written by themselves
  343.        k   if this area should be included in keyword searches
  344.        f   if this area should be included in filter exclude searches
  345.  
  346.    For example, if a user had changed 2 areas, it might look like this:
  347.  
  348.    AREA 23 D
  349.    AREA 44 gf
  350.  
  351. ──────────────────────────────────────────────────────────────────────────────
  352.  
  353. Identifier: RESET <conference#> [#ofmessages]
  354.  
  355.    This presents a list of pointer changes to be made.  The pointers should
  356.    be changed for the <conference#> given.  If the [#ofmessages] is blank
  357.    then the pointer should be set back to the start of the message base,
  358.    otherwise it should be set back [#ofmessages] back from the end of
  359.    the message base.
  360.  
  361.    For example, if a user had modified 2 areas, it might look like this:
  362.  
  363.    RESET 23 100
  364.    RESET 44
  365.  
  366. ──────────────────────────────────────────────────────────────────────────────
  367.  
  368. Identifier: ATTACH <filename> <reply#>
  369.  
  370.    This is a method of creating messages that have files attached
  371.    to them.  The mail reader should pack the <filename> into the
  372.    BOARDID.REP file, and add this line in the TODOOR.EXT file,
  373.    which is also included in the BOARDID.REP file.
  374.  
  375.    The <reply#> is the number of the message in the reply packet.
  376.    For example, if the third message in the reply packet had the
  377.    file ATTACHME.ZIP attached to it:  The BOARDID.REP file should
  378.    contain the file ATTACHME.ZIP, BOARDID.MSG and the TODOOR.EXT
  379.    file.  The TODOOR.EXT file would contain the line...
  380.  
  381.    ATTACH ATTACHME.ZIP 3
  382.  
  383.    ...within it. NOTE! that it is upto the mail door whether or not
  384.    it will allow files to be attached to messages.  This is governed
  385.    by the mail door inserting the line CONTROLTYPE=ALLOWATTACH in
  386.    the DOOR.ID file.
  387.  
  388. ──────────────────────────────────────────────────────────────────────────────
  389.  
  390. Identifier: FILE <filename> [description]
  391.  
  392.    This is a method of uploading files in your mail packet.  These
  393.    are general public files, and should be processed for credit on
  394.    the bulletin board.
  395.  
  396.    For example, if you included a file called GOODGAME.ZIP in your
  397.    BOARDID.REP file for credit on the BBS, the mail reader should
  398.    insert the line...
  399.  
  400.    FILE GOODGAME.ZIP This is a great new game!
  401.  
  402.    ... in the TODOOR.EXT file.  It is upto the mail door whether
  403.    or not it accepts files to be uploaded with the mail packets.
  404.    This can be detected by the CONTROLTYPE=ALLOWFILES line
  405.    being added to the DOOR.ID file in the downloaded packet.
  406.  
  407.    The <reply#> is the number of the message in the reply packet.
  408.    For example, if the third message in the reply packet had the
  409.    file ATTACHME.ZIP attached to it:  The BOARDID.REP file should
  410.    contain the file ATTACHME.ZIP, BOARDID.MSG and the TODOOR.EXT
  411.    file.  The TODOOR.EXT file would contain the line...
  412.  
  413.    ATTACH ATTACHME.ZIP 3
  414.  
  415.    ...within it.
  416.  
  417. ──────────────────────────────────────────────────────────────────────────────
  418.  
  419. Identifier: REQUEST <filename>
  420. Identifier: REQUEST <conference#> <message#>
  421.  
  422.    These are file requests, either for files on the board, or files that
  423.    are attached to messages.
  424.  
  425.    "REQUEST bob.zip", would request the file BOB.ZIP from the BBS's file
  426.    collection, whereas "REQUEST 12 333", would request the files attached
  427.    to message #333 in conference #12.  It is upto the door to provide
  428.    security as to what can be requested.
  429.  
  430. ──────────────────────────────────────────────────────────────────────────────
  431.  
  432. Identifier: KEYWORD [-]<data>
  433. Identifier: FILTER  [-]<data>
  434. Identifier: TWIT    [-]<data>
  435.  
  436.    These identifiers are for changes made to the keywords, filters
  437.    and twit listings. It is used only to process CHANGES therefore
  438.    if the setting "KEYWORD bob" was given, it does not mean it is
  439.    the only keyword in the list, rather added to the list of keywords.
  440.    To remove an entry, precede it with a minus sign (-), so an example
  441.    to remove a keyword "bob" from the list of keywords would be
  442.    "KEYWORD -bob"
  443.  
  444. ══════════════════════════════════════════════════════════════════════════════
  445.  
  446.  Additional CONTROLTYPE= settings (DOOR.ID file)
  447.  ───────────────────────────────────────────────
  448.  
  449.     CONTROLTYPE=MAXKEYWORDS <#>  -> max keywords the door can handle
  450.     CONTROLTYPE=MAXFILTERS <#>   -> max filters the door can handle
  451.     CONTROLTYPE=MAXTWITS <#>     -> max twits the door can handle
  452.     CONTROLTYPE=ALLOWATTACH      -> if the door allows file attachments
  453.     CONTROLTYPE=ALLOWFILES       -> if the door allows files to be uploaded
  454.     CONTROLTYPE=ALLOWREQUESTS    -> if the door allows files to be requested
  455.     CONTROLTYPE=MAXREQUESTS      -> max number of daily file requests
  456.  
  457. ══════════════════════════════════════════════════════════════════════════════
  458.  
  459.  
  460.  History
  461.  ───────
  462.  
  463.  Rev 1.01, 12/04/94 : Added information on netmail and internet mail
  464.  Rev 1.00, 10/12/94 : Released official standard
  465.  
  466.  
  467.                             - End Documentation -
  468.