1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Show log if session started today

This commit is contained in:
James Booth 2012-10-14 16:45:39 +01:00
parent 460b244048
commit 3129500528

View File

@ -33,7 +33,7 @@
#include "ui.h"
static GHashTable *logs;
static GDateTime *started;
static GDateTime *session_started;
struct dated_chat_log {
gchar *filename;
@ -50,7 +50,7 @@ static char * _get_log_filename(char *other, const char * const login,
void
chat_log_init(void)
{
started = g_date_time_new_now_local();
session_started = g_date_time_new_now_local();
log_info("Initialising chat logs");
logs = g_hash_table_new_full(g_str_hash, (GEqualFunc) _key_equals, g_free,
(GDestroyNotify)_free_chat_log);
@ -98,6 +98,11 @@ chat_log_get_previous(const gchar * const login, gchar *recipient,
GSList *history)
{
GDateTime *now = g_date_time_new_now_local();
gint session_started_day = g_date_time_get_day_of_year(session_started);
gint day_now = g_date_time_get_day_of_year(now);
// session started today
if (day_now == session_started_day) {
char *filename = _get_log_filename(recipient, login, now);
FILE *logp = fopen(filename, "r");
@ -121,13 +126,19 @@ chat_log_get_previous(const gchar * const login, gchar *recipient,
g_date_time_unref(now);
return history;
// session started before today
} else {
return NULL;
}
}
void
chat_log_close(void)
{
g_hash_table_remove_all(logs);
g_date_time_unref(started);
g_date_time_unref(session_started);
}
static struct dated_chat_log *