/*
* 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 ) );
}
void html_colourconv( char *buffer, const char *txt)
{
const char *point;
int skip = 0;
for( point = txt ; *point ; point++ )
{
if( *point == '\n' )
{
point++;
if( *point == '\0' )
point--;
else
skip = html_colour( *point, buffer );
while( skip-- > 0 )
++buffer;
continue;
}
if( (*point == '<') )
{
*buffer = '[';
*++buffer = '\0';
continue;
}
if( (*point == '>'))
{
*buffer = ']';
*++buffer = '\0';
continue;
}
*buffer = *point;
*++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 buf2[MAX_BUFFER];
MYSQL_RES *result;
int id = 0;
snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help WHERE `id` = 1");
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]);
convert_pound(buf);
html_colourconv(buf2, buf);
smash_quote(buf2);
smash_quote2(buf2);
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;
}