Mercurial > pidgin.yaz
annotate console/plugins/gnthistory.c @ 15136:31603a03cc02
[gaim-migrate @ 17921]
Etan had changed the account notify stuff so that the prpl decides
if the person is a buddy or not; I totally wiped that out with my
authorization stuff. This brings it back.
Additionally, I added a googletalk flag to JabberStream which
can determine at runtime if you're connected to Google Talk.
All of the Google Talk extensions can be detected individually
with disco, but this might be used for working with perfectly
standard XMPP that's implemented in what might be considered a
quirky way in Google Talk. For instance, Google Talk automatically
adds buddies to your roster when you authorize them to add you.
I was going to use this flag so that the Jabber prpl would
never ask me to add a Google Talk buddy who's just been
automatically added anyway.
I decided to keep it, though, since I may still want to
specify what group he's in.
This opens the door for more Google Talk customization though >:)
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Fri, 08 Dec 2006 02:51:47 +0000 |
parents | c7651586e27b |
children |
rev | line source |
---|---|
14223
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
1 /** |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
2 * @file gnthistory.c Show log from previous conversation |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
3 * |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
4 * Copyright (C) 2006 Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
5 * |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
6 * This program is free software; you can redistribute it and/or modify |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
7 * it under the terms of the GNU General Public License as published by |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
8 * the Free Software Foundation; either version 2 of the License, or |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
9 * (at your option) any later version. |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
10 * |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
11 * This program is distributed in the hope that it will be useful, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
14 * GNU General Public License for more details. |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
15 * |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
16 * You should have received a copy of the GNU General Public License |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
17 * along with this program; if not, write to the Free Software |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
19 */ |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
20 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
21 /* Ripped from gtk/plugins/history.c */ |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
22 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
23 #include "internal.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
24 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
25 #include "conversation.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
26 #include "debug.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
27 #include "log.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
28 #include "notify.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
29 #include "prefs.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
30 #include "signals.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
31 #include "util.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
32 #include "version.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
33 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
34 #include "gntplugin.h" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
35 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
36 #define HISTORY_PLUGIN_ID "gnt-history" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
37 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
38 #define HISTORY_SIZE (4 * 1024) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
39 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
40 static void historize(GaimConversation *c) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
41 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
42 GaimAccount *account = gaim_conversation_get_account(c); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
43 const char *name = gaim_conversation_get_name(c); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
44 GaimConversationType convtype; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
45 GList *logs = NULL; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
46 const char *alias = name; |
14787
584da235633e
[gaim-migrate @ 17551]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14783
diff
changeset
|
47 GaimLogReadFlags flags; |
14223
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
48 char *history; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
49 char *header; |
14234
04bdbbefbd1d
[gaim-migrate @ 16916]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14223
diff
changeset
|
50 GaimMessageFlags mflag; |
14223
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
51 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
52 convtype = gaim_conversation_get_type(c); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
53 if (convtype == GAIM_CONV_TYPE_IM) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
54 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
55 GSList *buddies; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
56 GSList *cur; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
57 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
58 /* If we're not logging, don't show anything. |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
59 * Otherwise, we might show a very old log. */ |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
60 if (!gaim_prefs_get_bool("/core/logging/log_ims")) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
61 return; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
62 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
63 /* Find buddies for this conversation. */ |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
64 buddies = gaim_find_buddies(account, name); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
65 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
66 /* If we found at least one buddy, save the first buddy's alias. */ |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
67 if (buddies != NULL) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
68 alias = gaim_buddy_get_contact_alias((GaimBuddy *)buddies->data); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
69 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
70 for (cur = buddies; cur != NULL; cur = cur->next) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
71 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
72 GaimBlistNode *node = cur->data; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
73 if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL))) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
74 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
75 GaimBlistNode *node2; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
76 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
77 alias = gaim_buddy_get_contact_alias((GaimBuddy *)node); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
78 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
79 /* We've found a buddy that matches this conversation. It's part of a |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
80 * GaimContact with more than one GaimBuddy. Loop through the GaimBuddies |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
81 * in the contact and get all the logs. */ |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
82 for (node2 = node->parent->child ; node2 != NULL ; node2 = node2->next) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
83 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
84 logs = g_list_concat( |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
85 gaim_log_get_logs(GAIM_LOG_IM, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
86 gaim_buddy_get_name((GaimBuddy *)node2), |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
87 gaim_buddy_get_account((GaimBuddy *)node2)), |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
88 logs); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
89 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
90 break; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
91 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
92 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
93 g_slist_free(buddies); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
94 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
95 if (logs == NULL) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
96 logs = gaim_log_get_logs(GAIM_LOG_IM, name, account); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
97 else |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
98 logs = g_list_sort(logs, gaim_log_compare); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
99 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
100 else if (convtype == GAIM_CONV_TYPE_CHAT) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
101 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
102 /* If we're not logging, don't show anything. |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
103 * Otherwise, we might show a very old log. */ |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
104 if (!gaim_prefs_get_bool("/core/logging/log_chats")) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
105 return; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
106 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
107 logs = gaim_log_get_logs(GAIM_LOG_CHAT, name, account); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
108 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
109 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
110 if (logs == NULL) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
111 return; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
112 |
14234
04bdbbefbd1d
[gaim-migrate @ 16916]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14223
diff
changeset
|
113 mflag = GAIM_MESSAGE_NO_LOG | GAIM_MESSAGE_SYSTEM | GAIM_MESSAGE_DELAYED; |
14223
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
114 history = gaim_log_read((GaimLog*)logs->data, &flags); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
115 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
116 header = g_strdup_printf(_("<b>Conversation with %s on %s:</b><br>"), alias, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
117 gaim_date_format_full(localtime(&((GaimLog *)logs->data)->time))); |
14234
04bdbbefbd1d
[gaim-migrate @ 16916]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14223
diff
changeset
|
118 gaim_conversation_write(c, "", header, mflag, time(NULL)); |
14223
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
119 g_free(header); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
120 |
14787
584da235633e
[gaim-migrate @ 17551]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14783
diff
changeset
|
121 if (flags & GAIM_LOG_READ_NO_NEWLINE) |
584da235633e
[gaim-migrate @ 17551]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14783
diff
changeset
|
122 gaim_str_strip_char(history, '\n'); |
14234
04bdbbefbd1d
[gaim-migrate @ 16916]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14223
diff
changeset
|
123 gaim_conversation_write(c, "", history, mflag, time(NULL)); |
14223
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
124 g_free(history); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
125 |
14234
04bdbbefbd1d
[gaim-migrate @ 16916]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
14223
diff
changeset
|
126 gaim_conversation_write(c, "", "<hr>", mflag, time(NULL)); |
14223
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
127 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
128 g_list_foreach(logs, (GFunc)gaim_log_free, NULL); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
129 g_list_free(logs); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
130 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
131 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
132 static void |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
133 history_prefs_check(GaimPlugin *plugin) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
134 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
135 if (!gaim_prefs_get_bool("/core/logging/log_ims") && |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
136 !gaim_prefs_get_bool("/core/logging/log_chats")) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
137 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
138 gaim_notify_warning(plugin, NULL, _("History Plugin Requires Logging"), |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
139 _("Logging can be enabled from Tools -> Preferences -> Logging.\n\n" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
140 "Enabling logs for instant messages and/or chats will activate " |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
141 "history for the same conversation type(s).")); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
142 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
143 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
144 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
145 static void history_prefs_cb(const char *name, GaimPrefType type, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
146 gconstpointer val, gpointer data) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
147 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
148 history_prefs_check((GaimPlugin *)data); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
149 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
150 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
151 static gboolean |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
152 plugin_load(GaimPlugin *plugin) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
153 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
154 gaim_signal_connect(gaim_conversations_get_handle(), |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
155 "conversation-created", |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
156 plugin, GAIM_CALLBACK(historize), NULL); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
157 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
158 gaim_prefs_connect_callback(plugin, "/core/logging/log_ims", |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
159 history_prefs_cb, plugin); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
160 gaim_prefs_connect_callback(plugin, "/core/logging/log_chats", |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
161 history_prefs_cb, plugin); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
162 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
163 history_prefs_check(plugin); |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
164 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
165 return TRUE; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
166 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
167 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
168 static GaimPluginInfo info = |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
169 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
170 GAIM_PLUGIN_MAGIC, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
171 GAIM_MAJOR_VERSION, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
172 GAIM_MINOR_VERSION, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
173 GAIM_PLUGIN_STANDARD, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
174 NULL, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
175 0, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
176 NULL, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
177 GAIM_PRIORITY_DEFAULT, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
178 HISTORY_PLUGIN_ID, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
179 N_("GntHistory"), |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
180 VERSION, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
181 N_("Shows recently logged conversations in new conversations."), |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
182 N_("When a new conversation is opened this plugin will insert " |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
183 "the last conversation into the current conversation."), |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
184 "Sean Egan <seanegan@gmail.com>\n" |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
185 "Sadrul H Chowdhury <sadrul@users.sourceforge.net>", |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
186 GAIM_WEBSITE, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
187 plugin_load, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
188 NULL, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
189 NULL, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
190 NULL, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
191 NULL, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
192 NULL, |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
193 NULL |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
194 }; |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
195 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
196 static void |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
197 init_plugin(GaimPlugin *plugin) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
198 { |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
199 } |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
200 |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
201 GAIM_INIT_PLUGIN(gnthistory, init_plugin, info) |
7c560c01b8f9
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
202 |