X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=pumpio%2Fpumpio.php;h=da723eca9ddead886f7a4fbb3fca4caa61c1d640;hb=21778176e6fa03d97705c1a74f24f2b49dca8aa3;hp=51144bb93f9a2bc2692fe382f20035d32c635bc8;hpb=f74f3fae83dad5399d648fdc4b06d9b8c0d894d9;p=friendica-addons.git diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php index 51144bb9..da723eca 100755 --- a/pumpio/pumpio.php +++ b/pumpio/pumpio.php @@ -5,10 +5,6 @@ * Version: 0.1 * Author: Michael Vogel */ - -//require_once('library/OAuth1.php'); -//require_once('addon/pumpio/pumpiooauth/pumpiooauth.php'); - require('addon/pumpio/oauth/http.php'); require('addon/pumpio/oauth/oauth_client.php'); @@ -67,13 +63,12 @@ function pumpio_registerclient($a, $host) { if ($application_name == "") $application_name = $a->get_hostname(); - $params["type"] = "client_associate"; - //$params["contacts"] = "icarus@dabo.de"; + $params["contacts"] = $a->config['admin_email']; $params["application_type"] = "native"; $params["application_name"] = $application_name; - //$params["logo_url"] = $a->get_baseurl()."/images/friendica-256.png"; - //$params["redirect_uris"] = $a->get_baseurl()."a/addon/pumpio/pumpio.php"; + $params["logo_url"] = $a->get_baseurl()."/images/friendica-256.png"; + $params["redirect_uris"] = $a->get_baseurl()."/pumpio/connect"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, false); @@ -203,47 +198,59 @@ function pumpio_settings(&$a,&$s) { $s .= '
'; $s .= '

' . t('Pump.io Post Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + $s .= '
'; $s .= ''; $s .= ''; $s .= '
'; - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; - if (($username != '') AND ($servername != '')) { - $s .= '
'; - - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; - - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; - - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; - - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; $oauth_token = get_pconfig(local_user(), "pumpio", "oauth_token"); $oauth_token_secret = get_pconfig(local_user(), "pumpio", "oauth_token_secret"); $s .= '
'; - if (($oauth_token == "") OR ($oauth_token_secret == "")) - $s .= t("You are not authenticated to pumpio"); + if (($oauth_token == "") OR ($oauth_token_secret == "")) { + $s .= '
'; + + //$s .= t("You are not authenticated to pumpio"); + } else { + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + //$s .= '
'; + + } $s .= '
'; } @@ -258,16 +265,37 @@ function pumpio_settings(&$a,&$s) { function pumpio_settings_post(&$a,&$b) { if(x($_POST,'pumpio-submit')) { + if(x($_POST,'pumpio_delete')) { + set_pconfig(local_user(),'pumpio','consumer_key',''); + set_pconfig(local_user(),'pumpio','consumer_secret',''); + set_pconfig(local_user(),'pumpio','host',''); + set_pconfig(local_user(),'pumpio','oauth_token',''); + set_pconfig(local_user(),'pumpio','oauth_token_secret',''); + set_pconfig(local_user(),'pumpio','post',false); + set_pconfig(local_user(),'pumpio','post_by_default',false); + set_pconfig(local_user(),'pumpio','user',''); + } else { + // filtering the username if it is filled wrong + $user = $_POST['pumpio_user']; + if (strstr($user, "@")) { + $pos = strpos($user, "@"); + if ($pos > 0) + $user = substr($user, 0, $pos); + } - set_pconfig(local_user(),'pumpio','post',intval($_POST['pumpio'])); - set_pconfig(local_user(),'pumpio','host',$_POST['pumpio_host']); - set_pconfig(local_user(),'pumpio','user',$_POST['pumpio_user']); - set_pconfig(local_user(),'pumpio','public',$_POST['pumpio_public']); - set_pconfig(local_user(),'pumpio','mirror',$_POST['pumpio_mirror']); - set_pconfig(local_user(),'pumpio','post_by_default',intval($_POST['pumpio_bydefault'])); - + // Filtering the hostname if someone is entering it with "http" + $host = $_POST['pumpio_host']; + $host = trim($host); + $host = str_replace(array("https://", "http://"), array("", ""), $host); + + set_pconfig(local_user(),'pumpio','post',intval($_POST['pumpio'])); + set_pconfig(local_user(),'pumpio','host',$host); + set_pconfig(local_user(),'pumpio','user',$user); + set_pconfig(local_user(),'pumpio','public',$_POST['pumpio_public']); + set_pconfig(local_user(),'pumpio','mirror',$_POST['pumpio_mirror']); + set_pconfig(local_user(),'pumpio','post_by_default',intval($_POST['pumpio_bydefault'])); + } } - } function pumpio_post_local(&$a,&$b) { @@ -335,14 +363,16 @@ function pumpio_send(&$a,&$b) { if ($title != '') $title = "

