aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Johnston <michaelgeorgejohnston@gmail.com>2012-04-22 13:37:25 -0400
committerMichael Johnston <michaelgeorgejohnston@gmail.com>2012-04-22 13:37:25 -0400
commit76aa9b3037a69d7d3be7e2f7c1416438a30dd577 (patch)
tree35bb52d1b0d5e12d98c5cfdfa85876ed9d72ad63
parent9434b447f3302a7f3223fb01f3c71378b8764e92 (diff)
downloadvolse-hubzilla-76aa9b3037a69d7d3be7e2f7c1416438a30dd577.tar.gz
volse-hubzilla-76aa9b3037a69d7d3be7e2f7c1416438a30dd577.tar.bz2
volse-hubzilla-76aa9b3037a69d7d3be7e2f7c1416438a30dd577.zip
api: add support for StatusNet-style media param to API
-rw-r--r--include/api.php11
-rw-r--r--mod/wall_upload.php38
2 files changed, 36 insertions, 13 deletions
diff --git a/include/api.php b/include/api.php
index 0885a1434..f9be68c3d 100644
--- a/include/api.php
+++ b/include/api.php
@@ -567,8 +567,17 @@
$_REQUEST['profile_uid'] = local_user();
if(requestdata('parent'))
$_REQUEST['type'] = 'net-comment';
- else
+ else {
$_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
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index f341cc9cd..fa66561e8 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -5,19 +5,26 @@ require_once('Photo.php');
function wall_upload_post(&$a) {
if($a->argc > 1) {
- $nick = $a->argv[1];
- $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(! x($_FILES,'media')) {
+ $nick = $a->argv[1];
+ $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;
+ }
+ 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
return;
-
$can_post = false;
$visitor = 0;
@@ -47,12 +54,19 @@ function wall_upload_post(&$a) {
killme();
}
- if(! x($_FILES,'userfile'))
+ if(! x($_FILES,'userfile') && ! x($_FILES,'media'))
killme();
- $src = $_FILES['userfile']['tmp_name'];
- $filename = basename($_FILES['userfile']['name']);
- $filesize = intval($_FILES['userfile']['size']);
+ if(x($_FILES,'userfile')) {
+ $src = $_FILES['userfile']['tmp_name'];
+ $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');