aboutsummaryrefslogtreecommitdiffstats
path: root/facebook
diff options
context:
space:
mode:
authorMickaƫl Thomas <mickael9@gmail.com>2017-02-23 21:27:04 +0100
committerdx <dx@dxzone.com.ar>2017-02-23 21:42:17 -0300
commit3e8dd702c65c8b374e30b41f9886466325dae671 (patch)
treede37f9eb76a4131c2dbcaa83dfe88b00c0b586a0 /facebook
parentbc8e710b6c52faa38f89b0496cfb59c8d5c71721 (diff)
downloadbitlbee-facebook-3e8dd702c65c8b374e30b41f9886466325dae671.tar.gz
bitlbee-facebook-3e8dd702c65c8b374e30b41f9886466325dae671.tar.bz2
bitlbee-facebook-3e8dd702c65c8b374e30b41f9886466325dae671.tar.xz
Extract target url from fbrpc:// URLs
Those URLs seem to be generated when the Android share feature is used. Fixes #97
Diffstat (limited to 'facebook')
-rw-r--r--facebook/facebook-api.c6
-rw-r--r--facebook/facebook-api.h7
2 files changed, 12 insertions, 1 deletions
diff --git a/facebook/facebook-api.c b/facebook/facebook-api.c
index 0e7d3a3..d9d4486 100644
--- a/facebook/facebook-api.c
+++ b/facebook/facebook-api.c
@@ -1353,7 +1353,11 @@ fb_api_xma_parse(FbApi *api, const gchar *body, JsonNode *root, GError **error)
if (g_strcmp0(str, "ExternalUrl") == 0) {
prms = fb_http_values_new();
fb_http_values_parse(prms, url, TRUE);
- text = fb_http_values_dup_str(prms, "u", NULL);
+ if (g_str_has_prefix(url, FB_API_FBRPC_PREFIX)) {
+ text = fb_http_values_dup_str(prms, "target_url", NULL);
+ } else {
+ text = fb_http_values_dup_str(prms, "u", NULL);
+ }
fb_http_values_free(prms);
} else {
text = g_strdup(url);
diff --git a/facebook/facebook-api.h b/facebook/facebook-api.h
index cb7467f..b6a2812 100644
--- a/facebook/facebook-api.h
+++ b/facebook/facebook-api.h
@@ -68,6 +68,13 @@
#define FB_API_WHOST "https://www.facebook.com"
/**
+ * FB_API_FBRPC_PREFIX
+ *
+ * The fbrpc URL prefix used in links shared from the mobile app.
+ */
+#define FB_API_FBRPC_PREFIX "fbrpc://facebook/nativethirdparty"
+
+/**
* FB_API_KEY:
*
* The Facebook API key.