Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dequis/purple-facebook.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjgeboski <jgeboski@gmail.com>2015-08-12 03:04:06 +0300
committerjgeboski <jgeboski@gmail.com>2015-08-12 03:04:06 +0300
commit635a32f8a6a1264db5bf8ef7308213e8ba11485a (patch)
treeb482ad0ce98b02a69148d8761d5acfa187f709d0
parent7443c55ec21c4d1475d834fd82348f8e2e14624a (diff)
VERSION: updated to 3d30d24fdbef3d30d24fdbef
-rw-r--r--ChangeLog19
-rw-r--r--VERSION2
-rw-r--r--include/purple-compat.h118
-rw-r--r--patches/02-plugin.patch83
4 files changed, 138 insertions, 84 deletions
diff --git a/ChangeLog b/ChangeLog
index 750ecef..772e16a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+purple-facebook-3d30d24fdbef (2015-08-11):
+ - Add and alias non-friend buddies
+ - Added support for all XMA messages
+ - Depend on autoconf-2.64
+ - Fixed account information not being set correctly
+ - Fixed all JSON arrays being required
+ - Fixed issues and leaks with API error handling
+ - Fixed several issues with room lists
+ - Fixed the printing of invalid JSON type names
+ - Handle group chat events (additions/removals)
+ - Implemented self messages
+ - Implemented the invisible presence state
+ - Implemented the retrieval of unread messages
+ - Lots of code refactoring
+ - Removed an extra and unneeded contacts fetch request
+ - Removed some debugging messages
+ - Updated GraphQL queries
+ - Updated the MQTT version to MQTToT
+
purple-facebook-9e3520d6ec49 (2015-08-05):
- Cleaned up the libpurple includes
- Fixed non-friends being added as buddies
diff --git a/VERSION b/VERSION
index 304adbf..5771a47 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-9e3520d6ec49
+3d30d24fdbef
diff --git a/include/purple-compat.h b/include/purple-compat.h
index b099df1..05ce1c1 100644
--- a/include/purple-compat.h
+++ b/include/purple-compat.h
@@ -25,52 +25,66 @@
#include "prpl.h"
#include "request.h"
+typedef struct _PurpleMessage PurpleMessage;
+
+struct _PurpleMessage
+{
+ const gchar *name;
+ const gchar *text;
+ PurpleMessageFlags flags;
+};
+
#undef purple_notify_error
-#define PurpleChatConversation PurpleConvChat
-#define PurpleProtocolChatEntry struct proto_chat_entry
-#define PurpleIMTypingState PurpleTypingState
-#define PurpleMessage const gchar
-#define PurpleProtocol void
+#define PurpleChatConversation PurpleConvChat
+#define PurpleProtocolChatEntry struct proto_chat_entry
+#define PurpleIMConversation PurpleConvIm
+#define PurpleIMTypingState PurpleTypingState
+#define PurpleProtocol void
#define PurpleRequestCommonParameters void
#define PURPLE_CMD_FLAG_PROTOCOL_ONLY PURPLE_CMD_FLAG_PRPL_ONLY
-#define PURPLE_CMD_P_PROTOCOL PURPLE_CMD_P_PRPL
-#define PURPLE_CONNECTION_CONNECTED PURPLE_CONNECTED
-#define PURPLE_IM_NOT_TYPING PURPLE_NOT_TYPING
-#define PURPLE_IM_TYPING PURPLE_TYPING
-
-#define PURPLE_CHAT_CONVERSATION purple_conversation_get_chat_data
-#define PURPLE_CONVERSATION purple_conv_chat_get_conversation
-#define PURPLE_IS_ACCOUNT(a) ((a) != NULL)
-#define PURPLE_IS_BUDDY(b) ((b) != NULL)
+#define PURPLE_CMD_P_PROTOCOL PURPLE_CMD_P_PRPL
+#define PURPLE_CONNECTION_CONNECTED PURPLE_CONNECTED
+#define PURPLE_IM_NOT_TYPING PURPLE_NOT_TYPING
+#define PURPLE_IM_TYPING PURPLE_TYPING
+
+#define PURPLE_CHAT_CONVERSATION purple_conversation_get_chat_data
+#define PURPLE_CONVERSATION(c) ((c)->conv)
+#define PURPLE_IS_ACCOUNT(a) ((a) != NULL)
+#define PURPLE_IS_BUDDY(b) ((b) != NULL)
#define PURPLE_IS_CHAT_CONVERSATION(c) ((c) != NULL)
-#define PURPLE_IS_CONNECTION(c) ((c) != NULL)
-
-#define purple_account_get_private_alias purple_account_get_alias
-#define purple_account_set_private_alias purple_account_set_alias
-#define purple_blist_get_default_group() NULL
-#define purple_blist_find_buddies purple_find_buddies
-#define purple_blist_find_buddy purple_find_buddy
-#define purple_buddy_set_server_alias purple_blist_server_alias_buddy
-#define purple_chat_conversation_add_user purple_conv_chat_add_user
-#define purple_chat_conversation_get_id purple_conv_chat_get_id
-#define purple_chat_conversation_has_user purple_conv_chat_find_user
-#define purple_chat_conversation_remove_user purple_conv_chat_remove_user
-#define purple_chat_conversation_set_topic purple_conv_chat_set_topic
-#define purple_connection_error purple_connection_error_reason
-#define purple_connection_is_disconnecting(c) FALSE
-#define purple_conversation_get_connection purple_conversation_get_gc
-#define purple_protocol_got_user_status purple_prpl_got_user_status
-#define purple_proxy_info_get_proxy_type purple_proxy_info_get_type
+#define PURPLE_IS_CONNECTION(c) ((c) != NULL)
+
+#define purple_account_get_private_alias purple_account_get_alias
+#define purple_account_set_private_alias purple_account_set_alias
+#define purple_blist_get_default_group() NULL
+#define purple_blist_find_buddies purple_find_buddies
+#define purple_blist_find_buddy purple_find_buddy
+#define purple_blist_find_group purple_find_group
+#define purple_buddy_set_server_alias purple_blist_server_alias_buddy
+#define purple_chat_conversation_add_user purple_conv_chat_add_user
+#define purple_chat_conversation_get_id purple_conv_chat_get_id
+#define purple_chat_conversation_has_user purple_conv_chat_find_user
+#define purple_chat_conversation_remove_user purple_conv_chat_remove_user
+#define purple_chat_conversation_set_topic purple_conv_chat_set_topic
+#define purple_connection_error purple_connection_error_reason
+#define purple_connection_is_disconnecting(c) FALSE
+#define purple_conversation_get_connection purple_conversation_get_gc
+#define purple_message_get_contents(m) ((m)->text)
+#define purple_message_get_flags(m) ((m)->flags)
+#define purple_message_get_recipient(m) ((m)->name)
+#define purple_protocol_got_user_status purple_prpl_got_user_status
+#define purple_proxy_info_get_proxy_type purple_proxy_info_get_type
#define purple_request_cpar_from_connection(c) NULL
-#define purple_roomlist_get_account(l) ((l)->account)
-#define purple_serv_got_chat_in serv_got_chat_in
-#define purple_serv_got_chat_left serv_got_chat_left
-#define purple_serv_got_im serv_got_im
-#define purple_serv_got_typing serv_got_typing
-#define purple_serv_got_typing_stopped serv_got_typing_stopped
-#define purple_serv_join_chat serv_join_chat
+#define purple_roomlist_get_account(l) ((l)->account)
+#define purple_serv_got_chat_in serv_got_chat_in
+#define purple_serv_got_chat_left serv_got_chat_left
+#define purple_serv_got_im serv_got_im
+#define purple_serv_got_typing serv_got_typing
+#define purple_serv_got_typing_stopped serv_got_typing_stopped
+#define purple_serv_join_chat serv_join_chat
+#define purple_status_get_status_type purple_status_get_type
#define purple_conversations_find_chat(c, i) \
purple_conversation_get_chat_data( \
@@ -82,6 +96,22 @@
purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, n, a) \
)
+#define purple_conversations_find_im_with_account(n, a) \
+ purple_conversation_get_im_data( \
+ purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, n, a) \
+ )
+
+#define purple_conversation_write_message(c, m) \
+ purple_conversation_write(c, (m)->name, (m)->text, (m)->flags, 0);
+
+#define purple_im_conversation_new(a, n) \
+ purple_conversation_get_im_data( \
+ purple_conversation_new(PURPLE_CONV_TYPE_IM, a, n) \
+ )
+
+#define purple_message_new_outgoing(n, t, f) \
+ ((PurpleMessage *) &((PurpleMessage) {n, t, f}))
+
#define purple_notify_error(h, t, p, s, c) \
purple_notify_message(h, PURPLE_NOTIFY_MSG_ERROR, t, p, s, NULL, NULL)
@@ -93,4 +123,14 @@
serv_got_joined_chat(c, i, n) \
)
+static inline void
+purple_blist_node_set_transient(PurpleBlistNode *node, gboolean transient)
+{
+ if (transient) {
+ node->flags |= PURPLE_BLIST_NODE_FLAG_NO_SAVE;
+ } else {
+ node->flags &= ~PURPLE_BLIST_NODE_FLAG_NO_SAVE;
+ }
+}
+
#endif /* _PURPLE_COMPAT_H_ */
diff --git a/patches/02-plugin.patch b/patches/02-plugin.patch
index 6cb3424..e1b8b82 100644
--- a/patches/02-plugin.patch
+++ b/patches/02-plugin.patch
@@ -1,7 +1,7 @@
-diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
---- a/libpurple/protocols/facebook/facebook.c Wed Aug 05 17:57:33 2015 -0400
-+++ b/libpurple/protocols/facebook/facebook.c Wed Aug 05 19:21:33 2015 -0400
-@@ -461,7 +461,7 @@
+diff -r 3d30d24fdbef libpurple/protocols/facebook/facebook.c
+--- a/libpurple/protocols/facebook/facebook.c Tue Aug 11 19:33:09 2015 -0400
++++ b/libpurple/protocols/facebook/facebook.c Tue Aug 11 19:56:11 2015 -0400
+@@ -615,7 +615,7 @@
GSList *select = NULL;
PurpleConnection *gc;
@@ -10,7 +10,7 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
return;
}
-@@ -628,7 +628,7 @@
+@@ -794,7 +794,7 @@
PurpleConnection *gc;
PurpleMenuAction *act;
@@ -19,59 +19,45 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
return NULL;
}
-@@ -651,7 +651,8 @@
+@@ -842,7 +842,8 @@
}
static gint
-fb_im_send(PurpleConnection *gc, PurpleMessage *msg)
-+fb_im_send(PurpleConnection *gc, const gchar *who, const gchar *msg,
++fb_im_send(PurpleConnection *gc, const gchar *who, const gchar *tmsg,
+ PurpleMessageFlags flags)
{
const gchar *name;
const gchar *text;
-@@ -663,10 +664,10 @@
+@@ -851,6 +852,8 @@
+ FbId uid;
+ gchar *sext;
+
++ PurpleMessage *msg = purple_message_new_outgoing(who, tmsg, flags);
++
fata = purple_connection_get_protocol_data(gc);
api = fb_data_get_api(fata);
-- name = purple_message_get_recipient(msg);
-+ name = who;
- uid = FB_ID_FROM_STR(name);
-
-- text = purple_message_get_contents(msg);
-+ text = msg;
- sext = purple_markup_strip_html(text);
- fb_api_message(api, uid, FALSE, sext);
- g_free(sext);
-@@ -788,7 +789,8 @@
+@@ -978,7 +981,8 @@
}
static gint
-fb_chat_send(PurpleConnection *gc, gint id, PurpleMessage *msg)
-+fb_chat_send(PurpleConnection *gc, gint id, const gchar *msg,
++fb_chat_send(PurpleConnection *gc, gint id, const gchar *tmsg,
+ PurpleMessageFlags flags)
{
const gchar *name;
const gchar *text;
-@@ -807,15 +809,15 @@
- name = purple_conversation_get_name(PURPLE_CONVERSATION(chat));
- tid = FB_ID_FROM_STR(name);
-
-- text = purple_message_get_contents(msg);
-+ text = msg;
- sext = purple_markup_strip_html(text);
- fb_api_message(api, tid, TRUE, sext);
- g_free(sext);
+@@ -989,6 +993,8 @@
+ PurpleAccount *acct;
+ PurpleChatConversation *chat;
- name = purple_account_get_username(acct);
- purple_serv_got_chat_in(gc, id, name,
-- purple_message_get_flags(msg),
-- purple_message_get_contents(msg),
-+ flags,
-+ msg,
- time(NULL));
- return 0;
- }
-@@ -969,99 +971,6 @@
++ PurpleMessage *msg = purple_message_new_outgoing(NULL, tmsg, flags);
++
+ acct = purple_connection_get_account(gc);
+ fata = purple_connection_get_protocol_data(gc);
+ api = fb_data_get_api(fata);
+@@ -1162,103 +1168,6 @@
}
static void
@@ -88,6 +74,10 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
- "mark-read", TRUE);
- opts = g_list_prepend(opts, opt);
-
+- opt = purple_account_option_bool_new(_("Show unread messages"),
+- "show-unread", TRUE);
+- opts = g_list_prepend(opts, opt);
+-
- opt = purple_account_option_bool_new(_("Open new group chats with "
- "incoming messages"),
- "group-chat-open", TRUE);
@@ -115,7 +105,7 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
-static void
-facebook_protocol_server_iface_init(PurpleProtocolServerIface *iface)
-{
--
+- iface->set_status = fb_server_set_status;
-}
-
-static void
@@ -171,7 +161,7 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
fb_cmds_register(void)
{
PurpleCmdId id;
-@@ -1073,13 +982,13 @@
+@@ -1270,13 +1179,13 @@
g_return_if_fail(fb_cmds == NULL);
id = purple_cmd_register("kick", "s", PURPLE_CMD_P_PROTOCOL, cflags,
@@ -187,7 +177,7 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
_("leave: Leave the chat"),
NULL);
fb_cmds = g_slist_prepend(fb_cmds, GUINT_TO_POINTER(id));
-@@ -1098,43 +1007,92 @@
+@@ -1295,43 +1204,97 @@
g_slist_free_full(fb_cmds, fb_cmds_unregister_free);
}
@@ -287,6 +277,7 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
+ pinfo.close = fb_close;
+ pinfo.send_im = fb_im_send;
+ pinfo.send_typing = fb_im_send_typing;
++ pinfo.set_status = fb_server_set_status;
+ pinfo.join_chat = fb_chat_join;
+ pinfo.get_chat_name = fb_chat_get_name;
+ pinfo.chat_invite = fb_chat_invite;
@@ -301,6 +292,10 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
+ "mark-read", TRUE);
+ opts = g_list_prepend(opts, opt);
+
++ opt = purple_account_option_bool_new(_("Show unread messages"),
++ "show-unread", TRUE);
++ opts = g_list_prepend(opts, opt);
++
+ opt = purple_account_option_bool_new(_("Open new group chats with "
+ "incoming messages"),
+ "group-chat-open", TRUE);
@@ -310,9 +305,9 @@ diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.c
+ inited = TRUE;
+ return purple_plugin_register(plugin);
+}
-diff -r 9e3520d6ec49 libpurple/protocols/facebook/facebook.h
---- a/libpurple/protocols/facebook/facebook.h Wed Aug 05 17:57:33 2015 -0400
-+++ b/libpurple/protocols/facebook/facebook.h Wed Aug 05 19:21:33 2015 -0400
+diff -r 3d30d24fdbef libpurple/protocols/facebook/facebook.h
+--- a/libpurple/protocols/facebook/facebook.h Tue Aug 11 19:33:09 2015 -0400
++++ b/libpurple/protocols/facebook/facebook.h Tue Aug 11 19:56:11 2015 -0400
@@ -24,29 +24,4 @@
#include <glib.h>