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);
 }
Ejemplo n.º 3
0
 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);
 }