kopia lustrzana https://github.com/nextcloud/social
new route tags/search
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>pull/666/head
rodzic
10ac856110
commit
aa5233f526
|
@ -96,6 +96,7 @@ return [
|
||||||
['name' => 'Local#globalActorInfo', 'url' => '/api/v1/global/actor/info', 'verb' => 'GET'],
|
['name' => 'Local#globalActorInfo', 'url' => '/api/v1/global/actor/info', 'verb' => 'GET'],
|
||||||
['name' => 'Local#globalActorAvatar', 'url' => '/api/v1/global/actor/avatar', 'verb' => 'GET'],
|
['name' => 'Local#globalActorAvatar', 'url' => '/api/v1/global/actor/avatar', 'verb' => 'GET'],
|
||||||
['name' => 'Local#globalAccountsSearch', 'url' => '/api/v1/global/accounts/search', 'verb' => 'GET'],
|
['name' => 'Local#globalAccountsSearch', 'url' => '/api/v1/global/accounts/search', 'verb' => 'GET'],
|
||||||
|
['name' => 'Local#globalTagsSearch', 'url' => '/api/v1/global/tags/search', 'verb' => 'GET'],
|
||||||
|
|
||||||
// ['name' => 'Local#documentsCache', 'url' => '/api/v1/documents/cache', 'verb' => 'POST'],
|
// ['name' => 'Local#documentsCache', 'url' => '/api/v1/documents/cache', 'verb' => 'POST'],
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@ use OCA\Social\Service\BoostService;
|
||||||
use OCA\Social\Service\CacheActorService;
|
use OCA\Social\Service\CacheActorService;
|
||||||
use OCA\Social\Service\DocumentService;
|
use OCA\Social\Service\DocumentService;
|
||||||
use OCA\Social\Service\FollowService;
|
use OCA\Social\Service\FollowService;
|
||||||
|
use OCA\Social\Service\HashtagService;
|
||||||
use OCA\Social\Service\LikeService;
|
use OCA\Social\Service\LikeService;
|
||||||
use OCA\Social\Service\MiscService;
|
use OCA\Social\Service\MiscService;
|
||||||
use OCA\Social\Service\NoteService;
|
use OCA\Social\Service\NoteService;
|
||||||
|
@ -76,6 +77,9 @@ class LocalController extends Controller {
|
||||||
/** @var CacheActorService */
|
/** @var CacheActorService */
|
||||||
private $cacheActorService;
|
private $cacheActorService;
|
||||||
|
|
||||||
|
/** @var HashtagService */
|
||||||
|
private $hashtagService;
|
||||||
|
|
||||||
/** @var FollowService */
|
/** @var FollowService */
|
||||||
private $followService;
|
private $followService;
|
||||||
|
|
||||||
|
@ -115,6 +119,7 @@ class LocalController extends Controller {
|
||||||
* @param string $userId
|
* @param string $userId
|
||||||
* @param AccountService $accountService
|
* @param AccountService $accountService
|
||||||
* @param CacheActorService $cacheActorService
|
* @param CacheActorService $cacheActorService
|
||||||
|
* @param HashtagService $hashtagService
|
||||||
* @param FollowService $followService
|
* @param FollowService $followService
|
||||||
* @param PostService $postService
|
* @param PostService $postService
|
||||||
* @param NoteService $noteService
|
* @param NoteService $noteService
|
||||||
|
@ -126,7 +131,8 @@ class LocalController extends Controller {
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
IRequest $request, $userId, AccountService $accountService,
|
IRequest $request, $userId, AccountService $accountService,
|
||||||
CacheActorService $cacheActorService, FollowService $followService,
|
CacheActorService $cacheActorService, HashtagService $hashtagService,
|
||||||
|
FollowService $followService,
|
||||||
PostService $postService, NoteService $noteService, SearchService $searchService,
|
PostService $postService, NoteService $noteService, SearchService $searchService,
|
||||||
BoostService $boostService, LikeService $likeService, DocumentService $documentService,
|
BoostService $boostService, LikeService $likeService, DocumentService $documentService,
|
||||||
MiscService $miscService
|
MiscService $miscService
|
||||||
|
@ -135,6 +141,7 @@ class LocalController extends Controller {
|
||||||
|
|
||||||
$this->userId = $userId;
|
$this->userId = $userId;
|
||||||
$this->cacheActorService = $cacheActorService;
|
$this->cacheActorService = $cacheActorService;
|
||||||
|
$this->hashtagService = $hashtagService;
|
||||||
$this->accountService = $accountService;
|
$this->accountService = $accountService;
|
||||||
$this->noteService = $noteService;
|
$this->noteService = $noteService;
|
||||||
$this->searchService = $searchService;
|
$this->searchService = $searchService;
|
||||||
|
@ -760,6 +767,41 @@ class LocalController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Look for an exactly matching account */
|
/* Look for an exactly matching account */
|
||||||
|
$match = null;
|
||||||
|
try {
|
||||||
|
$match = $this->hashtagService->getHashtag($search);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$tags = $this->hashtagService->searchHashtags($search);
|
||||||
|
|
||||||
|
return $this->success(['tags' => $tags, 'exact' => $match]);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return $this->fail($e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
*
|
||||||
|
* @param string $search
|
||||||
|
*
|
||||||
|
* @return DataResponse
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function globalTagsSearch(string $search): DataResponse {
|
||||||
|
$this->initViewer();
|
||||||
|
|
||||||
|
if (substr($search, 0, 1) === '#') {
|
||||||
|
$search = substr($search, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($search === '') {
|
||||||
|
return $this->success(['accounts' => [], 'exact' => []]);
|
||||||
|
}
|
||||||
|
|
||||||
$match = null;
|
$match = null;
|
||||||
try {
|
try {
|
||||||
$match = $this->cacheActorService->getFromAccount($search, false);
|
$match = $this->cacheActorService->getFromAccount($search, false);
|
||||||
|
|
Ładowanie…
Reference in New Issue