X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=posterous%2Fposterous.php;h=7ff95948f646d87682589c04f5cb58a70f59cf17;hb=db0a00778639192d00db612e7b094e92151aedab;hp=35c0d1e7a082b92c25b387f0631f10900f8b455d;hpb=084a4b68f6976494ae50af1dd892574c01ebd86e;p=friendica-addons.git diff --git a/posterous/posterous.php b/posterous/posterous.php index 35c0d1e7..7ff95948 100755 --- a/posterous/posterous.php +++ b/posterous/posterous.php @@ -2,9 +2,10 @@ /** * Name: Posterous Post Connector - * Description: DISABLE THIS PLUGIN! System stability at risk! Post to Posterous accounts + * Description: Post to Posterous accounts * Version: 1.0 * Author: Mike Macgirvin + * Author: Tony Baldwin */ function posterous_install() { @@ -32,7 +33,7 @@ function posterous_jot_nets(&$a,&$b) { if(intval($pstr_post) == 1) { $pstr_defpost = get_pconfig(local_user(),'posterous','post_by_default'); $selected = ((intval($pstr_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' + $b .= '
' . t('Post to Posterous') . '
'; } } @@ -59,6 +60,8 @@ function posterous_settings(&$a,&$s) { $pstr_username = get_pconfig(local_user(), 'posterous', 'posterous_username'); $pstr_password = get_pconfig(local_user(), 'posterous', 'posterous_password'); + $pstr_site_id = get_pconfig(local_user(), 'posterous', 'posterous_site_id'); + $pstr_api_token = get_pconfig(local_user(), 'posterous', 'posterous_api_token'); /* Add some HTML to the existing form */ @@ -80,6 +83,16 @@ function posterous_settings(&$a,&$s) { $s .= ''; $s .= '
'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + $s .= '
'; $s .= ''; $s .= ''; @@ -100,6 +113,8 @@ function posterous_settings_post(&$a,&$b) { set_pconfig(local_user(),'posterous','post_by_default',intval($_POST['posterous_bydefault'])); set_pconfig(local_user(),'posterous','posterous_username',trim($_POST['posterous_username'])); set_pconfig(local_user(),'posterous','posterous_password',trim($_POST['posterous_password'])); + set_pconfig(local_user(),'posterous','posterous_site_id',trim($_POST['posterous_site_id'])); + set_pconfig(local_user(),'posterous','posterous_api_token',trim($_POST['posterous_api_token'])); } @@ -138,10 +153,6 @@ function posterous_post_local(&$a,&$b) { function posterous_send(&$a,&$b) { - logger('posterous_send: invoked'); - logger('posterous: plugin disabled. API endpoint no longer responds.'); - return; - if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) return; @@ -154,12 +165,13 @@ function posterous_send(&$a,&$b) { $pstr_username = get_pconfig($b['uid'],'posterous','posterous_username'); $pstr_password = get_pconfig($b['uid'],'posterous','posterous_password'); - $pstr_blog = 'http://www.posterous.com/api/write'; + $pstr_site_id = get_pconfig($b['uid'],'posterous','posterous_site_id'); + $pstr_blog = "http://posterous.com/api/2/sites/$pstr_site_id/posts"; + $pstr_api_token = get_pconfig($b['uid'],'posterous','posterous_api_token'); if($pstr_username && $pstr_password && $pstr_blog) { require_once('include/bbcode.php'); - require_once('addon/posterous/posterous-api.php'); $tag_arr = array(); $tags = ''; $x = preg_match_all('/\#\[(.*?)\](.*?)\[/',$b['tag'],$matches,PREG_SET_ORDER); @@ -174,20 +186,28 @@ function posterous_send(&$a,&$b) { $params = array( - 'title' => (($b['title']) ? $b['title'] : t('Post from Friendica')), - 'type' => 'regular', - 'autopost' => 1, - 'source' => 'Friendica', - 'is_private' => false, - 'tags' => $tags, - 'body' => bbcode($b['body']) + 'post[title]' => (($b['title']) ? $b['title'] : t('Post from Friendica')), + 'post[source]' => 'Friendica', + 'post[tags]' => $tags, + 'post[body]' => bbcode($b['body']), + 'api_token' => $pstr_api_token, + 'site_id' => $pstr_site_id ); + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $pstr_blog); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); + curl_setopt($ch, CURLOPT_USERPWD, $pstr_username . ':' . $pstr_password); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $params); + + $data = curl_exec($ch); + $result = curl_multi_getcontent($ch); + curl_close($ch); - logger('posterous: params: ' . print_r($params,true), LOGGER_DATA); - - $api = new PosterousAPI($pstr_username,$pstr_password); - - $result = $api->newpost($params); logger('posterous_send: ' . $result); } }