Mercurial > pidgin
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; |