forked from friendica/friendica-addons
pumpio: Sending posts to selected users
This commit is contained in:
parent
70bb288291
commit
d73e798a53
1 changed files with 92 additions and 8 deletions
|
@ -376,11 +376,18 @@ function pumpio_send(&$a,&$b) {
|
||||||
} else {
|
} else {
|
||||||
$iscomment = false;
|
$iscomment = false;
|
||||||
|
|
||||||
if(! strstr($b['postopts'],'pumpio'))
|
$receiver = pumpio_getreceiver($a, $b);
|
||||||
|
|
||||||
|
logger("pumpio_send: receiver ".print_r($receiver, true));
|
||||||
|
|
||||||
|
if (!count($receiver) AND ($b['private'] OR !strstr($b['postopts'],'pumpio')))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if($b['private'])
|
//if(! strstr($b['postopts'],'pumpio'))
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
|
//if($b['private'])
|
||||||
|
// return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if post comes from pump.io don't send it back
|
// if post comes from pump.io don't send it back
|
||||||
|
@ -426,10 +433,22 @@ function pumpio_send(&$a,&$b) {
|
||||||
'objectType' => "note",
|
'objectType' => "note",
|
||||||
'content' => $title.$content);
|
'content' => $title.$content);
|
||||||
|
|
||||||
if ($public)
|
if (count($receiver["to"]))
|
||||||
$params["to"] = array(Array(
|
$params["to"] = $receiver["to"];
|
||||||
"objectType" => "collection",
|
|
||||||
"id" => "http://activityschema.org/collection/public"));
|
if (count($receiver["bto"]))
|
||||||
|
$params["bto"] = $receiver["bto"];
|
||||||
|
|
||||||
|
if (count($receiver["cc"]))
|
||||||
|
$params["cc"] = $receiver["cc"];
|
||||||
|
|
||||||
|
if (count($receiver["bcc"]))
|
||||||
|
$params["bcc"] = $receiver["bcc"];
|
||||||
|
|
||||||
|
//if ($public)
|
||||||
|
// $params["to"] = array(Array(
|
||||||
|
// "objectType" => "collection",
|
||||||
|
// "id" => "http://activityschema.org/collection/public"));
|
||||||
} else {
|
} else {
|
||||||
$inReplyTo = array("id" => $orig_post["uri"],
|
$inReplyTo = array("id" => $orig_post["uri"],
|
||||||
"objectType" => "note");
|
"objectType" => "note");
|
||||||
|
@ -1222,6 +1241,7 @@ function pumpio_fetchinbox($a, $uid) {
|
||||||
|
|
||||||
set_pconfig($uid,'pumpio','last_id', $last_id);
|
set_pconfig($uid,'pumpio','last_id', $last_id);
|
||||||
|
|
||||||
|
/*
|
||||||
// Fetching the minor events
|
// Fetching the minor events
|
||||||
$last_minor_id = get_pconfig($uid,'pumpio','last_minor_id');
|
$last_minor_id = get_pconfig($uid,'pumpio','last_minor_id');
|
||||||
|
|
||||||
|
@ -1240,6 +1260,7 @@ function pumpio_fetchinbox($a, $uid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
set_pconfig($uid,'pumpio','last_minor_id', $last_minor_id);
|
set_pconfig($uid,'pumpio','last_minor_id', $last_minor_id);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
function pumpio_getallusers($a, $uid) {
|
function pumpio_getallusers($a, $uid) {
|
||||||
|
@ -1351,11 +1372,74 @@ function pumpio_queue_hook(&$a,&$b) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function pumpio_getreceiver($a, $b) {
|
||||||
|
|
||||||
|
$receiver = array();
|
||||||
|
|
||||||
|
if (!$b["private"]) {
|
||||||
|
|
||||||
|
if(! strstr($b['postopts'],'pumpio'))
|
||||||
|
return $receiver;
|
||||||
|
|
||||||
|
$public = get_pconfig($b['uid'], "pumpio", "public");
|
||||||
|
|
||||||
|
if ($public)
|
||||||
|
$receiver["to"][] = Array(
|
||||||
|
"objectType" => "collection",
|
||||||
|
"id" => "http://activityschema.org/collection/public");
|
||||||
|
} else {
|
||||||
|
$cids = explode("><", $b["allow_cid"]);
|
||||||
|
$gids = explode("><", $b["allow_gid"]);
|
||||||
|
|
||||||
|
foreach ($cids AS $cid) {
|
||||||
|
$cid = trim($cid, " <>");
|
||||||
|
|
||||||
|
$r = q("SELECT `name`, `nick`, `url` FROM `contact` WHERE `id` = %d AND `uid` = %d AND `network` = '%s' AND `blocked` = 0 AND `readonly` = 0 LIMIT 1",
|
||||||
|
intval($cid),
|
||||||
|
intval($b["uid"]),
|
||||||
|
dbesc(NETWORK_PUMPIO)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (count($r)) {
|
||||||
|
$receiver["bcc"][] = Array(
|
||||||
|
"displayName" => $r[0]["name"],
|
||||||
|
"objectType" => "person",
|
||||||
|
"preferredUsername" => $r[0]["nick"],
|
||||||
|
"url" => $r[0]["url"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($gids AS $gid) {
|
||||||
|
$gid = trim($gid, " <>");
|
||||||
|
|
||||||
|
$r = q("SELECT `contact`.`name`, `contact`.`nick`, `contact`.`url`, `contact`.`network` ".
|
||||||
|
"FROM `group_member`, `contact` WHERE `group_member`.`gid` = %d AND `group_member`.`uid` = %d ".
|
||||||
|
"AND `contact`.`id` = `group_member`.`contact-id` AND `contact`.`network` = '%s'",
|
||||||
|
intval($gid),
|
||||||
|
intval($b["uid"]),
|
||||||
|
dbesc(NETWORK_PUMPIO)
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($r AS $row)
|
||||||
|
$receiver["bcc"][] = Array(
|
||||||
|
"displayName" => $row["name"],
|
||||||
|
"objectType" => "person",
|
||||||
|
"preferredUsername" => $row["nick"],
|
||||||
|
"url" => $row["url"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $receiver;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
To-Do:
|
To-Do:
|
||||||
|
- Notification for own imported posts
|
||||||
|
- Thread completion
|
||||||
|
|
||||||
|
Nice to have:
|
||||||
|
- sending private messages
|
||||||
|
|
||||||
Could be hard to do:
|
Could be hard to do:
|
||||||
- Threads completion
|
|
||||||
- edit own notes
|
- edit own notes
|
||||||
- delete own notes
|
- delete own notes
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue