X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=pumpio%2Fpumpio.php;h=b90d8b608dfa4cf10ed017404a48c086ed89d71b;hb=3b54203d80b63101d064581081ec7a2a5236e322;hp=dc4a6a420ed376c2b24d94c7ce1c2a17825222bc;hpb=ab010d10a7f20171e319d835ddd73fefc29c1312;p=friendica-addons.git diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php index dc4a6a42..b90d8b60 100644 --- a/pumpio/pumpio.php +++ b/pumpio/pumpio.php @@ -1,7 +1,7 @@ */ @@ -499,7 +499,10 @@ function pumpio_send(&$a,&$b) { $username = $user.'@'.$host; $url = 'https://'.$host.'/api/user/'.$user.'/feed'; - $success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user); + if (pumpio_reachable($url)) + $success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user); + else + $success = false; if($success) { @@ -585,7 +588,10 @@ function pumpio_action(&$a, $uid, $uri, $action, $content = "") { $url = 'https://'.$hostname.'/api/user/'.$username.'/feed'; - $success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user); + if (pumpio_reachable($url)) + $success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user); + else + $success = false; if($success) logger('pumpio_action '.$username.' '.$action.': success '.$uri); @@ -603,8 +609,13 @@ function pumpio_action(&$a, $uid, $uri, $action, $content = "") { } } +function pumpio_sync(&$a) { + $r = q("SELECT * FROM `addon` WHERE `installed` = 1 AND `name` = 'pumpio'", + $plugin); + + if (!count($r)) + return; -function pumpio_cron(&$a,$b) { $last = get_config('pumpio','last_poll'); $poll_interval = intval(get_config('pumpio','poll_interval')); @@ -667,6 +678,11 @@ function pumpio_cron(&$a,$b) { set_config('pumpio','last_poll', time()); } +function pumpio_cron(&$a,$b) { + //pumpio_sync($a); + proc_run("php","addon/pumpio/pumpio_sync.php"); +} + function pumpio_fetchtimeline(&$a, $uid) { $ckey = get_pconfig($uid, 'pumpio', 'consumer_key'); $csecret = get_pconfig($uid, 'pumpio', 'consumer_secret'); @@ -703,7 +719,10 @@ function pumpio_fetchtimeline(&$a, $uid) { $username = $user.'@'.$host; - $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $user); + if (pumpio_reachable($url)) + $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $user); + else + $success = false; if (!$success) { logger('pumpio: error fetching posts for user '.$uid." ".$username." ".print_r($user, true)); @@ -925,6 +944,13 @@ function pumpio_dolike(&$a, $uid, $self, $post, $own_id, $threadcompletion = tru function pumpio_get_contact($uid, $contact) { + if (function_exists("update_gcontact")) + update_gcontact($contact->url, + NETWORK_PUMPIO, $contact->image->url, + $contact->displayName, $contact->preferredUsername, + $contact->location->displayName, $contact->summary, + str_replace("acct:", "", $contact->id)); + $r = q("SELECT id FROM unique_contacts WHERE url='%s' LIMIT 1", dbesc(normalise_link($contact->url))); @@ -1361,7 +1387,10 @@ function pumpio_fetchinbox(&$a, $uid) { if ($last_id != "") $url .= '?since='.urlencode($last_id); - $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $user); + if (pumpio_reachable($url)) + $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $user); + else + $success = false; if ($user->items) { $posts = array_reverse($user->items); @@ -1399,12 +1428,18 @@ function pumpio_getallusers(&$a, $uid) { $url = 'https://'.$hostname.'/api/user/'.$username.'/following'; - $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $users); + if (pumpio_reachable($url)) + $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $users); + else + $success = false; if ($users->totalItems > count($users->items)) { $url = 'https://'.$hostname.'/api/user/'.$username.'/following?count='.$users->totalItems; - $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $users); + if (pumpio_reachable($url)) + $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $users); + else + $success = false; } foreach ($users->items AS $user) @@ -1465,7 +1500,10 @@ function pumpio_queue_hook(&$a,&$b) { $client->client_id = $consumer_key; $client->client_secret = $consumer_secret; - $success = $client->CallAPI($z['url'], 'POST', $z['post'], array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user); + if (pumpio_reachable($z['url'])) + $success = $client->CallAPI($z['url'], 'POST', $z['post'], array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user); + else + $success = false; if($success) { $post_id = $user->object->id; @@ -1613,7 +1651,10 @@ function pumpio_fetchallcomments(&$a, $uid, $id) { logger("pumpio_fetchallcomments: fetching comment for user ".$uid." url ".$url); - $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $item); + if (pumpio_reachable($url)) + $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $item); + else + $success = false; if (!$success) return; @@ -1678,6 +1719,12 @@ function pumpio_fetchallcomments(&$a, $uid, $id) { } } + +function pumpio_reachable($url) { + $data = z_fetch_url($url, false, $redirects, array('timeout'=>10)); + return(intval($data['return_code']) != 0); +} + /* To-Do: - edit own notes