* Copyright (C) 2010, StatusNet, Inc.
*
* A class for moving an account to a new server
- *
+ *
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
-
class AccountMover extends QueueHandler
{
function transport()
$oprofile = Ostatus_profile::ensureProfileURI($remote);
if (empty($oprofile)) {
- throw new Exception("Can't locate account {$remote}");
+ // TRANS: Exception thrown when an account could not be located when it should be moved.
+ // TRANS: %s is the remote site.
+ throw new Exception(sprintf(_("Cannot locate account %s."),$remote));
}
list($svcDocUrl, $username) = self::getServiceDocument($remote);
$sink = new ActivitySink($svcDocUrl, $username, $password);
- $this->log(LOG_INFO,
+ $this->log(LOG_INFO,
"Moving user {$user->nickname} ".
"to {$remote}.");
$qm = QueueManager::get();
foreach ($acts as $act) {
- $qm->enqueue(array($act, $sink, $user->uri, $remote), 'actmove');
+ $qm->enqueue(array($act, $sink, $user->getUri(), $remote), 'actmove');
}
$this->log(LOG_INFO,
$xrd = $discovery->lookup($remote);
if (empty($xrd)) {
- throw new Exception("Can't find XRD for $remote");
- }
+ // TRANS: Exception thrown when a service document could not be located account move.
+ // TRANS: %s is the remote site.
+ throw new Exception(sprintf(_("Cannot find XRD for %s."),$remote));
+ }
$svcDocUrl = null;
$username = null;
- foreach ($xrd->links as $link) {
- if ($link['rel'] == 'http://apinamespace.org/atom' &&
- $link['type'] == 'application/atomsvc+xml') {
- $svcDocUrl = $link['href'];
- if (!empty($link['property'])) {
- foreach ($link['property'] as $property) {
- if ($property['type'] == 'http://apinamespace.org/atom/username') {
- $username = $property['value'];
- break;
- }
- }
- }
+ $link = $xrd->links->get('http://apinamespace.org/atom', 'application/atomsvc+xml');
+ if (!is_null($link)) {
+ $svcDocUrl = $link->href;
+ if (isset($link['http://apinamespace.org/atom/username'])) {
+ $username = $link['http://apinamespace.org/atom/username'];
break;
}
}
if (empty($svcDocUrl)) {
- throw new Exception("No AtomPub API service for $remote.");
+ // TRANS: Exception thrown when an account could not be located when it should be moved.
+ // TRANS: %s is the remote site.
+ throw new Exception(sprintf(_("No AtomPub API service for %s."),$remote));
}
return array($svcDocUrl, $username);
/**
* Log some data
- *
+ *
* Add a header for our class so we know who did it.
*
* @param int $level Log level, like LOG_ERR or LOG_INFO
*
* @return void
*/
-
protected function log($level, $message)
{
common_log($level, "AccountMover: " . $message);