libpurple/protocols/null/nullprpl.c

Wed, 07 Aug 2013 19:42:45 +0530

author
Ankit Vani <a@nevitus.org>
date
Wed, 07 Aug 2013 19:42:45 +0530
branch
soc.2013.gobjectification.plugins
changeset 36467
52aa83c47311
parent 36463
b1ce7f2998e4
child 36479
345ec7248f48
permissions
-rw-r--r--

Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
The flags in the "flags" property of PurplePluginInfo:
GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL: Hide plugin from UI plugin lists.
GPLUGIN_PLUGIN_INFO_FLAGS_LOAD_ON_QUERY: Auto-load plugin on query.

17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1 /**
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
2 * purple
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
3 *
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
6 * source distribution.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
7 *
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
8 * Nullprpl is a mock protocol plugin for Pidgin and libpurple. You can create
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
9 * accounts with it, sign on and off, add buddies, and send and receive IMs,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
10 * all without connecting to a server!
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30138
diff changeset
11 *
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
12 * Beyond that basic functionality, nullprpl supports presence and
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
13 * away/available messages, offline messages, user info, typing notification,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
14 * privacy allow/block lists, chat rooms, whispering, room lists, and protocol
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
15 * icons and emblems. Notable missing features are file transfer and account
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
16 * registration and authentication.
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30138
diff changeset
17 *
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
18 * Nullprpl is intended as an example of how to write a libpurple protocol
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
19 * plugin. It doesn't contain networking code or an event loop, but it does
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
20 * demonstrate how to use the libpurple API to do pretty much everything a prpl
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
21 * might need to do.
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30138
diff changeset
22 *
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
23 * Nullprpl is also a useful tool for hacking on Pidgin, Finch, and other
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
24 * libpurple clients. It's a full-featured protocol plugin, but doesn't depend
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
25 * on an external server, so it's a quick and easy way to exercise test new
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
26 * code. It also allows you to work while you're disconnected.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
27 *
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
28 * This program is free software; you can redistribute it and/or modify
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
29 * it under the terms of the GNU General Public License as published by
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
30 * the Free Software Foundation; either version 2 of the License, or
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
31 * (at your option) any later version.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
32 *
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
33 * This program is distributed in the hope that it will be useful,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
34 * but WITHOUT ANY WARRANTY; without even the implied warranty of
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
35 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
36 * GNU General Public License for more details.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
37 *
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
38 * You should have received a copy of the GNU General Public License
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
39 * 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: 19832
diff changeset
40 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
41 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
42
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
43 #include <stdarg.h>
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
44 #include <string.h>
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
45 #include <time.h>
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
46
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
47 #include <glib.h>
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
48
24332
9c7586a57e1b Add a comment documenting the internal.h situation for people using nullprpl
Richard Laager <rlaager@pidgin.im>
parents: 24231
diff changeset
49 /* If you're using this as the basis of a prpl that will be distributed
9c7586a57e1b Add a comment documenting the internal.h situation for people using nullprpl
Richard Laager <rlaager@pidgin.im>
parents: 24231
diff changeset
50 * separately from libpurple, remove the internal.h include below and replace
9c7586a57e1b Add a comment documenting the internal.h situation for people using nullprpl
Richard Laager <rlaager@pidgin.im>
parents: 24231
diff changeset
51 * it with code to include your own config.h or similar. If you're going to
9c7586a57e1b Add a comment documenting the internal.h situation for people using nullprpl
Richard Laager <rlaager@pidgin.im>
parents: 24231
diff changeset
52 * provide for translation, you'll also need to setup the gettext macros. */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
53 #include "internal.h"
24332
9c7586a57e1b Add a comment documenting the internal.h situation for people using nullprpl
Richard Laager <rlaager@pidgin.im>
parents: 24231
diff changeset
54
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
55 #include "account.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
56 #include "accountopt.h"
34706
02cb08146888 Renamed blist.[ch] to buddylist.[ch]
Ankit Vani <a@nevitus.org>
parents: 34699
diff changeset
57 #include "buddylist.h"
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
58 #include "cmds.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
59 #include "conversation.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
60 #include "connection.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
61 #include "debug.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
62 #include "notify.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
63 #include "prpl.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
64 #include "roomlist.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
65 #include "status.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
66 #include "util.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
67 #include "version.h"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
68
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
69
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
70 #define NULLPRPL_ID "prpl-null"
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
71 static PurplePluginProtocolInfo *_null_protocol = NULL;
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
72 static PurpleCmdId _msg_cmd;
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
73
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
74 #define NULL_STATUS_ONLINE "online"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
75 #define NULL_STATUS_AWAY "away"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
76 #define NULL_STATUS_OFFLINE "offline"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
77
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
78 typedef void (*GcFunc)(PurpleConnection *from,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
79 PurpleConnection *to,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
80 gpointer userdata);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
81
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
82 typedef struct {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
83 GcFunc fn;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
84 PurpleConnection *from;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
85 gpointer userdata;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
86 } GcFuncData;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
87
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
88 /*
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
89 * stores offline messages that haven't been delivered yet. maps username
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
90 * (char *) to GList * of GOfflineMessages. initialized in gplugin_plugin_load.
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
91 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
92 GHashTable* goffline_messages = NULL;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
93
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
94 typedef struct {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
95 char *from;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
96 char *message;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
97 time_t mtime;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
98 PurpleMessageFlags flags;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
99 } GOfflineMessage;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
100
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
101 /*
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
102 * helpers
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
103 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
104 static PurpleConnection *get_nullprpl_gc(const char *username) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
105 PurpleAccount *acct = purple_accounts_find(username, NULLPRPL_ID);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
106 if (acct && purple_account_is_connected(acct))
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
107 return purple_account_get_connection(acct);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
108 else
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
109 return NULL;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
110 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
111
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
112 static void call_if_nullprpl(gpointer data, gpointer userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
113 PurpleConnection *gc = (PurpleConnection *)(data);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
114 GcFuncData *gcfdata = (GcFuncData *)userdata;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
115
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
116 if (!strcmp(purple_account_get_protocol_id(purple_connection_get_account(gc)), NULLPRPL_ID))
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
117 gcfdata->fn(gcfdata->from, gc, gcfdata->userdata);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
118 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
119
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
120 static void foreach_nullprpl_gc(GcFunc fn, PurpleConnection *from,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
121 gpointer userdata) {
17452
3d8aed6247d0 Minor changes:
Richard Laager <rlaager@pidgin.im>
parents: 17451
diff changeset
122 GcFuncData gcfdata = { fn, from, userdata };
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
123 g_list_foreach(purple_connections_get_all(), call_if_nullprpl,
17452
3d8aed6247d0 Minor changes:
Richard Laager <rlaager@pidgin.im>
parents: 17451
diff changeset
124 &gcfdata);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
125 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
126
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
127
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
128 typedef void(*ChatFunc)(PurpleChatConversation *from, PurpleChatConversation *to,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
129 int id, const char *room, gpointer userdata);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
130
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
131 typedef struct {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
132 ChatFunc fn;
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
133 PurpleChatConversation *from_chat;
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
134 gpointer userdata;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
135 } ChatFuncData;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
136
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
137 static void call_chat_func(gpointer data, gpointer userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
138 PurpleConnection *to = (PurpleConnection *)data;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
139 ChatFuncData *cfdata = (ChatFuncData *)userdata;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
140
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
141 int id = purple_chat_conversation_get_id(cfdata->from_chat);
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
142 PurpleChatConversation *chat = purple_conversations_find_chat(to, id);
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
143 if (chat)
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
144 cfdata->fn(cfdata->from_chat, chat, id,
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
145 purple_conversation_get_name(PURPLE_CONVERSATION(chat)), cfdata->userdata);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
146 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
147
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
148 static void foreach_gc_in_chat(ChatFunc fn, PurpleConnection *from,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
149 int id, gpointer userdata) {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
150 PurpleChatConversation *chat = purple_conversations_find_chat(from, id);
17452
3d8aed6247d0 Minor changes:
Richard Laager <rlaager@pidgin.im>
parents: 17451
diff changeset
151 ChatFuncData cfdata = { fn,
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
152 chat,
17452
3d8aed6247d0 Minor changes:
Richard Laager <rlaager@pidgin.im>
parents: 17451
diff changeset
153 userdata };
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
154
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
155 g_list_foreach(purple_connections_get_all(), call_chat_func,
17452
3d8aed6247d0 Minor changes:
Richard Laager <rlaager@pidgin.im>
parents: 17451
diff changeset
156 &cfdata);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
157 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
158
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
159
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
160 static void discover_status(PurpleConnection *from, PurpleConnection *to,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
161 gpointer userdata) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
162 const char *from_username = purple_account_get_username(purple_connection_get_account(from));
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
163 const char *to_username = purple_account_get_username(purple_connection_get_account(to));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
164
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
165 if (purple_blist_find_buddy(purple_connection_get_account(from), to_username)) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
166 PurpleStatus *status = purple_account_get_active_status(purple_connection_get_account(to));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
167 const char *status_id = purple_status_get_id(status);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
168 const char *message = purple_status_get_attr_string(status, "message");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
169
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
170 if (!strcmp(status_id, NULL_STATUS_ONLINE) ||
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
171 !strcmp(status_id, NULL_STATUS_AWAY) ||
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
172 !strcmp(status_id, NULL_STATUS_OFFLINE)) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
173 purple_debug_info("nullprpl", "%s sees that %s is %s: %s\n",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
174 from_username, to_username, status_id, message);
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
175 purple_prpl_got_user_status(purple_connection_get_account(from), to_username, status_id,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
176 (message) ? "message" : NULL, message, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
177 } else {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
178 purple_debug_error("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
179 "%s's buddy %s has an unknown status: %s, %s",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
180 from_username, to_username, status_id, message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
181 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
182 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
183 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
184
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
185 static void report_status_change(PurpleConnection *from, PurpleConnection *to,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
186 gpointer userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
187 purple_debug_info("nullprpl", "notifying %s that %s changed status\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
188 purple_account_get_username(purple_connection_get_account(to)), purple_account_get_username(purple_connection_get_account(from)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
189 discover_status(to, from, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
190 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
191
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
192
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30138
diff changeset
193 /*
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
194 * UI callbacks
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
195 */
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
196 static void nullprpl_input_user_info(PurpleProtocolAction *action)
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
197 {
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
198 PurpleConnection *gc = action->connection;
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
199 PurpleAccount *acct = purple_connection_get_account(gc);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
200 purple_debug_info("nullprpl", "showing 'Set User Info' dialog for %s\n",
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
201 purple_account_get_username(acct));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
202
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
203 purple_account_request_change_user_info(acct);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
204 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
205
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
206
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
207 /*
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
208 * prpl functions
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
209 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
210 static const char *nullprpl_list_icon(PurpleAccount *acct, PurpleBuddy *buddy)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
211 {
25002
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
212 return "null";
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
213 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
214
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
215 static char *nullprpl_status_text(PurpleBuddy *buddy) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
216 purple_debug_info("nullprpl", "getting %s's status text for %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
217 purple_buddy_get_name(buddy),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
218 purple_account_get_username(purple_buddy_get_account(buddy)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
219
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
220 if (purple_blist_find_buddy(purple_buddy_get_account(buddy), purple_buddy_get_name(buddy))) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
221 PurplePresence *presence = purple_buddy_get_presence(buddy);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
222 PurpleStatus *status = purple_presence_get_active_status(presence);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
223 const char *name = purple_status_get_name(status);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
224 const char *message = purple_status_get_attr_string(status, "message");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
225
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
226 char *text;
32189
3af8d41121b6 Don't use strlen() when all you're trying to do is check if the string
Mark Doliner <markdoliner@pidgin.im>
parents: 32188
diff changeset
227 if (message && *message)
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
228 text = g_strdup_printf("%s: %s", name, message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
229 else
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
230 text = g_strdup(name);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
231
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
232 purple_debug_info("nullprpl", "%s's status text is %s\n",
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
233 purple_buddy_get_name(buddy), text);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
234 return text;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
235
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
236 } else {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
237 purple_debug_info("nullprpl", "...but %s is not logged in\n", purple_buddy_get_name(buddy));
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
238 return g_strdup("Not logged in");
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
239 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
240 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
241
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
242 static void nullprpl_tooltip_text(PurpleBuddy *buddy,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
243 PurpleNotifyUserInfo *info,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
244 gboolean full) {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
245 PurpleConnection *gc = get_nullprpl_gc(purple_buddy_get_name(buddy));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
246
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
247 if (gc) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
248 /* they're logged in */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
249 PurplePresence *presence = purple_buddy_get_presence(buddy);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
250 PurpleStatus *status = purple_presence_get_active_status(presence);
24865
053ddd0ba317 Small leak fix.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24862
diff changeset
251 char *msg = nullprpl_status_text(buddy);
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31595
diff changeset
252 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31595
diff changeset
253 or if we should be using add_pair_plaintext */
32263
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
254 purple_notify_user_info_add_pair_html(info, purple_status_get_name(status),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
255 msg);
24865
053ddd0ba317 Small leak fix.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24862
diff changeset
256 g_free(msg);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
257
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
258 if (full) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
259 const char *user_info = purple_account_get_user_info(purple_connection_get_account(gc));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
260 if (user_info)
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31595
diff changeset
261 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31595
diff changeset
262 or if we should be using add_pair_plaintext */
32263
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
263 purple_notify_user_info_add_pair_html(info, _("User info"), user_info);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
264 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
265
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
266 } else {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
267 /* they're not logged in */
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31595
diff changeset
268 purple_notify_user_info_add_pair_plaintext(info, _("User info"), _("not logged in"));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
269 }
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
270
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
271 purple_debug_info("nullprpl", "showing %s tooltip for %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
272 (full) ? "full" : "short", purple_buddy_get_name(buddy));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
273 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
274
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
275 static GList *nullprpl_status_types(PurpleAccount *acct)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
276 {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
277 GList *types = NULL;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
278 PurpleStatusType *type;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
279
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
280 purple_debug_info("nullprpl", "returning status types for %s: %s, %s, %s\n",
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
281 purple_account_get_username(acct),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
282 NULL_STATUS_ONLINE, NULL_STATUS_AWAY, NULL_STATUS_OFFLINE);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
283
25890
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
284 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE,
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
285 NULL_STATUS_ONLINE, NULL, TRUE, TRUE, FALSE,
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
286 "message", _("Message"), purple_g_value_new(G_TYPE_STRING),
25890
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
287 NULL);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
288 types = g_list_prepend(types, type);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
289
25890
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
290 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AWAY,
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
291 NULL_STATUS_AWAY, NULL, TRUE, TRUE, FALSE,
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
292 "message", _("Message"), purple_g_value_new(G_TYPE_STRING),
25890
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
293 NULL);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
294 types = g_list_prepend(types, type);
25890
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
295
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
296 type = purple_status_type_new_with_attrs(PURPLE_STATUS_OFFLINE,
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
297 NULL_STATUS_OFFLINE, NULL, TRUE, TRUE, FALSE,
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
298 "message", _("Message"), purple_g_value_new(G_TYPE_STRING),
25890
26bb4211aa76 Deprecate some functions that aren't really needed
Mark Doliner <markdoliner@pidgin.im>
parents: 25119
diff changeset
299 NULL);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
300 types = g_list_prepend(types, type);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
301
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
302 return g_list_reverse(types);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
303 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
304
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34746
diff changeset
305 static void blist_example_menu_item(PurpleBlistNode *node, gpointer userdata) {
22709
6bd336964410 Printf warning fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
306 purple_debug_info("nullprpl", "example menu item clicked on user %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
307 purple_buddy_get_name(PURPLE_BUDDY(node)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
308
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
309 purple_notify_info(NULL, /* plugin handle or PurpleConnection */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
310 _("Primary title"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
311 _("Secondary title"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
312 _("This is the callback for the nullprpl menu item."));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
313 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
314
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34746
diff changeset
315 static GList *nullprpl_blist_node_menu(PurpleBlistNode *node) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
316 purple_debug_info("nullprpl", "providing buddy list context menu item\n");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
317
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34671
diff changeset
318 if (PURPLE_IS_BUDDY(node)) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
319 PurpleMenuAction *action = purple_menu_action_new(
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
320 _("Nullprpl example menu item"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
321 PURPLE_CALLBACK(blist_example_menu_item),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
322 NULL, /* userdata passed to the callback */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
323 NULL); /* child menu items */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
324 return g_list_append(NULL, action);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
325 } else {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
326 return NULL;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
327 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
328 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
329
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
330 static GList *nullprpl_chat_info(PurpleConnection *gc) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
331 struct proto_chat_entry *pce; /* defined in prpl.h */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
332
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
333 purple_debug_info("nullprpl", "returning chat setting 'room'\n");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
334
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
335 pce = g_new0(struct proto_chat_entry, 1);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
336 pce->label = _("Chat _room");
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
337 pce->identifier = "room";
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
338 pce->required = TRUE;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
339
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
340 return g_list_append(NULL, pce);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
341 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
342
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
343 static GHashTable *nullprpl_chat_info_defaults(PurpleConnection *gc,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
344 const char *room) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
345 GHashTable *defaults;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
346
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
347 purple_debug_info("nullprpl", "returning chat default setting "
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
348 "'room' = 'default'\n");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
349
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
350 defaults = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
351 g_hash_table_insert(defaults, "room", g_strdup("default"));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
352 return defaults;
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30138
diff changeset
353 }
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
354
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
355 static void nullprpl_login(PurpleAccount *acct)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
356 {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
357 PurpleConnection *gc = purple_account_get_connection(acct);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
358 GList *offline_messages;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
359
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
360 purple_debug_info("nullprpl", "logging in %s\n", purple_account_get_username(acct));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
361
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
362 purple_connection_update_progress(gc, _("Connecting"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
363 0, /* which connection step this is */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
364 2); /* total number of steps */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
365
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
366 purple_connection_update_progress(gc, _("Connected"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
367 1, /* which connection step this is */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
368 2); /* total number of steps */
34746
dc9c911dbd35 Started GObjectification of PurpleConnection.
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
369 purple_connection_set_state(gc, PURPLE_CONNECTION_CONNECTED);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
370
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
371 /* tell purple about everyone on our buddy list who's connected */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
372 foreach_nullprpl_gc(discover_status, gc, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
373
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
374 /* notify other nullprpl accounts */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
375 foreach_nullprpl_gc(report_status_change, gc, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
376
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
377 /* fetch stored offline messages */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
378 purple_debug_info("nullprpl", "checking for offline messages for %s\n",
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
379 purple_account_get_username(acct));
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
380 offline_messages = g_hash_table_lookup(goffline_messages, purple_account_get_username(acct));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
381 while (offline_messages) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
382 GOfflineMessage *message = (GOfflineMessage *)offline_messages->data;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
383 purple_debug_info("nullprpl", "delivering offline message to %s: %s\n",
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
384 purple_account_get_username(acct), message->message);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
385 serv_got_im(gc, message->from, message->message, message->flags,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
386 message->mtime);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
387 offline_messages = g_list_next(offline_messages);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
388
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
389 g_free(message->from);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
390 g_free(message->message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
391 g_free(message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
392 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
393
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
394 g_list_free(offline_messages);
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
395 g_hash_table_remove(goffline_messages, purple_account_get_username(acct));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
396 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
397
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
398 static void nullprpl_close(PurpleConnection *gc)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
399 {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
400 /* notify other nullprpl accounts */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
401 foreach_nullprpl_gc(report_status_change, gc, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
402 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
403
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
404 static int nullprpl_send_im(PurpleConnection *gc, const char *who,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
405 const char *message, PurpleMessageFlags flags)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
406 {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
407 const char *from_username = purple_account_get_username(purple_connection_get_account(gc));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
408 PurpleMessageFlags receive_flags = ((flags & ~PURPLE_MESSAGE_SEND)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
409 | PURPLE_MESSAGE_RECV);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
410 PurpleAccount *to_acct = purple_accounts_find(who, NULLPRPL_ID);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
411 PurpleConnection *to;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
412
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
413 purple_debug_info("nullprpl", "sending message from %s to %s: %s\n",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
414 from_username, who, message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
415
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
416 /* is the sender blocked by the recipient's privacy settings? */
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
417 if (to_acct &&
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
418 !purple_account_privacy_check(to_acct, purple_account_get_username(purple_connection_get_account(gc)))) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
419 char *msg = g_strdup_printf(
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
420 _("Your message was blocked by %s's privacy settings."), who);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
421 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
422 "discarding; %s is blocked by %s's privacy settings\n",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
423 from_username, who);
34868
faa5b053f310 Replaced purple_conversation_helper_present_error() with simpler purple_conversation_present_error()
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
424 purple_conversation_present_error(who, purple_connection_get_account(gc), msg);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
425 g_free(msg);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
426 return 0;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
427 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
428
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
429 /* is the recipient online? */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
430 to = get_nullprpl_gc(who);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
431 if (to) { /* yes, send */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
432 serv_got_im(to, from_username, message, receive_flags, time(NULL));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
433
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
434 } else { /* nope, store as an offline message */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
435 GOfflineMessage *offline_message;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
436 GList *messages;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
437
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
438 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
439 "%s is offline, sending as offline message\n", who);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
440 offline_message = g_new0(GOfflineMessage, 1);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
441 offline_message->from = g_strdup(from_username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
442 offline_message->message = g_strdup(message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
443 offline_message->mtime = time(NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
444 offline_message->flags = receive_flags;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
445
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
446 messages = g_hash_table_lookup(goffline_messages, who);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
447 messages = g_list_append(messages, offline_message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
448 g_hash_table_insert(goffline_messages, g_strdup(who), messages);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
449 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
450
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
451 return 1;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
452 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
453
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
454 static void nullprpl_set_info(PurpleConnection *gc, const char *info) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
455 purple_debug_info("nullprpl", "setting %s's user info to %s\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
456 purple_account_get_username(purple_connection_get_account(gc)), info);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
457 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
458
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
459 static const char *typing_state_to_string(PurpleIMTypingState typing) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
460 switch (typing) {
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
461 case PURPLE_IM_NOT_TYPING: return "is not typing";
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
462 case PURPLE_IM_TYPING: return "is typing";
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
463 case PURPLE_IM_TYPED: return "stopped typing momentarily";
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
464 default: return "unknown typing state";
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
465 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
466 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
467
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
468 static void notify_typing(PurpleConnection *from, PurpleConnection *to,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
469 gpointer typing) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
470 const char *from_username = purple_account_get_username(purple_connection_get_account(from));
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
471 const char *action = typing_state_to_string((PurpleIMTypingState)typing);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
472 purple_debug_info("nullprpl", "notifying %s that %s %s\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
473 purple_account_get_username(purple_connection_get_account(to)), from_username, action);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
474
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
475 serv_got_typing(to,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
476 from_username,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
477 0, /* if non-zero, a timeout in seconds after which to
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
478 * reset the typing status to PURPLE_IM_NOT_TYPING */
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
479 (PurpleIMTypingState)typing);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
480 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
481
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
482 static unsigned int nullprpl_send_typing(PurpleConnection *gc, const char *name,
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
483 PurpleIMTypingState typing) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
484 purple_debug_info("nullprpl", "%s %s\n", purple_account_get_username(purple_connection_get_account(gc)),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
485 typing_state_to_string(typing));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
486 foreach_nullprpl_gc(notify_typing, gc, (gpointer)typing);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
487 return 0;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
488 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
489
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
490 static void nullprpl_get_info(PurpleConnection *gc, const char *username) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
491 const char *body;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
492 PurpleNotifyUserInfo *info = purple_notify_user_info_new();
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
493 PurpleAccount *acct;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
494
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
495 purple_debug_info("nullprpl", "Fetching %s's user info for %s\n", username,
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
496 purple_account_get_username(purple_connection_get_account(gc)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
497
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
498 if (!get_nullprpl_gc(username)) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
499 char *msg = g_strdup_printf(_("%s is not logged in."), username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
500 purple_notify_error(gc, _("User Info"), _("User info not available. "), msg);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
501 g_free(msg);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
502 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
503
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
504 acct = purple_accounts_find(username, NULLPRPL_ID);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
505 if (acct)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
506 body = purple_account_get_user_info(acct);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
507 else
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
508 body = _("No user info.");
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31595
diff changeset
509 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31595
diff changeset
510 or if we should be using add_pair_plaintext */
32263
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
511 purple_notify_user_info_add_pair_html(info, "Info", body);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
512
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
513 /* show a buddy's user info in a nice dialog box */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
514 purple_notify_userinfo(gc, /* connection the buddy info came through */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
515 username, /* buddy's username */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
516 info, /* body */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
517 NULL, /* callback called when dialog closed */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
518 NULL); /* userdata for callback */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
519 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
520
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
521 static void nullprpl_set_status(PurpleAccount *acct, PurpleStatus *status) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
522 const char *msg = purple_status_get_attr_string(status, "message");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
523 purple_debug_info("nullprpl", "setting %s's status to %s: %s\n",
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
524 purple_account_get_username(acct), purple_status_get_name(status), msg);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
525
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
526 foreach_nullprpl_gc(report_status_change, get_nullprpl_gc(purple_account_get_username(acct)),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
527 NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
528 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
529
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
530 static void nullprpl_set_idle(PurpleConnection *gc, int idletime) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
531 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
532 "purple reports that %s has been idle for %d seconds\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
533 purple_account_get_username(purple_connection_get_account(gc)), idletime);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
534 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
535
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
536 static void nullprpl_change_passwd(PurpleConnection *gc, const char *old_pass,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
537 const char *new_pass) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
538 purple_debug_info("nullprpl", "%s wants to change their password\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
539 purple_account_get_username(purple_connection_get_account(gc)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
540 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
541
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
542 static void nullprpl_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy,
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32263
diff changeset
543 PurpleGroup *group, const char *message)
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
544 {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
545 const char *username = purple_account_get_username(purple_connection_get_account(gc));
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
546 PurpleConnection *buddy_gc = get_nullprpl_gc(purple_buddy_get_name(buddy));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
547
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
548 purple_debug_info("nullprpl", "adding %s to %s's buddy list\n", purple_buddy_get_name(buddy),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
549 username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
550
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
551 if (buddy_gc) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
552 PurpleAccount *buddy_acct = purple_connection_get_account(buddy_gc);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
553
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
554 discover_status(gc, buddy_gc, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
555
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
556 if (purple_blist_find_buddy(buddy_acct, username)) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
557 purple_debug_info("nullprpl", "%s is already on %s's buddy list\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
558 username, purple_buddy_get_name(buddy));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
559 } else {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
560 purple_debug_info("nullprpl", "asking %s if they want to add %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
561 purple_buddy_get_name(buddy), username);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
562 purple_account_request_add(buddy_acct,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
563 username,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
564 NULL, /* local account id (rarely used) */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
565 NULL, /* alias */
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32263
diff changeset
566 message); /* message */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
567 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
568 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
569 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
570
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
571 static void nullprpl_add_buddies(PurpleConnection *gc, GList *buddies,
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32263
diff changeset
572 GList *groups, const char *message) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
573 GList *buddy = buddies;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
574 GList *group = groups;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
575
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
576 purple_debug_info("nullprpl", "adding multiple buddies\n");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
577
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
578 while (buddy && group) {
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32263
diff changeset
579 nullprpl_add_buddy(gc, (PurpleBuddy *)buddy->data, (PurpleGroup *)group->data, message);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
580 buddy = g_list_next(buddy);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
581 group = g_list_next(group);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
582 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
583 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
584
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
585 static void nullprpl_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
586 PurpleGroup *group)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
587 {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
588 purple_debug_info("nullprpl", "removing %s from %s's buddy list\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
589 purple_buddy_get_name(buddy),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
590 purple_account_get_username(purple_connection_get_account(gc)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
591 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
592
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
593 static void nullprpl_remove_buddies(PurpleConnection *gc, GList *buddies,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
594 GList *groups) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
595 GList *buddy = buddies;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
596 GList *group = groups;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
597
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
598 purple_debug_info("nullprpl", "removing multiple buddies\n");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
599
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
600 while (buddy && group) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
601 nullprpl_remove_buddy(gc, (PurpleBuddy *)buddy->data,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
602 (PurpleGroup *)group->data);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
603 buddy = g_list_next(buddy);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
604 group = g_list_next(group);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
605 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
606 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
607
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
608 /*
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
609 * nullprpl uses purple's local whitelist and blacklist, stored in blist.xml, as
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
610 * its authoritative privacy settings, and uses purple's logic (specifically
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
611 * purple_privacy_check(), from privacy.h), to determine whether messages are
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
612 * allowed or blocked.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
613 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
614 static void nullprpl_add_permit(PurpleConnection *gc, const char *name) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
615 purple_debug_info("nullprpl", "%s adds %s to their allowed list\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
616 purple_account_get_username(purple_connection_get_account(gc)), name);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
617 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
618
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
619 static void nullprpl_add_deny(PurpleConnection *gc, const char *name) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
620 purple_debug_info("nullprpl", "%s adds %s to their blocked list\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
621 purple_account_get_username(purple_connection_get_account(gc)), name);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
622 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
623
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
624 static void nullprpl_rem_permit(PurpleConnection *gc, const char *name) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
625 purple_debug_info("nullprpl", "%s removes %s from their allowed list\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
626 purple_account_get_username(purple_connection_get_account(gc)), name);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
627 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
628
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
629 static void nullprpl_rem_deny(PurpleConnection *gc, const char *name) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
630 purple_debug_info("nullprpl", "%s removes %s from their blocked list\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
631 purple_account_get_username(purple_connection_get_account(gc)), name);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
632 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
633
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
634 static void nullprpl_set_permit_deny(PurpleConnection *gc) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
635 /* this is for synchronizing the local black/whitelist with the server.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
636 * for nullprpl, it's a noop.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
637 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
638 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
639
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
640 static void joined_chat(PurpleChatConversation *from, PurpleChatConversation *to,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
641 int id, const char *room, gpointer userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
642 /* tell their chat window that we joined */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
643 purple_debug_info("nullprpl", "%s sees that %s joined chat room %s\n",
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
644 purple_chat_conversation_get_nick(to), purple_chat_conversation_get_nick(from), room);
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
645 purple_chat_conversation_add_user(to,
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
646 purple_chat_conversation_get_nick(from),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
647 NULL, /* user-provided join message, IRC style */
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
648 PURPLE_CHAT_USER_NONE,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
649 TRUE); /* show a join message */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
650
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
651 if (from != to) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
652 /* add them to our chat window */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
653 purple_debug_info("nullprpl", "%s sees that %s is in chat room %s\n",
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
654 purple_chat_conversation_get_nick(from), purple_chat_conversation_get_nick(to), room);
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
655 purple_chat_conversation_add_user(from,
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
656 purple_chat_conversation_get_nick(to),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
657 NULL, /* user-provided join message, IRC style */
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
658 PURPLE_CHAT_USER_NONE,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
659 FALSE); /* show a join message */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
660 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
661 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
662
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
663 static void nullprpl_join_chat(PurpleConnection *gc, GHashTable *components) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
664 const char *username = purple_account_get_username(purple_connection_get_account(gc));
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
665 const char *room = g_hash_table_lookup(components, "room");
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
666 int chat_id = g_str_hash(room);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
667 purple_debug_info("nullprpl", "%s is joining chat room %s\n", username, room);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
668
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
669 if (!purple_conversations_find_chat(gc, chat_id)) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
670 serv_got_joined_chat(gc, chat_id, room);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
671
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
672 /* tell everyone that we joined, and add them if they're already there */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
673 foreach_gc_in_chat(joined_chat, gc, chat_id, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
674 } else {
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
675 char *tmp = g_strdup_printf(_("%s is already in chat room %s."),
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
676 username,
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
677 room);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
678 purple_debug_info("nullprpl", "%s is already in chat room %s\n", username,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
679 room);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
680 purple_notify_info(gc, _("Join chat"), _("Join chat"), tmp);
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
681 g_free(tmp);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
682 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
683 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
684
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
685 static void nullprpl_reject_chat(PurpleConnection *gc, GHashTable *components) {
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
686 const char *invited_by = g_hash_table_lookup(components, "invited_by");
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
687 const char *room = g_hash_table_lookup(components, "room");
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
688 const char *username = purple_account_get_username(purple_connection_get_account(gc));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
689 PurpleConnection *invited_by_gc = get_nullprpl_gc(invited_by);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
690 char *message = g_strdup_printf(
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
691 "%s %s %s.",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
692 username,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
693 _("has rejected your invitation to join the chat room"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
694 room);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
695
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
696 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
697 "%s has rejected %s's invitation to join chat room %s\n",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
698 username, invited_by, room);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
699
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
700 purple_notify_info(invited_by_gc,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
701 _("Chat invitation rejected"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
702 _("Chat invitation rejected"),
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
703 message);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
704 g_free(message);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
705 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
706
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
707 static char *nullprpl_get_chat_name(GHashTable *components) {
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
708 const char *room = g_hash_table_lookup(components, "room");
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
709 purple_debug_info("nullprpl", "reporting chat room name '%s'\n", room);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
710 return g_strdup(room);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
711 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
712
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
713 static void nullprpl_chat_invite(PurpleConnection *gc, int id,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
714 const char *message, const char *who) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
715 const char *username = purple_account_get_username(purple_connection_get_account(gc));
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
716 PurpleChatConversation *chat = purple_conversations_find_chat(gc, id);
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
717 const char *room = purple_conversation_get_name(PURPLE_CONVERSATION(chat));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
718 PurpleAccount *to_acct = purple_accounts_find(who, NULLPRPL_ID);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
719
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
720 purple_debug_info("nullprpl", "%s is inviting %s to join chat room %s\n",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
721 username, who, room);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
722
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
723 if (to_acct) {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
724 PurpleChatConversation *to_conv = purple_conversations_find_chat(purple_account_get_connection(to_acct), id);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
725 if (to_conv) {
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
726 char *tmp = g_strdup_printf("%s is already in chat room %s.", who, room);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
727 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
728 "%s is already in chat room %s; "
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
729 "ignoring invitation from %s\n",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
730 who, room, username);
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
731 purple_notify_info(gc, _("Chat invitation"), _("Chat invitation"), tmp);
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
732 g_free(tmp);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
733 } else {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
734 GHashTable *components;
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
735 components = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
736 g_hash_table_replace(components, "room", g_strdup(room));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
737 g_hash_table_replace(components, "invited_by", g_strdup(username));
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
738 serv_got_chat_invite(purple_account_get_connection(to_acct), room, username, message, components);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
739 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
740 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
741 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
742
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
743 static void left_chat_room(PurpleChatConversation *from, PurpleChatConversation *to,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
744 int id, const char *room, gpointer userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
745 if (from != to) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
746 /* tell their chat window that we left */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
747 purple_debug_info("nullprpl", "%s sees that %s left chat room %s\n",
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
748 purple_chat_conversation_get_nick(to), purple_chat_conversation_get_nick(from), room);
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
749 purple_chat_conversation_remove_user(to,
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
750 purple_chat_conversation_get_nick(from),
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
751 NULL); /* user-provided message, IRC style */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
752 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
753 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
754
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
755 static void nullprpl_chat_leave(PurpleConnection *gc, int id) {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
756 PurpleChatConversation *chat = purple_conversations_find_chat(gc, id);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
757 purple_debug_info("nullprpl", "%s is leaving chat room %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
758 purple_account_get_username(purple_connection_get_account(gc)),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
759 purple_conversation_get_name(PURPLE_CONVERSATION(chat)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
760
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
761 /* tell everyone that we left */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
762 foreach_gc_in_chat(left_chat_room, gc, id, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
763 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
764
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
765 static PurpleCmdRet send_whisper(PurpleConversation *conv, const gchar *cmd,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
766 gchar **args, gchar **error, void *userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
767 const char *to_username;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
768 const char *message;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
769 const char *from_username;
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
770 PurpleChatUser *chat_user;
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
771 PurpleConnection *to;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
772
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
773 /* parse args */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
774 to_username = args[0];
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
775 message = args[1];
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
776
32190
7881925d0929 Don't use strlen() when you're just checking whether a string is
Mark Doliner <markdoliner@pidgin.im>
parents: 32189
diff changeset
777 if (!to_username || !*to_username) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
778 *error = g_strdup(_("Whisper is missing recipient."));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
779 return PURPLE_CMD_RET_FAILED;
32190
7881925d0929 Don't use strlen() when you're just checking whether a string is
Mark Doliner <markdoliner@pidgin.im>
parents: 32189
diff changeset
780 } else if (!message || !*message) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
781 *error = g_strdup(_("Whisper is missing message."));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
782 return PURPLE_CMD_RET_FAILED;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
783 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
784
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
785 from_username = purple_account_get_username(purple_conversation_get_account(conv));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
786 purple_debug_info("nullprpl", "%s whispers to %s in chat room %s: %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
787 from_username, to_username,
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
788 purple_conversation_get_name(conv), message);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
789
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
790 chat_user = purple_chat_conversation_find_user(PURPLE_CHAT_CONVERSATION(conv), to_username);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
791 to = get_nullprpl_gc(to_username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
792
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34631
diff changeset
793 if (!chat_user) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
794 /* this will be freed by the caller */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
795 *error = g_strdup_printf(_("%s is not logged in."), to_username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
796 return PURPLE_CMD_RET_FAILED;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
797 } else if (!to) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
798 *error = g_strdup_printf(_("%s is not in this chat room."), to_username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
799 return PURPLE_CMD_RET_FAILED;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
800 } else {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
801 /* write the whisper in the sender's chat window */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
802 char *message_to = g_strdup_printf("%s (to %s)", message, to_username);
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
803 purple_conversation_write_message(conv, from_username, message_to,
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
804 PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_WHISPER,
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
805 time(NULL));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
806 g_free(message_to);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
807
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
808 /* send the whisper */
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
809 serv_chat_whisper(to, purple_chat_conversation_get_id(PURPLE_CHAT_CONVERSATION(conv)),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
810 from_username, message);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
811
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
812 return PURPLE_CMD_RET_OK;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
813 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
814 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
815
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
816 static void nullprpl_chat_whisper(PurpleConnection *gc, int id, const char *who,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
817 const char *message) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
818 const char *username = purple_account_get_username(purple_connection_get_account(gc));
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
819 PurpleChatConversation *chat = purple_conversations_find_chat(gc, id);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
820 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
821 "%s receives whisper from %s in chat room %s: %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
822 username, who, purple_conversation_get_name(PURPLE_CONVERSATION(chat)),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
823 message);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
824
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
825 /* receive whisper on recipient's account */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
826 serv_got_chat_in(gc, id, who, PURPLE_MESSAGE_RECV | PURPLE_MESSAGE_WHISPER,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
827 message, time(NULL));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
828 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
829
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
830 static void receive_chat_message(PurpleChatConversation *from, PurpleChatConversation *to,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
831 int id, const char *room, gpointer userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
832 const char *message = (const char *)userdata;
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
833 PurpleConnection *to_gc = get_nullprpl_gc(purple_chat_conversation_get_nick(to));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
834
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
835 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
836 "%s receives message from %s in chat room %s: %s\n",
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
837 purple_chat_conversation_get_nick(to), purple_chat_conversation_get_nick(from), room, message);
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
838 serv_got_chat_in(to_gc, id, purple_chat_conversation_get_nick(from), PURPLE_MESSAGE_RECV, message,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
839 time(NULL));
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
840 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
841
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
842 static int nullprpl_chat_send(PurpleConnection *gc, int id, const char *message,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
843 PurpleMessageFlags flags) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
844 const char *username = purple_account_get_username(purple_connection_get_account(gc));
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
845 PurpleChatConversation *chat = purple_conversations_find_chat(gc, id);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
846
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
847 if (chat) {
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
848 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
849 "%s is sending message to chat room %s: %s\n", username,
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
850 purple_conversation_get_name(PURPLE_CONVERSATION(chat)), message);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
851
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
852 /* send message to everyone in the chat room */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
853 foreach_gc_in_chat(receive_chat_message, gc, id, (gpointer)message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
854 return 0;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
855 } else {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
856 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
857 "tried to send message from %s to chat room #%d: %s\n"
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
858 "but couldn't find chat room",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
859 username, id, message);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
860 return -1;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
861 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
862 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
863
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
864 static void nullprpl_register_user(PurpleAccount *acct) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
865 purple_debug_info("nullprpl", "registering account for %s\n",
32623
547eacef0b63 Convert libpurple and protocol prpl's to use the purple_account_* accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 32618
diff changeset
866 purple_account_get_username(acct));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
867 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
868
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
869 static void nullprpl_get_cb_info(PurpleConnection *gc, int id, const char *who) {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
870 PurpleChatConversation *chat = purple_conversations_find_chat(gc, id);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
871 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
872 "retrieving %s's info for %s in chat room %s\n", who,
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
873 purple_account_get_username(purple_connection_get_account(gc)),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
874 purple_conversation_get_name(PURPLE_CONVERSATION(chat)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
875
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
876 nullprpl_get_info(gc, who);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
877 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
878
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
879 static void nullprpl_alias_buddy(PurpleConnection *gc, const char *who,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
880 const char *alias) {
22709
6bd336964410 Printf warning fixes.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
881 purple_debug_info("nullprpl", "%s sets %s's alias to %s\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
882 purple_account_get_username(purple_connection_get_account(gc)), who, alias);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
883 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
884
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
885 static void nullprpl_group_buddy(PurpleConnection *gc, const char *who,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
886 const char *old_group,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
887 const char *new_group) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
888 purple_debug_info("nullprpl", "%s has moved %s from group %s to group %s\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
889 purple_account_get_username(purple_connection_get_account(gc)), who, old_group, new_group);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
890 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
891
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
892 static void nullprpl_rename_group(PurpleConnection *gc, const char *old_name,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
893 PurpleGroup *group, GList *moved_buddies) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
894 purple_debug_info("nullprpl", "%s has renamed group %s to %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
895 purple_account_get_username(purple_connection_get_account(gc)), old_name,
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
896 purple_group_get_name(group));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
897 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
898
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
899 static void nullprpl_convo_closed(PurpleConnection *gc, const char *who) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
900 purple_debug_info("nullprpl", "%s's conversation with %s was closed\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
901 purple_account_get_username(purple_connection_get_account(gc)), who);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
902 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
903
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
904 /* normalize a username (e.g. remove whitespace, add default domain, etc.)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
905 * for nullprpl, this is a noop.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
906 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
907 static const char *nullprpl_normalize(const PurpleAccount *acct,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
908 const char *input) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
909 return NULL;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
910 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
911
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
912 static void nullprpl_set_buddy_icon(PurpleConnection *gc,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
913 PurpleStoredImage *img) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
914 purple_debug_info("nullprpl", "setting %s's buddy icon to %s\n",
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
915 purple_account_get_username(purple_connection_get_account(gc)),
25745
48b7ebd7fcc7 Fix the crash/leaks in statusbox
Paul Aurich <darkrain42@pidgin.im>
parents: 24865
diff changeset
916 img ? purple_imgstore_get_filename(img) : "(null)");
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
917 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
918
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
919 static void nullprpl_remove_group(PurpleConnection *gc, PurpleGroup *group) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
920 purple_debug_info("nullprpl", "%s has removed group %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
921 purple_account_get_username(purple_connection_get_account(gc)),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
922 purple_group_get_name(group));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
923 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
924
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
925
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
926 static void set_chat_topic_fn(PurpleChatConversation *from, PurpleChatConversation *to,
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
927 int id, const char *room, gpointer userdata) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
928 const char *topic = (const char *)userdata;
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
929 const char *username = purple_account_get_username(purple_conversation_get_account(PURPLE_CONVERSATION(from)));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
930 char *msg;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
931
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
932 purple_chat_conversation_set_topic(to, username, topic);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
933
32189
3af8d41121b6 Don't use strlen() when all you're trying to do is check if the string
Mark Doliner <markdoliner@pidgin.im>
parents: 32188
diff changeset
934 if (topic && *topic)
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
935 msg = g_strdup_printf(_("%s sets topic to: %s"), username, topic);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
936 else
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
937 msg = g_strdup_printf(_("%s clears topic"), username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
938
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
939 purple_conversation_write_message(PURPLE_CONVERSATION(to), username, msg,
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
940 PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NO_LOG,
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
941 time(NULL));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
942 g_free(msg);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
943 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
944
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
945 static void nullprpl_set_chat_topic(PurpleConnection *gc, int id,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
946 const char *topic) {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
947 PurpleChatConversation *chat = purple_conversations_find_chat(gc, id);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
948 const char *last_topic;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
949
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
950 if (!chat)
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
951 return;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
952
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
953 purple_debug_info("nullprpl", "%s sets topic of chat room '%s' to '%s'\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
954 purple_account_get_username(purple_connection_get_account(gc)),
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
955 purple_conversation_get_name(PURPLE_CONVERSATION(chat)), topic);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
956
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
957 last_topic = purple_chat_conversation_get_topic(chat);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
958 if ((!topic && !last_topic) ||
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
959 (topic && last_topic && !strcmp(topic, last_topic)))
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
960 return; /* topic is unchanged, this is a noop */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
961
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
962 foreach_gc_in_chat(set_chat_topic_fn, gc, id, (gpointer)topic);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
963 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
964
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
965 static gboolean nullprpl_finish_get_roomlist(gpointer roomlist) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
966 purple_roomlist_set_in_progress((PurpleRoomlist *)roomlist, FALSE);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
967 return FALSE;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
968 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
969
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
970 static PurpleRoomlist *nullprpl_roomlist_get_list(PurpleConnection *gc) {
32678
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
971 const char *username = purple_account_get_username(purple_connection_get_account(gc));
01f6312a4a7b On the way to hiding the PurpleConnection struct.
Andrew Victor <andrew.victor@mxit.com>
parents: 32623
diff changeset
972 PurpleRoomlist *roomlist = purple_roomlist_new(purple_connection_get_account(gc));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
973 GList *fields = NULL;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
974 PurpleRoomlistField *field;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
975 GList *chats;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
976 GList *seen_ids = NULL;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
977
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
978 purple_debug_info("nullprpl", "%s asks for room list; returning:\n", username);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
979
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
980 /* set up the room list */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
981 field = purple_roomlist_field_new(PURPLE_ROOMLIST_FIELD_STRING, "room",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
982 "room", TRUE /* hidden */);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
983 fields = g_list_append(fields, field);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
984
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
985 field = purple_roomlist_field_new(PURPLE_ROOMLIST_FIELD_INT, "Id", "Id", FALSE);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
986 fields = g_list_append(fields, field);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
987
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
988 purple_roomlist_set_fields(roomlist, fields);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
989
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
990 /* add each chat room. the chat ids are cached in seen_ids so that each room
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
991 * is only returned once, even if multiple users are in it. */
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 32678
diff changeset
992 for (chats = purple_conversations_get_chats(); chats; chats = g_list_next(chats)) {
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
993 PurpleChatConversation *chat = PURPLE_CHAT_CONVERSATION(chats->data);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
994 PurpleRoomlistRoom *room;
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
995 const char *name = purple_conversation_get_name(PURPLE_CONVERSATION(chat));
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
996 int id = purple_chat_conversation_get_id(chat);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
997
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
998 /* have we already added this room? */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
999 if (g_list_find_custom(seen_ids, name, (GCompareFunc)strcmp))
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1000 continue; /* yes! try the next one. */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1001
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
1002 /* This cast is OK because this list is only staying around for the life
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
1003 * of this function and none of the conversations are being deleted
29977
94b2a6686bfb nullprpl: Whitespace
Paul Aurich <darkrain42@pidgin.im>
parents: 29795
diff changeset
1004 * in that timespan. */
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
1005 seen_ids = g_list_prepend(seen_ids, (char *)name); /* no, it's new. */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1006 purple_debug_info("nullprpl", "%s (%d), ", name, id);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1007
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1008 room = purple_roomlist_room_new(PURPLE_ROOMLIST_ROOMTYPE_ROOM, name, NULL);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1009 purple_roomlist_room_add_field(roomlist, room, name);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1010 purple_roomlist_room_add_field(roomlist, room, &id);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1011 purple_roomlist_room_add(roomlist, room);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1012 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1013
24862
852378e0c5b5 Various nullprpl fixes. This stemmed from a complaint from a user in
Paul Aurich <darkrain42@pidgin.im>
parents: 24332
diff changeset
1014 g_list_free(seen_ids);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1015 purple_timeout_add(1 /* ms */, nullprpl_finish_get_roomlist, roomlist);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1016 return roomlist;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1017 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1018
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1019 static void nullprpl_roomlist_cancel(PurpleRoomlist *list) {
32263
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
1020 PurpleAccount *account = purple_roomlist_get_account(list);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1021 purple_debug_info("nullprpl", "%s asked to cancel room list request\n",
32263
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
1022 purple_account_get_username(account));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1023 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1024
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1025 static void nullprpl_roomlist_expand_category(PurpleRoomlist *list,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1026 PurpleRoomlistRoom *category) {
32263
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
1027 PurpleAccount *account = purple_roomlist_get_account(list);
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1028 purple_debug_info("nullprpl", "%s asked to expand room list category %s\n",
32263
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
1029 purple_account_get_username(account),
02baf4631f3b Update nullprpl for various API changes.
Andrew Victor <andrew.victor@mxit.com>
parents: 32190
diff changeset
1030 purple_roomlist_room_get_name(category));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1031 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1032
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1033 /* nullprpl doesn't support file transfer...yet... */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1034 static gboolean nullprpl_can_receive_file(PurpleConnection *gc,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1035 const char *who) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1036 return FALSE;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1037 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1038
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1039 static gboolean nullprpl_offline_message(const PurpleBuddy *buddy) {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1040 purple_debug_info("nullprpl",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1041 "reporting that offline messages are supported for %s\n",
34872
3b6a783817b9 Refactored nullprpl to use the GObjectified purple API
Ankit Vani <a@nevitus.org>
parents: 34868
diff changeset
1042 purple_buddy_get_name(buddy));
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1043 return TRUE;
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1044 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1045
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1046
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1047 /*
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1048 * prpl stuff. see prpl.h for more information.
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1049 */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1050
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1051 static PurplePluginProtocolInfo prpl_info =
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1052 {
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1053 NULLPRPL_ID, /* id */
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1054 "Null - Testing protocol", /* name */
32316
21dab55b4699 Move struct_size to the beginning of the struct. Even if we don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32315
diff changeset
1055 sizeof(PurplePluginProtocolInfo), /* struct_size */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1056 OPT_PROTO_NO_PASSWORD | OPT_PROTO_CHAT_TOPIC, /* options */
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1057 NULL, /* user_splits, initialized in gplugin_plugin_load() */
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1058 NULL, /* protocol_options, initialized in gplugin_plugin_load() */
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1059 NULL, /* actions, initialized in gplugin_plugin_load() */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1060 { /* icon_spec, a PurpleBuddyIconSpec */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1061 "png,jpg,gif", /* format */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1062 0, /* min_width */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1063 0, /* min_height */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1064 128, /* max_width */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1065 128, /* max_height */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1066 10000, /* max_filesize */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1067 PURPLE_ICON_SCALE_DISPLAY, /* scale_rules */
17452
3d8aed6247d0 Minor changes:
Richard Laager <rlaager@pidgin.im>
parents: 17451
diff changeset
1068 },
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1069 nullprpl_list_icon, /* list_icon */
25002
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1070 NULL, /* list_emblem */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1071 nullprpl_status_text, /* status_text */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1072 nullprpl_tooltip_text, /* tooltip_text */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1073 nullprpl_status_types, /* status_types */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1074 nullprpl_blist_node_menu, /* blist_node_menu */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1075 nullprpl_chat_info, /* chat_info */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1076 nullprpl_chat_info_defaults, /* chat_info_defaults */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1077 nullprpl_login, /* login */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1078 nullprpl_close, /* close */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1079 nullprpl_send_im, /* send_im */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1080 nullprpl_set_info, /* set_info */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1081 nullprpl_send_typing, /* send_typing */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1082 nullprpl_get_info, /* get_info */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1083 nullprpl_set_status, /* set_status */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1084 nullprpl_set_idle, /* set_idle */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1085 nullprpl_change_passwd, /* change_passwd */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1086 nullprpl_add_buddy, /* add_buddy */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1087 nullprpl_add_buddies, /* add_buddies */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1088 nullprpl_remove_buddy, /* remove_buddy */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1089 nullprpl_remove_buddies, /* remove_buddies */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1090 nullprpl_add_permit, /* add_permit */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1091 nullprpl_add_deny, /* add_deny */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1092 nullprpl_rem_permit, /* rem_permit */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1093 nullprpl_rem_deny, /* rem_deny */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1094 nullprpl_set_permit_deny, /* set_permit_deny */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1095 nullprpl_join_chat, /* join_chat */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1096 nullprpl_reject_chat, /* reject_chat */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1097 nullprpl_get_chat_name, /* get_chat_name */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1098 nullprpl_chat_invite, /* chat_invite */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1099 nullprpl_chat_leave, /* chat_leave */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1100 nullprpl_chat_whisper, /* chat_whisper */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1101 nullprpl_chat_send, /* chat_send */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1102 NULL, /* keepalive */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1103 nullprpl_register_user, /* register_user */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1104 nullprpl_get_cb_info, /* get_cb_info */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1105 nullprpl_alias_buddy, /* alias_buddy */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1106 nullprpl_group_buddy, /* group_buddy */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1107 nullprpl_rename_group, /* rename_group */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1108 NULL, /* buddy_free */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1109 nullprpl_convo_closed, /* convo_closed */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1110 nullprpl_normalize, /* normalize */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1111 nullprpl_set_buddy_icon, /* set_buddy_icon */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1112 nullprpl_remove_group, /* remove_group */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1113 NULL, /* get_cb_real_name */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1114 nullprpl_set_chat_topic, /* set_chat_topic */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1115 NULL, /* find_blist_chat */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1116 nullprpl_roomlist_get_list, /* roomlist_get_list */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1117 nullprpl_roomlist_cancel, /* roomlist_cancel */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1118 nullprpl_roomlist_expand_category, /* roomlist_expand_category */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1119 nullprpl_can_receive_file, /* can_receive_file */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1120 NULL, /* send_file */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1121 NULL, /* new_xfer */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1122 nullprpl_offline_message, /* offline_message */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1123 NULL, /* whiteboard_prpl_ops */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1124 NULL, /* send_raw */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1125 NULL, /* roomlist_room_serialize */
22071
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
1126 NULL, /* unregister_user */
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
1127 NULL, /* send_attention */
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
1128 NULL, /* get_attention_types */
29977
94b2a6686bfb nullprpl: Whitespace
Paul Aurich <darkrain42@pidgin.im>
parents: 29795
diff changeset
1129 NULL, /* get_account_text_table */
29795
051ad81c3d19 Warning fix
Daniel Atallah <datallah@pidgin.im>
parents: 27361
diff changeset
1130 NULL, /* initiate_media */
051ad81c3d19 Warning fix
Daniel Atallah <datallah@pidgin.im>
parents: 27361
diff changeset
1131 NULL, /* get_media_caps */
31593
063dfdf8faf9 Fix comment order.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
1132 NULL, /* get_moods */
30138
cca9685df785 Add purple_account_[gs]et_public_alias functions, per discussion in d@cpi
Paul Aurich <darkrain42@pidgin.im>
parents: 29977
diff changeset
1133 NULL, /* set_public_alias */
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32263
diff changeset
1134 NULL /* get_public_alias */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1135 };
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1136
36458
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1137 static PurplePluginInfo *
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1138 plugin_query(void)
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1139 {
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1140 return purple_plugin_info_new(
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1141 "id", NULLPRPL_ID,
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1142 "name", "Null - Testing Plugin",
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1143 "version", DISPLAY_VERSION,
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1144 "category", "Protocol",
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1145 "summary", N_("Null Protocol Plugin"),
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1146 "description", N_("Null Protocol Plugin"),
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1147 "website", PURPLE_WEBSITE,
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1148 "abi_version", PURPLE_ABI_VERSION,
36467
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
1149
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
1150 /* If you're using this as the basis of a protocol plugin that will be
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
1151 * distributed separately from libpurple, do not include these flags.*/
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
1152 "flags", GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL |
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
1153 GPLUGIN_PLUGIN_INFO_FLAGS_LOAD_ON_QUERY,
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1154 NULL
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1155 );
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1156 }
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1157
36458
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1158 static gboolean
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1159 plugin_load(PurplePlugin *plugin)
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1160 {
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1161 /* see accountopt.h for information about user splits and protocol options */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1162 PurpleAccountUserSplit *split = purple_account_user_split_new(
25002
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1163 _("Example user split"), /* text shown to user */
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1164 "default", /* default value */
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1165 '@'); /* field separator */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1166 PurpleAccountOption *option = purple_account_option_string_new(
25002
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1167 _("Example option"), /* text shown to user */
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1168 "example", /* pref name */
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1169 "default"); /* default value */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1170
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1171 purple_debug_info("nullprpl", "starting up\n");
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1172
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1173 prpl_info.user_splits = g_list_append(NULL, split);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1174 prpl_info.protocol_options = g_list_append(NULL, option);
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1175
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1176 /* register whisper chat command, /msg */
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
1177 _msg_cmd = purple_cmd_register("msg",
25002
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1178 "ws", /* args: recipient and message */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1179 PURPLE_CMD_P_DEFAULT, /* priority */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1180 PURPLE_CMD_FLAG_CHAT,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1181 "prpl-null",
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1182 send_whisper,
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1183 "msg &lt;username&gt; &lt;message&gt;: send a private message, aka a whisper",
25002
40a1b3360a50 Various nullprpl fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24332
diff changeset
1184 NULL); /* userdata */
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1185
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1186 /* get ready to store offline messages */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1187 goffline_messages = g_hash_table_new_full(g_str_hash, /* hash fn */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1188 g_str_equal, /* key comparison fn */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1189 g_free, /* key free fn */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1190 NULL); /* value free fn */
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1191
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1192 _null_protocol = &prpl_info;
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1193
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1194 purple_protocol_add_action(_null_protocol, _("Set User Info..."), nullprpl_input_user_info);
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1195 purple_protocols_add(_null_protocol);
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1196
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1197 return TRUE;
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1198 }
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1199
36458
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1200 static gboolean
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1201 plugin_unload(PurplePlugin *plugin)
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1202 {
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1203 purple_debug_info("nullprpl", "shutting down\n");
17451
02adeb73ed3b this patch adds nullprpl, a mock protocol plugin, to the libpurple/protocols
Ryan Barrett <ryanbarrett@users.sourceforge.net>
parents:
diff changeset
1204
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
1205 purple_cmd_unregister(_msg_cmd);
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1206 purple_protocols_remove(_null_protocol);
36457
70791ae6137b Unregister the command when plugin is unloaded
Ankit Vani <a@nevitus.org>
parents: 36453
diff changeset
1207
36453
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1208 return TRUE;
75bb4001a25f Refactored nullprpl to build with the new plugin API. This is not final.
Ankit Vani <a@nevitus.org>
parents: 34872
diff changeset
1209 }
36458
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1210
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36457
diff changeset
1211 PURPLE_PLUGIN_INIT(null, plugin_query, plugin_load, plugin_unload);

mercurial