From bbd545b9caa278d61ad423725dc591b3eb0e61f7 Mon Sep 17 00:00:00 2001
From: Friendika <info@friendika.com>
Date: Sun, 14 Aug 2011 04:26:41 -0700
Subject: [PATCH] honour "post to xxx network by default" when using API

---
 addon/facebook/facebook.php   |  7 +++++++
 addon/statusnet/statusnet.php |  3 +++
 addon/twitter/twitter.php     |  4 ++++
 mod/item.php                  | 14 ++++++++++++++
 4 files changed, 28 insertions(+)

diff --git a/addon/facebook/facebook.php b/addon/facebook/facebook.php
index af98298346..47e7691e46 100644
--- a/addon/facebook/facebook.php
+++ b/addon/facebook/facebook.php
@@ -530,6 +530,13 @@ function facebook_post_hook(&$a,&$b) {
 			$fb_enable = (($fb_post && x($_POST,'facebook_enable')) ? intval($_POST['facebook_enable']) : 0);
 			$fb_token  = get_pconfig(local_user(),'facebook','access_token');
 
+			// if API is used, default to the chosen settings
+			if($_POST['api_source'] && intval(get_pconfig(local_user(),'facebook','post_by_default')))
+				$fb_enable = 1;
+
+
+
+
 			logger('facebook: $fb_post: ' . $fb_post . ' $fb_enable: ' . $fb_enable . ' $fb_token: ' . $fb_token,LOGGER_DEBUG); 
 
 			// post to facebook if it's a public post and we've ticked the 'post to Facebook' box, 
diff --git a/addon/statusnet/statusnet.php b/addon/statusnet/statusnet.php
index b18eac2b86..2ce4b7eabf 100644
--- a/addon/statusnet/statusnet.php
+++ b/addon/statusnet/statusnet.php
@@ -374,6 +374,9 @@ function statusnet_post_hook(&$a,&$b) {
 
 			$statusnet_post = get_pconfig(local_user(),'statusnet','post');
 			$statusnet_enable = (($statusnet_post && x($_POST,'statusnet_enable')) ? intval($_POST['statusnet_enable']) : 0);
+			// if API is used, default to the chosen settings
+			if($_POST['api_source'] && intval(get_pconfig(local_user(),'statusnet','post_by_default')))
+				$statusnet_enable = 1;
 
 			if($statusnet_enable && $statusnet_post) {
 				require_once('include/bbcode.php');	
diff --git a/addon/twitter/twitter.php b/addon/twitter/twitter.php
index c3fbc3e648..b1c8a0a897 100644
--- a/addon/twitter/twitter.php
+++ b/addon/twitter/twitter.php
@@ -225,6 +225,10 @@ function twitter_post_hook(&$a,&$b) {
 			$twitter_post = intval(get_pconfig(local_user(),'twitter','post'));
 			$twitter_enable = (($twitter_post && x($_POST,'twitter_enable')) ? intval($_POST['twitter_enable']) : 0);
 
+			// if API is used, default to the chosen settings
+			if($_POST['api_source'] && intval(get_pconfig(local_user(),'twitter','post_by_default')))
+				$twitter_enable = 1;
+
 			if($twitter_post && $twitter_enable) {
 				logger('Posting to Twitter', LOGGER_DEBUG);
 				require_once('library/twitteroauth.php');
diff --git a/mod/item.php b/mod/item.php
index 62c1d4a873..cc4e1e1a84 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -178,6 +178,20 @@ function item_post(&$a) {
 	
 		$pubmail_enable    = ((x($_POST,'pubmail_enable') && intval($_POST['pubmail_enable']) && (! $private)) ? 1 : 0);
 
+		// if using the API, we won't see pubmail_enable - figure out if it should be set
+
+		if($api_source && $profile_uid && $profile_uid == local_user()) {
+			$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
+			if(! $mail_disabled) {
+				$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
+					intval(local_user())
+				);
+				if(count($r) && intval($r[0]['pubmail']))
+					$pubmail_enabled = true;
+			}
+		}
+
+
 		if(! strlen($body)) {
 			info( t('Empty post discarded.') . EOL );
 			if(x($_POST,'return'))