public static function rawContent(array $parameters = [])
{
$totalstamp = microtime(true);
- $a = DI::app();
- // @TODO: Replace with parameter from router
- if ($a->argc <= 1 || $a->argc > 4) {
- throw new \Friendica\Network\HTTPException\BadRequestException();
- }
if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"])) {
header("HTTP/1.1 304 Not Modified");
$customsize = 0;
$photo = false;
$scale = null;
- // @TODO: Replace with parameter from router
$stamp = microtime(true);
- switch($a->argc) {
- case 4:
- $customsize = intval($a->argv[2]);
- $uid = MPhoto::stripExtension($a->argv[3]);
- $photo = self::getAvatar($uid, $a->argv[1]);
- break;
- case 3:
- $uid = MPhoto::stripExtension($a->argv[2]);
- $photo = self::getAvatar($uid, $a->argv[1]);
- break;
- case 2:
- $photoid = MPhoto::stripExtension($a->argv[1]);
- $scale = 0;
- if (substr($photoid, -2, 1) == "-") {
- $scale = intval(substr($photoid, -1, 1));
- $photoid = substr($photoid, 0, -2);
- }
- $photo = MPhoto::getPhoto($photoid, $scale);
- if ($photo === false) {
- throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('The Photo with id %s is not available.', $photoid));
- }
- break;
+ if (!empty($parameters['customsize'])) {
+ $customsize = intval($parameters['customsize']);
+ $uid = MPhoto::stripExtension($parameters['name']);
+ $photo = self::getAvatar($uid, $parameters['type']);
+ } elseif (!empty($parameters['type'])) {
+ $uid = MPhoto::stripExtension($parameters['name']);
+ $photo = self::getAvatar($uid, $parameters['type']);
+ } elseif (!empty($parameters['name'])) {
+ $photoid = MPhoto::stripExtension($parameters['name']);
+ $scale = 0;
+ if (substr($photoid, -2, 1) == "-") {
+ $scale = intval(substr($photoid, -1, 1));
+ $photoid = substr($photoid, 0, -2);
+ }
+ $photo = MPhoto::getPhoto($photoid, $scale);
+ if ($photo === false) {
+ throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('The Photo with id %s is not available.', $photoid));
+ }
+ } else {
+ throw new \Friendica\Network\HTTPException\BadRequestException();
}
$fetch = microtime(true) - $stamp;
private static function getAvatar($uid, $type="avatar")
{
switch($type) {
+ case "contact":
+ $contact = Contact::getById($uid, ['uid', 'url', 'avatar', 'photo']);
+ if (empty($contact)) {
+ return false;
+ }
+ If (($contact['uid'] != 0) && empty($contact['photo']) && empty($contact['avatar'])) {
+ $contact = Contact::getByURL($contact['url'], false, ['avatar', 'photo']);
+ }
+ if (!empty($contact['photo'])) {
+ $url = $contact['photo'];
+ } elseif (!empty($contact['avatar'])) {
+ $url = $contact['avatar'];
+ } else {
+ $url = DI::baseUrl() . Contact::DEFAULT_AVATAR_PHOTO;
+ }
+ return MPhoto::createPhotoForSystemResource($url);
+ case "header":
+ $contact = Contact::getById($uid, ['uid', 'url', 'header']);
+ if (empty($contact)) {
+ return false;
+ }
+ If (($contact['uid'] != 0) && empty($contact['header'])) {
+ $contact = Contact::getByURL($contact['url'], false, ['header']);
+ }
+ if (!empty($contact['header'])) {
+ $url = $contact['header'];
+ } else {
+ $url = DI::baseUrl() . '/images/blank.png';
+ }
+ return MPhoto::createPhotoForSystemResource($url);
case "profile":
case "custom":
$scale = 4;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Util\DateTimeFormat;
-use Friendica\Util\Proxy;
/**
* Class Account
$this->note = BBCode::convert($publicContact['about'], false);
$this->url = $publicContact['url'];
- $this->avatar = ($userContact['photo'] ?? $publicContact['photo']) ?: Proxy::proxifyUrl($userContact['avatar'] ?? $publicContact['avatar']);
+ $this->avatar = (($userContact['photo'] ?? '') ?: $publicContact['photo']) ?: DI::baseUrl() . '/photo/contact/'. (($userContact['id'] ?? 0) ?: $publicContact['id']);
$this->avatar_static = $this->avatar;
- $this->header = Proxy::proxifyUrl($userContact['header'] ?? $publicContact['header'] ?? '') ?: DI::baseUrl() . '/images/blank.png';
+ $this->header = DI::baseUrl() . '/photo/header/'. (($userContact['id'] ?? 0) ?: $publicContact['id']);
$this->header_static = $this->header;
$this->followers_count = $apcontact['followers_count'] ?? 0;
$this->following_count = $apcontact['following_count'] ?? 0;
'/permission/tooltip/{type}/{id:\d+}' => [Module\PermissionTooltip::class, [R::GET]],
'/photo' => [
- '/{name}' => [Module\Photo::class, [R::GET]],
- '/{type}/{name}' => [Module\Photo::class, [R::GET]],
- '/{type}/{customize}/{name}' => [Module\Photo::class, [R::GET]],
+ '/{name}' => [Module\Photo::class, [R::GET]],
+ '/{type}/{name}' => [Module\Photo::class, [R::GET]],
+ '/{type}/{customsize}/{name}' => [Module\Photo::class, [R::GET]],
],
'/pretheme' => [Module\ThemeDetails::class, [R::GET]],