add a verb column to the notice table

This commit is contained in:
Evan Prodromou 2011-08-22 16:02:14 -04:00
parent 8884a5255f
commit 48bb784400
2 changed files with 21 additions and 10 deletions

View File

@ -72,6 +72,7 @@ class Notice extends Memcached_DataObject
public $location_id; // int(4) public $location_id; // int(4)
public $location_ns; // int(4) public $location_ns; // int(4)
public $repeat_of; // int(4) public $repeat_of; // int(4)
public $verb; // varchar(255)
public $object_type; // varchar(255) public $object_type; // varchar(255)
public $scope; // int(4) public $scope; // int(4)
@ -264,6 +265,7 @@ class Notice extends Memcached_DataObject
* notice in place of extracting links from content * notice in place of extracting links from content
* boolean 'distribute' whether to distribute the notice, default true * boolean 'distribute' whether to distribute the notice, default true
* string 'object_type' URL of the associated object type (default ActivityObject::NOTE) * string 'object_type' URL of the associated object type (default ActivityObject::NOTE)
* string 'verb' URL of the associated verb (default ActivityVerb::POST)
* int 'scope' Scope bitmask; default to SITE_SCOPE on private sites, 0 otherwise * int 'scope' Scope bitmask; default to SITE_SCOPE on private sites, 0 otherwise
* *
* @fixme tag override * @fixme tag override
@ -277,7 +279,9 @@ class Notice extends Memcached_DataObject
'reply_to' => null, 'reply_to' => null,
'repeat_of' => null, 'repeat_of' => null,
'scope' => null, 'scope' => null,
'distribute' => true); 'distribute' => true,
'object_type' => null,
'verb' => null);
if (!empty($options) && is_array($options)) { if (!empty($options) && is_array($options)) {
$options = array_merge($defaults, $options); $options = array_merge($defaults, $options);
@ -448,6 +452,17 @@ class Notice extends Memcached_DataObject
$notice->rendered = common_render_content($final, $notice); $notice->rendered = common_render_content($final, $notice);
} }
if (empty($verb)) {
if (!empty($notice->repeat_of)) {
$notice->verb = ActivityVerb::SHARE;
$notice->object_type = ActivityVerb::ACTIVITY;
} else {
$notice->verb = ActivityVerb::POST;
}
} else {
$notice->verb = $verb;
}
if (empty($object_type)) { if (empty($object_type)) {
$notice->object_type = (empty($notice->reply_to)) ? ActivityObject::NOTE : ActivityObject::COMMENT; $notice->object_type = (empty($notice->reply_to)) ? ActivityObject::NOTE : ActivityObject::COMMENT;
} else { } else {
@ -1444,18 +1459,13 @@ class Notice extends Memcached_DataObject
$act->actor = ActivityObject::fromProfile($profile); $act->actor = ActivityObject::fromProfile($profile);
$act->actor->extra[] = $profile->profileInfo($cur); $act->actor->extra[] = $profile->profileInfo($cur);
$act->verb = $this->verb;
if ($this->repeat_of) { if ($this->repeat_of) {
$repeated = Notice::staticGet('id', $this->repeat_of); $repeated = Notice::staticGet('id', $this->repeat_of);
$act->objects[] = $repeated->asActivity($cur);
$act->verb = ActivityVerb::SHARE;
$act->objects[] = $repeated->asActivity($cur);
} else { } else {
$act->objects[] = ActivityObject::fromNotice($this);
$act->verb = ActivityVerb::POST;
$act->objects[] = ActivityObject::fromNotice($this);
} }
// XXX: should this be handled by default processing for object entry? // XXX: should this be handled by default processing for object entry?

View File

@ -201,6 +201,7 @@ $schema['notice'] = array(
'location_ns' => array('type' => 'int', 'description' => 'namespace for location'), 'location_ns' => array('type' => 'int', 'description' => 'namespace for location'),
'repeat_of' => array('type' => 'int', 'description' => 'notice this is a repeat of'), 'repeat_of' => array('type' => 'int', 'description' => 'notice this is a repeat of'),
'object_type' => array('type' => 'varchar', 'length' => 255, 'description' => 'URI representing activity streams object type', 'default' => 'http://activitystrea.ms/schema/1.0/note'), 'object_type' => array('type' => 'varchar', 'length' => 255, 'description' => 'URI representing activity streams object type', 'default' => 'http://activitystrea.ms/schema/1.0/note'),
'verb' => array('type' => 'varchar', 'length' => 255, 'description' => 'URI representing activity streams verb', 'default' => 'http://activitystrea.ms/schema/1.0/post'),
'scope' => array('type' => 'int', 'scope' => array('type' => 'int',
'default' => '1', 'default' => '1',
'description' => 'bit map for distribution scope; 0 = everywhere; 1 = this server only; 2 = addressees; 4 = followers'), 'description' => 'bit map for distribution scope; 0 = everywhere; 1 = this server only; 2 = addressees; 4 = followers'),