summaryrefslogtreecommitdiff
path: root/lib/xrdaction.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/xrdaction.php')
-rw-r--r--lib/xrdaction.php97
1 files changed, 61 insertions, 36 deletions
diff --git a/lib/xrdaction.php b/lib/xrdaction.php
index 43826b32b..855ed1ea8 100644
--- a/lib/xrdaction.php
+++ b/lib/xrdaction.php
@@ -53,54 +53,67 @@ class XrdAction extends Action
$xrd->subject = self::normalize($this->uri);
}
- if (Event::handle('StartXrdActionAliases', array(&$xrd, $this->user))) {
+ if (Event::handle('StartXrdActionAliases', array(&$xrd, $this->user))) {
- // Possible aliases for the user
+ // Possible aliases for the user
- $uris = array($this->user->uri, $profile->profileurl);
+ $uris = array($this->user->uri, $profile->profileurl);
- // FIXME: Webfinger generation code should live somewhere on its own
+ // FIXME: Webfinger generation code should live somewhere on its own
- $path = common_config('site', 'path');
+ $path = common_config('site', 'path');
- if (empty($path)) {
- $uris[] = sprintf('acct:%s@%s', $nick, common_config('site', 'server'));
- }
+ if (empty($path)) {
+ $uris[] = sprintf('acct:%s@%s', $nick, common_config('site', 'server'));
+ }
- foreach ($uris as $uri) {
- if ($uri != $xrd->subject) {
- $xrd->alias[] = $uri;
- }
- }
+ foreach ($uris as $uri) {
+ if ($uri != $xrd->subject) {
+ $xrd->alias[] = $uri;
+ }
+ }
- Event::handle('EndXrdActionAliases', array(&$xrd, $this->user));
- }
+ Event::handle('EndXrdActionAliases', array(&$xrd, $this->user));
+ }
- if (Event::handle('StartXrdActionLinks', array(&$xrd, $this->user))) {
-
- $xrd->links[] = array('rel' => self::PROFILEPAGE,
- 'type' => 'text/html',
- 'href' => $profile->profileurl);
+ if (Event::handle('StartXrdActionLinks', array(&$xrd, $this->user))) {
- // hCard
- $xrd->links[] = array('rel' => self::HCARD,
- 'type' => 'text/html',
- 'href' => common_local_url('hcard', array('nickname' => $nick)));
+ $xrd->links[] = array('rel' => self::PROFILEPAGE,
+ 'type' => 'text/html',
+ 'href' => $profile->profileurl);
- // XFN
- $xrd->links[] = array('rel' => 'http://gmpg.org/xfn/11',
- 'type' => 'text/html',
- 'href' => $profile->profileurl);
- // FOAF
- $xrd->links[] = array('rel' => 'describedby',
- 'type' => 'application/rdf+xml',
- 'href' => common_local_url('foaf',
- array('nickname' => $nick)));
+ // hCard
+ $xrd->links[] = array('rel' => self::HCARD,
+ 'type' => 'text/html',
+ 'href' => common_local_url('hcard', array('nickname' => $nick)));
-
- Event::handle('EndXrdActionLinks', array(&$xrd, $this->user));
- }
+ // XFN
+ $xrd->links[] = array('rel' => 'http://gmpg.org/xfn/11',
+ 'type' => 'text/html',
+ 'href' => $profile->profileurl);
+ // FOAF
+ $xrd->links[] = array('rel' => 'describedby',
+ 'type' => 'application/rdf+xml',
+ 'href' => common_local_url('foaf',
+ array('nickname' => $nick)));
+ $xrd->links[] = array('rel' => 'http://apinamespace.org/atom',
+ 'type' => 'application/atomsvc+xml',
+ 'href' => common_local_url('ApiAtomService', array('id' => $nick)));
+
+ if (common_config('site', 'fancy')) {
+ $apiRoot = common_path('api/', true);
+ } else {
+ $apiRoot = common_path('index.php/api/', true);
+ }
+
+ $xrd->links[] = array('rel' => 'http://apinamespace.org/twitter',
+ 'href' => $apiRoot,
+ 'property' => array(array('type' => 'http://apinamespace.org/twitter/username',
+ 'value' => $nick)));
+
+ Event::handle('EndXrdActionLinks', array(&$xrd, $this->user));
+ }
header('Content-type: application/xrd+xml');
print $xrd->toXML();
@@ -132,4 +145,16 @@ class XrdAction extends Action
return (substr($uri, 0, 5) == 'acct:');
}
+
+ /**
+ * Is this action read-only?
+ *
+ * @param array $args other arguments
+ *
+ * @return boolean is read only action?
+ */
+ function isReadOnly($args)
+ {
+ return true;
+ }
}