mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-12-22 21:13:16 +00:00
commit
71cc016e0b
5 changed files with 34 additions and 14 deletions
|
@ -76,6 +76,8 @@
|
||||||
- Update AdminInvite component, fix email regex ([2aea77d3](https://github.com/pixelfed/pixelfed/commit/2aea77d3))
|
- Update AdminInvite component, fix email regex ([2aea77d3](https://github.com/pixelfed/pixelfed/commit/2aea77d3))
|
||||||
- Update database config, use single transaction and skip lock tables for mysql dump ([936f1e7a](https://github.com/pixelfed/pixelfed/commit/936f1e7a))
|
- Update database config, use single transaction and skip lock tables for mysql dump ([936f1e7a](https://github.com/pixelfed/pixelfed/commit/936f1e7a))
|
||||||
- Update database config, add sticky flag https://laravel.com/docs/9.x/database#the-sticky-option ([10b65980](https://github.com/pixelfed/pixelfed/commit/10b65980))
|
- Update database config, add sticky flag https://laravel.com/docs/9.x/database#the-sticky-option ([10b65980](https://github.com/pixelfed/pixelfed/commit/10b65980))
|
||||||
|
- Update profile audience to filter blocked instances ([e0c3dae3](https://github.com/pixelfed/pixelfed/commit/e0c3dae3))
|
||||||
|
- Update SearchApiV2Service, improve query performance ([4d1f2811](https://github.com/pixelfed/pixelfed/commit/4d1f2811))
|
||||||
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
||||||
|
|
||||||
## [v0.11.4 (2022-10-04)](https://github.com/pixelfed/pixelfed/compare/v0.11.3...v0.11.4)
|
## [v0.11.4 (2022-10-04)](https://github.com/pixelfed/pixelfed/compare/v0.11.3...v0.11.4)
|
||||||
|
|
|
@ -34,8 +34,8 @@ class FollowerService
|
||||||
{
|
{
|
||||||
Redis::zrem(self::FOLLOWING_KEY . $actor, $target);
|
Redis::zrem(self::FOLLOWING_KEY . $actor, $target);
|
||||||
Redis::zrem(self::FOLLOWERS_KEY . $target, $actor);
|
Redis::zrem(self::FOLLOWERS_KEY . $target, $actor);
|
||||||
Cache::forget('pf:services:follow:audience:' . $actor);
|
Cache::forget('pf:services:follower:audience:' . $actor);
|
||||||
Cache::forget('pf:services:follow:audience:' . $target);
|
Cache::forget('pf:services:follower:audience:' . $target);
|
||||||
AccountService::del($actor);
|
AccountService::del($actor);
|
||||||
AccountService::del($target);
|
AccountService::del($target);
|
||||||
RelationshipService::refresh($actor, $target);
|
RelationshipService::refresh($actor, $target);
|
||||||
|
@ -151,9 +151,9 @@ class FollowerService
|
||||||
|
|
||||||
protected function getAudienceInboxes($pid, $scope = null)
|
protected function getAudienceInboxes($pid, $scope = null)
|
||||||
{
|
{
|
||||||
$key = 'pf:services:follow:audience:' . $pid;
|
$key = 'pf:services:follower:audience:' . $pid;
|
||||||
return Cache::remember($key, 86400, function() use($pid) {
|
$domains = Cache::remember($key, 432000, function() use($pid) {
|
||||||
$profile = Profile::find($pid);
|
$profile = Profile::whereNull(['status', 'domain'])->find($pid);
|
||||||
if(!$profile) {
|
if(!$profile) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
@ -165,9 +165,27 @@ class FollowerService
|
||||||
})
|
})
|
||||||
->filter()
|
->filter()
|
||||||
->unique()
|
->unique()
|
||||||
|
->values();
|
||||||
|
});
|
||||||
|
|
||||||
|
if(!$domains || !$domains->count()) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$banned = InstanceService::getBannedDomains();
|
||||||
|
|
||||||
|
if(!$banned || count($banned) === 0) {
|
||||||
|
return $domains->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
$res = $domains->filter(function($domain) use($banned) {
|
||||||
|
$parsed = parse_url($domain, PHP_URL_HOST);
|
||||||
|
return !in_array($parsed, $banned);
|
||||||
|
})
|
||||||
->values()
|
->values()
|
||||||
->toArray();
|
->toArray();
|
||||||
});
|
|
||||||
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function mutualCount($pid, $mid)
|
public static function mutualCount($pid, $mid)
|
||||||
|
|
|
@ -20,21 +20,21 @@ class InstanceService
|
||||||
|
|
||||||
public static function getBannedDomains()
|
public static function getBannedDomains()
|
||||||
{
|
{
|
||||||
return Cache::remember(self::CACHE_KEY_BANNED_DOMAINS, now()->addHours(12), function() {
|
return Cache::remember(self::CACHE_KEY_BANNED_DOMAINS, 1209600, function() {
|
||||||
return Instance::whereBanned(true)->pluck('domain')->toArray();
|
return Instance::whereBanned(true)->pluck('domain')->toArray();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getUnlistedDomains()
|
public static function getUnlistedDomains()
|
||||||
{
|
{
|
||||||
return Cache::remember(self::CACHE_KEY_UNLISTED_DOMAINS, now()->addHours(12), function() {
|
return Cache::remember(self::CACHE_KEY_UNLISTED_DOMAINS, 1209600, function() {
|
||||||
return Instance::whereUnlisted(true)->pluck('domain')->toArray();
|
return Instance::whereUnlisted(true)->pluck('domain')->toArray();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getNsfwDomains()
|
public static function getNsfwDomains()
|
||||||
{
|
{
|
||||||
return Cache::remember(self::CACHE_KEY_NSFW_DOMAINS, now()->addHours(12), function() {
|
return Cache::remember(self::CACHE_KEY_NSFW_DOMAINS, 1209600, function() {
|
||||||
return Instance::whereAutoCw(true)->pluck('domain')->toArray();
|
return Instance::whereAutoCw(true)->pluck('domain')->toArray();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,8 +57,8 @@ class RelationshipService
|
||||||
|
|
||||||
public static function refresh($aid, $tid)
|
public static function refresh($aid, $tid)
|
||||||
{
|
{
|
||||||
Cache::forget('pf:services:follow:audience:' . $aid);
|
Cache::forget('pf:services:follower:audience:' . $aid);
|
||||||
Cache::forget('pf:services:follow:audience:' . $tid);
|
Cache::forget('pf:services:follower:audience:' . $tid);
|
||||||
self::delete($tid, $aid);
|
self::delete($tid, $aid);
|
||||||
self::delete($aid, $tid);
|
self::delete($aid, $tid);
|
||||||
self::get($tid, $aid);
|
self::get($tid, $aid);
|
||||||
|
|
|
@ -87,7 +87,7 @@ class SearchApiV2Service
|
||||||
$limit = $this->query->input('limit') ?? 20;
|
$limit = $this->query->input('limit') ?? 20;
|
||||||
$offset = $this->query->input('offset') ?? 0;
|
$offset = $this->query->input('offset') ?? 0;
|
||||||
$rawQuery = $initalQuery ? $initalQuery : $this->query->input('q');
|
$rawQuery = $initalQuery ? $initalQuery : $this->query->input('q');
|
||||||
$query = '%' . $rawQuery . '%';
|
$query = $rawQuery . '%';
|
||||||
if(Str::substrCount($rawQuery, '@') >= 1 && Str::contains($rawQuery, config('pixelfed.domain.app'))) {
|
if(Str::substrCount($rawQuery, '@') >= 1 && Str::contains($rawQuery, config('pixelfed.domain.app'))) {
|
||||||
$deliminatorCount = Str::substrCount($rawQuery, '@');
|
$deliminatorCount = Str::substrCount($rawQuery, '@');
|
||||||
$query = explode('@', $rawQuery)[$deliminatorCount == 1 ? 0 : 1];
|
$query = explode('@', $rawQuery)[$deliminatorCount == 1 ? 0 : 1];
|
||||||
|
@ -123,7 +123,7 @@ class SearchApiV2Service
|
||||||
$mastodonMode = self::$mastodonMode;
|
$mastodonMode = self::$mastodonMode;
|
||||||
$limit = $this->query->input('limit') ?? 20;
|
$limit = $this->query->input('limit') ?? 20;
|
||||||
$offset = $this->query->input('offset') ?? 0;
|
$offset = $this->query->input('offset') ?? 0;
|
||||||
$query = '%' . $this->query->input('q') . '%';
|
$query = $this->query->input('q') . '%';
|
||||||
return Hashtag::where('can_search', true)
|
return Hashtag::where('can_search', true)
|
||||||
->where('name', 'like', $query)
|
->where('name', 'like', $query)
|
||||||
->offset($offset)
|
->offset($offset)
|
||||||
|
|
Loading…
Reference in a new issue