Loose_Ostatusprofile::updateAvatar was identical to Ostatus_profile
This commit is contained in:
parent
371f4b4874
commit
0499736bb4
@ -43,71 +43,6 @@ require_once INSTALLDIR . '/scripts/commandline.inc';
|
|||||||
*/
|
*/
|
||||||
class LooseOstatusProfile extends Ostatus_profile
|
class LooseOstatusProfile extends Ostatus_profile
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Download and update given avatar image
|
|
||||||
*
|
|
||||||
* @param string $url
|
|
||||||
* @throws Exception in various failure cases
|
|
||||||
*/
|
|
||||||
public function updateAvatar($url)
|
|
||||||
{
|
|
||||||
if (!common_valid_http_url($url)) {
|
|
||||||
// TRANS: Server exception. %s is a URL.
|
|
||||||
throw new ServerException(sprintf(_m('Invalid avatar URL %s.'), $url));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->isGroup()) {
|
|
||||||
$self = $this->localGroup();
|
|
||||||
} else {
|
|
||||||
$self = $this->localProfile();
|
|
||||||
}
|
|
||||||
if (!$self) {
|
|
||||||
throw new ServerException(sprintf(
|
|
||||||
// TRANS: Server exception. %s is a URI.
|
|
||||||
_m('Tried to update avatar for unsaved remote profile %s.'),
|
|
||||||
$this->uri));
|
|
||||||
}
|
|
||||||
|
|
||||||
// @fixme this should be better encapsulated
|
|
||||||
// ripped from oauthstore.php (for old OMB client)
|
|
||||||
$temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
|
|
||||||
try {
|
|
||||||
if (!copy($url, $temp_filename)) {
|
|
||||||
// TRANS: Server exception. %s is a URL.
|
|
||||||
throw new ServerException(sprintf(_m('Unable to fetch avatar from %s.'), $url));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->isGroup()) {
|
|
||||||
$id = $this->group_id;
|
|
||||||
} else {
|
|
||||||
$id = $this->profile_id;
|
|
||||||
}
|
|
||||||
// @fixme should we be using different ids?
|
|
||||||
$imagefile = new ImageFile($id, $temp_filename);
|
|
||||||
$filename = Avatar::filename($id,
|
|
||||||
image_type_to_extension($imagefile->type),
|
|
||||||
null,
|
|
||||||
common_timestamp());
|
|
||||||
rename($temp_filename, Avatar::path($filename));
|
|
||||||
} catch (Exception $e) {
|
|
||||||
unlink($temp_filename);
|
|
||||||
throw $e;
|
|
||||||
}
|
|
||||||
// @fixme hardcoded chmod is lame, but seems to be necessary to
|
|
||||||
// keep from accidentally saving images from command-line (queues)
|
|
||||||
// that can't be read from web server, which causes hard-to-notice
|
|
||||||
// problems later on:
|
|
||||||
//
|
|
||||||
// http://status.net/open-source/issues/2663
|
|
||||||
chmod(Avatar::path($filename), 0644);
|
|
||||||
|
|
||||||
$self->setOriginal($filename);
|
|
||||||
|
|
||||||
$orig = clone($this);
|
|
||||||
$this->avatar = $url;
|
|
||||||
$this->update($orig);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Look up and if necessary create an Ostatus_profile for the remote entity
|
* Look up and if necessary create an Ostatus_profile for the remote entity
|
||||||
* with the given profile page URL. This should never return null -- you
|
* with the given profile page URL. This should never return null -- you
|
||||||
|
Loading…
Reference in New Issue
Block a user