From 1ceb93cce483794582f1a928de27592acb4f89cf Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 15 Sep 2010 15:18:01 -0400 Subject: [PATCH] move useractivitystream class to its own module --- lib/useractivitystream.php | 151 +++++++++++++++++++++++++++++++++++++ scripts/backupuser.php | 133 -------------------------------- 2 files changed, 151 insertions(+), 133 deletions(-) create mode 100644 lib/useractivitystream.php diff --git a/lib/useractivitystream.php b/lib/useractivitystream.php new file mode 100644 index 0000000000..0fc315e26e --- /dev/null +++ b/lib/useractivitystream.php @@ -0,0 +1,151 @@ +. + */ + +/** + * Class for activity streams + * + * Includes faves, notices, and subscriptions. + * + * We extend atomusernoticefeed since it does some nice setup for us. + * + */ + +class UserActivityStream extends AtomUserNoticeFeed +{ + function __construct($user, $indent = true) + { + parent::__construct($user, null, $indent); + + $subscriptions = $this->getSubscriptions(); + $subscribers = $this->getSubscribers(); + $groups = $this->getGroups(); + $faves = $this->getFaves(); + $notices = $this->getNotices(); + + $objs = array_merge($subscriptions, $subscribers, $groups, $faves, $notices); + + // Sort by create date + + usort($objs, 'UserActivityStream::compareObject'); + + foreach ($objs as $obj) { + $act = $obj->asActivity(); + // Only show the author sub-element if it's different from default user + $str = $act->asString(false, ($act->actor->id != $this->user->uri)); + $this->addEntryRaw($str); + } + } + + function compareObject($a, $b) + { + $ac = strtotime((empty($a->created)) ? $a->modified : $a->created); + $bc = strtotime((empty($b->created)) ? $b->modified : $b->created); + + return (($ac == $bc) ? 0 : (($ac < $bc) ? 1 : -1)); + } + + function getSubscriptions() + { + $subs = array(); + + $sub = new Subscription(); + + $sub->subscriber = $this->user->id; + + if ($sub->find()) { + while ($sub->fetch()) { + if ($sub->subscribed != $this->user->id) { + $subs[] = clone($sub); + } + } + } + + return $subs; + } + + function getSubscribers() + { + $subs = array(); + + $sub = new Subscription(); + + $sub->subscribed = $this->user->id; + + if ($sub->find()) { + while ($sub->fetch()) { + if ($sub->subscriber != $this->user->id) { + $subs[] = clone($sub); + } + } + } + + return $subs; + } + + function getFaves() + { + $faves = array(); + + $fave = new Fave(); + + $fave->user_id = $this->user->id; + + if ($fave->find()) { + while ($fave->fetch()) { + $faves[] = clone($fave); + } + } + + return $faves; + } + + function getNotices() + { + $notices = array(); + + $notice = new Notice(); + + $notice->profile_id = $this->user->id; + + if ($notice->find()) { + while ($notice->fetch()) { + $notices[] = clone($notice); + } + } + + return $notices; + } + + function getGroups() + { + $groups = array(); + + $gm = new Group_member(); + + $gm->profile_id = $this->user->id; + + if ($gm->find()) { + while ($gm->fetch()) { + $groups[] = clone($gm); + } + } + + return $groups; + } +} diff --git a/scripts/backupuser.php b/scripts/backupuser.php index ef1008eb3b..56a54810ca 100644 --- a/scripts/backupuser.php +++ b/scripts/backupuser.php @@ -34,139 +34,6 @@ END_OF_EXPORTACTIVITYSTREAM_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; -/** - * Class for activity streams - * - * Includes faves, notices, and subscriptions. - * - * We extend atomusernoticefeed since it does some nice setup for us. - * - */ - -class UserActivityStream extends AtomUserNoticeFeed -{ - function __construct($user, $indent = true) - { - parent::__construct($user, null, $indent); - - $subscriptions = $this->getSubscriptions(); - $subscribers = $this->getSubscribers(); - $groups = $this->getGroups(); - $faves = $this->getFaves(); - $notices = $this->getNotices(); - - $objs = array_merge($subscriptions, $subscribers, $groups, $faves, $notices); - - // Sort by create date - - usort($objs, 'UserActivityStream::compareObject'); - - foreach ($objs as $obj) { - $act = $obj->asActivity(); - // Only show the author sub-element if it's different from default user - $str = $act->asString(false, ($act->actor->id != $this->user->uri)); - $this->addEntryRaw($str); - } - } - - function compareObject($a, $b) - { - $ac = strtotime((empty($a->created)) ? $a->modified : $a->created); - $bc = strtotime((empty($b->created)) ? $b->modified : $b->created); - - return (($ac == $bc) ? 0 : (($ac < $bc) ? 1 : -1)); - } - - function getSubscriptions() - { - $subs = array(); - - $sub = new Subscription(); - - $sub->subscriber = $this->user->id; - - if ($sub->find()) { - while ($sub->fetch()) { - if ($sub->subscribed != $this->user->id) { - $subs[] = clone($sub); - } - } - } - - return $subs; - } - - function getSubscribers() - { - $subs = array(); - - $sub = new Subscription(); - - $sub->subscribed = $this->user->id; - - if ($sub->find()) { - while ($sub->fetch()) { - if ($sub->subscriber != $this->user->id) { - $subs[] = clone($sub); - } - } - } - - return $subs; - } - - function getFaves() - { - $faves = array(); - - $fave = new Fave(); - - $fave->user_id = $this->user->id; - - if ($fave->find()) { - while ($fave->fetch()) { - $faves[] = clone($fave); - } - } - - return $faves; - } - - function getNotices() - { - $notices = array(); - - $notice = new Notice(); - - $notice->profile_id = $this->user->id; - - if ($notice->find()) { - while ($notice->fetch()) { - $notices[] = clone($notice); - } - } - - return $notices; - } - - function getGroups() - { - $groups = array(); - - $gm = new Group_member(); - - $gm->profile_id = $this->user->id; - - if ($gm->find()) { - while ($gm->fetch()) { - $groups[] = clone($gm); - } - } - - return $groups; - } -} - function getUser() { $user = null;