NAME
    `WWW::Promotion' - WWW::Promotion is a Perl module that allow to submit
    your site to lot of search engines.

DESCRIPTION
    WWW::Promotion is used to submit your site to lot of search engines. It
    is possible to download SPT5 interface for WWW::Promotion at
    http://www.tapor.com/promotion/. Also on http://www.tapor.com/promotion/
    your may find huge database of search engines. WWW::Promotion is world
    wide standart for promoting websites.

IMPORTED FUNCTIONS/VARS

  @internal_promotion_categories

     Description:
 
     Array of internal categories, which can you use to promote your website. 
     If you will use other category WWW::Promotion will return an error.

  %out=&WWW_Promotion(\%Promotion,\%Setup);

     Description:
 
     This function used to promote your website.

     Usage:

     #---------------------------------------------------------------------
     # Required fields. If this fields not passed, module will not continue.
     #---------------------------------------------------------------------
     $Promotion{'title'}       = "Super Page";
     $Promotion{'url'}         = "http://www.url.com";
     $Promotion{'description'} = "Blah-Blah this page is";
 
     # In this feild you may use only internal categories of WWW::Promotion.
     # See &GetInternalPromotionCategories() procedure.
     $Promotion{'category'}    = "Other";

     #---------------------------------------------------------------------
     # Not required fields. If this fields not passed, defaults will be used.
     #---------------------------------------------------------------------
     # Default: $Promotion{'description'} with words separated by ", "
     $Promotion{'keywords'}    = "Blah-Blah, this, page, is";

     # Default: $Promotion{'description'} 
     $Promotion{'comments'}    = "Blah-Blah this page is";

     # Default "Mr."
     $Promotion{'nametitle'}   = "Mr.";

     # Default: "John"
     $Promotion{'firstname'}   = "John";

     # Default: "Doe"
     $Promotion{'lastname'}    = "Doe";

     # Default: "W."
     $Promotion{'middlename'}  = "W.";

     # Default: "$Promotion{'firstname'} $Promotion{'lastname'}"
     $Promotion{'contactname'} = "John Doe";

     # Default: Random generated email address with domain "@mail.com"
     $Promotion{'email'}       = "blah-blah\@mail.com";

     # Default: "123 Baltimor Street 5"
     $Promotion{'address'}     = "123 Baltimor Street 5";

     # Default: "Boston"
     $Promotion{'city'}        = "Boston";

     # Default: "MA"
     $Promotion{'state'}       = "MA";

     # Default: "United States of America"
     $Promotion{'country'}     = "United States of America";

     # Default: "US"
     $Promotion{'countrycode'} = "US";

     # Default: "46723"
     $Promotion{'zip'}         = "46723";

     # Default: "At Home"
     $Promotion{'company'}     = "At Home";

     # Default: Random generated phone.
     $Promotion{'phone'}       = "1-234-567-8911";

     # Default: Random generated fax.
     $Promotion{'fax'}         = "1-234-567-8911";

     # Default: Random generated string with six chars.
     $Promotion{'password'}    = "password";

     # Default: "English"
     $Promotion{'language'}    = "English";

     # WWW::Promotion will use this file to print what it doing.
     # Default: "/dev/null"
     $Setup{'logfile'} = "/dev/null";

     # Whitch proxy server module must use to connect to servers.
     # If not spicified that SP5 will connect direct.
     $Setup{'proxy'}  = "blah-blah.com:8080";

     # FASTMODE PROMOTION [tm]
     # Does WWW::Promotion use fastmode ?
     # 1  - yes
     # 0  - no
     # p.s: FASTMODE PROMOTION [tm] may be done only via proxy server.
     #      If executed without $Setup{'proxy'} module will exit with error.
     # Default: 0
     $Setup{'fastmode'} = 1;

     # Timeout to connect to server.
     # Default: 10
     $Setup{'timeoutconnect'} = 10;

     # Timeout to wait answer from server.
     # Default: 60
     $Setup{'timeoutrequest'} = 60;

     # You may provide three directories that contains search engines.
     # See "Search engine database" part of this document for more info about.
     $Setup{'enginesdir1'} = "./ENGINES1";
     $Setup{'enginesdir2'} = "./ENGINES2";
     $Setup{'enginesdir3'} = "./ENGINES3";

     # Output handler. 
     # See "Output handler" part of this document for more info about.
     $Setup{'outputhandler'}  = \&OutputHandler;

     # Final action
     # Execute Promotion
     %out=WWW_Promotion(\%Promotion,\%Setup);
 
     Output:

     $out{'error'}
     TRUE if error, then $out{'errortxt'} contains error description. 

Search Engine Database (SEDB)
     SEDB contains an information about search engines. WWW::Promotion 
     will use this information to submit your URL.

     SEDB it is a directory which contains files. Each file contains
     an information about one search engine. Files has various names
     and may reside in different subdirectories inside SEDB. This files 
     has the following format:

     POST http://www.rex-search.com/add/add.cgi HTTP/1.0
     Content: thispage=3&catnum=&url=<***URL***>&navigate=&yourname=<***CONTACTNAME***>&email=<***EMAIL***>&name=<***TITLE***>&keys=<***KEYWORDS***>&desc=<***DESCRIPTION***>&confirm=&urlfail=&refer=http%3A%2F%2Fwww.rex-search.com%2Fadd%2F&cat=<***CATEGORY***>&catkeep=Submit+this+Site

     Or

     GET http://www.ditto.com/urlrequest/AddResponse.asp?txtUserName=<***CONTACTNAME***>&txtURL=<***URL***>&txtEmail=<***EMAIL***>&submit1=Submit&xfrm=True&cs=AddRemoveURL&ac=AddRemoveURL&Action=Add HTTP/1.0

     The first line describes which method to use for submit. Also it
     contains the address where to post data. "HTTP/1.0" in this line 
     unessential, WWW::Promotion will ignore it. This line is required, 
     without it the module will log a bad file and process the next file. 
     For method POST it is required second line (Content:), which contains 
     search engine cantent data. In method GET content is placed in the 
     first line through "?". In a case if the address contains a relative 
     address it is required third line (Host:), which describes  which 
     address of server to use for connect.

     Also the file may contain unessential lines:

     Referer: http://www.ditto.com/urlrequest/addurl.asp
     Inform the module to use this referer. Advanced technology, the 
     engines "think" you are submitting from their form. 

     Host: www.ditto.com
     Inform the module which server to use for connect. It is required 
     only when the first line contains a relative address on a server 
     (for example " GET / HTTP/1.0 ").

     Country: United States
     Country of the search engine. WWW::Promotion uses this info for 
     OutputHandler.

     SEname: Magellan
     Name of the search engine. WWW::Promotion uses this info for 
     OutputHandler.

     SEurl: http://www.url.com
     URL of the search engine. WWW::Promotion uses this info for  
     OutputHandler.

     Server: Netscape-Enterprise/2.01
     The software which is used in the search engine.
     WWW::Promotion uses this info for OutputHandler.

     Category: SEcat-Internet <***> Internet
     Category: SEcat-Business <***> Business
     Categories determined in the search engine. These lines may 
     be more than one. Format:

     Category: (a category of the search engine)<***>(an internal category of the module).
 
     The module will search for conformity of an internal category 
     with a category of a search engine. If you for example have 
     defined an internal category "Other", the module will search for 
     line "Category: SEcat <***> Other" and will use the category 
     "SEcat" for submit. In a case if it does not find the 
     appropriate category it will use first of determined.
     (Category:) it is required only when a content contains a key 
     <***CATEGORY***>. See below.

     The content contains keys which in process of submiting of your 
     URL will be replaced with the data, which you have entered. 
     The following keys can be used in the content:

     <***TITLE***>              -> Ttile of the page (Ex: Super Page)
     <***URL***>                -> URL of the page (Ex: http://www.url.com)
     <***URL-WITHOUT-HTTP***>   -> URL without http:// (Ex: www.url.com)
     <***DESCRIPTION***>        -> Description (Ex: Blah-Blah this page is)
     <***KEYWORDS***>           -> Keywords (Ex: test, test2, test3) 
     <***ONERANDOMKEYWORD***>   -> One random keyword. Keywords are 
                                   separeted by points. (Ex: test2)
 
     <***CONTACTNAME***>        -> Contact name (Ex: John Doe)
     <***NAMETITLE***>          -> Nametitle (Ex: Mr.)
     <***FIRSTNAME***>          -> Your first name (Ex: John)
     <***MIDDLENAME***>         -> Your middle name (Ex: W.)
     <***LASTNAME***>           -> Your last name (Ex: Doe)
     <***EMAIL***>              -> E-MAIL address (Ex: blah@blah.com)
   
     <***ADDRESS***>            -> Street address (Ex: 464 Ave Street Gold)
     <***CITY***>               -> City (Ex: Boston)
     <***STATE***>              -> State (Ex: MA)
     <***COUNTRY***>            -> Country (Ex: "United States of America")
     <***COUNTRYCODE***>        -> Country code (Ex: US)
     <***ZIP***>                -> ZIP code (Ex: 68738)
 
     <***COMPANY***>            -> Company name (Ex: IBM, Inc)
     <***PHONE***>              -> Phone (Ex: 1-234-233-2132) 
     <***FAX***>                -> Fax (Ex: 1-234-233-2132) 
 
     <***RANDOM:50-60:***>      -> Random number between 50 and 60.
     <***PASSWORD***>           -> Password (Ex: aaazzz)

     <***CATEGORY***>           -> Internal category (Ex: Other)
     <***COMMENTS***>           -> Comments (Ex: This page is)
     <***LANGUAGE***>           -> Language (Ex: English)

     If you want to create your own file which describe a search engine 
     use your liked text editor or PERL script NEWSE.cgi delivered with 
     SPT5 (http://www.tapor.com/promotion/).
 
&OutputHandler() Procedure
     It's procedure which will be called by the module for a conclusion 
     of the data about submit process. Procedure OutputHandler has the 
     following format:

     sub OutputHandler {
        local (%data) = _;
     }

     Hash %data will contains data from WWW::Promotion module. The module 
     sends 3 types of the data:

     1. $data{'action'} eq "sendheader"

     WWW:: Promotion tell to you to send header of HTML page to the client 
     browser. It's sent once by the module.

     2 $data{'action'} eq "sedata"

     WWW::Promotion tell you to send the information on the search engine, 
     which was processed.

     3 $data{'action'} eq "sendfooter"

     WWW::Promotion tell you to send footer of HTML page to the client 
     browser. It is sent once by the module.

     When $data{'action'} it is equal "sedata" the hash %data contains 
     also other keys:

     $data{'SEname'}
     The name of the search engine. Defined if a file of search engine 
     contains a line (SEname:).

     $data{'SEurl'}
     The URL of the search engine. Defined if a file of search engine 
     contains a line (SEurl:).

     $data{'se'}
     Contains filename of file in a SE database. It is always defined.

     $data {'Country'}
     The country of the search engine. Defined if a file of search engine 
     contains a line (Country:).

     $data{'error'}
     TRUE if there was an error at submit process, $data {'errortxt'} 
     contains the text of the error.

     $data {'Server'}
     The software which is used in the search engine.
     Defined if a file of search engine contains a line (Server:).

FASTMODE [tm]
     FASTMODE[tm] is method to submit your URL. In the FASTMODE submission is 
     blazing fast. When $Setup{'fastmode'} flag is passed to WWW_Promotion
     procedure WWW::Promotion looks for $Setup{'proxy'} and if $Setup{'proxy'}
     not defined it returns error.
 
     Why FASTMODE is fast ?
 
     Because WWW::Promotion will not wait answer from server. 
     It will continue to the next search engine without waiting answer
     from previous one. This is may be done only via proxy server.

COPYRIGHT
    Copyright (c) 1999-2001 TAPOR, Inc. All rights reserved. This program is
    free software; you can redistribute it and/or modify it under the same
    terms as Perl itself.

    http://www.tapor.com/promotion/

