From a19ddb48eee91608b9b0e368e2db51765e66c089 Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Tue, 21 Feb 2012 23:35:50 -0800
Subject: [PATCH] waitman gobble media upload via api patch

---
 include/api.php     | 44 +++++++++++++++++++++++++++++++++++++++++++-
 mod/wall_upload.php | 22 ++++++++++++++++++----
 2 files changed, 61 insertions(+), 5 deletions(-)

diff --git a/include/api.php b/include/api.php
index 04f95ebd9..28d6c3f4b 100755
--- a/include/api.php
+++ b/include/api.php
@@ -453,7 +453,49 @@
 		return null;
 	}
 
-	// TODO - media uploads
+/*Waitman Gobble Mod*/
+        function api_statuses_mediap(&$a, $type) {
+                if (local_user()===false) {
+                        logger('api_statuses_update: no user');
+                        return false;
+                }
+                $user_info = api_get_user($a);
+
+                $_REQUEST['type'] = 'wall';
+                $_REQUEST['profile_uid'] = local_user();
+                $_REQUEST['api_source'] = true;
+                $txt = urldecode(requestdata('status'));
+
+                require_once('library/HTMLPurifier.auto.php');
+                require_once('include/html2bbcode.php');
+
+                if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
+			$txt = html2bb_video($txt);
+			$config = HTMLPurifier_Config::createDefault();
+                        $config->set('Cache.DefinitionImpl', null);
+			$purifier = new HTMLPurifier($config);
+                        $txt = $purifier->purify($txt);
+		}
+		$txt = html2bbcode($txt);
+		
+                $a->argv[1]=$user_info['screen_name']; //should be set to username?
+		
+		$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
+                require_once('mod/wall_upload.php');
+		$bebop = wall_upload_post($a);
+                
+		//now that we have the img url in bbcode we can add it to the status and insert the wall item.
+                $_REQUEST['body']=$txt."\n\n".$bebop;
+                require_once('mod/item.php');
+                item_post($a);
+
+                // this should output the last post (the one we just posted).
+                return api_status_show($a,$type);
+        }
+        api_register_func('api/statuses/mediap','api_statuses_mediap', true);
+/*Waitman Gobble Mod*/
+
+
 	function api_statuses_update(&$a, $type) {
 		if (local_user()===false) {
 			logger('api_statuses_update: no user');
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index 278c21354..64f174a78 100755
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -101,10 +101,24 @@ function wall_upload_post(&$a) {
 
 	$basename = basename($filename);
 
-	if(local_user() && intval(get_pconfig(local_user(),'system','plaintext')))
-		echo  "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg[/img][/url]\n\n";
-	else
-		echo  '<br /><br /><a href="' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg\" alt=\"$basename\" /></a><br /><br />";
+
+/* mod Waitman Gobble NO WARRANTY */
+
+//if we get the signal then return the image url info in BBCODE, otherwise this outputs the info and bails (for the ajax image uploader on wall post)
+        if ($_REQUEST['hush']!='yeah') {
+
+		/*existing code*/
+		if(local_user() && intval(get_pconfig(local_user(),'system','plaintext')))
+			echo  "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg[/img][/url]\n\n";
+		else
+			echo  '<br /><br /><a href="' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg\" alt=\"$basename\" /></a><br /><br />";
+		/*existing code*/
+		
+	} else {
+                $m = '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg[/img][/url]";
+		return($m);
+        }
+/* mod Waitman Gobble NO WARRANTY */
 
 	killme();
 	// NOTREACHED