Sun, 22 Nov 2009 21:13:20 +0000
Documented chat API. References #10605
| 15230 | 1 | /* |
| 2 | * Autoaccept - Auto-accept file transfers from selected users | |
| 3 | * Copyright (C) 2006 | |
| 4 | * | |
| 5 | * This program is free software; you can redistribute it and/or | |
| 6 | * modify it under the terms of the GNU General Public License as | |
| 7 | * published by the Free Software Foundation; either version 2 of the | |
| 8 | * License, or (at your option) any later version. | |
| 9 | * | |
| 10 | * This program is distributed in the hope that it will be useful, but | |
| 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 13 | * General Public License for more details. | |
| 14 | * | |
| 15 | * You should have received a copy of the GNU General Public License | |
| 16 | * 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:
19733
diff
changeset
|
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
|
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19733
diff
changeset
|
18 | * 02111-1301, USA. |
| 15230 | 19 | */ |
| 20 | #include "internal.h" | |
| 21 | ||
| 22 | #define PLUGIN_ID "core-plugin_pack-autoaccept" | |
|
15418
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
23 | #define PLUGIN_NAME N_("Autoaccept") |
|
25633
feee0c7e503f
Fix some more mis-identified plugins, like 3b3526a0...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24531
diff
changeset
|
24 | #define PLUGIN_STATIC_NAME Autoaccept |
|
15418
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
25 | #define PLUGIN_SUMMARY N_("Auto-accept file transfer requests from selected users.") |
|
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
26 | #define PLUGIN_DESCRIPTION N_("Auto-accept file transfer requests from selected users.") |
| 15230 | 27 | #define PLUGIN_AUTHOR "Sadrul H Chowdhury <sadrul@users.sourceforge.net>" |
| 28 | ||
| 29 | /* System headers */ | |
| 30 | #include <glib.h> | |
| 31 | #if GLIB_CHECK_VERSION(2,6,0) | |
| 32 | # include <glib/gstdio.h> | |
| 33 | #else | |
| 34 | # include <sys/types.h> | |
| 35 | # include <sys/stat.h> | |
| 36 | # define g_mkdir mkdir | |
| 37 | #endif | |
| 38 | ||
| 15884 | 39 | /* Purple headers */ |
| 15230 | 40 | #include <plugin.h> |
| 41 | #include <version.h> | |
| 42 | ||
| 43 | #include <blist.h> | |
| 44 | #include <conversation.h> | |
| 45 | #include <ft.h> | |
| 46 | #include <request.h> | |
| 47 | #include <notify.h> | |
| 48 | #include <util.h> | |
| 49 | ||
| 16481 | 50 | #define PREF_PREFIX "/plugins/core/" PLUGIN_ID |
| 15230 | 51 | #define PREF_PATH PREF_PREFIX "/path" |
| 52 | #define PREF_STRANGER PREF_PREFIX "/reject_stranger" | |
| 53 | #define PREF_NOTIFY PREF_PREFIX "/notify" | |
|
23849
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
54 | #define PREF_NEWDIR PREF_PREFIX "/newdir" |
| 15230 | 55 | |
| 56 | typedef enum | |
| 57 | { | |
| 58 | FT_ASK, | |
| 59 | FT_ACCEPT, | |
| 60 | FT_REJECT | |
| 61 | } AutoAcceptSetting; | |
| 62 | ||
| 63 | static gboolean | |
| 64 | ensure_path_exists(const char *dir) | |
| 65 | { | |
| 66 | if (!g_file_test(dir, G_FILE_TEST_IS_DIR)) | |
| 67 | { | |
| 15884 | 68 | if (purple_build_dir(dir, S_IRUSR | S_IWUSR | S_IXUSR)) |
| 15230 | 69 | return FALSE; |
| 70 | } | |
| 71 | ||
| 72 | return TRUE; | |
| 73 | } | |
| 74 | ||
| 75 | static void | |
| 15884 | 76 | auto_accept_complete_cb(PurpleXfer *xfer, PurpleXfer *my) |
| 15230 | 77 | { |
| 15884 | 78 | if (xfer == my && purple_prefs_get_bool(PREF_NOTIFY) && |
| 79 | !purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, xfer->who, xfer->account)) | |
| 15230 | 80 | { |
| 81 | char *message = g_strdup_printf(_("Autoaccepted file transfer of \"%s\" from \"%s\" completed."), | |
| 82 | xfer->filename, xfer->who); | |
| 15884 | 83 | purple_notify_info(NULL, _("Autoaccept complete"), message, NULL); |
| 15230 | 84 | g_free(message); |
| 85 | } | |
| 86 | } | |
| 87 | ||
| 88 | static void | |
| 15884 | 89 | file_recv_request_cb(PurpleXfer *xfer, gpointer handle) |
| 15230 | 90 | { |
| 15884 | 91 | PurpleAccount *account; |
| 92 | PurpleBlistNode *node; | |
| 15230 | 93 | const char *pref; |
| 94 | char *filename; | |
| 95 | char *dirname; | |
| 96 | ||
| 97 | account = xfer->account; | |
|
24974
a81952e9babb
Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents:
24531
diff
changeset
|
98 | node = PURPLE_BLIST_NODE(purple_find_buddy(account, xfer->who)); |
| 15230 | 99 | |
| 100 | if (!node) | |
| 101 | { | |
| 15884 | 102 | if (purple_prefs_get_bool(PREF_STRANGER)) |
| 103 | xfer->status = PURPLE_XFER_STATUS_CANCEL_LOCAL; | |
| 15230 | 104 | return; |
| 105 | } | |
| 106 | ||
|
24531
76e72697f7d6
Hide the blistnode, buddy, contact, group, and chat structs
Gary Kramlich <grim@reaperworld.com>
parents:
24266
diff
changeset
|
107 | node = purple_blist_node_get_parent(node); |
| 15884 | 108 | g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node)); |
| 15230 | 109 | |
| 15884 | 110 | pref = purple_prefs_get_string(PREF_PATH); |
| 111 | switch (purple_blist_node_get_int(node, "autoaccept")) | |
| 15230 | 112 | { |
| 113 | case FT_ASK: | |
| 114 | break; | |
| 115 | case FT_ACCEPT: | |
| 116 | if (ensure_path_exists(pref)) | |
| 117 | { | |
|
21897
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
118 | int count = 1; |
|
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
119 | const char *escape; |
|
24266
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
120 | gchar **name_and_ext; |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
121 | const gchar *name; |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
122 | gchar *ext; |
|
23849
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
123 | |
|
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
124 | if (purple_prefs_get_bool(PREF_NEWDIR)) |
|
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
125 | dirname = g_build_filename(pref, purple_normalize(account, xfer->who), NULL); |
|
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
126 | else |
|
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
127 | dirname = g_build_filename(pref, NULL); |
| 15230 | 128 | |
| 129 | if (!ensure_path_exists(dirname)) | |
| 130 | { | |
| 131 | g_free(dirname); | |
| 132 | break; | |
| 133 | } | |
|
21895
26a49c68b5b6
Normalize and escape the filename when auto-accepting a file. References #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
134 | |
|
21897
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
135 | escape = purple_escape_filename(xfer->filename); |
|
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
136 | filename = g_build_filename(dirname, escape, NULL); |
|
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
137 | |
|
24266
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
138 | /* Split at the first dot, to avoid uniquifying "foo.tar.gz" to "foo.tar-2.gz" */ |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
139 | name_and_ext = g_strsplit(escape, ".", 2); |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
140 | name = name_and_ext[0]; |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
141 | g_return_if_fail(name != NULL); |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
142 | if (name_and_ext[1] != NULL) { |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
143 | /* g_strsplit does not include the separator in each chunk. */ |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
144 | ext = g_strdup_printf(".%s", name_and_ext[1]); |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
145 | } else { |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
146 | ext = g_strdup(""); |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
147 | } |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
148 | |
|
21897
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
149 | /* Make sure the file doesn't exist. Do we want some better checking than this? */ |
|
24266
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
150 | /* FIXME: There is a race here: if the newly uniquified file name gets created between |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
151 | * this g_file_test and the transfer starting, the file created in the meantime |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
152 | * will be clobbered. But it's not at all straightforward to fix. |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
153 | */ |
|
21897
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
154 | while (g_file_test(filename, G_FILE_TEST_EXISTS)) { |
|
24266
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
155 | char *file = g_strdup_printf("%s-%d%s", name, count++, ext); |
|
21897
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
156 | g_free(filename); |
|
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
157 | filename = g_build_filename(dirname, file, NULL); |
|
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
158 | g_free(file); |
|
6de6b77176ac
Do not overwrite an existing file. Closes #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21895
diff
changeset
|
159 | } |
| 15230 | 160 | |
| 15884 | 161 | purple_xfer_request_accepted(xfer, filename); |
| 15230 | 162 | |
|
24266
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
163 | g_strfreev(name_and_ext); |
|
d44f9c32397f
Uniquify auto-accepted file names to foo-2.tar.gz, not foo.tar.gz-2.
Will Thompson <resiak@pidgin.im>
parents:
23849
diff
changeset
|
164 | g_free(ext); |
| 15230 | 165 | g_free(dirname); |
| 166 | g_free(filename); | |
| 167 | } | |
|
21895
26a49c68b5b6
Normalize and escape the filename when auto-accepting a file. References #3982.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
168 | |
| 15884 | 169 | purple_signal_connect(purple_xfers_get_handle(), "file-recv-complete", handle, |
| 170 | PURPLE_CALLBACK(auto_accept_complete_cb), xfer); | |
| 15230 | 171 | break; |
| 172 | case FT_REJECT: | |
| 15884 | 173 | xfer->status = PURPLE_XFER_STATUS_CANCEL_LOCAL; |
| 15230 | 174 | break; |
| 175 | } | |
| 176 | } | |
| 177 | ||
| 178 | static void | |
| 15884 | 179 | save_cb(PurpleBlistNode *node, int choice) |
| 15230 | 180 | { |
| 15884 | 181 | if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
|
24531
76e72697f7d6
Hide the blistnode, buddy, contact, group, and chat structs
Gary Kramlich <grim@reaperworld.com>
parents:
24266
diff
changeset
|
182 | node = purple_blist_node_get_parent(node); |
| 15884 | 183 | g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node)); |
| 184 | purple_blist_node_set_int(node, "autoaccept", choice); | |
| 15230 | 185 | } |
| 186 | ||
| 187 | static void | |
| 15884 | 188 | set_auto_accept_settings(PurpleBlistNode *node, gpointer plugin) |
| 15230 | 189 | { |
| 190 | char *message; | |
| 191 | ||
| 15884 | 192 | if (PURPLE_BLIST_NODE_IS_BUDDY(node)) |
|
24531
76e72697f7d6
Hide the blistnode, buddy, contact, group, and chat structs
Gary Kramlich <grim@reaperworld.com>
parents:
24266
diff
changeset
|
193 | node = purple_blist_node_get_parent(node); |
| 15884 | 194 | g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node)); |
| 15230 | 195 | |
| 196 | message = g_strdup_printf(_("When a file-transfer request arrives from %s"), | |
| 15884 | 197 | purple_contact_get_alias((PurpleContact *)node)); |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
198 | purple_request_choice(plugin, _("Set Autoaccept Setting"), message, |
| 15884 | 199 | NULL, purple_blist_node_get_int(node, "autoaccept"), |
| 15230 | 200 | _("_Save"), G_CALLBACK(save_cb), |
|
16490
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16481
diff
changeset
|
201 | _("_Cancel"), NULL, |
|
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16481
diff
changeset
|
202 | NULL, NULL, NULL, |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
203 | node, |
| 15230 | 204 | _("Ask"), FT_ASK, |
| 205 | _("Auto Accept"), FT_ACCEPT, | |
| 206 | _("Auto Reject"), FT_REJECT, | |
|
16490
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16481
diff
changeset
|
207 | NULL, purple_contact_get_alias((PurpleContact *)node), NULL, |
|
19279
5e5883dbd532
Adding hints to libpurple/plugins/autoaccept.c
Gabriel Schulhof <nix@go-nix.ca>
parents:
19278
diff
changeset
|
208 | NULL); |
| 15230 | 209 | g_free(message); |
| 210 | } | |
| 211 | ||
| 212 | static void | |
| 15884 | 213 | context_menu(PurpleBlistNode *node, GList **menu, gpointer plugin) |
| 15230 | 214 | { |
| 15884 | 215 | PurpleMenuAction *action; |
| 15230 | 216 | |
|
18594
b4e1f5a7d2bf
Don't allow setting auto-accept preferences for blist nodes that won't be
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16745
diff
changeset
|
217 | if (!PURPLE_BLIST_NODE_IS_BUDDY(node) && !PURPLE_BLIST_NODE_IS_CONTACT(node) && |
|
b4e1f5a7d2bf
Don't allow setting auto-accept preferences for blist nodes that won't be
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16745
diff
changeset
|
218 | !(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)) |
| 15230 | 219 | return; |
| 220 | ||
| 15884 | 221 | action = purple_menu_action_new(_("Autoaccept File Transfers..."), |
| 222 | PURPLE_CALLBACK(set_auto_accept_settings), plugin, NULL); | |
| 15230 | 223 | (*menu) = g_list_prepend(*menu, action); |
| 224 | } | |
| 225 | ||
| 226 | static gboolean | |
| 15884 | 227 | plugin_load(PurplePlugin *plugin) |
| 15230 | 228 | { |
| 15884 | 229 | purple_signal_connect(purple_xfers_get_handle(), "file-recv-request", plugin, |
| 230 | PURPLE_CALLBACK(file_recv_request_cb), plugin); | |
| 231 | purple_signal_connect(purple_blist_get_handle(), "blist-node-extended-menu", plugin, | |
| 232 | PURPLE_CALLBACK(context_menu), plugin); | |
| 15230 | 233 | return TRUE; |
| 234 | } | |
| 235 | ||
| 236 | static gboolean | |
| 15884 | 237 | plugin_unload(PurplePlugin *plugin) |
| 15230 | 238 | { |
| 239 | return TRUE; | |
| 240 | } | |
| 241 | ||
| 15884 | 242 | static PurplePluginPrefFrame * |
| 243 | get_plugin_pref_frame(PurplePlugin *plugin) | |
| 15230 | 244 | { |
| 15884 | 245 | PurplePluginPrefFrame *frame; |
| 246 | PurplePluginPref *pref; | |
| 15230 | 247 | |
| 15884 | 248 | frame = purple_plugin_pref_frame_new(); |
| 15230 | 249 | |
| 250 | /* XXX: Is there a better way than this? There really should be. */ | |
| 15884 | 251 | pref = purple_plugin_pref_new_with_name_and_label(PREF_PATH, _("Path to save the files in\n" |
| 15230 | 252 | "(Please provide the full path)")); |
| 15884 | 253 | purple_plugin_pref_frame_add(frame, pref); |
| 15230 | 254 | |
| 15884 | 255 | pref = purple_plugin_pref_new_with_name_and_label(PREF_STRANGER, |
| 15230 | 256 | _("Automatically reject from users not in buddy list")); |
| 15884 | 257 | purple_plugin_pref_frame_add(frame, pref); |
| 15230 | 258 | |
| 15884 | 259 | pref = purple_plugin_pref_new_with_name_and_label(PREF_NOTIFY, |
| 15230 | 260 | _("Notify with a popup when an autoaccepted file transfer is complete\n" |
| 261 | "(only when there's no conversation with the sender)")); | |
| 15884 | 262 | purple_plugin_pref_frame_add(frame, pref); |
| 15230 | 263 | |
|
23849
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
264 | pref = purple_plugin_pref_new_with_name_and_label(PREF_NEWDIR, |
|
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
265 | _("Create a new directory for each user")); |
|
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
266 | purple_plugin_pref_frame_add(frame, pref); |
|
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
267 | |
| 15230 | 268 | return frame; |
| 269 | } | |
| 270 | ||
| 15884 | 271 | static PurplePluginUiInfo prefs_info = { |
| 15230 | 272 | get_plugin_pref_frame, |
| 273 | 0, | |
| 274 | NULL, | |
|
16745
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
275 | |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
276 | /* padding */ |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
277 | NULL, |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
278 | NULL, |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
279 | NULL, |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
280 | NULL |
| 15230 | 281 | }; |
| 282 | ||
| 15884 | 283 | static PurplePluginInfo info = { |
| 284 | PURPLE_PLUGIN_MAGIC, /* Magic */ | |
| 285 | PURPLE_MAJOR_VERSION, /* Purple Major Version */ | |
| 286 | PURPLE_MINOR_VERSION, /* Purple Minor Version */ | |
| 287 | PURPLE_PLUGIN_STANDARD, /* plugin type */ | |
|
15418
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
288 | NULL, /* ui requirement */ |
|
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
289 | 0, /* flags */ |
|
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
290 | NULL, /* dependencies */ |
| 15884 | 291 | PURPLE_PRIORITY_DEFAULT, /* priority */ |
| 15230 | 292 | |
|
15418
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
293 | PLUGIN_ID, /* plugin id */ |
|
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
294 | PLUGIN_NAME, /* name */ |
|
20288
5ca925a094e2
applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19859
diff
changeset
|
295 | DISPLAY_VERSION, /* version */ |
|
15418
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
296 | PLUGIN_SUMMARY, /* summary */ |
|
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
297 | PLUGIN_DESCRIPTION, /* description */ |
| 15230 | 298 | PLUGIN_AUTHOR, /* author */ |
| 15884 | 299 | PURPLE_WEBSITE, /* website */ |
| 15230 | 300 | |
| 301 | plugin_load, /* load */ | |
| 302 | plugin_unload, /* unload */ | |
|
15418
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
303 | NULL, /* destroy */ |
| 15230 | 304 | |
|
15418
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
305 | NULL, /* ui_info */ |
|
bf287f742a5a
[gaim-migrate @ 18149]
Luke Schierer <lschiere@pidgin.im>
parents:
15230
diff
changeset
|
306 | NULL, /* extra_info */ |
| 15230 | 307 | &prefs_info, /* prefs_info */ |
|
16745
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
308 | NULL, /* actions */ |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
309 | |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
310 | /* padding */ |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
311 | NULL, |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
312 | NULL, |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
313 | NULL, |
|
df2c3d6b609a
And the rest of the plugins that are compiling for me by default...
Gary Kramlich <grim@reaperworld.com>
parents:
16490
diff
changeset
|
314 | NULL |
| 15230 | 315 | }; |
| 316 | ||
| 317 | static void | |
| 15884 | 318 | init_plugin(PurplePlugin *plugin) { |
| 15230 | 319 | char *dirname; |
| 320 | ||
| 15884 | 321 | dirname = g_build_filename(purple_user_dir(), "autoaccept", NULL); |
| 322 | purple_prefs_add_none(PREF_PREFIX); | |
| 323 | purple_prefs_add_string(PREF_PATH, dirname); | |
| 324 | purple_prefs_add_bool(PREF_STRANGER, TRUE); | |
| 325 | purple_prefs_add_bool(PREF_NOTIFY, TRUE); | |
|
23849
020974bf1759
Allow not creating a different directory for each user. Closes #5997.
Luke Bratch <l_bratch@yahoo.co.uk>
parents:
21897
diff
changeset
|
326 | purple_prefs_add_bool(PREF_NEWDIR, TRUE); |
| 15230 | 327 | g_free(dirname); |
| 328 | } | |
| 329 | ||
| 15884 | 330 | PURPLE_INIT_PLUGIN(PLUGIN_STATIC_NAME, init_plugin, info) |