Some better context for notices as arrays
This commit is contained in:
parent
9bb5d8c695
commit
6164940e8c
@ -1577,6 +1577,7 @@ class Notice extends Managed_DataObject
|
|||||||
$rprofile = Profile::staticGet('id', $id);
|
$rprofile = Profile::staticGet('id', $id);
|
||||||
if (!empty($rprofile)) {
|
if (!empty($rprofile)) {
|
||||||
$ctx->attention[] = $rprofile->getUri();
|
$ctx->attention[] = $rprofile->getUri();
|
||||||
|
$ctx->attentionType[$rprofile->getUri()] = ActivityObject::PERSON;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1584,6 +1585,19 @@ class Notice extends Managed_DataObject
|
|||||||
|
|
||||||
foreach ($groups as $group) {
|
foreach ($groups as $group) {
|
||||||
$ctx->attention[] = $group->getUri();
|
$ctx->attention[] = $group->getUri();
|
||||||
|
$ctx->attentionType[$group->getUri()] = ActivityObject::GROUP;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($this->scope) {
|
||||||
|
case Notice::PUBLIC_SCOPE:
|
||||||
|
$ctx->attention[] = "http://activityschema.org/collection/public";
|
||||||
|
$ctx->attentionType["http://activityschema.org/collection/public"] = ActivityObject::COLLECTION;
|
||||||
|
break;
|
||||||
|
case Notice::FOLLOWER_SCOPE:
|
||||||
|
$surl = common_local_url("subscribers", array('nickname' => $profile->nickname));
|
||||||
|
$ctx->attention[] = $surl;
|
||||||
|
$ctx->attentionType[$surl] = ActivityObject::COLLECTION;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX: deprecated; use ActivityVerb::SHARE instead
|
// XXX: deprecated; use ActivityVerb::SHARE instead
|
||||||
|
@ -38,9 +38,11 @@ class ActivityContext
|
|||||||
public $replyToUrl;
|
public $replyToUrl;
|
||||||
public $location;
|
public $location;
|
||||||
public $attention = array();
|
public $attention = array();
|
||||||
|
public $attentionType = array();
|
||||||
public $conversation;
|
public $conversation;
|
||||||
public $forwardID; // deprecated, use ActivityVerb::SHARE instead
|
public $forwardID; // deprecated, use ActivityVerb::SHARE instead
|
||||||
public $forwardUrl; // deprecated, use ActivityVerb::SHARE instead
|
public $forwardUrl; // deprecated, use ActivityVerb::SHARE instead
|
||||||
|
public $scope;
|
||||||
|
|
||||||
const THR = 'http://purl.org/syndication/thread/1.0';
|
const THR = 'http://purl.org/syndication/thread/1.0';
|
||||||
const GEORSS = 'http://www.georss.org/georss';
|
const GEORSS = 'http://www.georss.org/georss';
|
||||||
@ -167,10 +169,14 @@ class ActivityContext
|
|||||||
$tos = array();
|
$tos = array();
|
||||||
|
|
||||||
foreach ($this->attention as $attnUrl) {
|
foreach ($this->attention as $attnUrl) {
|
||||||
|
if (array_key_exists($attnUrl, $this->attentionType)) {
|
||||||
|
$type = ActivityObject::canonicalType($this->attentionType[$attnUrl]);
|
||||||
|
} else {
|
||||||
|
$type = ActivityObject::canonicalType(ActivityObject::PERSON);
|
||||||
|
}
|
||||||
$to = array(
|
$to = array(
|
||||||
'objectType' => 'person',
|
'objectType' => $type,
|
||||||
'id' => $attnUrl,
|
'id' => $attnUrl
|
||||||
'url' => $attnUrl
|
|
||||||
);
|
);
|
||||||
$tos[] = $to;
|
$tos[] = $to;
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,7 @@ class ActivityObject
|
|||||||
const ACTIVITY = 'http://activitystrea.ms/schema/1.0/activity';
|
const ACTIVITY = 'http://activitystrea.ms/schema/1.0/activity';
|
||||||
const SERVICE = 'http://activitystrea.ms/schema/1.0/service';
|
const SERVICE = 'http://activitystrea.ms/schema/1.0/service';
|
||||||
const IMAGE = 'http://activitystrea.ms/schema/1.0/image';
|
const IMAGE = 'http://activitystrea.ms/schema/1.0/image';
|
||||||
|
const COLLECTION = 'http://activitystrea.ms/schema/1.0/collection';
|
||||||
|
|
||||||
// Atom elements we snarf
|
// Atom elements we snarf
|
||||||
|
|
||||||
@ -502,6 +503,10 @@ class ActivityObject
|
|||||||
|
|
||||||
$object->poco = PoCo::fromProfile($profile);
|
$object->poco = PoCo::fromProfile($profile);
|
||||||
|
|
||||||
|
if ($profile->getUser()) {
|
||||||
|
$object->extra[] = array('followers', array('url' => common_local_url('subscribers', array('nickname' => $profile->nickname))));
|
||||||
|
}
|
||||||
|
|
||||||
Event::handle('EndActivityObjectFromProfile', array($profile, &$object));
|
Event::handle('EndActivityObjectFromProfile', array($profile, &$object));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -737,7 +742,12 @@ class ActivityObject
|
|||||||
// downstreamDuplicates
|
// downstreamDuplicates
|
||||||
|
|
||||||
// id
|
// id
|
||||||
|
|
||||||
|
if ($this->id) {
|
||||||
$object['id'] = $this->id;
|
$object['id'] = $this->id;
|
||||||
|
} else if ($this->link) {
|
||||||
|
$object['id'] = $this->link;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->type == ActivityObject::PERSON
|
if ($this->type == ActivityObject::PERSON
|
||||||
|| $this->type == ActivityObject::GROUP) {
|
|| $this->type == ActivityObject::GROUP) {
|
||||||
|
Loading…
Reference in New Issue
Block a user