protected function atompubPrepare() { $subscriber = $this->trimmed('subscriber'); $this->_profile = Profile::getKV('id', $subscriber); if (!$this->_profile instanceof Profile) { // TRANS: Client exception thrown when trying to display a subscription for a non-existing profile ID. // TRANS: %d is the non-existing profile ID number. throw new ClientException(sprintf(_('No such profile id: %d.'), $subscriber), 404); } $this->_subscriptions = Subscription::bySubscriber($this->_profile->id, $this->offset, $this->limit); return true; }
function dumpSubscriptions($user, $dir) { common_log(LOG_INFO, 'dumping subscriptions by ' . $user->nickname . ' to directory ' . $dir); $page = 1; do { $sub = Subscription::bySubscriber($user->id, ($page - 1) * PROFILES_PER_PAGE, PROFILES_PER_PAGE + 1); while ($sub->fetch()) { try { if ($sub->subscribed == $user->id) { continue; } $fname = $dir . '/' . common_date_iso8601($sub->created) . '-subscription-' . $sub->subscribed . '.atom'; $act = $sub->asActivity(); $data = $act->asString(false, false, false); common_log(LOG_INFO, 'dumping sub of ' . $sub->subscribed . ' to file ' . $fname); file_put_contents($fname, $data); $data = null; } catch (Exception $e) { common_log(LOG_ERR, "Error backing up subscription to " . $sub->subscribed . ": " . $e->getMessage()); continue; } } $page++; } while ($sub->N > PROFILES_PER_PAGE); }
function getSubscriptions($offset = 0, $limit = null) { $subs = Subscription::bySubscriber($this->id, $offset, $limit); $profiles = array(); while ($subs->fetch()) { $profile = Profile::staticGet($subs->subscribed); if ($profile) { $profiles[] = $profile; } } return new ArrayWrapper($profiles); }