MySQLMud/data/
MySQLMud/doc/
MySQLMud/log/
MySQLMud/players/
MySQLMud/www/images/
socketmud/data/
socketmud/doc/
socketmud/log/
socketmud/players/
/*
 * web.c
 *
 * Functions for formating strings for pretty html output.
 * These would not be possible without webarea.c webwho.c and
 * webspells.c by Nebi of Clandestine MUD. I have long since lost
 * the information for Nebi, and hes dropped off the face of the mud
 * world. I thank you Nebi, for all your hard work.
 *
 * These functions dont quite work yet...
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include "mud.h"
#include "mysql.h"

/*
 * html_colour()
 *
 * Converts colour char into html font color string
 */
int html_colour( char type, char *string )
{
    char    code[ 25 ];
    char    *p = '\0';

    switch( type )
    {
    default:
    case '\0':
        code[0] = '\0';
        break;
    case ' ':
        sprintf( code, " " );
        break;
    case 'n':
        sprintf( code, "<font color=""#006400"">" );
        break;
    case 'b':
        sprintf( code, "<font color=""#00008B"">" );
        break;
    case 'c':
        sprintf( code, "<font color=""#008B8B"">" );
        break;
    case 'g':
        sprintf( code, "<font color=""#006400"">" );
        break;
    case 'p':
        sprintf( code, "<font color=""#8B008B"">" );
        break;
    case 'r':
        sprintf( code, "<font color=""#8B0000"">" );
        break;
    case 'w':
        sprintf( code, "<font color=""#808080"">" );
        break;
    case 'y':
        sprintf( code, "<font color=""#808000"">" );
        break;
    case 'B':
        sprintf( code, "<font color=""#0000FF"">" );
        break;
    case 'C':
        sprintf( code, "<font color=""#OOFFFF"">" );
        break;
    case 'G':
        sprintf( code, "<font color=""#00FF00"">" );
        break;
    case 'P':
        sprintf( code, "<font color=""#FF00FF"">" );
        break;
    case 'R':
        sprintf( code, "<font color=""#FF0000"">" );
        break;
    case 'W':
        sprintf( code, "<font color=""#FFFFFF"">" );
        break;
    case 'Y':
        sprintf( code, "<font color=""#FFFF00"">" );
        break;
    case 'D':
        sprintf( code, "<font color=""#636363"">" );
        break;
    case '{':
        sprintf( code, "{" );
        break;
    }

    p = code;
    while( *p != '\0' )
    {
    *string = *p++;
    *++string = '\0';
    }

    return( strlen( code ) );
}

/*
 * html_colourconv()
 *
 * Converts txt into htmlized
 */
void html_colourconv( char *buffer, const char *txt)
{
    const   char    *point;
    int skip = 0;
    
    for( point = txt ; *point ; point++ )
    {
        if( *point == '{' )
        {
            point++;
            if( *point == '\0' )
                point--;
            else
                skip = html_colour( *point, buffer );
            while( skip-- > 0 )
                ++buffer;
            continue;
        }
        *buffer = *point;
        *++buffer = '\0';
    }
    *buffer = '\0';
    return;
}

/*
 * html_newlineconv()
 *
 * Converts newlines into <br>s
 */
void html_newlineconv( char *buffer, char const *txt )
{
    const char *i;
    for( i = txt; *i; *i++)
    {
        if( *i == '^' )
        {
            *buffer   = '<';
            *++buffer = 'b';
            *++buffer = 'r';
            *++buffer = '>';
            *++buffer = '\0';
        }
        *buffer = *i;
        *++buffer = '\0';
    }
    *buffer = '\0';
    return;
}

/*
 * cmd_fix_online_helps()
 *
 * This command goes through all helps in the database, and fixes the
 * webtxt entry properly to make it look all purty in the browser.
 */
void cmd_fix_online_helps(D_MOBILE * ch, char * arg)
{
    char query[MAX_BUFFER];     /* Cycle query  */
    char buf[MAX_BUFFER];
    char buf1[MAX_BUFFER];
    char buf2[MAX_BUFFER];
    MYSQL_RES *result;
    int id = 0;
    int count = 0;

    for (count = 0; count <= 10; count++)
    {
        snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help WHERE `id` = %d", count);
        mysql_safe_query(query);
        result = mysql_store_result(&mysqlconn);
    
        while ((row = mysql_fetch_row(result)))
        {
            /* ok, stick old text into buffer */
            snprintf(buf, sizeof(buf) + 1, "%s", row[3]);
            htmlize_str(buf, FALSE);
            convert_color_codes(buf);
            html_newlineconv(buf1, buf);
            html_colourconv(buf2, buf1);
            id = atoi(row[0]);
            
            /* Update resulting entry */
        }
        mysql_free_result(result);
    
        snprintf(query, sizeof(query) + 1, "UPDATE `vand_help` SET `webtxt` = '%s' WHERE CONVERT( `id` USING utf8 ) = '%d' LIMIT 1 ;",
            buf2, id);
        mysql_safe_query(query);
    }


    ptc(ch, "Done.\n");
    return;
}