X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=twitter%2Ftwitter.php;h=d55e3b73ca92cacb3456e59033df3a5011a080cc;hb=a3de3d8008f6f90a378a1f8adf2b8b5720d3b2cb;hp=32b4980f55a2df4ebba7486150a29b1cc9729d5f;hpb=d5e13597161b3e9073764990828d97bec05ef70e;p=friendica-addons.git diff --git a/twitter/twitter.php b/twitter/twitter.php index 32b4980f..d55e3b73 100755 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -2,7 +2,7 @@ /** * Name: Twitter Connector * Description: Relay public postings to a connected Twitter account - * Version: 1.0.3 + * Version: 1.0.4 * Author: Tobias Diekershoff */ @@ -198,7 +198,7 @@ function twitter_settings(&$a,&$s) { $s .= ''; $s .= ''; $s .= '
'; - $s .= ''; + $s .= ''; $s .= ''; $s .= '
'; @@ -209,7 +209,7 @@ function twitter_settings(&$a,&$s) { $s .= '
'; } } - $s .= '
'; + $s .= '
'; } @@ -290,7 +290,7 @@ function twitter_post_hook(&$a,&$b) { logger('twitter: we have customer key and oauth stuff, going to send.', LOGGER_DEBUG); require_once('library/twitteroauth.php'); - require_once('include/bbcode.php'); + require_once('include/bbcode.php'); $tweet = new TwitterOAuth($ckey,$csecret,$otoken,$osecret); // in theory max char is 140 but T. uses t.co to make links // longer so we give them 10 characters extra @@ -301,9 +301,9 @@ function twitter_post_hook(&$a,&$b) { // shorten all the links in a 200000 character long essay. if (! $b['title']=='') { $tmp = $b['title'] . ' : '. $b['body']; - $tmp = substr($tmp, 0, 4*$max_char); +// $tmp = substr($tmp, 0, 4*$max_char); } else { - $tmp = substr($b['body'], 0, 3*$max_char); + $tmp = $b['body']; // substr($b['body'], 0, 3*$max_char); } // if [url=bla][img]blub.png[/img][/url] get blub.png $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp); @@ -316,15 +316,24 @@ function twitter_post_hook(&$a,&$b) { $tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp); $linksenabled = get_pconfig($b['uid'],'twitter','post_taglinks'); // if a #tag is linked, don't send the [url] over to SN - // that is, don't send if the option is not set in the + // that is, don't send if the option is not set in the // connector settings if ($linksenabled=='0') { - $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp); + // #-tags + $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp); + // @-mentions + $tmp = preg_replace( '/@\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '@$2', $tmp); + // recycle 1 + $recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8'); + $tmp = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', $recycle.'$2', $tmp); + // recycle 2 + //$recycle = html_entity_decode("♻ ", ENT_QUOTES, 'UTF-8'); + //$tmp = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', 'RT @$2:', $tmp); } $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp); $tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp); - // find all http or https links in the body of the entry and - // apply the shortener if the link is longer then 20 characters + // find all http or https links in the body of the entry and + // apply the shortener if the link is longer then 20 characters if (( strlen($tmp)>$max_char ) && ( $max_char > 0 )) { preg_match_all ( '/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', $tmp, $allurls ); foreach ($allurls as $url) { @@ -338,7 +347,11 @@ function twitter_post_hook(&$a,&$b) { } // ok, all the links we want to send out are save, now strip // away the remaining bbcode - $msg = strip_tags(bbcode($tmp)); + //$msg = strip_tags(bbcode($tmp, false, false)); + $msg = bbcode($tmp, false, false); + $msg = str_replace(array('
','
'),"\n",$msg); + $msg = strip_tags($msg); + // quotes not working - let's try this $msg = html_entity_decode($msg); if (( strlen($msg) > $max_char) && $max_char > 0) { @@ -354,10 +367,16 @@ function twitter_post_hook(&$a,&$b) { $msg = implode(' ', $e); $msg .= '... ' . $shortlink; } + + $msg = trim($msg); + // and now tweet it :-) if(strlen($msg)) { $result = $tweet->post('statuses/update', array('status' => $msg)); - logger('twitter_post send' , LOGGER_DEBUG); + logger('twitter_post send, result: ' . print_r($result, true), LOGGER_DEBUG); + if ($result->error) { + logger('Send to Twitter failed: "' . $result->error . '"'); + } } } }