libpurple/protocols/facebook/api.h

Mon, 12 Sep 2016 08:55:35 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Mon, 12 Sep 2016 08:55:35 -0500
changeset 38142
1dff6e343f9f
parent 37524
806baa6e240c
child 38185
955dcca1ac3d
permissions
-rw-r--r--

gg: Protect against issues when closing while connecting

Since the GIOStream is cancelled when data is freed, any cancelled
callbacks are called after such data is freed. This patch guards against
cancelled calls by safely returning without accessing any freed data if
the connection has been cancelled (aka closed).

Futhermore, if GG tries to connect and is quickly disconnected,
ggp_tcpsocket_close() is never called. As far as I can tell, it's an
existing bug, but PurpleSockets both work differently when closing and
are closed by the connection if any leak. So the issue wasn't a major
problem. This patch lessens the issue by guarding against it, but it
should be fixed at some point.

37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
1 /* purple
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
2 *
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
3 * Purple is the legal property of its developers, whose names are too numerous
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
5 * source distribution.
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
6 *
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
10 * (at your option) any later version.
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
11 *
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
15 * GNU General Public License for more details.
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
16 *
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
20 */
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
21
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
22 #ifndef _FACEBOOK_API_H_
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
23 #define _FACEBOOK_API_H_
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
24
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
25 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
26 * SECTION:api
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
27 * @section_id: facebook-api
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
28 * @short_description: <filename>api.h</filename>
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
29 * @title: Facebook API
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
30 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
31 * The API for interacting with the Facebook Messenger protocol.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
32 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
33
37310
a1a5f0ac39f2 facebook: cleaned up libpurple includes
James Geboski <jgeboski@gmail.com>
parents: 37309
diff changeset
34 #include "internal.h"
a1a5f0ac39f2 facebook: cleaned up libpurple includes
James Geboski <jgeboski@gmail.com>
parents: 37309
diff changeset
35
37309
556eea7a45da facebook: merged local glibcompat.h into libpurple's
James Geboski <jgeboski@gmail.com>
parents: 37306
diff changeset
36 #include <glib.h>
556eea7a45da facebook: merged local glibcompat.h into libpurple's
James Geboski <jgeboski@gmail.com>
parents: 37306
diff changeset
37
37310
a1a5f0ac39f2 facebook: cleaned up libpurple includes
James Geboski <jgeboski@gmail.com>
parents: 37309
diff changeset
38 #include "connection.h"
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
39
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
40 #include "http.h"
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
41 #include "id.h"
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
42 #include "mqtt.h"
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
43
37359
79374d83fae5 facebook: removed alignment whitespace
James Geboski <jgeboski@gmail.com>
parents: 37357
diff changeset
44 #define FB_TYPE_API (fb_api_get_type())
79374d83fae5 facebook: removed alignment whitespace
James Geboski <jgeboski@gmail.com>
parents: 37357
diff changeset
45 #define FB_API(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), FB_TYPE_API, FbApi))
79374d83fae5 facebook: removed alignment whitespace
James Geboski <jgeboski@gmail.com>
parents: 37357
diff changeset
46 #define FB_API_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), FB_TYPE_API, FbApiClass))
79374d83fae5 facebook: removed alignment whitespace
James Geboski <jgeboski@gmail.com>
parents: 37357
diff changeset
47 #define FB_IS_API(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), FB_TYPE_API))
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
48 #define FB_IS_API_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), FB_TYPE_API))
37359
79374d83fae5 facebook: removed alignment whitespace
James Geboski <jgeboski@gmail.com>
parents: 37357
diff changeset
49 #define FB_API_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FB_TYPE_API, FbApiClass))
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
50
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
51 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
52 * FB_API_AHOST:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
53 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
54 * The HTTP host for the Facebook API.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
55 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
56 #define FB_API_AHOST "https://api.facebook.com"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
57
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
58 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
59 * FB_API_BHOST:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
60 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
61 * The HTTP host for the Facebook BAPI.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
62 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
63 #define FB_API_BHOST "https://b-api.facebook.com"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
64
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
65 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
66 * FB_API_GHOST:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
67 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
68 * The HTTP host for the Facebook Graph API.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
69 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
70 #define FB_API_GHOST "https://graph.facebook.com"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
71
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
72 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
73 * FB_API_WHOST:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
74 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
75 * The HTTP host for the Facebook website.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
76 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
77 #define FB_API_WHOST "https://www.facebook.com"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
78
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
79 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
80 * FB_API_KEY:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
81 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
82 * The Facebook API key.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
83 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
84 #define FB_API_KEY "256002347743983"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
85
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
86 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
87 * FB_API_SECRET:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
88 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
89 * The Facebook API secret.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
90 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
91 #define FB_API_SECRET "374e60f8b9bb6b8cbb30f78030438895"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
92
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
93 /**
37370
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
94 * FB_API_URL_ATTACH:
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
95 *
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
96 * The URL for attachment URL requests.
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
97 */
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
98 #define FB_API_URL_ATTACH FB_API_AHOST "/method/messaging.getAttachment"
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
99 //#define FB_API_URL_ATTACH FB_API_AHOST "/method/messaging.attachmentRedirect"
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
100
2d832af0f400 facebook: fetch URLs for all messages attachments
James Geboski <jgeboski@gmail.com>
parents: 37369
diff changeset
101 /**
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
102 * FB_API_URL_AUTH:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
103 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
104 * The URL for authentication requests.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
105 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
106 #define FB_API_URL_AUTH FB_API_BHOST "/method/auth.login"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
107
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
108 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
109 * FB_API_URL_GQL:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
110 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
111 * The URL for GraphQL requests.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
112 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
113 #define FB_API_URL_GQL FB_API_GHOST "/graphql"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
114
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
115 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
116 * FB_API_URL_MESSAGES:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
117 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
118 * The URL for linking message threads.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
119 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
120 #define FB_API_URL_MESSAGES FB_API_WHOST "/messages"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
121
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
122 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
123 * FB_API_URL_PARTS:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
124 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
125 * The URL for participant management requests.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
126 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
127 #define FB_API_URL_PARTS FB_API_GHOST "/participants"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
128
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
129 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
130 * FB_API_URL_THREADS:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
131 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
132 * The URL for thread management requests.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
133 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
134 #define FB_API_URL_THREADS FB_API_GHOST "/me/threads"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
135
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
136 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
137 * FB_API_URL_TOPIC:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
138 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
139 * The URL for thread topic requests.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
140 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
141 #define FB_API_URL_TOPIC FB_API_AHOST "/method/messaging.setthreadname"
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
142
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
143 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
144 * FB_API_QUERY_CONTACT:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
145 *
37381
8e23ae2d2ef6 facebook: fixed the contact query not fetching non-users
James Geboski <jgeboski@gmail.com>
parents: 37380
diff changeset
146 * The query hash for the `UsersQuery`.
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
147 *
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
148 * Key mapping:
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
149 * 0: user_fbids
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
150 * 1: include_full_user_info
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
151 * 2: profile_pic_large_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
152 * 3: profile_pic_medium_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
153 * 4: profile_pic_small_size
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
154 */
37381
8e23ae2d2ef6 facebook: fixed the contact query not fetching non-users
James Geboski <jgeboski@gmail.com>
parents: 37380
diff changeset
155 #define FB_API_QUERY_CONTACT 10153915107411729
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
156
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
157 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
158 * FB_API_QUERY_CONTACTS:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
159 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
160 * The query hash for the `FetchContactsFullQuery`.
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
161 *
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
162 * Key mapping:
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
163 * 0: profile_types
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
164 * 1: limit
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
165 * 2: big_img_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
166 * 3: huge_img_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
167 * 4: small_img_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
168 * 5: low_res_cover_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
169 * 6: media_type
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
170 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
171 #define FB_API_QUERY_CONTACTS 10153856456271729
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
172
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
173 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
174 * FB_API_QUERY_CONTACTS_AFTER:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
175 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
176 * The query hash for the `FetchContactsFullWithAfterQuery`.
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
177 *
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
178 * Key mapping:
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
179 * 0: profile_types
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
180 * 1: after
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
181 * 2: limit
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
182 * 3: big_img_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
183 * 4: huge_img_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
184 * 5: small_img_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
185 * 6: low_res_cover_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
186 * 7: media_type
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
187 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
188 #define FB_API_QUERY_CONTACTS_AFTER 10153856456281729
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
189
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
190 /**
37369
ebcd09a1a124 facebook: display stickers in-line
James Geboski <jgeboski@gmail.com>
parents: 37365
diff changeset
191 * FB_API_QUERY_STICKER:
ebcd09a1a124 facebook: display stickers in-line
James Geboski <jgeboski@gmail.com>
parents: 37365
diff changeset
192 *
ebcd09a1a124 facebook: display stickers in-line
James Geboski <jgeboski@gmail.com>
parents: 37365
diff changeset
193 * The query hash for the `FetchStickersWithPreviewsQuery`.
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
194 *
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
195 * Key mapping:
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
196 * 0: sticker_ids
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
197 * 1: media_type
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
198 * 2: preview_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
199 * 3: scaling_factor
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
200 * 4: animated_media_type
37369
ebcd09a1a124 facebook: display stickers in-line
James Geboski <jgeboski@gmail.com>
parents: 37365
diff changeset
201 */
ebcd09a1a124 facebook: display stickers in-line
James Geboski <jgeboski@gmail.com>
parents: 37365
diff changeset
202 #define FB_API_QUERY_STICKER 10152877994321729
ebcd09a1a124 facebook: display stickers in-line
James Geboski <jgeboski@gmail.com>
parents: 37365
diff changeset
203
ebcd09a1a124 facebook: display stickers in-line
James Geboski <jgeboski@gmail.com>
parents: 37365
diff changeset
204 /**
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
205 * FB_API_QUERY_THREAD:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
206 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
207 * The query hash for the `ThreadQuery`.
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
208 *
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
209 * Key mapping:
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
210 * 0: thread_ids
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
211 * 1: verification_type
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
212 * 2: hash_key
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
213 * 3: small_preview_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
214 * 4: large_preview_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
215 * 5: item_count
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
216 * 6: event_count
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
217 * 7: full_screen_height
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
218 * 8: full_screen_width
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
219 * 9: medium_preview_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
220 * 10: fetch_users_separately
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
221 * 11: include_message_info
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
222 * 12: msg_count
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
223 * 13: include_full_user_info
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
224 * 14: profile_pic_large_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
225 * 15: profile_pic_medium_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
226 * 16: profile_pic_small_size
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
227 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
228 #define FB_API_QUERY_THREAD 10153919752036729
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
229
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
230 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
231 * FB_API_QUERY_THREADS:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
232 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
233 * The query hash for the `ThreadListQuery`.
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
234 *
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
235 * Key mapping:
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
236 * 0: folder_tag
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
237 * 1: thread_count
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
238 * 2: include_thread_info
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
239 * 3: verification_type
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
240 * 4: hash_key
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
241 * 5: small_preview_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
242 * 6: large_preview_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
243 * 7: item_count
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
244 * 8: event_count
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
245 * 9: full_screen_height
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
246 * 10: full_screen_width
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
247 * 11: medium_preview_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
248 * 12: fetch_users_separately
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
249 * 13: include_message_info
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
250 * 14: msg_count
37524
806baa6e240c Unbreak gtk-doc
Jorge Villaseñor <salinasv@pidgin.im>
parents: 37513
diff changeset
251 * 15: UNKNOWN
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
252 * 16: profile_pic_large_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
253 * 17: profile_pic_medium_size
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
254 * 18: profile_pic_small_size
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
255 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
256 #define FB_API_QUERY_THREADS 10153919752026729
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
257
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
258 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
259 * FB_API_QUERY_XMA:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
260 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
261 * The query hash for the `XMAQuery`.
37513
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
262 *
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
263 * Key mapping:
250fdd93e9c3 facebook: migrated key mappings to the GTK-Doc
James Geboski <jgeboski@gmail.com>
parents: 37510
diff changeset
264 * 0: xma_id
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
265 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
266 #define FB_API_QUERY_XMA 10153919431161729
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
267
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
268 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
269 * FB_API_CONTACTS_COUNT:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
270 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
271 * The maximum amount of contacts to fetch in a single request. If this
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
272 * value is set too high, HTTP request will fail. This is due to the
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
273 * request data being too large.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
274 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
275 #define FB_API_CONTACTS_COUNT 500
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
276
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
277 /**
37510
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
278 * FB_API_TCHK:
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
279 * @e: The expression.
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
280 *
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
281 * Checks the Thrift related expression to ensure that it evaluates to
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
282 * #TRUE. If the expression evaluates to #FALSE, a #GError is assigned
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
283 * to the local `error` variable, then returns with no value.
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
284 *
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
285 * This macro is meant to only be used for Thrift related expressions,
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
286 * where the calling function has a `void` return type. This macro also
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
287 * requires the existence of a predefined `error` variable, which is a
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
288 * pointer of a pointer to a #GError.
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
289 */
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
290 #define FB_API_TCHK(e) \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
291 G_STMT_START { \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
292 if (G_UNLIKELY(!(e))) { \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
293 g_set_error(error, FB_API_ERROR, FB_API_ERROR_GENERAL, \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
294 "Failed to read thrift: %s:%d " \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
295 "%s: assertion '%s' failed", \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
296 __FILE__, __LINE__, G_STRFUNC, #e); \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
297 return; \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
298 } \
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
299 } G_STMT_END
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
300
1bee26614db9 facebook: properly handle optional Thrift fields and scoping
James Geboski <jgeboski@gmail.com>
parents: 37475
diff changeset
301 /**
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
302 * FB_API_MSGID:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
303 * @m: The time in milliseconds.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
304 * @i: The random integer.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
305 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
306 * Creates a 64-bit message identifier in the Facebook format.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
307 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
308 * Returns: The message identifier.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
309 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
310 #define FB_API_MSGID(m, i) ((guint64) ( \
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
311 (((guint32) i) & 0x3FFFFF) | \
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
312 (((guint64) m) << 22) \
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
313 ))
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
314
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
315 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
316 * FB_API_ERROR_EMIT:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
317 * @a: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
318 * @e: The #FbApiError.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
319 * @c: The code to execute.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
320 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
321 * Emits a #GError on behalf of the #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
322 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
323 #define FB_API_ERROR_EMIT(a, e, c) \
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
324 G_STMT_START { \
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
325 if (G_UNLIKELY((e) != NULL)) { \
37316
9e3520d6ec49 facebook: refactored and improved JSON error handling
James Geboski <jgeboski@gmail.com>
parents: 37315
diff changeset
326 fb_api_error_emit(a, e); \
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
327 {c;} \
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
328 } \
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
329 } G_STMT_END
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
330
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
331 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
332 * FB_API_ERROR:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
333 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
334 * The #GQuark of the domain of API errors.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
335 */
37471
32c1e77d0474 facebook: coding style consistencies
James Geboski <jgeboski@gmail.com>
parents: 37381
diff changeset
336 #define FB_API_ERROR fb_api_error_quark()
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
337
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
338 typedef struct _FbApi FbApi;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
339 typedef struct _FbApiClass FbApiClass;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
340 typedef struct _FbApiPrivate FbApiPrivate;
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
341 typedef struct _FbApiEvent FbApiEvent;
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
342 typedef struct _FbApiMessage FbApiMessage;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
343 typedef struct _FbApiPresence FbApiPresence;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
344 typedef struct _FbApiThread FbApiThread;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
345 typedef struct _FbApiTyping FbApiTyping;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
346 typedef struct _FbApiUser FbApiUser;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
347
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
348 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
349 * FbApiError:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
350 * @FB_API_ERROR_GENERAL: General failure.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
351 * @FB_API_ERROR_AUTH: Authentication failure.
37377
c92bc4233941 facebook: fixed improper handling of queue errors
James Geboski <jgeboski@gmail.com>
parents: 37370
diff changeset
352 * @FB_API_ERROR_QUEUE: Queue failure.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
353 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
354 * The error codes for the #FB_API_ERROR domain.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
355 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
356 typedef enum
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
357 {
37306
7c454f51b56b facebook: handle authentication errors
James Geboski <jgeboski@gmail.com>
parents: 37304
diff changeset
358 FB_API_ERROR_GENERAL,
37377
c92bc4233941 facebook: fixed improper handling of queue errors
James Geboski <jgeboski@gmail.com>
parents: 37370
diff changeset
359 FB_API_ERROR_AUTH,
c92bc4233941 facebook: fixed improper handling of queue errors
James Geboski <jgeboski@gmail.com>
parents: 37370
diff changeset
360 FB_API_ERROR_QUEUE
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
361 } FbApiError;
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
362
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
363 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
364 * FbApiEventType:
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
365 * @FB_API_EVENT_TYPE_THREAD_TOPIC: The thread topic was changed.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
366 * @FB_API_EVENT_TYPE_THREAD_USER_ADDED: A thread user was added.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
367 * @FB_API_EVENT_TYPE_THREAD_USER_REMOVED: A thread user was removed.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
368 *
37361
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
369 * The #FbApiEvent types.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
370 */
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
371 typedef enum
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
372 {
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
373 FB_API_EVENT_TYPE_THREAD_TOPIC,
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
374 FB_API_EVENT_TYPE_THREAD_USER_ADDED,
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
375 FB_API_EVENT_TYPE_THREAD_USER_REMOVED
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
376 } FbApiEventType;
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
377
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
378 /**
37361
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
379 * FbApiMessageFlags:
37364
d8e50d403e82 facebook: display images in-line
James Geboski <jgeboski@gmail.com>
parents: 37361
diff changeset
380 * @FB_API_MESSAGE_FLAG_DONE: The text has been processed.
d8e50d403e82 facebook: display images in-line
James Geboski <jgeboski@gmail.com>
parents: 37361
diff changeset
381 * @FB_API_MESSAGE_FLAG_IMAGE: The text is a URL to an image.
37361
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
382 * @FB_API_MESSAGE_FLAG_SELF: The text is from the #FbApi user.
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
383 *
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
384 * The #FbApiMessage flags.
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
385 */
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
386 typedef enum
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
387 {
37364
d8e50d403e82 facebook: display images in-line
James Geboski <jgeboski@gmail.com>
parents: 37361
diff changeset
388 FB_API_MESSAGE_FLAG_DONE = 1 << 0,
d8e50d403e82 facebook: display images in-line
James Geboski <jgeboski@gmail.com>
parents: 37361
diff changeset
389 FB_API_MESSAGE_FLAG_IMAGE = 1 << 1,
d8e50d403e82 facebook: display images in-line
James Geboski <jgeboski@gmail.com>
parents: 37361
diff changeset
390 FB_API_MESSAGE_FLAG_SELF = 1 << 2
37361
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
391 } FbApiMessageFlags;
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
392
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
393 /**
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
394 * FbApi:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
395 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
396 * Represents a Facebook Messenger connection.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
397 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
398 struct _FbApi
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
399 {
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
400 /*< private >*/
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
401 GObject parent;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
402 FbApiPrivate *priv;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
403 };
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
404
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
405 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
406 * FbApiClass:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
407 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
408 * The base class for all #FbApi's.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
409 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
410 struct _FbApiClass
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
411 {
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
412 /*< private >*/
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
413 GObjectClass parent_class;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
414 };
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
415
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
416 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
417 * FbApiEvent:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
418 * @type: The #FbApiEventType.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
419 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
420 * @tid: The thread #FbId.
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
421 * @text: The event text.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
422 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
423 * Represents a Facebook update event.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
424 */
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
425 struct _FbApiEvent
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
426 {
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
427 FbApiEventType type;
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
428 FbId uid;
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
429 FbId tid;
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
430 gchar *text;
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
431 };
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
432
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
433 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
434 * FbApiMessage:
37361
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
435 * @flags: The #FbApiMessageFlags.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
436 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
437 * @tid: The thread #FbId.
37475
643d7b0aadbd facebook: preserve the timestamp on incoming messages
James Geboski <jgeboski@gmail.com>
parents: 37471
diff changeset
438 * @tstamp: The timestamp in milliseconds (UTC).
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
439 * @text: The message text.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
440 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
441 * Represents a Facebook user message.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
442 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
443 struct _FbApiMessage
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
444 {
37361
6545b86a0705 facebook: refactored for future inline images
James Geboski <jgeboski@gmail.com>
parents: 37359
diff changeset
445 FbApiMessageFlags flags;
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
446 FbId uid;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
447 FbId tid;
37475
643d7b0aadbd facebook: preserve the timestamp on incoming messages
James Geboski <jgeboski@gmail.com>
parents: 37471
diff changeset
448 gint64 tstamp;
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
449 gchar *text;
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
450 };
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
451
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
452 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
453 * FbApiPresence:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
454 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
455 * @active: #TRUE if the user is active, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
456 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
457 * Represents a Facebook presence message.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
458 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
459 struct _FbApiPresence
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
460 {
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
461 FbId uid;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
462 gboolean active;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
463 };
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
464
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
465 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
466 * FbApiThread:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
467 * @tid: The thread #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
468 * @topic: The topic.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
469 * @users: The #GSList of #FbApiUser's.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
470 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
471 * Represents a Facebook message thread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
472 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
473 struct _FbApiThread
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
474 {
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
475 FbId tid;
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
476 gchar *topic;
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
477 GSList *users;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
478 };
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
479
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
480 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
481 * FbApiTyping:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
482 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
483 * @state: #TRUE if the user is typing, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
484 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
485 * Represents a Facebook typing message.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
486 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
487 struct _FbApiTyping
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
488 {
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
489 FbId uid;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
490 gboolean state;
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
491 };
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
492
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
493 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
494 * FbApiUser:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
495 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
496 * @name: The name of the user.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
497 * @icon: The icon URL.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
498 * @csum: The checksum of @icon.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
499 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
500 * Represents a Facebook user.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
501 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
502 struct _FbApiUser
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
503 {
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
504 FbId uid;
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
505 gchar *name;
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
506 gchar *icon;
37257
5ba291680ac4 facebook: compare checksums before fetching icons
James Geboski <jgeboski@gmail.com>
parents: 37255
diff changeset
507 gchar *csum;
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
508 };
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
509
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
510 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
511 * fb_api_get_type:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
512 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
513 * Returns: The #GType for an #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
514 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
515 GType
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
516 fb_api_get_type(void);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
517
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
518 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
519 * fb_api_error_quark:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
520 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
521 * Gets the #GQuark of the domain of API errors.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
522 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
523 * Returns: The #GQuark of the domain.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
524 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
525 GQuark
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
526 fb_api_error_quark(void);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
527
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
528 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
529 * fb_api_new:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
530 * @gc: The #PurpleConnection.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
531 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
532 * Creates a new #FbApi. The returned #FbApi should be freed with
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
533 * #g_object_unref() when no longer needed.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
534 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
535 * Returns: The new #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
536 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
537 FbApi *
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
538 fb_api_new(PurpleConnection *gc);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
539
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
540 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
541 * fb_api_rehash:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
542 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
543 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
544 * Rehashes and updates internal data of the #FbApi. This should be
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
545 * called whenever properties are modified.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
546 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
547 void
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
548 fb_api_rehash(FbApi *api);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
549
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
550 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
551 * fb_api_is_invisible:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
552 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
553 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
554 * Determines if the user of the #FbApi is invisible.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
555 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
556 * Returns: #TRUE if the #FbApi user is invisible, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
557 */
37328
4c091ac7c55a facebook: implemented the invisible presence state
James Geboski <jgeboski@gmail.com>
parents: 37326
diff changeset
558 gboolean
4c091ac7c55a facebook: implemented the invisible presence state
James Geboski <jgeboski@gmail.com>
parents: 37326
diff changeset
559 fb_api_is_invisible(FbApi *api);
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
560
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
561 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
562 * fb_api_error:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
563 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
564 * @error: The #FbApiError.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
565 * @format: The format string literal.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
566 * @...: The arguments for @format.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
567 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
568 * Emits an #FbApiError.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
569 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
570 void
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
571 fb_api_error(FbApi *api, FbApiError error, const gchar *format, ...)
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
572 G_GNUC_PRINTF(3, 4);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
573
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
574 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
575 * fb_api_error_emit:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
576 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
577 * @error: The #GError.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
578 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
579 * Emits a #GError on an #FbApiError.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
580 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
581 void
37316
9e3520d6ec49 facebook: refactored and improved JSON error handling
James Geboski <jgeboski@gmail.com>
parents: 37315
diff changeset
582 fb_api_error_emit(FbApi *api, GError *error);
9e3520d6ec49 facebook: refactored and improved JSON error handling
James Geboski <jgeboski@gmail.com>
parents: 37315
diff changeset
583
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
584 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
585 * fb_api_auth:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
586 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
587 * @user: The Facebook user name, email, or phone number.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
588 * @pass: The Facebook password.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
589 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
590 * Sends an authentication request to Facebook. This will obtain
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
591 * session information, which is required for all other requests.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
592 */
37316
9e3520d6ec49 facebook: refactored and improved JSON error handling
James Geboski <jgeboski@gmail.com>
parents: 37315
diff changeset
593 void
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
594 fb_api_auth(FbApi *api, const gchar *user, const gchar *pass);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
595
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
596 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
597 * fb_api_contact:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
598 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
599 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
600 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
601 * Sends a contact request. This will obtain the general information of
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
602 * a single contact.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
603 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
604 void
37338
e4d77bc25235 facebook: add and alias non-friend buddies
James Geboski <jgeboski@gmail.com>
parents: 37337
diff changeset
605 fb_api_contact(FbApi *api, FbId uid);
e4d77bc25235 facebook: add and alias non-friend buddies
James Geboski <jgeboski@gmail.com>
parents: 37337
diff changeset
606
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
607 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
608 * fb_api_contacts:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
609 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
610 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
611 * Sends a contacts request. This will obtain a full list of detailed
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
612 * contact information about the friends of the #FbApi user.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
613 */
37338
e4d77bc25235 facebook: add and alias non-friend buddies
James Geboski <jgeboski@gmail.com>
parents: 37337
diff changeset
614 void
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
615 fb_api_contacts(FbApi *api);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
616
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
617 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
618 * fb_api_connect:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
619 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
620 * @invisible: #TRUE to make the user invisible, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
621 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
622 * Initializes and establishes the underlying MQTT connection.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
623 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
624 void
37328
4c091ac7c55a facebook: implemented the invisible presence state
James Geboski <jgeboski@gmail.com>
parents: 37326
diff changeset
625 fb_api_connect(FbApi *api, gboolean invisible);
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
626
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
627 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
628 * fb_api_disconnect:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
629 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
630 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
631 * Closes the underlying MQTT connection.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
632 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
633 void
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
634 fb_api_disconnect(FbApi *api);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
635
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
636 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
637 * fb_api_message:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
638 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
639 * @id: The user or thread #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
640 * @thread: #TRUE if @id is a thread, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
641 * @text: The message text.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
642 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
643 * Sends a message as the user of the #FbApi to a user or a thread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
644 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
645 void
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
646 fb_api_message(FbApi *api, FbId id, gboolean thread, const gchar *text);
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
647
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
648 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
649 * fb_api_publish:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
650 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
651 * @topic: The topic.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
652 * @format: The format string literal.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
653 * @...: The arguments for @format.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
654 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
655 * Publishes an MQTT message.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
656 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
657 void
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
658 fb_api_publish(FbApi *api, const gchar *topic, const gchar *format, ...)
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
659 G_GNUC_PRINTF(3, 4);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
660
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
661 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
662 * fb_api_read:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
663 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
664 * @id: The user or thread #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
665 * @thread: #TRUE if @id is a thread, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
666 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
667 * Marks a message thread as read.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
668 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
669 void
37304
168a859417f6 facebook: implemented marking threads as read
James Geboski <jgeboski@gmail.com>
parents: 37299
diff changeset
670 fb_api_read(FbApi *api, FbId id, gboolean thread);
168a859417f6 facebook: implemented marking threads as read
James Geboski <jgeboski@gmail.com>
parents: 37299
diff changeset
671
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
672 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
673 * fb_api_unread:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
674 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
675 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
676 * Sends an unread message request.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
677 */
37304
168a859417f6 facebook: implemented marking threads as read
James Geboski <jgeboski@gmail.com>
parents: 37299
diff changeset
678 void
37326
c768f27357ec facebook: implemented the retrieval of unread messages
James Geboski <jgeboski@gmail.com>
parents: 37325
diff changeset
679 fb_api_unread(FbApi *api);
c768f27357ec facebook: implemented the retrieval of unread messages
James Geboski <jgeboski@gmail.com>
parents: 37325
diff changeset
680
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
681 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
682 * fb_api_thread:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
683 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
684 * @tid: The thread #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
685 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
686 * Sends a thread request. This will obtain the general information of
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
687 * a single thread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
688 */
37326
c768f27357ec facebook: implemented the retrieval of unread messages
James Geboski <jgeboski@gmail.com>
parents: 37325
diff changeset
689 void
37332
c4f2fd45ffba facebook: refactored internal API naming
James Geboski <jgeboski@gmail.com>
parents: 37330
diff changeset
690 fb_api_thread(FbApi *api, FbId tid);
c4f2fd45ffba facebook: refactored internal API naming
James Geboski <jgeboski@gmail.com>
parents: 37330
diff changeset
691
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
692 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
693 * fb_api_thread_create:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
694 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
695 * @uids: The #GSList of #FbId's.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
696 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
697 * Sends a thread creation request. In order to create a thread, there
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
698 * must be at least two other users in @uids.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
699 */
37332
c4f2fd45ffba facebook: refactored internal API naming
James Geboski <jgeboski@gmail.com>
parents: 37330
diff changeset
700 void
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
701 fb_api_thread_create(FbApi *api, GSList *uids);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
702
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
703 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
704 * fb_api_thread_invite:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
705 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
706 * @tid: The thread #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
707 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
708 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
709 * Sends a thread user invitation request.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
710 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
711 void
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
712 fb_api_thread_invite(FbApi *api, FbId tid, FbId uid);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
713
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
714 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
715 * fb_api_thread_remove:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
716 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
717 * @tid: The thread #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
718 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
719 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
720 * Sends a thread user removal request.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
721 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
722 void
37284
53cb588d8760 facebook: implemented kicking/leaving group chats
James Geboski <jgeboski@gmail.com>
parents: 37269
diff changeset
723 fb_api_thread_remove(FbApi *api, FbId tid, FbId uid);
53cb588d8760 facebook: implemented kicking/leaving group chats
James Geboski <jgeboski@gmail.com>
parents: 37269
diff changeset
724
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
725 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
726 * fb_api_thread_topic:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
727 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
728 * @tid: The thread #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
729 * @topic: The topic.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
730 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
731 * Sends a thread topic change request.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
732 */
37284
53cb588d8760 facebook: implemented kicking/leaving group chats
James Geboski <jgeboski@gmail.com>
parents: 37269
diff changeset
733 void
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
734 fb_api_thread_topic(FbApi *api, FbId tid, const gchar *topic);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
735
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
736 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
737 * fb_api_threads:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
738 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
739 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
740 * Sends a threads request. This will obtain a full list of detailed
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
741 * thread information about the threads of the #FbApi user.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
742 */
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
743 void
37332
c4f2fd45ffba facebook: refactored internal API naming
James Geboski <jgeboski@gmail.com>
parents: 37330
diff changeset
744 fb_api_threads(FbApi *api);
c4f2fd45ffba facebook: refactored internal API naming
James Geboski <jgeboski@gmail.com>
parents: 37330
diff changeset
745
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
746 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
747 * fb_api_typing:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
748 * @api: The #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
749 * @uid: The user #FbId.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
750 * @state: #TRUE if the #FbApi user is typing, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
751 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
752 * Sends a typing state message for the user of the #FbApi.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
753 */
37332
c4f2fd45ffba facebook: refactored internal API naming
James Geboski <jgeboski@gmail.com>
parents: 37330
diff changeset
754 void
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
755 fb_api_typing(FbApi *api, FbId uid, gboolean state);
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
756
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
757 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
758 * fb_api_event_dup:
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
759 * @event: The #FbApiEvent or #NULL.
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
760 * @deep: #TRUE to duplicate allocated data, otherwise #FALSE.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
761 *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
762 * Duplicates an #FbApiEvent. If @event is #NULL, a new zero filled
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
763 * #FbApiEvent is returned. The returned #FbApiEvent should be freed
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
764 * with #fb_api_event_free() when no longer needed.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
765 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
766 * Returns: The new #FbApiEvent.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
767 */
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
768 FbApiEvent *
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
769 fb_api_event_dup(const FbApiEvent *event, gboolean deep);
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
770
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
771 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
772 * fb_api_event_reset:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
773 * @event: The #FbApiEvent.
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
774 * @deep: #TRUE to free allocated data, otherwise #FALSE.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
775 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
776 * Resets an #FbApiEvent.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
777 */
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
778 void
37380
06ad6f6aa43a facebook: implemented group chat topic change events
James Geboski <jgeboski@gmail.com>
parents: 37377
diff changeset
779 fb_api_event_reset(FbApiEvent *event, gboolean deep);
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
780
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
781 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
782 * fb_api_event_free:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
783 * @event: The #FbApiEvent.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
784 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
785 * Frees all memory used by the #FbApiEvent.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
786 */
37337
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
787 void
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
788 fb_api_event_free(FbApiEvent *event);
aecff282de76 facebook: handle group chat events
James Geboski <jgeboski@gmail.com>
parents: 37332
diff changeset
789
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
790 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
791 * fb_api_message_dup:
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
792 * @msg: The #FbApiMessage or #NULL.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
793 * @deep: #TRUE to duplicate allocated data, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
794 *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
795 * Duplicates an #FbApiMessage. If @msg is #NULL, a new zero filled
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
796 * #FbApiMessage is returned. The returned #FbApiMessage should be
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
797 * freed with #fb_api_message_free() when no longer needed.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
798 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
799 * Returns: The new #FbApiMessage.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
800 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
801 FbApiMessage *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
802 fb_api_message_dup(const FbApiMessage *msg, gboolean deep);
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
803
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
804 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
805 * fb_api_message_reset:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
806 * @msg: The #FbApiMessage.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
807 * @deep: #TRUE to free allocated data, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
808 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
809 * Resets an #FbApiMessage.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
810 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
811 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
812 fb_api_message_reset(FbApiMessage *msg, gboolean deep);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
813
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
814 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
815 * fb_api_message_free:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
816 * @msg: The #FbApiMessage.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
817 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
818 * Frees all memory used by the #FbApiMessage.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
819 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
820 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
821 fb_api_message_free(FbApiMessage *msg);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
822
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
823 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
824 * fb_api_presence_dup:
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
825 * @pres: The #FbApiPresence or #NULL.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
826 *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
827 * Duplicates an #FbApiPresence. If @pres is #NULL, a new zero filled
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
828 * #FbApiPresence is returned. The returned #FbApiPresence should be
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
829 * freed with #fb_api_presence_free() when no longer needed.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
830 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
831 * Returns: The new #FbApiPresence.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
832 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
833 FbApiPresence *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
834 fb_api_presence_dup(const FbApiPresence *pres);
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
835
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
836 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
837 * fb_api_presence_reset:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
838 * @pres: The #FbApiPresence.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
839 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
840 * Resets an #FbApiPresence.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
841 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
842 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
843 fb_api_presence_reset(FbApiPresence *pres);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
844
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
845 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
846 * fb_api_presence_free:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
847 * @pres: The #FbApiPresence.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
848 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
849 * Frees all memory used by the #FbApiPresence.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
850 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
851 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
852 fb_api_presence_free(FbApiPresence *pres);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
853
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
854 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
855 * fb_api_thread_dup:
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
856 * @thrd: The #FbApiThread or #NULL.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
857 * @deep: #TRUE to duplicate allocated data, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
858 *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
859 * Duplicates an #FbApiThread. If @thrd is #NULL, a new zero filled
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
860 * #FbApiThread is returned. The returned #FbApiThread should be freed
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
861 * with #fb_api_thread_free() when no longer needed.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
862 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
863 * Returns: The new #FbApiThread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
864 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
865 FbApiThread *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
866 fb_api_thread_dup(const FbApiThread *thrd, gboolean deep);
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
867
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
868 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
869 * fb_api_thread_reset:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
870 * @thrd: The #FbApiThread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
871 * @deep: #TRUE to free allocated data, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
872 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
873 * Resets an #FbApiThread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
874 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
875 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
876 fb_api_thread_reset(FbApiThread *thrd, gboolean deep);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
877
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
878 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
879 * fb_api_thread_free:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
880 * @thrd: The #FbApiThread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
881 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
882 * Frees all memory used by the #FbApiThread.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
883 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
884 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
885 fb_api_thread_free(FbApiThread *thrd);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
886
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
887 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
888 * fb_api_typing_dup:
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
889 * @typg: The #FbApiTyping or #NULL.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
890 *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
891 * Duplicates an #FbApiTyping. If @typg is #NULL, a new zero filled
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
892 * #FbApiTyping is returned. The returned #FbApiTyping should be freed
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
893 * with #fb_api_typing_free() when no longer needed.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
894 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
895 * Returns: The new #FbApiTyping.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
896 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
897 FbApiTyping *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
898 fb_api_typing_dup(const FbApiTyping *typg);
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
899
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
900 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
901 * fb_api_typing_reset:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
902 * @typg: The #FbApiTyping.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
903 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
904 * Resets an #FbApiTyping.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
905 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
906 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
907 fb_api_typing_reset(FbApiTyping *typg);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
908
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
909 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
910 * fb_api_typing_free:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
911 * @typg: The #FbApiTyping.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
912 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
913 * Frees all memory used by the #FbApiTyping.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
914 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
915 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
916 fb_api_typing_free(FbApiTyping *typg);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
917
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
918 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
919 * fb_api_user_dup:
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
920 * @user: The #FbApiUser or #NULL.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
921 * @deep: #TRUE to duplicate allocated data, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
922 *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
923 * Duplicates an #FbApiUser. If @user is #NULL, a new zero filled
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
924 * #FbApiUser is returned. The returned #FbApiUser should be freed with
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
925 * #fb_api_user_free() when no longer needed.
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
926 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
927 * Returns: The new #FbApiUser.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
928 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
929 FbApiUser *
37365
b70cc4d02d68 facebook: refactored data structure usage
James Geboski <jgeboski@gmail.com>
parents: 37364
diff changeset
930 fb_api_user_dup(const FbApiUser *user, gboolean deep);
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
931
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
932 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
933 * fb_api_user_reset:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
934 * @user: The #FbApiUser.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
935 * @deep: #TRUE to free allocated data, otherwise #FALSE.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
936 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
937 * Resets an #FbApiUser.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
938 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
939 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
940 fb_api_user_reset(FbApiUser *user, gboolean deep);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
941
37347
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
942 /**
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
943 * fb_api_user_free:
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
944 * @user: The #FbApiUser.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
945 *
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
946 * Frees all memory used by the #FbApiUser.
34d43f8c10d1 facebook: added GTK-Doc for the internal APIs
James Geboski <jgeboski@gmail.com>
parents: 37342
diff changeset
947 */
37269
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
948 void
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
949 fb_api_user_free(FbApiUser *user);
129e87951cd6 facebook: fixed JSON parsing for older json-glib versions
James Geboski <jgeboski@gmail.com>
parents: 37265
diff changeset
950
37250
3f5570a17b15 facebook: initial import of bitlbee-facebook
James Geboski <jgeboski@gmail.com>
parents:
diff changeset
951 #endif /* _FACEBOOK_API_H_ */

mercurial