Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
| 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) |