]> git.mxchange.org Git - friendica-addons.git/blobdiff - tumblr/tumblr.php
Merge remote branch 'upstream/master'
[friendica-addons.git] / tumblr / tumblr.php
old mode 100644 (file)
new mode 100755 (executable)
index 25a0287..03a6794
@@ -2,6 +2,7 @@
 
 /**
  * Name: Tumblr Post Connector
+ * Description: Post to Tumblr
  * Version: 1.0
  * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
  */
@@ -31,7 +32,7 @@ function tumblr_jot_nets(&$a,&$b) {
     if(intval($tmbl_post) == 1) {
         $tmbl_defpost = get_pconfig(local_user(),'tumblr','post_by_default');
         $selected = ((intval($tmbl_defpost) == 1) ? ' checked="checked" ' : '');
-        $b .= '<div class="profile-jot-net"><input type="checkbox" name="tumblr_enable"' . $selected . 'value="1" /> '
+        $b .= '<div class="profile-jot-net"><input type="checkbox" name="tumblr_enable"' . $selected . ' value="1" /> '
             . t('Post to Tumblr') . '</div>';
     }
 }
@@ -155,15 +156,68 @@ function tumblr_send(&$a,&$b) {
 
                require_once('include/bbcode.php');
 
+               $tag_arr = array();
+               $tags = '';
+               $x = preg_match_all('/\#\[(.*?)\](.*?)\[/',$b['tag'],$matches,PREG_SET_ORDER);
+
+               if($x) {
+                       foreach($matches as $mtch) {
+                               $tag_arr[] = $mtch[2];
+                       }
+               }
+               if(count($tag_arr))
+                       $tags = implode(',',$tag_arr);
+
+               $link = "";
+               $video = false;
+               $title = trim($b['title']);
+
+               // Checking for a bookmark
+               if(preg_match("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/is",$b['body'],$matches)) {
+                       $link = $matches[1];
+                       if ($title == '')
+                               $title = html_entity_decode($matches[2],ENT_QUOTES,'UTF-8');
+
+                       $body = $b['body'];
+                       // splitting the text in two parts:
+                       // before and after the bookmark
+                       $pos = strpos($body, "[bookmark");
+                       $body1 = substr($body, 0, $pos);
+                       $body2 = substr($body, $pos);
+
+                       // Removing the bookmark
+                       $body2 = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'',$body2);
+                       $body = $body1.$body2;
+
+                       $video = ((stristr($link,'youtube')) || (stristr($link,'youtu.be')) || (stristr($mtch[1],'vimeo')));
+               }
+
                $params = array(
                        'email' => $tmbl_username,
                        'password' => $tmbl_password,
-                       'title' => (($b['title']) ? $b['title'] : t('Post from Friendica')),
-                       'type' => 'regular',
                        'format' => 'html',
                        'generator' => 'Friendica',
-                       'body' => bbcode($b['body'])
-               );
+                       'tags' => $tags);
+
+               if (($link != '') and $video) {
+                       $params['type'] = "video";
+                       $params['embed'] = $link;
+                       if ($title != '')
+                               $params['caption'] = '<h1><a href="'.$link.'">'.$title.
+                                                       "</a></h1><p>".bbcode($body)."</p>";
+                       else
+                               $params['caption'] = bbcode($body);
+               } else if (($link != '') and !$video) {
+                       $params['type'] = "link";
+                       $params['name'] = $title;
+                       $params['url'] = $link;
+                       //$params['description'] = bbcode($body);
+                       $params['description'] = bbcode($b["body"]);
+               } else {
+                       $params['type'] = "regular";
+                       $params['title'] = $title;
+                       $params['body'] = bbcode($b['body']);
+               }
 
                $x = post_url($tmbl_blog,$params);
                $ret_code = $a->get_curl_code();
@@ -172,7 +226,7 @@ function tumblr_send(&$a,&$b) {
                elseif($ret_code == 403)
                        logger('tumblr_send: authentication failure');
                else
-                       logger('tumblr_send: general error: ' . print_r($x,true)); 
+                       logger('tumblr_send: general error: ' . print_r($x,true));
 
        }
 }