kopia lustrzana https://github.com/nextcloud/social
avatar on post
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>pull/985/head
rodzic
875203b75a
commit
cf8a326c2d
|
|
@ -140,7 +140,6 @@ class ApiController extends Controller {
|
|||
|
||||
/**
|
||||
* @NoCSRFRequired
|
||||
* @NoAdminRequired
|
||||
* @PublicPage
|
||||
*
|
||||
* @return DataResponse
|
||||
|
|
|
|||
|
|
@ -157,15 +157,16 @@ class ActionsRequestBuilder extends CoreRequestBuilder {
|
|||
|
||||
/**
|
||||
* @param array $data
|
||||
* @param SocialQueryBuilder $qb
|
||||
*
|
||||
* @return ACore
|
||||
*/
|
||||
public function parseActionsSelectSql($data): ACore {
|
||||
public function parseActionsSelectSql($data, SocialQueryBuilder $qb): ACore {
|
||||
$item = new ACore();
|
||||
$item->importFromDatabase($data);
|
||||
|
||||
try {
|
||||
$actor = $this->parseCacheActorsLeftJoin($data);
|
||||
$actor = $qb->parseLeftJoinCacheActors($data);
|
||||
$actor->setCompleteDetails(true);
|
||||
|
||||
$item->setActor($actor);
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ use Doctrine\DBAL\Query\QueryBuilder;
|
|||
use Exception;
|
||||
use OC;
|
||||
use OC\DB\SchemaWrapper;
|
||||
use OCA\Social\AP;
|
||||
use OCA\Social\Exceptions\InvalidResourceException;
|
||||
use OCA\Social\Model\ActivityPub\Actor\Person;
|
||||
use OCA\Social\Model\ActivityPub\Object\Follow;
|
||||
|
|
@ -917,32 +916,6 @@ class CoreRequestBuilder {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
*
|
||||
* @return Person
|
||||
* @throws InvalidResourceException
|
||||
*/
|
||||
public function parseCacheActorsLeftJoin(array $data): Person {
|
||||
$new = [];
|
||||
|
||||
foreach ($data as $k => $v) {
|
||||
if (substr($k, 0, 11) === 'cacheactor_') {
|
||||
$new[substr($k, 11)] = $v;
|
||||
}
|
||||
}
|
||||
|
||||
$actor = new Person();
|
||||
$actor->importFromDatabase($new);
|
||||
|
||||
if (!AP::$activityPub->isActor($actor)) {
|
||||
throw new InvalidResourceException();
|
||||
}
|
||||
|
||||
return $actor;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
*
|
||||
|
|
|
|||
|
|
@ -127,15 +127,16 @@ class FollowsRequestBuilder extends CoreRequestBuilder {
|
|||
|
||||
/**
|
||||
* @param array $data
|
||||
* @param SocialQueryBuilder $qb
|
||||
*
|
||||
* @return Follow
|
||||
*/
|
||||
public function parseFollowsSelectSql($data): Follow {
|
||||
public function parseFollowsSelectSql($data, SocialQueryBuilder $qb): Follow {
|
||||
$follow = new Follow();
|
||||
$follow->importFromDatabase($data);
|
||||
|
||||
try {
|
||||
$actor = $this->parseCacheActorsLeftJoin($data);
|
||||
$actor = $qb->parseLeftJoinCacheActors($data);
|
||||
$actor->setCompleteDetails(true);
|
||||
$this->assignDetails($actor, $data);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,8 +32,12 @@ namespace OCA\Social\Db;
|
|||
|
||||
|
||||
use daita\MySmallPhpTools\Db\ExtendedQueryBuilder;
|
||||
use OC\SystemConfig;
|
||||
use OCA\Social\Model\ActivityPub\Actor\Person;
|
||||
use OCP\DB\QueryBuilder\ICompositeExpression;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\ILogger;
|
||||
use OCP\IURLGenerator;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -44,6 +48,9 @@ use OCP\DB\QueryBuilder\ICompositeExpression;
|
|||
class SocialCoreQueryBuilder extends ExtendedQueryBuilder {
|
||||
|
||||
|
||||
/** @var IURLGenerator */
|
||||
protected $urlGenerator;
|
||||
|
||||
/** @var Person */
|
||||
private $viewer = null;
|
||||
|
||||
|
|
@ -52,6 +59,15 @@ class SocialCoreQueryBuilder extends ExtendedQueryBuilder {
|
|||
private $chunk = 0;
|
||||
|
||||
|
||||
public function __construct(
|
||||
IDBConnection $connection, SystemConfig $systemConfig, ILogger $logger, IURLGenerator $urlGenerator
|
||||
) {
|
||||
parent::__construct($connection, $systemConfig, $logger);
|
||||
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param int $chunk
|
||||
*
|
||||
|
|
|
|||
|
|
@ -145,6 +145,11 @@ class SocialCrossQueryBuilder extends SocialCoreQueryBuilder {
|
|||
|
||||
$actor = new Person();
|
||||
$actor->importFromDatabase($new);
|
||||
$actor->setAvatar(
|
||||
$this->urlGenerator->linkToRouteAbsolute('social.Local.globalActorAvatar') . '?id='
|
||||
. $actor->getId()
|
||||
);
|
||||
|
||||
if (!AP::$activityPub->isActor($actor)) {
|
||||
throw new InvalidResourceException();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ use OCA\Social\Model\ActivityPub\Internal\SocialAppNotification;
|
|||
use OCA\Social\Model\ActivityPub\Object\Document;
|
||||
use OCA\Social\Model\ActivityPub\Object\Note;
|
||||
use OCA\Social\Model\ActivityPub\Stream;
|
||||
use OCA\Social\Service\CacheActorService;
|
||||
use OCA\Social\Service\ConfigService;
|
||||
use OCA\Social\Service\MiscService;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
|
|
@ -60,9 +59,6 @@ use OCP\ILogger;
|
|||
class StreamRequest extends StreamRequestBuilder {
|
||||
|
||||
|
||||
/** @var CacheActorService */
|
||||
private $cacheActorService;
|
||||
|
||||
/** @var StreamDestRequest */
|
||||
private $streamDestRequest;
|
||||
|
||||
|
|
@ -75,20 +71,17 @@ class StreamRequest extends StreamRequestBuilder {
|
|||
*
|
||||
* @param IDBConnection $connection
|
||||
* @param ILogger $logger
|
||||
* @param CacheActorService $cacheActorService
|
||||
* @param StreamDestRequest $streamDestRequest
|
||||
* @param StreamTagsRequest $streamTagsRequest
|
||||
* @param ConfigService $configService
|
||||
* @param MiscService $miscService
|
||||
*/
|
||||
public function __construct(
|
||||
IDBConnection $connection, ILogger $logger, CacheActorService $cacheActorService,
|
||||
StreamDestRequest $streamDestRequest, StreamTagsRequest $streamTagsRequest,
|
||||
ConfigService $configService, MiscService $miscService
|
||||
IDBConnection $connection, ILogger $logger, StreamDestRequest $streamDestRequest,
|
||||
StreamTagsRequest $streamTagsRequest, ConfigService $configService, MiscService $miscService
|
||||
) {
|
||||
parent::__construct($connection, $logger, $configService, $miscService);
|
||||
|
||||
$this->cacheActorService = $cacheActorService;
|
||||
$this->streamDestRequest = $streamDestRequest;
|
||||
$this->streamTagsRequest = $streamTagsRequest;
|
||||
}
|
||||
|
|
@ -395,7 +388,8 @@ class StreamRequest extends StreamRequestBuilder {
|
|||
* @return Stream[]
|
||||
* @throws DateTimeException
|
||||
*/
|
||||
public function getTimelineHome(int $since = 0, int $limit = 5, int $format = Stream::FORMAT_ACTIVITYPUB): array {
|
||||
public function getTimelineHome(int $since = 0, int $limit = 5, int $format = Stream::FORMAT_ACTIVITYPUB
|
||||
): array {
|
||||
$qb = $this->getStreamSelectSql($format);
|
||||
$qb->setChunk(1);
|
||||
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ class StreamRequestBuilder extends CoreRequestBuilder {
|
|||
}
|
||||
|
||||
try {
|
||||
$actor = $this->parseCacheActorsLeftJoin($data);
|
||||
$actor = $qb->parseLeftJoinCacheActors($data);
|
||||
$actor->setExportFormat($qb->getFormat());
|
||||
$item->setCompleteDetails(true);
|
||||
$item->setActor($actor);
|
||||
|
|
|
|||
|
|
@ -109,6 +109,9 @@ class Person extends ACore implements IQueryRow, JsonSerializable {
|
|||
/** @var string */
|
||||
private $featured = '';
|
||||
|
||||
/** @var string */
|
||||
private $avatar = '';
|
||||
|
||||
/** @var string */
|
||||
private $header = '';
|
||||
|
||||
|
|
@ -237,7 +240,18 @@ class Person extends ACore implements IQueryRow, JsonSerializable {
|
|||
->getId();
|
||||
}
|
||||
|
||||
return '';
|
||||
return $this->avatar;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $avatar
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setAvatar(string $avatar): self {
|
||||
$this->avatar = $avatar;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -495,6 +495,8 @@ class Stream extends ACore implements IQueryRow, JsonSerializable {
|
|||
'reblogged' => false,
|
||||
'muted' => false,
|
||||
'bookmarked' => false,
|
||||
'uri' => $this->getId(),
|
||||
'url' => $this->getId(),
|
||||
"reblog" => null,
|
||||
"created_at" => date('Y-m-d\TH:i:s', $this->getPublishedTime()) . '.000Z'
|
||||
];
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue