
/* HL2Voyager.rexx Version 1.0 by Scott Tribbey */
/* 5/16/96 */

/* Usage: rx HL2Voyager <MosaicHotlistFile> <VoyagerHotlistFile> */


/* A Simple AREXX program to convert WWW Hotlist entries from Amosaic and */
/* possibly other browser programs to Voyager hotlist entries */



/* TRACE('results') */



IF ARG() = 1 THEN
  DO
    PARSE ARG AMFilename VGFilename .

    Call ConvertAMHL()

    EXIT

  END
ELSE
  SAY "Usage: HL2Voyager <AMosaicHotlistFileName> <VoyagerHotlistFileName>"
EXIT

END


/* ====== Converts Amosaic Hotlist entries to Voyager HL entries ======== */

ConvertAMHL:


NewFilename = VGFilename || ".new"

LineNumber = 0
GroupCount = 0

Call OPEN( FILE1 , AMFilename, 'R' )
Call OPEN( FILE2 , NewFilename, 'W' )

Call OPEN( FILE3 , VGFilename, 'R' )

/* First locate the insertion point in  */

SAY "================================================================="
SAY ""

SAY "Copying Current Voyager Hotlist..."

SAY ""

VGLine = READLN( FILE3 )

DO UNTIL ( POS( '</UL><BR>', VGLine) > 0 )
    /* Copy lines from Voyager HL to new HL until reaching </UL><BR> */
    SAY VGLine
    WRITELN( FILE2 , VGLine )
    VGLine = READLN( FILE3 )
END


Line = READLN( FILE1 )


SAY "================================================================="
SAY ""

SAY "Starting Translation..."

SAY ""


DO UNTIL Line == ""

    /* If it's an address, then convert it */

    WWWFound = POS( 'http', Line )
    FTPFound = POS( 'ftp', Line )
    NewsFound = POS( 'news', Line )
    MailFound = POS( 'mailto', Line )

    IF ( WWWFound || FTPFound || NewsFound || MailFound ) > 0 THEN DO
        LineNumber = LineNumber + 1
        FirstSpace = POS( ' ', Line ) - 1
        Address = SUBSTR( Line, 1, FirstSpace )
        /* Read the next line as that will be the name of the location */
        Name = READLN( FILE1 )
        IF NewsFound > 0 THEN DO
            FirstComma = POS( "Articles" ,  Name ) - 4
            IF FirstComma > 0 THEN DO
               Name = SUBSTR( Name , 1, FirstComma )
            END
        END
        NewLine = '<LI><A HREF="' || Address || '">' || Name || '</A>'
        WRITELN( FILE2 , NewLine )
        SAY NewLine
    END

    /* If it's a new group then create the new group */

    NewGroup = POS( '@GROUP', Line )

    IF NewGroup > 0 THEN DO
        GroupCount = GroupCount + 1
        GroupName = SUBSTR( Line, 8 )
        NewLine = '<LI>' || GroupName || '<UL>'
        WRITELN( FILE2 , NewLine )
        SAY NewLine
    END

    /* If it's a group end then create a group end */

    EndGroup = POS( '@ENDGROUP', Line )

    IF EndGroup > 0 THEN DO
        WRITELN( FILE2 , '</UL>' )
        SAY '</UL>'
    END


    Line = READLN( FILE1 )

END


/* Now copy the last few lines of the Voyager hotlist and we're done */


DO UNTIL VGLine == ""
    /* Copy lines from Voyager HL to new HL until reaching end of file */
    WRITELN( FILE2 , VGLine )
    VGLine = READLN( FILE3 )
    SAY VGLine
END




SAY ""

SAY "            ************  Finished Translation ***********   "

SAY ""

SAY "Converted " || LineNumber || " hotlist entries to Voyager format."
SAY "Created" GroupCount "new Voyager hotlist groups."

SAY "================================================================="

Call CLOSE( FILE1 )
Call CLOSE( FILE2 )
Call CLOSE( FILE3 )


RETURN 0