api: add support for StatusNet-style media param to API

This commit is contained in:
Michael Johnston 2012-04-22 13:37:25 -04:00
parent 9434b447f3
commit 76aa9b3037
2 changed files with 35 additions and 12 deletions

View file

@ -567,8 +567,17 @@
$_REQUEST['profile_uid'] = local_user(); $_REQUEST['profile_uid'] = local_user();
if(requestdata('parent')) if(requestdata('parent'))
$_REQUEST['type'] = 'net-comment'; $_REQUEST['type'] = 'net-comment';
else else {
$_REQUEST['type'] = 'wall'; $_REQUEST['type'] = 'wall';
if(x($_FILES,'media')) {
// upload the image if we have one
$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
require_once('mod/wall_upload.php');
$media = wall_upload_post($a);
if(strlen($media)>0)
$_REQUEST['body'] .= "\n\n".$media;
}
}
// set this so that the item_post() function is quiet and doesn't redirect or emit json // set this so that the item_post() function is quiet and doesn't redirect or emit json

View file

@ -5,19 +5,26 @@ require_once('Photo.php');
function wall_upload_post(&$a) { function wall_upload_post(&$a) {
if($a->argc > 1) { if($a->argc > 1) {
$nick = $a->argv[1]; if(! x($_FILES,'media')) {
$r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", $nick = $a->argv[1];
dbesc($nick) $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
); dbesc($nick)
if(! count($r)) );
return;
if(! count($r))
return;
}
else {
$user_info = api_get_user($a);
$r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
dbesc($user_info['screen_name'])
);
}
} }
else else
return; return;
$can_post = false; $can_post = false;
$visitor = 0; $visitor = 0;
@ -47,12 +54,19 @@ function wall_upload_post(&$a) {
killme(); killme();
} }
if(! x($_FILES,'userfile')) if(! x($_FILES,'userfile') && ! x($_FILES,'media'))
killme(); killme();
$src = $_FILES['userfile']['tmp_name']; if(x($_FILES,'userfile')) {
$filename = basename($_FILES['userfile']['name']); $src = $_FILES['userfile']['tmp_name'];
$filesize = intval($_FILES['userfile']['size']); $filename = basename($_FILES['userfile']['name']);
$filesize = intval($_FILES['userfile']['size']);
}
elseif(x($_FILES,'media')) {
$src = $_FILES['media']['tmp_name'];
$filename = basename($_FILES['media']['name']);
$filesize = intval($_FILES['media']['size']);
}
$maximagesize = get_config('system','maximagesize'); $maximagesize = get_config('system','maximagesize');