summaryrefslogtreecommitdiff
path: root/lib/facebookutil.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2009-08-27 14:52:32 -0700
committerEvan Prodromou <evan@status.net>2009-08-27 14:52:32 -0700
commita08c76a4342cfb4b3d772f6880ba0b8f3153b246 (patch)
treee2ba9ef2f670d01cf700a732d36050fe3ce63774 /lib/facebookutil.php
parent522008dee570aafcc844bf123d25203c7d9c3ebc (diff)
parenteb667d09d9c6ef5a1465a5f8d824661a9387a4da (diff)
Merge branch '0.9.x' of git@gitorious.org:laconica/mainline into 0.9.x
Conflicts: classes/laconica.ini
Diffstat (limited to 'lib/facebookutil.php')
-rw-r--r--lib/facebookutil.php39
1 files changed, 28 insertions, 11 deletions
diff --git a/lib/facebookutil.php b/lib/facebookutil.php
index 36b745279..f5121609d 100644
--- a/lib/facebookutil.php
+++ b/lib/facebookutil.php
@@ -109,7 +109,6 @@ function facebookBroadcastNotice($notice)
$can_update = $facebook->api_client->users_hasAppPermission('status_update',
$fbuid);
-
if (!empty($attachments) && $can_publish == 1) {
$fbattachment = format_attachments($attachments);
$facebook->api_client->stream_publish($status, $fbattachment,
@@ -178,20 +177,42 @@ function format_attachments($attachments)
$fbattachment = array();
$fbattachment['media'] = array();
- // Facebook only supports one attachment per item
+ foreach($attachments as $attachment)
+ {
+ if($enclosure = $attachment->getEnclosure()){
+ $fbmedia = get_fbmedia_for_attachment($enclosure);
+ }else{
+ $fbmedia = get_fbmedia_for_attachment($attachment);
+ }
+ if($fbmedia){
+ $fbattachment['media'][]=$fbmedia;
+ }else{
+ $fbattachment['name'] = ($attachment->title ?
+ $attachment->title : $attachment->url);
+ $fbattachment['href'] = $attachment->url;
+ }
+ }
+ if(count($fbattachment['media'])>0){
+ unset($fbattachment['name']);
+ unset($fbattachment['href']);
+ }
+ return $fbattachment;
+}
- $attachment = $attachments[0];
+/**
+* given an File objects, returns an associative array suitable for Facebook media
+*/
+function get_fbmedia_for_attachment($attachment)
+{
$fbmedia = array();
if (strncmp($attachment->mimetype, 'image/', strlen('image/')) == 0) {
$fbmedia['type'] = 'image';
$fbmedia['src'] = $attachment->url;
$fbmedia['href'] = $attachment->url;
- $fbattachment['media'][] = $fbmedia;
} else if ($attachment->mimetype == 'audio/mpeg') {
$fbmedia['type'] = 'mp3';
$fbmedia['src'] = $attachment->url;
- $fbattachment['media'][] = $fbmedia;
}else if ($attachment->mimetype == 'application/x-shockwave-flash') {
$fbmedia['type'] = 'flash';
@@ -200,14 +221,10 @@ function format_attachments($attachments)
// $fbmedia['imgsrc']='';
$fbmedia['swfsrc'] = $attachment->url;
- $fbattachment['media'][] = $fbmedia;
}else{
- $fbattachment['name'] = ($attachment->title ?
- $attachment->title : $attachment->url);
- $fbattachment['href'] = $attachment->url;
+ return false;
}
-
- return $fbattachment;
+ return $fbmedia;
}
function remove_facebook_app($flink)