finch/plugins/gnthistory.c

Fri, 27 Jun 2008 01:29:59 +0000

author
Justin Rodriguez <ffdragon@soc.pidgin.im>
date
Fri, 27 Jun 2008 01:29:59 +0000
branch
soc.2008.themes
changeset 23649
5da5fe967d10
parent 22334
6eec04817c0d
child 24900
a19d983918c2
child 27333
49e77c0167d2
permissions
-rw-r--r--

Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
else is backwards compatiable, sound plays but the theme is not always found

14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1 /**
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2 * @file gnthistory.c Show log from previous conversation
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3 *
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2006 Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
5 *
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
9 * (at your option) any later version.
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
10 *
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
14 * GNU General Public License for more details.
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
15 *
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16748
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
19 */
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
20
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
21 /* Ripped from gtk/plugins/history.c */
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
22
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
23 #include "internal.h"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
24
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
25 #include "conversation.h"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
26 #include "debug.h"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
27 #include "log.h"
21577
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
28 #include "request.h"
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29 #include "prefs.h"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
30 #include "signals.h"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
31 #include "util.h"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
32 #include "version.h"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
33
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
34 #include "gntplugin.h"
21577
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
35 #include "gntrequest.h"
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
36
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
37 #define HISTORY_PLUGIN_ID "gnt-history"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
38
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
39 #define HISTORY_SIZE (4 * 1024)
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
40
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
41 static void historize(PurpleConversation *c)
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
42 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
43 PurpleAccount *account = purple_conversation_get_account(c);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
44 const char *name = purple_conversation_get_name(c);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
45 PurpleConversationType convtype;
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
46 GList *logs = NULL;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
47 const char *alias = name;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
48 PurpleLogReadFlags flags;
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
49 char *history;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
50 char *header;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
51 PurpleMessageFlags mflag;
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
52
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
53 convtype = purple_conversation_get_type(c);
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
54 if (convtype == PURPLE_CONV_TYPE_IM) {
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
55 GSList *buddies;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
56 GSList *cur;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
57
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
58 /* If we're not logging, don't show anything.
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
59 * Otherwise, we might show a very old log. */
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 15906
diff changeset
60 if (!purple_prefs_get_bool("/purple/logging/log_ims"))
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
61 return;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
62
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
63 /* Find buddies for this conversation. */
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
64 buddies = purple_find_buddies(account, name);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
65
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
66 /* If we found at least one buddy, save the first buddy's alias. */
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
67 if (buddies != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
68 alias = purple_buddy_get_contact_alias((PurpleBuddy *)buddies->data);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
69
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
70 for (cur = buddies; cur != NULL; cur = cur->next) {
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
71 PurpleBlistNode *node = cur->data;
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
72 if ((node != NULL) &&
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
73 ((purple_blist_node_get_sibling_prev(node) != NULL) ||
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
74 (purple_blist_node_get_sibling_next(node) != NULL))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
75 PurpleBlistNode *node2;
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
76
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
77 alias = purple_buddy_get_contact_alias((PurpleBuddy *)node);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
78
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
79 /* We've found a buddy that matches this conversation. It's part of a
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
80 * PurpleContact with more than one PurpleBuddy. Loop through the PurpleBuddies
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
81 * in the contact and get all the logs. */
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
82 for (node2 = purple_blist_node_get_first_child(purple_blist_node_get_parent(node));
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
83 node2 != NULL ; node2 = purple_blist_node_get_sibling_next(node2)) {
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
84 logs = g_list_concat(
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
85 purple_log_get_logs(PURPLE_LOG_IM,
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
86 purple_buddy_get_name((PurpleBuddy *)node2),
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
87 purple_buddy_get_account((PurpleBuddy *)node2)),
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
88 logs);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
89 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
90 break;
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
91 }
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
92 }
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
93 g_slist_free(buddies);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
94
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
95 if (logs == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
96 logs = purple_log_get_logs(PURPLE_LOG_IM, name, account);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
97 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
98 logs = g_list_sort(logs, purple_log_compare);
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
99 } else if (convtype == PURPLE_CONV_TYPE_CHAT) {
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
100 /* If we're not logging, don't show anything.
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
101 * Otherwise, we might show a very old log. */
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 15906
diff changeset
102 if (!purple_prefs_get_bool("/purple/logging/log_chats"))
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
103 return;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
104
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
105 logs = purple_log_get_logs(PURPLE_LOG_CHAT, name, account);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
106 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
107
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
108 if (logs == NULL)
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
109 return;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
110
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
111 mflag = PURPLE_MESSAGE_NO_LOG | PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_DELAYED;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
112 history = purple_log_read((PurpleLog*)logs->data, &flags);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
113
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
114 header = g_strdup_printf(_("<b>Conversation with %s on %s:</b><br>"), alias,
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21630
diff changeset
115 purple_date_format_full(localtime(&((PurpleLog *)logs->data)->time)));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
116 purple_conversation_write(c, "", header, mflag, time(NULL));
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
117 g_free(header);
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
118
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
119 if (flags & PURPLE_LOG_READ_NO_NEWLINE)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
120 purple_str_strip_char(history, '\n');
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
121 purple_conversation_write(c, "", history, mflag, time(NULL));
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
122 g_free(history);
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
123
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
124 purple_conversation_write(c, "", "<hr>", mflag, time(NULL));
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
125
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
126 g_list_foreach(logs, (GFunc)purple_log_free, NULL);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
127 g_list_free(logs);
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
128 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
129
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
130 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
131 history_prefs_check(PurplePlugin *plugin)
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
132 {
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 15906
diff changeset
133 if (!purple_prefs_get_bool("/purple/logging/log_ims") &&
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 15906
diff changeset
134 !purple_prefs_get_bool("/purple/logging/log_chats"))
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
135 {
21577
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
136 PurpleRequestFields *fields = purple_request_fields_new();
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
137 PurpleRequestFieldGroup *group;
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
138 PurpleRequestField *field;
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
139 struct {
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
140 const char *pref;
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
141 const char *label;
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
142 } prefs[] = {
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
143 {"/purple/logging/log_ims", N_("Log IMs")},
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
144 {"/purple/logging/log_chats", N_("Log chats")},
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
145 {NULL, NULL}
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
146 };
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
147 int iter;
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
148 GList *list = purple_log_logger_get_options();
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
149 const char *system = purple_prefs_get_string("/purple/logging/format");
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
150
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
151 group = purple_request_field_group_new(_("Logging"));
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
152
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
153 field = purple_request_field_list_new("/purple/logging/format", _("Log format"));
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
154 while (list) {
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
155 const char *label = _(list->data);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
156 list = g_list_delete_link(list, list);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
157 purple_request_field_list_add(field, label, list->data);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
158 if (system && strcmp(system, list->data) == 0)
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
159 purple_request_field_list_add_selected(field, label);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
160 list = g_list_delete_link(list, list);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
161 }
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
162 purple_request_field_group_add_field(group, field);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
163
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
164 for (iter = 0; prefs[iter].pref; iter++) {
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
165 field = purple_request_field_bool_new(prefs[iter].pref, _(prefs[iter].label),
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
166 purple_prefs_get_bool(prefs[iter].pref));
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
167 purple_request_field_group_add_field(group, field);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
168 }
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
169
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
170 purple_request_fields_add_group(fields, group);
bb3567e8bb75 Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20288
diff changeset
171
21630
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
172 purple_request_fields(plugin, NULL, _("History Plugin Requires Logging"),
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
173 _("Logging can be enabled from Tools -> Preferences -> Logging.\n\n"
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
174 "Enabling logs for instant messages and/or chats will activate "
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
175 "history for the same conversation type(s)."),
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
176 fields,
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
177 _("OK"), G_CALLBACK(finch_request_save_in_prefs),
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
178 _("Cancel"), NULL,
591a79c1b295 This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents: 21577
diff changeset
179 NULL, NULL, NULL, plugin);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
180 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
181 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
182
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
183 static void history_prefs_cb(const char *name, PurplePrefType type,
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
184 gconstpointer val, gpointer data)
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
185 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
186 history_prefs_check((PurplePlugin *)data);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
187 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
188
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
189 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
190 plugin_load(PurplePlugin *plugin)
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
191 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
192 purple_signal_connect(purple_conversations_get_handle(),
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
193 "conversation-created",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
194 plugin, PURPLE_CALLBACK(historize), NULL);
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
195
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 15906
diff changeset
196 purple_prefs_connect_callback(plugin, "/purple/logging/log_ims",
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
197 history_prefs_cb, plugin);
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 15906
diff changeset
198 purple_prefs_connect_callback(plugin, "/purple/logging/log_chats",
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
199 history_prefs_cb, plugin);
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
200
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
201 history_prefs_check(plugin);
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
202
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
203 return TRUE;
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
204 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
205
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
206 static PurplePluginInfo info =
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
207 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
208 PURPLE_PLUGIN_MAGIC,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
209 PURPLE_MAJOR_VERSION,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
210 PURPLE_MINOR_VERSION,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
211 PURPLE_PLUGIN_STANDARD,
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
212 NULL,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
213 0,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
214 NULL,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
215 PURPLE_PRIORITY_DEFAULT,
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
216 HISTORY_PLUGIN_ID,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
217 N_("GntHistory"),
20288
5ca925a094e2 applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
218 DISPLAY_VERSION,
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
219 N_("Shows recently logged conversations in new conversations."),
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
220 N_("When a new conversation is opened this plugin will insert "
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
221 "the last conversation into the current conversation."),
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
222 "Sean Egan <seanegan@gmail.com>\n"
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
223 "Sadrul H Chowdhury <sadrul@users.sourceforge.net>",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
224 PURPLE_WEBSITE,
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
225 plugin_load,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
226 NULL,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
227 NULL,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
228 NULL,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
229 NULL,
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
230 NULL,
16748
f8e1573bfde0 And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents: 16478
diff changeset
231 NULL,
f8e1573bfde0 And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents: 16478
diff changeset
232
f8e1573bfde0 And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents: 16478
diff changeset
233 /* padding */
f8e1573bfde0 And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents: 16478
diff changeset
234 NULL,
f8e1573bfde0 And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents: 16478
diff changeset
235 NULL,
f8e1573bfde0 And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents: 16478
diff changeset
236 NULL,
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
237 NULL
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
238 };
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
239
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
240 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
241 init_plugin(PurplePlugin *plugin)
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
242 {
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
243 }
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
244
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
245 PURPLE_INIT_PLUGIN(gnthistory, init_plugin, info)
14285
f8331daf743d [gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
246

mercurial