plugins/timestamp.c

Wed, 11 Dec 2002 02:09:43 +0000

author
Matthew Smith <matthew@smigs.co.uk>
date
Wed, 11 Dec 2002 02:09:43 +0000
changeset 4059
a0819a8aeadc
parent 3727
568444e48cb6
child 4113
e86a6c65c2b7
permissions
-rw-r--r--

[gaim-migrate @ 4269]
spelling and such:

" <Smigs> what's the 'proper' terminology? 'Buddies List'
or 'Buddy List'? It's inconsistant, though I'm seeing
more of 'Buddy List' than 'Buddies List' (I'm willing
to go through and correct them :P)
<LSchiere> i'd say "Buddy List"
<Paco-Paco> buddy list

The "Buddies List" -> "Buddy List" corrections are
mostly in gg.c (plus all the .po's). Other typos have
been corrected that I saw as I went through:
"buddylist" -> "buddy list" (I also corrected the .po's
in another instance of this that had already been fixed
in the actual file)
"sucessfully" -> "successfully"
"communicating to" -> "communicating with"
"Pleae tryagain" -> "Please try again"
"this users profile" -> "this user's profile"
"passord" -> "password"

All adds up to a pretty big patch.. hopefully it's all
correct :)"
--Matthew Smith (smigs)

committer: Luke Schierer <lschiere@pidgin.im>

/* iChat-like timestamps by Sean Egan.
 * <INSERT GPL HERE> */

#define GAIM_PLUGINS
#include <time.h>
#include "gaim.h"
#include "gtkimhtml.h"

#define TIMESTAMP_DELAY (5 * 60 * 1000)

GModule *handle;
GSList *timestamp_timeouts;

gboolean do_timestamp (struct conversation *c)
{
	char *buf;
	char mdate[6];
	time_t tim = time(NULL);
	
	if (!g_list_find(conversations, c))
		return FALSE;

	strftime(mdate, sizeof(mdate), "%H:%M", localtime(&tim));
	buf = g_strdup_printf("            %s", mdate);
	write_to_conv(c, buf, WFLAG_NOLOG, NULL, tim, -1);
	g_free(buf);
	return TRUE;
}

void timestamp_new_convo(char *name)
{
	struct conversation *c = find_conversation(name);
	do_timestamp(c);
	
	timestamp_timeouts = g_slist_append(timestamp_timeouts,
			GINT_TO_POINTER(gtk_timeout_add(TIMESTAMP_DELAY,
				(GtkFunction)do_timestamp, c)));

}
char *gaim_plugin_init(GModule *h) {
	GList *cnvs = conversations;
	struct conversation *c;
	handle = h;

	while (cnvs) {
		c = cnvs->data;
		timestamp_new_convo(c->name);
		cnvs = cnvs->next;
	}
	gaim_signal_connect(handle, event_new_conversation, timestamp_new_convo, NULL);

	return NULL;
}

void gaim_plugin_remove() {
	GSList *to;
	to = timestamp_timeouts;
	while (to) {
		gtk_timeout_remove(GPOINTER_TO_INT(to->data));
		to = to->next;
	}
	g_slist_free(timestamp_timeouts);
}

struct gaim_plugin_description desc; 
struct gaim_plugin_description *gaim_plugin_desc() {
	desc.api_version = PLUGIN_API_VERSION;
	desc.name = g_strdup("Timestamp");
	desc.version = g_strdup(VERSION);
	desc.description = g_strdup("Adds iChat-style timestamps to conversations every 5 minutes.");
	desc.authors = g_strdup("Sean Egan &lt;bj91704@binghamton.edu>");
	desc.url = g_strdup(WEBSITE);
	return &desc;
}

mercurial