comparison src/log.c @ 7564:54b370f7d9bf

[gaim-migrate @ 8180] /me-ify logs, and maybe fix the random directories problem. maybe. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Wed, 19 Nov 2003 05:34:50 +0000
parents 219903d29401
children 3ae88e96dde2
comparison
equal deleted inserted replaced
7563:cb9c3b6d6de9 7564:54b370f7d9bf
356 g_free(guy); 356 g_free(guy);
357 357
358 char *filename = g_build_filename(dir, date, NULL); 358 char *filename = g_build_filename(dir, date, NULL);
359 g_free(dir); 359 g_free(dir);
360 360
361 file = fopen(dir, "r");
362 if(!file)
363 mkdir(dir, S_IRUSR | S_IWUSR | S_IXUSR);
364 else
365 fclose(file);
366
367 log->logger_data = fopen(filename, "a"); 361 log->logger_data = fopen(filename, "a");
368 if (!log->logger_data) { 362 if (!log->logger_data) {
369 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename); 363 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename);
364 g_free(filename);
370 return; 365 return;
371 } 366 }
367 g_free(filename);
372 fprintf(log->logger_data, "<?xml version='1.0' encoding='UTF-8' ?>\n" 368 fprintf(log->logger_data, "<?xml version='1.0' encoding='UTF-8' ?>\n"
373 "<?xml-stylesheet href='file:///usr/src/web/htdocs/log-stylesheet.xsl' type='text/xml' ?>\n"); 369 "<?xml-stylesheet href='file:///usr/src/web/htdocs/log-stylesheet.xsl' type='text/xml' ?>\n");
374 370
375 strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", localtime(&log->time)); 371 strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", localtime(&log->time));
376 fprintf(log->logger_data, "<conversation time='%s' screenname='%s' protocol='%s'>\n", 372 fprintf(log->logger_data, "<conversation time='%s' screenname='%s' protocol='%s'>\n",
435 char *chat; 431 char *chat;
436 const char *prpl = GAIM_PLUGIN_PROTOCOL_INFO 432 const char *prpl = GAIM_PLUGIN_PROTOCOL_INFO
437 (gaim_find_prpl(gaim_account_get_protocol(log->account)))->list_icon(log->account, NULL); 433 (gaim_find_prpl(gaim_account_get_protocol(log->account)))->list_icon(log->account, NULL);
438 char *dir; 434 char *dir;
439 char *filename; 435 char *filename;
440 FILE *file;
441 436
442 if (log->type == GAIM_LOG_CHAT) { 437 if (log->type == GAIM_LOG_CHAT) {
443 chat = g_strdup_printf("%s.chat", guy); 438 chat = g_strdup_printf("%s.chat", guy);
444 g_free(guy); 439 g_free(guy);
445 guy = chat; 440 guy = chat;
464 g_free(guy); 459 g_free(guy);
465 460
466 filename = g_build_filename(dir, date, NULL); 461 filename = g_build_filename(dir, date, NULL);
467 g_free(dir); 462 g_free(dir);
468 463
469 file = fopen(dir, "r");
470 if(!file)
471 mkdir(dir, S_IRUSR | S_IWUSR | S_IXUSR);
472 else
473 fclose(file);
474
475 log->logger_data = fopen(filename, "a"); 464 log->logger_data = fopen(filename, "a");
476 if (!log->logger_data) { 465 if (!log->logger_data) {
477 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename); 466 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename);
467 g_free(filename);
478 return; 468 return;
479 } 469 }
480 g_free(filename); 470 g_free(filename);
481 strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", localtime(&log->time)); 471 strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", localtime(&log->time));
482 fprintf(log->logger_data, "<html><head><title>"); 472 fprintf(log->logger_data, "<html><head><title>");
496 else if (type & GAIM_MESSAGE_AUTO_RESP) { 486 else if (type & GAIM_MESSAGE_AUTO_RESP) {
497 if (type & GAIM_MESSAGE_SEND) 487 if (type & GAIM_MESSAGE_SEND)
498 fprintf(log->logger_data, _("<font color=\"#16569E\">(%s) <b>%s <AUTO-REPLY>:</b></font> %s<br/>\n"), date, from, message); 488 fprintf(log->logger_data, _("<font color=\"#16569E\">(%s) <b>%s <AUTO-REPLY>:</b></font> %s<br/>\n"), date, from, message);
499 else if (type & GAIM_MESSAGE_RECV) 489 else if (type & GAIM_MESSAGE_RECV)
500 fprintf(log->logger_data, _("<font color=\"#A82F2F\">(%s) <b>%s <AUTO-REPLY>:</b></font> %s<br/>\n"), date, from, message); 490 fprintf(log->logger_data, _("<font color=\"#A82F2F\">(%s) <b>%s <AUTO-REPLY>:</b></font> %s<br/>\n"), date, from, message);
501 } else if (type & GAIM_MESSAGE_RECV) 491 } else if (type & GAIM_MESSAGE_RECV) {
502 fprintf(log->logger_data, "<font color=\"#A82F2F\">(%s) <b>%s:</b></font> <font sml=\"%s\">%s</font><br/>\n", 492 char *msg = g_strdup(message);
503 date, from, gc->prpl->info->name, message); 493 if(gaim_message_meify(msg, -1))
504 else if (type & GAIM_MESSAGE_SEND) 494 fprintf(log->logger_data, "<font color=\"#6C2585\">(%s) <b>***%s</b></font> <font sml=\"%s\">%s</font><br/>\n",
505 fprintf(log->logger_data, "<font color=\"#16569E\">(%s) <b>%s:</b></font> <font sml=\"%s\">%s</font><br/>\n", 495 date, from, gc->prpl->info->name, msg);
506 date, from, gc->prpl->info->name, message); 496 else
497 fprintf(log->logger_data, "<font color=\"#A82F2F\">(%s) <b>%s:</b></font> <font sml=\"%s\">%s</font><br/>\n",
498 date, from, gc->prpl->info->name, msg);
499 g_free(msg);
500 } else if (type & GAIM_MESSAGE_SEND) {
501 char *msg = g_strdup(message);
502 if(gaim_message_meify(msg, -1))
503 fprintf(log->logger_data, "<font color=\"#6C2585\">(%s) <b>***%s</b></font> <font sml=\"%s\">%s</font><br/>\n",
504 date, from, gc->prpl->info->name, msg);
505 else
506 fprintf(log->logger_data, "<font color=\"#16569E\">(%s) <b>%s:</b></font> <font sml=\"%s\">%s</font><br/>\n",
507 date, from, gc->prpl->info->name, msg);
508 g_free(msg);
509 }
507 fflush(log->logger_data); 510 fflush(log->logger_data);
508 } 511 }
509 512
510 static void html_logger_finalize(GaimLog *log) 513 static void html_logger_finalize(GaimLog *log)
511 { 514 {
571 char *guy = g_strdup(gaim_normalize(log->account, gaim_account_get_username(log->account))); 574 char *guy = g_strdup(gaim_normalize(log->account, gaim_account_get_username(log->account)));
572 char *chat; 575 char *chat;
573 const char *prpl = GAIM_PLUGIN_PROTOCOL_INFO 576 const char *prpl = GAIM_PLUGIN_PROTOCOL_INFO
574 (gaim_find_prpl(gaim_account_get_protocol(log->account)))->list_icon(log->account, NULL); 577 (gaim_find_prpl(gaim_account_get_protocol(log->account)))->list_icon(log->account, NULL);
575 char *dir; 578 char *dir;
576 FILE *file;
577 579
578 if (log->type == GAIM_LOG_CHAT) { 580 if (log->type == GAIM_LOG_CHAT) {
579 chat = g_strdup_printf("%s.chat", guy); 581 chat = g_strdup_printf("%s.chat", guy);
580 g_free(guy); 582 g_free(guy);
581 guy = chat; 583 guy = chat;
599 g_free(guy); 601 g_free(guy);
600 602
601 filename = g_build_filename(dir, date, NULL); 603 filename = g_build_filename(dir, date, NULL);
602 g_free(dir); 604 g_free(dir);
603 605
604 file = fopen(dir, "r");
605 if(!file)
606 mkdir(dir, S_IRUSR | S_IWUSR | S_IXUSR);
607 else
608 fclose(file);
609
610 log->logger_data = fopen(filename, "a"); 606 log->logger_data = fopen(filename, "a");
611 if (!log->logger_data) { 607 if (!log->logger_data) {
612 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename); 608 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename);
609 g_free(filename);
613 return; 610 return;
614 } 611 }
615 g_free(filename); 612 g_free(filename);
616 strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", localtime(&log->time)); 613 strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", localtime(&log->time));
617 fprintf(log->logger_data, "Conversation with %s at %s on %s (%s)\n", 614 fprintf(log->logger_data, "Conversation with %s at %s on %s (%s)\n",
620 617
621 strftime(date, sizeof(date), "%H:%M:%S", localtime(&time)); 618 strftime(date, sizeof(date), "%H:%M:%S", localtime(&time));
622 stripped = gaim_markup_strip_html(message); 619 stripped = gaim_markup_strip_html(message);
623 if (type & GAIM_MESSAGE_SEND || 620 if (type & GAIM_MESSAGE_SEND ||
624 type & GAIM_MESSAGE_RECV) { 621 type & GAIM_MESSAGE_RECV) {
625 if (type & GAIM_MESSAGE_AUTO_RESP) 622 if (type & GAIM_MESSAGE_AUTO_RESP) {
626 fprintf(log->logger_data, _("(%s) %s <AUTO-REPLY>: %s\n"), date, from, stripped); 623 fprintf(log->logger_data, _("(%s) %s <AUTO-REPLY>: %s\n"), date, from, stripped);
627 else 624 } else {
628 fprintf(log->logger_data, "(%s) %s: %s\n", date, from, stripped); 625 if(gaim_message_meify(stripped, -1))
629 } else if (type & GAIM_MESSAGE_SYSTEM) 626 fprintf(log->logger_data, "(%s) ***%s %s\n", date, from,
627 stripped);
628 else
629 fprintf(log->logger_data, "(%s) %s: %s\n", date, from,
630 stripped);
631 }
632 } else if (type & GAIM_MESSAGE_SYSTEM)
630 fprintf(log->logger_data, "(%s) %s\n", date, stripped); 633 fprintf(log->logger_data, "(%s) %s\n", date, stripped);
631 else if (type & GAIM_MESSAGE_NO_LOG) { 634 else if (type & GAIM_MESSAGE_NO_LOG) {
632 /* This shouldn't happen */ 635 /* This shouldn't happen */
633 g_free(stripped); 636 g_free(stripped);
634 return; 637 return;