".$title."

"; - $params->verb = "post"; + $params = array(); + + $params["verb"] = "post"; - $params->object = array( + $params["object"] = array( 'objectType' => "note", 'content' => $title.bbcode($b['body'], false, false)); if ($public) - $params->to = array(Array( + $params["to"] = array(Array( "objectType" => "collection", "id" => "http://activityschema.org/collection/public")); @@ -397,10 +427,10 @@ function pumpio_cron($a,$b) { } function pumpio_fetchtimeline($a, $uid) { - $ckey = get_pconfig($uid, 'pumpio', 'consumerkey'); - $csecret = get_pconfig($uid, 'pumpio', 'consumersecret'); - $otoken = get_pconfig($uid, 'pumpio', 'oauthtoken'); - $osecret = get_pconfig($uid, 'pumpio', 'oauthsecret'); + $ckey = get_pconfig($uid, 'pumpio', 'consumer_key'); + $csecret = get_pconfig($uid, 'pumpio', 'consumer_secret'); + $otoken = get_pconfig($uid, 'pumpio', 'oauth_token'); + $osecret = get_pconfig($uid, 'pumpio', 'oauth_token_secret'); $lastdate = get_pconfig($uid, 'pumpio', 'lastdate'); $hostname = get_pconfig($uid, 'pumpio','host'); $username = get_pconfig($uid, "pumpio", "user"); @@ -410,10 +440,7 @@ function pumpio_fetchtimeline($a, $uid) { if ($application_name == "") $application_name = $a->get_hostname(); - $first_time = ($lastid == ""); - - require('oauth/http.php'); - require('oauth/oauth_client.php'); + $first_time = ($lastdate == ""); $client = new oauth_client_class; $client->oauth_version = '1.0a'; @@ -421,31 +448,51 @@ function pumpio_fetchtimeline($a, $uid) { $client->url_parameters = false; $client->client_id = $ckey; - $client->client_secret = $csekret; + $client->client_secret = $csecret; $client->access_token = $otoken; $client->access_token_secret = $osecret; - $success = $client->CallAPI( - 'https://'.$hostname.'/api/user/'.$username.'/feed/major', - 'GET', array(), array('FailOnAccessError'=>true), $user); + $url = 'https://'.$hostname.'/api/user/'.$username.'/feed/major'; + + logger('pumpio: fetching for user '.$uid.' '.$url.' C:'.$client->client_id.' CS:'.$client->client_secret.' T:'.$client->access_token.' TS:'.$client->access_token_secret); + + $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $user); + + if (!$success) { + logger('pumpio: error fetching posts for user '.$uid." ".print_r($user, true)); + return; + } $posts = array_reverse($user->items); $initiallastdate = $lastdate; - $lastdate = 0; + $lastdate = ''; if (count($posts)) { foreach ($posts as $post) { - if (strtotime($post->published) <= $initiallastdate) + if ($post->generator->published <= $initiallastdate) + continue; + + if ($lastdate < $post->generator->published) + $lastdate = $post->generator->published; + + if ($first_time) continue; - if ($lastdate < strtotime($post->published)) - $lastdate = strtotime($post->published); + $receiptians = array(); + if (@is_array($post->cc)) + $receiptians = array_merge($receiptians, $post->cc); + + if (@is_array($post->to)) + $receiptians = array_merge($receiptians, $post->to); - //if ($first_time) - // continue; + $public = false; + foreach ($receiptians AS $receiver) + if (is_string($receiver->objectType)) + if ($receiver->id == "http://activityschema.org/collection/public") + $public = true; - if (!strpos($post->source, $application_name)) { + if ($public AND !strstr($post->generator->displayName, $application_name)) { require_once('include/html2bbcode.php'); $_SESSION["authenticated"] = true; @@ -456,16 +503,26 @@ function pumpio_fetchtimeline($a, $uid) { $_REQUEST["profile_uid"] = $uid; $_REQUEST["source"] = "pump.io"; + if ($post->object->displayName != "") + $_REQUEST["title"] = html2bbcode($post->object->displayName); + $_REQUEST["body"] = html2bbcode($post->object->content); + if ($post->object->fullImage->url != "") + $_REQUEST["body"] = "[url=".$post->object->fullImage->url."][img]".$post->object->image->url."[/img][/url]\n".$_REQUEST["body"]; + logger('pumpio: posting for user '.$uid); require_once('mod/item.php'); + //print_r($_REQUEST); item_post($a); + logger('pumpio: posting done - user '.$uid); } } } + //$lastdate = '2013-05-16T20:22:12Z'; + if ($lastdate != 0) set_pconfig($uid,'pumpio','lastdate', $lastdate); }