Merge pull request #1663 from nextcloud/fix/noid/avatar-3

add icon to actor
pull/1656/head
Maxence Lange 2023-03-15 19:27:15 -01:00 zatwierdzone przez GitHub
commit a1f2a8a799
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
3 zmienionych plików z 38 dodań i 24 usunięć

Wyświetl plik

@ -36,7 +36,6 @@ use OCA\Social\Model\ActivityPub\Actor\Person;
use OCA\Social\Model\ActivityPub\Stream;
use OCA\Social\Tools\Exceptions\RowNotFoundException;
use OCA\Social\Tools\Traits\TArrayTools;
use OCP\DB\QueryBuilder\IQueryBuilder;
class CacheActorsRequestBuilder extends CoreRequestBuilder {
use TArrayTools;
@ -58,9 +57,9 @@ class CacheActorsRequestBuilder extends CoreRequestBuilder {
/**
* Base of the Sql Update request
*
* @return IQueryBuilder
* @return SocialQueryBuilder
*/
protected function getCacheActorsUpdateSql(): IQueryBuilder {
protected function getCacheActorsUpdateSql(): SocialQueryBuilder {
$qb = $this->getQueryBuilder();
$qb->update(self::TABLE_CACHE_ACTORS);

Wyświetl plik

@ -170,8 +170,6 @@ class SocialCrossQueryBuilder extends SocialCoreQueryBuilder {
}
$expr = $this->expr();
$func = $this->func();
$pf = (($alias === '') ? $this->getDefaultSelectAlias() : $alias);
$this->selectAlias('cd.id', 'cachedocument_id')
->selectAlias('cd.type', 'cachedocument_type')

Wyświetl plik

@ -697,6 +697,12 @@ class Person extends ACore implements IQueryRow, JsonSerializable {
->setFeatured($this->validate(self::AS_URL, 'featured', $data, ''))
->setDetailsAll($this->getArray('details', $data, []));
if ($this->hasIcon()) {
$this->setAvatar($this->getIcon()->getUrl());
} else {
$this->setAvatar($this->getAvatar());
}
try {
$cTime = new DateTime($this->get('creation', $data, 'yesterday'));
$this->setCreation($cTime->getTimestamp());
@ -722,9 +728,7 @@ class Person extends ACore implements IQueryRow, JsonSerializable {
* @return array
*/
public function exportAsActivityPub(): array {
$result = array_merge(
parent::exportAsActivityPub(),
[
$data = [
'aliases' => [
$this->getUrlSocial() . '@' . $this->getPreferredUsername(),
$this->getUrlSocial() . 'users/' . $this->getPreferredUsername()
@ -742,7 +746,20 @@ class Person extends ACore implements IQueryRow, JsonSerializable {
'owner' => $this->getId(),
'publicKeyPem' => $this->getPublicKey()
]
]
];
if ($this->hasIcon()) {
$icon = $this->getIcon();
$data['icon'] = [
'type' => $icon->getType(),
'mediaType' => $icon->getMediaType(),
'url' => $icon->getUrl()
];
}
$result = array_merge(
parent::exportAsActivityPub(),
$data
);
if ($this->isCompleteDetails()) {