summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Notice.php21
-rw-r--r--classes/Profile.php78
-rw-r--r--lib/activity.php (renamed from plugins/OStatus/lib/activity.php)3
3 files changed, 6 insertions, 96 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index a12839d72..ba8646f68 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -1119,25 +1119,8 @@ class Notice extends Memcached_DataObject
*/
function asActivityNoun($element)
{
- $xs = new XMLStringer(true);
-
- $xs->elementStart('activity:' . $element);
- $xs->element('activity:object-type',
- null,
- 'http://activitystrea.ms/schema/1.0/note');
- $xs->element('id',
- null,
- $this->uri);
- $xs->element('content',
- array('type' => 'text/html'),
- $this->rendered);
- $xs->element('link',
- array('type' => 'text/html',
- 'rel' => 'alternate',
- 'href' => $this->bestUrl()));
- $xs->elementEnd('activity:' . $element);
-
- return $xs->getString();
+ $noun = ActivityObject::fromNotice($this);
+ return $noun->asString('activity:' . $element);
}
function bestUrl()
diff --git a/classes/Profile.php b/classes/Profile.php
index 7fb2b87bc..78223b34a 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -801,82 +801,8 @@ class Profile extends Memcached_DataObject
*/
function asActivityNoun($element)
{
- $xs = new XMLStringer(true);
-
- $xs->elementStart('activity:' . $element);
- $xs->element(
- 'activity:object-type',
- null,
- 'http://activitystrea.ms/schema/1.0/person'
- );
- $xs->element(
- 'id',
- null,
- $this->getUri()
- );
-
- // title should contain fullname
- $xs->element('title', null, $this->getBestName());
-
- $xs->element('link', array('rel' => 'alternate',
- 'type' => 'text/html'),
- $this->profileurl);
-
- $xs->element('poco:preferredUsername', null, $this->nickname);
-
- // Portable Contacts stuff
-
- if (isset($this->bio)) {
-
- // XXX: Possible to use OpenSocial's aboutMe?
-
- $xs->element('poco:note', null, $this->bio);
- }
-
- if (isset($this->homepage)) {
-
- $xs->elementStart('poco:urls');
- $xs->element('poco:value', null, $this->homepage);
- $xs->element('poco:type', null, 'homepage');
- $xs->element('poco:primary', null, 'true');
- $xs->elementEnd('poco:urls');
- }
-
- if (isset($this->location)) {
- $xs->elementStart('poco:address');
- $xs->element('poco:formatted', null, $this->location);
- $xs->elementEnd('poco:address');
- }
-
- if (isset($this->lat) && isset($this->lon)) {
- $this->element(
- 'georss:point',
- null,
- (float)$this->lat . ' ' . (float)$this->lon
- );
- }
-
- // XXX: Should we send all avatar sizes we have? I think
- // cliqset does -Z
-
- $avatar = $this->getAvatar(AVATAR_PROFILE_SIZE);
-
- $xs->element(
- 'link', array(
- 'type' => empty($avatar) ? 'image/png' : $avatar->mediatype,
- 'rel' => 'avatar',
- 'href' => empty($avatar)
- ? Avatar::defaultImage(AVATAR_PROFILE_SIZE)
- : $avatar->displayUrl()
- ),
- ''
- );
-
- $xs->elementEnd('activity:' . $element);
-
- // XXX: Add people tags with <poco:tags> plural?
-
- return $xs->getString();
+ $noun = ActivityObject::fromProfile($this);
+ return $noun->asString('activity:' . $element);
}
/**
diff --git a/plugins/OStatus/lib/activity.php b/lib/activity.php
index 585028318..3689dac38 100644
--- a/plugins/OStatus/lib/activity.php
+++ b/lib/activity.php
@@ -19,9 +19,10 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- * @category OStatus
+ * @category Feed
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
+ * @author Zach Copley <zach@status.net>
* @copyright 2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
* @link http://status.net/