forked from GNUsocial/gnu-social
eecd611f67
Starting the process of remote subscriptions. First, add the capacity to mint tags. May in the future want to allow some kind of UUID or URL for unique URIs. New config options for tag authority and date, and a function for minting tags. Store URIs in the DB. If the admin changes his/her tag config, this shouldn't change the URIs in the DB. Unless they really want to make that happen. Generate an XRDS document with the appropriate URLs for microblogging. Also, redefined some stuff in openmicroblogging.txt. And moved the file. darcs-hash:20080522183421-84dde-fe46f32e4050f2c4b6c850334103007ed7feabf7.gz
69 lines
2.0 KiB
PHP
69 lines
2.0 KiB
PHP
<?php
|
|
/*
|
|
* Laconica - a distributed open-source microblogging tool
|
|
* Copyright (C) 2008, Controlez-Vous, Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
if (!defined('LACONICA')) { exit(1); }
|
|
|
|
define('OPENMICROBLOGGING01', 'http://openmicroblogging.org/protocol/0.1');
|
|
|
|
class XrdsAction extends Action {
|
|
|
|
function handle($args) {
|
|
parent::handle($args);
|
|
$nickname = $this->trimmed('nickname');
|
|
$user = User::staticGet('nickname', $nickname);
|
|
if (!$user) {
|
|
common_user_error(_t('No such user.'));
|
|
return;
|
|
}
|
|
$this->show_xrds($user);
|
|
}
|
|
|
|
function show_xrds($user) {
|
|
|
|
header('Content-Type: application/rdf+xml');
|
|
|
|
common_start_xml();
|
|
common_element_start('xrds:XRDS', array('xmlns:xrds' => 'xri://$xrds',
|
|
'xmlns' => 'xri://$xrd*($v*2.0)'));
|
|
common_element_start('XRD');
|
|
|
|
$this->show_service(OPENMICROBLOGGING01.'/identifier',
|
|
$user->uri);
|
|
|
|
# XXX: decide whether to include user's ID/nickname in postNotice URL
|
|
|
|
foreach (array('requestToken', 'userAuthorization',
|
|
'accessToken', 'postNotice',
|
|
'updateProfile') as $type) {
|
|
$this->show_service(OPENMICROBLOGGING01.'/'.$type,
|
|
common_local_url(strtolower($type)));
|
|
}
|
|
|
|
common_element_end('XRD');
|
|
common_element_end('xrds:XRDS');
|
|
common_end_xml();
|
|
}
|
|
|
|
function show_service($type, $uri) {
|
|
common_element_start('Service');
|
|
common_element('Type', $type);
|
|
common_element('URI', $uri);
|
|
common_element_end('Service');
|
|
}
|
|
} |