satoriapi.c

Sat, 09 Aug 2025 00:19:03 +0800

author
William Goodspeed <goodspeed@mailo.cat>
date
Sat, 09 Aug 2025 00:19:03 +0800
changeset 1
98bcf06036b8
parent 0
cc7c1f9d20f7
child 3
33a7b189a2c6
permissions
-rw-r--r--

Another Minor Milestone Reached, Conversation Creation & Recv works now

0
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
1 /*
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
2 * Purple Satori Plugin - Satori Protocol Plugin for Purple3
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
3 * Copyright (C) 2025 Gong Zhile
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
4 *
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
9 *
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
13 * Lesser General Public License for more details.
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
14 *
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
16 * License along with this library; if not, see <https://www.gnu.org/licenses/>.
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
17 */
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
18
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
19 #include <glib.h>
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
20 #include <gio/gio.h>
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
21 #include <glib-object.h>
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
22 #include <json-glib/json-glib.h>
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
23 #include <libsoup/soup-message.h>
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
24 #include <libsoup/soup-session.h>
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
25
1
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
26 #include "purplesatoriconnection.h"
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
27 #include "purplesatoriplugin.h"
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
28 #include "satorimessage.h"
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
29 #include "satoritypes.h"
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
30 #include "satoriapi.h"
0
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
31
1
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
32 /******************************************************************************
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
33 * Purple Integration Helpers
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
34 *****************************************************************************/
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
35
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
36 PurpleConversationType
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
37 satoir_channel_type_to_conversation_type(SatoriChannelType t)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
38 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
39 switch (t) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
40 case SATORI_CHANNEL_DIRECT:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
41 return PURPLE_CONVERSATION_TYPE_DM;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
42 case SATORI_CHANNEL_TEXT:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
43 return PURPLE_CONVERSATION_TYPE_CHANNEL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
44 case SATORI_CHANNEL_VOICE:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
45 case SATORI_CHANNEL_CATEGORY:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
46 return 0; /* Unsupported */
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
47 default:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
48 return 0;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
49 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
50 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
51
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
52 void
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
53 purple_satori_add_person_from_user(PurpleSatoriConnection *con, SatoriUser *user)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
54 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
55 PurpleAccount *acc = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
56 purple_connection_get_account(PURPLE_CONNECTION(con));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
57 PurpleContactManager *manager = purple_contact_manager_get_default();
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
58
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
59 PurpleContact *contact = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
60 PurpleContactInfo *info = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
61 PurplePresence *presence = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
62 PurplePerson *person = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
63
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
64 gboolean new_contact = FALSE, new_person = FALSE;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
65
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
66 contact = purple_contact_manager_find_with_id(manager, acc, user->id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
67 if (!PURPLE_IS_CONTACT(contact)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
68 contact = purple_contact_new(acc, user->id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
69 new_contact = TRUE;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
70 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
71
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
72 /* Initialize PurpleContactInfo */
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
73 info = PURPLE_CONTACT_INFO(contact);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
74 purple_contact_info_set_display_name(info, user->nick ?
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
75 user->nick : user->name);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
76
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
77 /* Initialize PurplePerson */
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
78 person = purple_contact_info_get_person(info);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
79 if (!PURPLE_IS_PERSON(person)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
80 person = g_object_new(PURPLE_TYPE_PERSON,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
81 "id", user->id, NULL);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
82 new_person = TRUE;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
83 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
84
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
85 if (new_person) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
86 purple_person_add_contact_info(person, info);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
87 purple_contact_info_set_person(info, person);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
88 g_clear_object(&person);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
89 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
90
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
91 /* Initialize PurplePresence */
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
92 presence = purple_contact_info_get_presence(info);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
93 purple_presence_set_primitive(presence,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
94 PURPLE_PRESENCE_PRIMITIVE_AVAILABLE);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
95
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
96 if (new_contact) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
97 purple_contact_manager_add(manager, contact);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
98 g_clear_object(&contact);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
99 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
100 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
101
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
102 PurpleConversation *
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
103 purple_satori_add_conversation_from_chan(PurpleSatoriConnection *con,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
104 SatoriChannel *chan)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
105 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
106 PurpleAccount *acc = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
107 purple_connection_get_account(PURPLE_CONNECTION(con));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
108 PurpleConversationManager *manager = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
109 purple_conversation_manager_get_default();
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
110 PurpleConversation *conversation = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
111
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
112 conversation = purple_conversation_manager_find_with_id(manager, acc,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
113 chan->id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
114
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
115 if (!PURPLE_IS_CONVERSATION(conversation)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
116 PurpleConversationType type = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
117 satoir_channel_type_to_conversation_type(chan->type);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
118 if (!type) return NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
119
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
120 conversation = g_object_new(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
121 PURPLE_TYPE_CONVERSATION,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
122 "account", acc,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
123 "id", chan->id,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
124 "title", chan->name ? chan->name : "Unnamed Channel",
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
125 "type", type,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
126 "online", TRUE,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
127 NULL);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
128
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
129 purple_conversation_manager_add(manager, conversation);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
130 g_object_unref(conversation);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
131 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
132
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
133 purple_conversation_set_online(conversation, TRUE);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
134 return conversation;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
135 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
136
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
137 PurpleConversationMember *
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
138 purple_satori_add_conversation_member_from_user(PurpleSatoriConnection *con,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
139 PurpleConversation *conversation,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
140 SatoriUser *user)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
141 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
142 PurpleAccount *acc = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
143 purple_connection_get_account(PURPLE_CONNECTION(con));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
144 PurpleContactManager *manager = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
145 purple_contact_manager_get_default();
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
146 PurpleContact *contact = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
147
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
148 gboolean found = TRUE;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
149 contact = purple_contact_manager_find_with_id(manager, acc, user->id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
150
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
151 if (!PURPLE_IS_CONTACT(contact)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
152 contact = purple_contact_new(acc, user->id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
153 found = FALSE;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
154 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
155
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
156 purple_contact_info_set_display_name(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
157 PURPLE_CONTACT_INFO(contact),
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
158 user->nick ? user->nick : user->name);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
159
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
160 PurplePresence *presence = purple_contact_info_get_presence(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
161 PURPLE_CONTACT_INFO(contact));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
162 purple_presence_set_primitive(presence,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
163 PURPLE_PRESENCE_PRIMITIVE_AVAILABLE);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
164
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
165 if (!found)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
166 purple_contact_manager_add(manager, contact);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
167
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
168 PurpleConversationMembers *existing_members = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
169 purple_conversation_get_members(conversation);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
170 PurpleConversationMembers *new_members = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
171 PurpleConversationMember *member = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
172
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
173 member = purple_conversation_members_find_member(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
174 existing_members, PURPLE_CONTACT_INFO(contact));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
175
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
176 if (!PURPLE_IS_CONVERSATION_MEMBER(member)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
177 new_members = purple_conversation_members_new();
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
178 member = purple_conversation_members_add_member(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
179 new_members, PURPLE_CONTACT_INFO(contact), FALSE, NULL);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
180
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
181 purple_conversation_members_extend(existing_members, new_members);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
182 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
183
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
184 g_clear_object(&contact);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
185 return member;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
186 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
187
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
188 /******************************************************************************
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
189 * Buddy/Friend List Synchronization
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
190 *****************************************************************************/
0
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
191
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
192 static void
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
193 satori_on_buddy_contacts_resp(SoupSession *session,
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
194 GAsyncResult *res,
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
195 PurpleSatoriConnection *con)
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
196 {
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
197 GError *error = NULL;
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
198 GBytes *resp = soup_session_send_and_read_finish(session, res, &error);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
199
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
200 if (error) {
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
201 purple_debug_error("satori",
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
202 "refresh_buddy_contacts failed: %s",
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
203 error->message);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
204 if (resp)
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
205 g_bytes_unref(resp);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
206 g_error_free(error);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
207 return;
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
208 }
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
209
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
210 gsize sz;
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
211 const gchar *ptr = g_bytes_get_data(resp, &sz), *next = NULL;
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
212
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
213 JsonParser *parser = json_parser_new();
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
214 if (!json_parser_load_from_data(parser, ptr, sz, NULL)) {
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
215 purple_debug_warning("satori", "bad json received from ws");
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
216 goto finish;
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
217 }
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
218
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
219 JsonObject *root = json_node_get_object(json_parser_get_root(parser));
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
220 JsonArray *data = json_object_get_array_member(root, "data");
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
221 next = json_object_get_string_member_with_default(
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
222 root, "next", NULL);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
223
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
224 if (!data) goto finish;
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
225
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
226 for (guint i = 0; i < json_array_get_length(data); i++) {
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
227 JsonObject *user_obj = json_array_get_object_element(data, i);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
228
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
229 SatoriUser user = { 0 };
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
230 satori_user_from_json(user_obj, &user);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
231
1
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
232 purple_satori_add_person_from_user(con, &user);
0
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
233 }
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
234
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
235 finish:
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
236 if (next)
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
237 satori_refresh_buddy_contacts(con, next);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
238
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
239 g_bytes_unref(resp);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
240 g_object_unref(parser);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
241 }
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
242
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
243 void
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
244 satori_refresh_buddy_contacts(PurpleSatoriConnection *con, const gchar *next)
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
245 {
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
246 GBytes *data = NULL;
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
247
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
248 {
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
249 JB_BEGIN_OBJ(b);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
250 if (next)
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
251 JBA(b, "next", next);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
252 JB_END_OBJ(data, b);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
253 }
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
254
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
255 SoupMessage *msg = satori_message_new(
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
256 "POST", SATORI_ENDPOINT("/v1/friend.list"));
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
257 soup_message_set_request_body_from_bytes(msg, "application/json", data);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
258
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
259 purple_satori_connection_send_and_read_async(
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
260 con, msg, 0, NULL,
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
261 (GAsyncReadyCallback) satori_on_buddy_contacts_resp,
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
262 PURPLE_SATORI_CONNECTION(con));
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
263
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
264 g_object_unref(msg);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
265 g_bytes_unref(data);
cc7c1f9d20f7 Initial Commit
William Goodspeed <goodspeed@mailo.cat>
parents:
diff changeset
266 }
1
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
267
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
268 /******************************************************************************
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
269 * Group/Room List (Recursive) Synchronization
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
270 *****************************************************************************/
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
271
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
272 static void satori_refresh_guild_channels(PurpleSatoriConnection *,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
273 const gchar *,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
274 const gchar *);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
275
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
276 static void
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
277 satori_on_guild_channels_resp(SoupSession *session,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
278 GAsyncResult *res,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
279 PurpleSatoriConnection *con)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
280 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
281 GError *error = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
282 GBytes *resp = soup_session_send_and_read_finish(session, res, &error);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
283
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
284 if (error) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
285 purple_debug_error("satori",
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
286 "refresh_conversations failed: %s",
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
287 error->message);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
288 if (resp)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
289 g_bytes_unref(resp);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
290 g_error_free(error);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
291 return;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
292 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
293
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
294 gsize sz;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
295 const gchar *ptr = g_bytes_get_data(resp, &sz);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
296
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
297 JsonParser *parser = json_parser_new();
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
298 if (!json_parser_load_from_data(parser, ptr, sz, NULL)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
299 purple_debug_warning("satori", "bad json received from ws");
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
300 goto finish;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
301 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
302
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
303 JsonObject *root = json_node_get_object(json_parser_get_root(parser));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
304 JsonArray *data = json_object_get_array_member(root, "data");
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
305
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
306 if (!data) goto finish;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
307
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
308 for (guint i = 0; i < json_array_get_length(data); i++) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
309 JsonObject *chan_obj = json_array_get_object_element(data, i);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
310
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
311 SatoriChannel chan = { 0 };
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
312 satori_channel_from_json(chan_obj, &chan);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
313
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
314 purple_satori_add_conversation_from_chan(con, &chan);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
315 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
316
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
317 finish:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
318 /* if (next) */
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
319 /* satori_refresh_guild_channels(con, next); */
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
320
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
321 g_bytes_unref(resp);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
322 g_object_unref(parser);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
323 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
324
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
325 static void
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
326 satori_refresh_guild_channels(PurpleSatoriConnection *con,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
327 const gchar *guild_id,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
328 const gchar *next)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
329 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
330 GBytes *data = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
331
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
332 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
333 JB_BEGIN_OBJ(b);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
334 JBA(b, "guild_id", guild_id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
335 if (next)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
336 JBA(b, "next", next);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
337 JB_END_OBJ(data, b);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
338 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
339
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
340 SoupMessage *msg = satori_message_new(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
341 "POST", SATORI_ENDPOINT("/v1/channel.list"));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
342 soup_message_set_request_body_from_bytes(msg, "application/json", data);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
343
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
344 purple_satori_connection_send_and_read_async(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
345 con, msg, 0, NULL,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
346 (GAsyncReadyCallback) satori_on_guild_channels_resp,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
347 PURPLE_SATORI_CONNECTION(con));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
348
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
349 g_object_unref(msg);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
350 g_bytes_unref(data);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
351 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
352
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
353 static void
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
354 satori_on_guild_list_resp(SoupSession *session,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
355 GAsyncResult *res,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
356 PurpleSatoriConnection *con)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
357 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
358 GError *error = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
359 GBytes *resp = soup_session_send_and_read_finish(session, res, &error);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
360
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
361 if (error) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
362 purple_debug_error("satori",
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
363 "refresh_conversations failed: %s",
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
364 error->message);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
365 if (resp)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
366 g_bytes_unref(resp);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
367 g_error_free(error);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
368 return;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
369 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
370
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
371 gsize sz;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
372 const gchar *ptr = g_bytes_get_data(resp, &sz), *next = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
373
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
374 JsonParser *parser = json_parser_new();
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
375 if (!json_parser_load_from_data(parser, ptr, sz, NULL)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
376 purple_debug_warning("satori", "bad json received from ws");
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
377 goto finish;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
378 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
379
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
380 JsonObject *root = json_node_get_object(json_parser_get_root(parser));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
381 JsonArray *data = json_object_get_array_member(root, "data");
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
382 next = json_object_get_string_member_with_default(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
383 root, "next", NULL);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
384
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
385 if (!data) goto finish;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
386
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
387 for (guint i = 0; i < json_array_get_length(data); i++) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
388 JsonObject *guild_obj = json_array_get_object_element(data, i);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
389 satori_refresh_guild_channels(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
390 con,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
391 json_object_get_string_member(guild_obj, "id"),
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
392 NULL);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
393 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
394
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
395 finish:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
396 if (next)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
397 satori_refresh_conversations(con, next);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
398
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
399 g_bytes_unref(resp);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
400 g_object_unref(parser);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
401 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
402
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
403 void
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
404 satori_refresh_conversations(PurpleSatoriConnection *con, const gchar *next)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
405 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
406 GBytes *data = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
407
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
408 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
409 JB_BEGIN_OBJ(b);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
410 if (next)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
411 JBA(b, "next", next);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
412 JB_END_OBJ(data, b);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
413 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
414
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
415 SoupMessage *msg = satori_message_new(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
416 "POST", SATORI_ENDPOINT("/v1/guild.list"));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
417 soup_message_set_request_body_from_bytes(msg, "application/json", data);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
418
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
419 purple_satori_connection_send_and_read_async(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
420 con, msg, 0, NULL,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
421 (GAsyncReadyCallback) satori_on_guild_list_resp,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
422 PURPLE_SATORI_CONNECTION(con));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
423
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
424 g_object_unref(msg);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
425 g_bytes_unref(data);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
426 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
427
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
428 typedef struct {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
429 PurpleSatoriConnection *con;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
430 SatoriUser user;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
431 GTask *task;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
432 } SatoriOnDmChannelData;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
433
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
434 static void
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
435 satori_on_dm_channel(SoupSession *session,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
436 GAsyncResult *res,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
437 SatoriOnDmChannelData *dptr)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
438 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
439 GError *error = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
440 GBytes *resp = soup_session_send_and_read_finish(session, res, &error);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
441
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
442 if (error) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
443 purple_debug_error("satori",
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
444 "create_dm_channel failed: %s",
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
445 error->message);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
446 if (resp)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
447 g_bytes_unref(resp);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
448
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
449 g_task_return_error(dptr->task, error);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
450 goto cleanup;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
451 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
452
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
453 gsize sz;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
454 const gchar *ptr = g_bytes_get_data(resp, &sz);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
455
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
456 JsonParser *parser = json_parser_new();
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
457 if (!json_parser_load_from_data(parser, ptr, sz, NULL)) {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
458 purple_debug_warning("satori", "bad json received from api");
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
459 g_task_return_new_error_literal(dptr->task, PURPLE_SATORI_DOMAIN, 0,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
460 "bad json received from api");
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
461 goto cleanup;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
462 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
463
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
464 JsonObject *root = json_node_get_object(json_parser_get_root(parser));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
465
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
466 SatoriChannel chan;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
467 satori_channel_from_json(root, &chan);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
468
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
469 PurpleConversation *conversation = \
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
470 purple_satori_add_conversation_from_chan(dptr->con, &chan);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
471
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
472 if (!chan.name)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
473 purple_conversation_set_title(conversation, dptr->user.name);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
474
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
475 purple_satori_add_conversation_member_from_user(dptr->con, conversation,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
476 &dptr->user);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
477
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
478 g_task_return_pointer(dptr->task, conversation, g_object_unref);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
479 g_object_unref(parser);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
480 cleanup:
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
481 g_clear_object(&dptr->task);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
482 g_free((gchar *) dptr->user.name);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
483 g_free((gchar *) dptr->user.id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
484 g_free(dptr);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
485 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
486
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
487 void
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
488 satori_create_dm_channel(PurpleSatoriConnection *con,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
489 SatoriUser *user,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
490 GTask *task)
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
491 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
492 GBytes *data = NULL;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
493
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
494 {
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
495 JB_BEGIN_OBJ(b);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
496 JBA(b, "user_id", user->id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
497 JB_END_OBJ(data, b);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
498 }
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
499
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
500 SoupMessage *msg = satori_message_new(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
501 "POST", SATORI_ENDPOINT("/v1/user.channel.create"));
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
502 soup_message_set_request_body_from_bytes(msg, "application/json", data);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
503
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
504 SatoriOnDmChannelData *dptr = g_new0(SatoriOnDmChannelData, 1);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
505 dptr->user.name = dptr->user.nick = g_strdup(user->name);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
506 dptr->user.id = g_strdup(user->id);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
507 dptr->task = task;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
508 dptr->con = con;
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
509
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
510 purple_satori_connection_send_and_read_async(
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
511 con, msg, 0, NULL,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
512 (GAsyncReadyCallback) satori_on_dm_channel,
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
513 dptr);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
514
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
515 g_object_unref(msg);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
516 g_bytes_unref(data);
98bcf06036b8 Another Minor Milestone Reached, Conversation Creation & Recv works now
William Goodspeed <goodspeed@mailo.cat>
parents: 0
diff changeset
517 }

mercurial