Statusnet: Now pictures are posted as well.

This commit is contained in:
Michael Vogel 2013-08-25 09:36:32 +02:00
parent 3de94114ea
commit ac1675ab57
3 changed files with 1092 additions and 10 deletions

1057
statusnet/codebird.php Normal file

File diff suppressed because it is too large Load diff

View file

@ -550,6 +550,9 @@ function statusnet_shortenmsg($b, $max_char) {
if ((strlen(trim($origmsg)) <= $max_char) AND (strpos($origmsg, $msglink) OR ($msglink == ""))) if ((strlen(trim($origmsg)) <= $max_char) AND (strpos($origmsg, $msglink) OR ($msglink == "")))
return(array("msg"=>trim($origmsg), "image"=>"")); return(array("msg"=>trim($origmsg), "image"=>""));
// Preserve the unshortened link
$orig_link = $msglink;
if (strlen($msglink) > 20) if (strlen($msglink) > 20)
$msglink = short_link($msglink); $msglink = short_link($msglink);
@ -569,7 +572,22 @@ function statusnet_shortenmsg($b, $max_char) {
while (strpos($msg, " ") !== false) while (strpos($msg, " ") !== false)
$msg = str_replace(" ", " ", $msg); $msg = str_replace(" ", " ", $msg);
return(array("msg"=>trim($msg."\n".$msglink), "image"=>$image)); //return(array("msg"=>trim($msg."\n".$msglink), "image"=>$image));
// Looking if the link points to an image
$img_str = fetch_url($orig_link);
$tempfile = tempnam(get_config("system","temppath"), "cache");
file_put_contents($tempfile, $img_str);
$mime = image_type_to_mime_type(exif_imagetype($tempfile));
unlink($tempfile);
if (($image == $orig_link) OR (substr($mime, 0, 6) == "image/"))
return(array("msg"=>trim($msg), "image"=>$orig_link));
else if (($image != $orig_link) AND ($image != "") AND (strlen($msg."\n".$msglink) <= ($max_char - 20)))
return(array("msg"=>trim($msg."\n".$msglink), "image"=>$image));
else
return(array("msg"=>trim($msg."\n".$msglink), "image"=>""));
} }
function statusnet_post_hook(&$a,&$b) { function statusnet_post_hook(&$a,&$b) {
@ -697,18 +715,25 @@ function statusnet_post_hook(&$a,&$b) {
$msg = $msgarr["msg"]; $msg = $msgarr["msg"];
$image = $msgarr["image"]; $image = $msgarr["image"];
if ($image != "") { if ($image != "") {
$imagedata = file_get_contents($image); $img_str = fetch_url($image);
$tempfile = tempnam(get_config("system","temppath"), "upload"); $tempfile = tempnam(get_config("system","temppath"), "cache");
file_put_contents($tempfile, $imagedata); file_put_contents($tempfile, $img_str);
$postdata = array("status"=>$msg, "media"=>"@".$tempfile); $postdata = array("status" => $msg, "media[]" => $tempfile);
} else } else
$postdata = array("status"=>$msg); $postdata = array("status"=>$msg);
} }
// and now dent it :-) // and now dent it :-)
if(strlen($msg)) { if(strlen($msg)) {
//$result = $dent->post('statuses/update', array('status' => $msg));
$result = $dent->post('statuses/update', $postdata); // New code that is able to post pictures
require_once("addon/statusnet/codebird.php");
$cb = \CodebirdSN\CodebirdSN::getInstance();
$cb->setAPIEndpoint($api);
$cb->setConsumerKey($ckey, $csecret);
$cb->setToken($otoken, $osecret);
$result = $cb->statuses_update($postdata);
//$result = $dent->post('statuses/update', $postdata);
logger('statusnet_post send, result: ' . print_r($result, true). logger('statusnet_post send, result: ' . print_r($result, true).
"\nmessage: ".$msg, LOGGER_DEBUG."\nOriginal post: ".print_r($b, true)."\nPost Data: ".print_r($postdata, true)); "\nmessage: ".$msg, LOGGER_DEBUG."\nOriginal post: ".print_r($b, true)."\nPost Data: ".print_r($postdata, true));
if ($result->error) { if ($result->error) {
@ -721,9 +746,9 @@ function statusnet_post_hook(&$a,&$b) {
} }
function statusnet_plugin_admin_post(&$a){ function statusnet_plugin_admin_post(&$a){
$sites = array(); $sites = array();
foreach($_POST['sitename'] as $id=>$sitename){ foreach($_POST['sitename'] as $id=>$sitename){
$sitename=trim($sitename); $sitename=trim($sitename);
$apiurl=trim($_POST['apiurl'][$id]); $apiurl=trim($_POST['apiurl'][$id]);

View file

@ -648,7 +648,7 @@ function twitter_post_hook(&$a,&$b) {
// trying a new library for twitter // trying a new library for twitter
// To-Do: // To-Do:
// Switching completely to this library with all functions // Switching completely to this library with all functions
include 'codebird.php'; require_once("addon/twitter/codebird.php");
$cb = \Codebird\Codebird::getInstance(); $cb = \Codebird\Codebird::getInstance();
$cb->setConsumerKey($ckey, $csecret); $cb->setConsumerKey($ckey, $csecret);