*/
protected function prepare(array $args=array())
{
- StatusNet::setApi(true); // reduce exception reports to aid in debugging
+ GNUsocial::setApi(true); // reduce exception reports to aid in debugging
parent::prepare($args);
$this->format = $this->arg('format');
$this->limit = $this->count + 1;
if ($this->arg('since')) {
- header('X-StatusNet-Warning: since parameter is disabled; use since_id');
+ header('X-GNUsocial-Warning: since parameter is disabled; use since_id');
}
$this->source = $this->trimmed('source');
$twitter_user['statuses_count'] = $profile->noticeCount();
// Is the requesting user following this user?
+ // These values might actually also mean "unknown". Ambiguity issues?
$twitter_user['following'] = false;
$twitter_user['statusnet_blocking'] = false;
$twitter_user['notifications'] = false;
- if (isset($this->auth_user)) {
-
- $twitter_user['following'] = $this->auth_user->isSubscribed($profile);
- $twitter_user['statusnet_blocking'] = $this->auth_user->hasBlocked($profile);
-
- // Notifications on?
- $sub = Subscription::pkeyGet(array('subscriber' =>
- $this->auth_user->id,
- 'subscribed' => $profile->id));
-
- if ($sub) {
+ if ($this->scoped instanceof Profile) {
+ try {
+ $sub = Subscription::getSubscription($this->scoped, $profile);
+ // Notifications on?
+ $twitter_user['following'] = true;
+ $twitter_user['statusnet_blocking'] = $this->scoped->hasBlocked($profile);
$twitter_user['notifications'] = ($sub->jabber || $sub->sms);
+ } catch (NoResultException $e) {
+ // well, the values are already false...
}
}
{
$base = $this->twitterSimpleStatusArray($notice, $include_user);
+ // FIXME: MOVE TO SHARE PLUGIN
if (!empty($notice->repeat_of)) {
$original = Notice::getKV('id', $notice->repeat_of);
if ($original instanceof Notice) {
// different story for parenting.
$parent = $notice->getParent();
$in_reply_to = $parent->id;
- } catch (Exception $e) {
+ } catch (NoParentNoticeException $e) {
$in_reply_to = null;
}
$twitter_status['in_reply_to_status_id'] = $in_reply_to;
$twitter_status['geo'] = null;
}
- if (!is_null($this->scoped)) {
- $twitter_status['repeated'] = $this->scoped->hasRepeated($notice);
- } else {
- $twitter_status['repeated'] = false;
- }
-
// Enclosures
$attachments = $notice->attachments();
$twitter_group['nickname'] = $group->nickname;
$twitter_group['fullname'] = $group->fullname;
- if (isset($this->auth_user)) {
- $twitter_group['member'] = $this->auth_user->isMember($group);
+ if ($this->scoped instanceof Profile) {
+ $twitter_group['member'] = $this->scoped->isMember($group);
$twitter_group['blocked'] = Group_block::isBlocked(
$group,
- $this->auth_user->getProfile()
+ $this->scoped
);
}
$twitter_list['member_count'] = $list->taggedCount();
$twitter_list['uri'] = $list->getUri();
- if (isset($this->auth_user)) {
- $twitter_list['following'] = $list->hasSubscriber($this->auth_user);
+ if ($this->scoped instanceof Profile) {
+ $twitter_list['following'] = $list->hasSubscriber($this->scoped);
} else {
$twitter_list['following'] = false;
}
$relationship = array();
$relationship['source'] =
- $this->relationshipDetailsArray($source, $target);
+ $this->relationshipDetailsArray($source->getProfile(), $target->getProfile());
$relationship['target'] =
- $this->relationshipDetailsArray($target, $source);
+ $this->relationshipDetailsArray($target->getProfile(), $source->getProfile());
return array('relationship' => $relationship);
}
- function relationshipDetailsArray($source, $target)
+ function relationshipDetailsArray(Profile $source, Profile $target)
{
$details = array();
- $source_profile = $source->getProfile();
- $target_profile = $target->getProfile();
+ $details['screen_name'] = $source->getNickname();
+ $details['followed_by'] = $target->isSubscribed($source);
- $details['screen_name'] = $source->nickname;
- $details['followed_by'] = $target->isSubscribed($source_profile);
- $details['following'] = $source->isSubscribed($target_profile);
-
- $notifications = false;
-
- if ($source->isSubscribed($target_profile)) {
- $sub = Subscription::pkeyGet(array('subscriber' =>
- $source->id, 'subscribed' => $target->id));
-
- if (!empty($sub)) {
- $notifications = ($sub->jabber || $sub->sms);
- }
+ try {
+ $sub = Subscription::getSubscription($source, $target);
+ $details['following'] = true;
+ $details['notifications_enabled'] = ($sub->jabber || $sub->sms);
+ } catch (NoResultException $e) {
+ $details['following'] = false;
+ $details['notifications_enabled'] = false;
}
- $details['notifications_enabled'] = $notifications;
- $details['blocking'] = $source->hasBlocked($target_profile);
+ $details['blocking'] = $source->hasBlocked($target);
$details['id'] = intval($source->id);
return $details;
$this->showGeoXML($value);
break;
case 'retweeted_status':
+ // FIXME: MOVE TO SHARE PLUGIN
$this->showTwitterXmlStatus($value, 'retweeted_status');
break;
default:
function showSingleAtomStatus($notice)
{
header('Content-Type: application/atom+xml; charset=utf-8');
- print $notice->asAtomEntry(true, true, true, $this->auth_user->getProfile());
+ print $notice->asAtomEntry(true, true, true, $this->scoped);
}
function show_single_json_status($notice)
return User::getKV('nickname', $nickname);
} else {
// Fall back to trying the currently authenticated user
- return $this->auth_user;
+ return $this->scoped->getUser();
}
} else if (self::is_decimal($id)) {
}
if (!empty($list) && $list->private) {
- if ($this->auth_user->id == $list->tagger) {
+ if ($this->scoped->id == $list->tagger) {
return $list;
}
} else {
$aargs['id'] = $id;
}
+ $user = $this->arg('user');
+ if (!empty($user)) {
+ $aargs['user'] = $user;
+ }
+
$tag = $this->arg('tag');
if (!empty($tag)) {
$aargs['tag'] = $tag;