* Version: 0.2
* Author: Michael Vogel <http://pirati.ca/profile/heluecht>
*/
+use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\PConfig;
use Friendica\Core\Worker;
use Friendica\Model\GContact;
use Friendica\Model\Group;
use Friendica\Model\User;
+use Friendica\Model\Item;
require 'addon/pumpio/oauth/http.php';
require 'addon/pumpio/oauth/oauth_client.php';
define('PUMPIO_DEFAULT_POLL_INTERVAL', 5); // given in minutes
function pumpio_install() {
- register_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local');
- register_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send');
- register_hook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets');
- register_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
- register_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
- register_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
- register_hook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook');
- register_hook('check_item_notification','addon/pumpio/pumpio.php', 'pumpio_check_item_notification');
+ Addon::registerHook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local');
+ Addon::registerHook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send');
+ Addon::registerHook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets');
+ Addon::registerHook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
+ Addon::registerHook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
+ Addon::registerHook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
+ Addon::registerHook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook');
+ Addon::registerHook('check_item_notification','addon/pumpio/pumpio.php', 'pumpio_check_item_notification');
}
function pumpio_uninstall() {
- unregister_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local');
- unregister_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send');
- unregister_hook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets');
- unregister_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
- unregister_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
- unregister_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
- unregister_hook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook');
- unregister_hook('check_item_notification','addon/pumpio/pumpio.php', 'pumpio_check_item_notification');
+ Addon::unregisterHook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local');
+ Addon::unregisterHook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send');
+ Addon::unregisterHook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets');
+ Addon::unregisterHook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
+ Addon::unregisterHook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
+ Addon::unregisterHook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
+ Addon::unregisterHook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook');
+ Addon::unregisterHook('check_item_notification','addon/pumpio/pumpio.php', 'pumpio_check_item_notification');
}
function pumpio_module() {}
$url = "https://".$host."/api/client/register";
- $params = array();
+ $params = [];
$application_name = Config::get('pumpio', 'application_name');
// 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);
+ $host = str_replace(["https://", "http://"], ["", ""], $host);
PConfig::set(local_user(),'pumpio','post',intval($_POST['pumpio']));
PConfig::set(local_user(),'pumpio','import',$_POST['pumpio_import']);
$content = bbcode($b['body'], false, false, 4);
- $params = array();
+ $params = [];
$params["verb"] = "post";
if (!$iscomment) {
- $params["object"] = array(
+ $params["object"] = [
'objectType' => "note",
- 'content' => $content);
+ 'content' => $content];
if ($title != "")
$params["object"]["displayName"] = $title;
$params["bcc"] = $receiver["bcc"];
} else {
- $inReplyTo = array("id" => $orig_post["uri"],
- "objectType" => "note");
+ $inReplyTo = ["id" => $orig_post["uri"],
+ "objectType" => "note"];
if (($orig_post["object-type"] != "") && (strstr($orig_post["object-type"], NAMESPACE_ACTIVITY_SCHEMA)))
$inReplyTo["objectType"] = str_replace(NAMESPACE_ACTIVITY_SCHEMA, '', $orig_post["object-type"]);
- $params["object"] = array(
+ $params["object"] = [
'objectType' => "comment",
'content' => $content,
- 'inReplyTo' => $inReplyTo);
+ 'inReplyTo' => $inReplyTo];
if ($title != "")
$params["object"]["displayName"] = $title;
$url = 'https://'.$host.'/api/user/'.$user.'/feed';
if (pumpio_reachable($url))
- $success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
+ $success = $client->CallAPI($url, 'POST', $params, ['FailOnAccessError'=>true, 'RequestContentType'=>'application/json'], $user);
else
$success = false;
if (count($r))
$a->contact = $r[0]["id"];
- $s = serialize(array('url' => $url, 'item' => $b['id'], 'post' => $params));
+ $s = serialize(['url' => $url, 'item' => $b['id'], 'post' => $params]);
require_once('include/queue_fn.php');
add_to_queue($a->contact,NETWORK_PUMPIO,$s);
notice(t('Pump.io post failed. Queued for retry.').EOL);
$objectType = "image";
$params["verb"] = $action;
- $params["object"] = array('id' => $uri,
+ $params["object"] = ['id' => $uri,
"objectType" => $objectType,
- "content" => $content);
+ "content" => $content];
$client = new oauth_client_class;
$client->oauth_version = '1.0a';
$url = 'https://'.$hostname.'/api/user/'.$username.'/feed';
if (pumpio_reachable($url))
- $success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
+ $success = $client->CallAPI($url, 'POST', $params, ['FailOnAccessError'=>true, 'RequestContentType'=>'application/json'], $user);
else
$success = false;
if (count($r))
$a->contact = $r[0]["id"];
- $s = serialize(array('url' => $url, 'item' => $orig_post["id"], 'post' => $params));
+ $s = serialize(['url' => $url, 'item' => $orig_post["id"], 'post' => $params]);
require_once('include/queue_fn.php');
add_to_queue($a->contact,NETWORK_PUMPIO,$s);
notice(t('Pump.io like failed. Queued for retry.').EOL);
$username = $user.'@'.$host;
if (pumpio_reachable($url))
- $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $user);
+ $success = $client->CallAPI($url, 'GET', [], ['FailOnAccessError'=>true], $user);
else
$success = false;
if ($first_time)
continue;
- $receiptians = array();
+ $receiptians = [];
if (@is_array($post->cc))
$receiptians = array_merge($receiptians, $post->cc);
return;
}
- $likedata = array();
+ $likedata = [];
$likedata['parent'] = $orig_post['id'];
$likedata['verb'] = ACTIVITY_LIKE;
$likedata['gravity'] = 3;
function pumpio_get_contact($uid, $contact, $no_insert = false) {
- GContact::update(array("url" => $contact->url, "network" => NETWORK_PUMPIO, "generation" => 2,
+ GContact::update(["url" => $contact->url, "network" => NETWORK_PUMPIO, "generation" => 2,
"photo" => $contact->image->url, "name" => $contact->displayName, "hide" => true,
"nick" => $contact->preferredUsername, "location" => $contact->location->displayName,
- "about" => $contact->summary, "addr" => str_replace("acct:", "", $contact->id)));
+ "about" => $contact->summary, "addr" => str_replace("acct:", "", $contact->id)]);
$cid = Contact::getIdForURL($contact->url, $uid);
if ($no_insert)
);
if (count($r))
- return drop_item($r[0]["id"], $false);
+ return Item::delete($r[0]["id"]);
$r = q("SELECT * FROM `item` WHERE `extid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($post->object->id),
);
if (count($r))
- return drop_item($r[0]["id"], $false);
+ return Item::delete($r[0]["id"]);
}
function pumpio_dopost(&$a, $client, $uid, $self, $post, $own_id, $threadcompletion = true) {
if (!strstr("post|share|update", $post->verb))
return false;
- $receiptians = array();
+ $receiptians = [];
if (@is_array($post->cc))
$receiptians = array_merge($receiptians, $post->cc);
if ($receiver->id == "http://activityschema.org/collection/public")
$public = true;
- $postarray = array();
+ $postarray = [];
$postarray['network'] = NETWORK_PUMPIO;
$postarray['gravity'] = 0;
$postarray['uid'] = $uid;
$conv_parent = $conv['parent'];
- notification(array(
+ notification([
'type' => NOTIFY_COMMENT,
'notify_flags' => $user[0]['notify-flags'],
'language' => $user[0]['language'],
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
- ));
+ ]);
// only send one notification
break;
$url .= '?since='.urlencode($last_id);
if (pumpio_reachable($url))
- $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $user);
+ $success = $client->CallAPI($url, 'GET', [], ['FailOnAccessError'=>true], $user);
else
$success = false;
$url = 'https://'.$hostname.'/api/user/'.$username.'/following';
if (pumpio_reachable($url))
- $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $users);
+ $success = $client->CallAPI($url, 'GET', [], ['FailOnAccessError'=>true], $users);
else
$success = false;
$url = 'https://'.$hostname.'/api/user/'.$username.'/following?count='.$users->totalItems;
if (pumpio_reachable($url))
- $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $users);
+ $success = $client->CallAPI($url, 'GET', [], ['FailOnAccessError'=>true], $users);
else
$success = false;
}
$client->client_secret = $consumer_secret;
if (pumpio_reachable($z['url']))
- $success = $client->CallAPI($z['url'], 'POST', $z['post'], array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
+ $success = $client->CallAPI($z['url'], 'POST', $z['post'], ['FailOnAccessError'=>true, 'RequestContentType'=>'application/json'], $user);
else
$success = false;
function pumpio_getreceiver(&$a, $b) {
- $receiver = array();
+ $receiver = [];
if (!$b["private"]) {
$public = PConfig::get($b['uid'], "pumpio", "public");
if ($public)
- $receiver["to"][] = Array(
+ $receiver["to"][] = [
"objectType" => "collection",
- "id" => "http://activityschema.org/collection/public");
+ "id" => "http://activityschema.org/collection/public"];
} else {
$cids = explode("><", $b["allow_cid"]);
$gids = explode("><", $b["allow_gid"]);
);
if (count($r)) {
- $receiver["bcc"][] = Array(
+ $receiver["bcc"][] = [
"displayName" => $r[0]["name"],
"objectType" => "person",
"preferredUsername" => $r[0]["nick"],
- "url" => $r[0]["url"]);
+ "url" => $r[0]["url"]];
}
}
foreach ($gids AS $gid) {
);
foreach ($r AS $row)
- $receiver["bcc"][] = Array(
+ $receiver["bcc"][] = [
"displayName" => $row["name"],
"objectType" => "person",
"preferredUsername" => $row["nick"],
- "url" => $row["url"]);
+ "url" => $row["url"]];
}
}
);
if (count($r)) {
- $receiver["to"][] = Array(
+ $receiver["to"][] = [
"displayName" => $r[0]["name"],
"objectType" => "person",
"preferredUsername" => $r[0]["nick"],
- "url" => $r[0]["url"]);
+ "url" => $r[0]["url"]];
}
}
}
logger("pumpio_fetchallcomments: fetching comment for user ".$uid." url ".$url);
if (pumpio_reachable($url))
- $success = $client->CallAPI($url, 'GET', array(), array('FailOnAccessError'=>true), $item);
+ $success = $client->CallAPI($url, 'GET', [], ['FailOnAccessError'=>true], $item);
else
$success = false;
function pumpio_reachable($url) {
- $data = z_fetch_url($url, false, $redirects, array('timeout'=>10));
+ $data = z_fetch_url($url, false, $redirects, ['timeout'=>10]);
return(intval($data['return_code']) != 0);
}