mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-12-22 21:13:16 +00:00
Update profile audience to filter blocked instances
This commit is contained in:
parent
e99b41292a
commit
e0c3dae324
3 changed files with 30 additions and 12 deletions
|
@ -34,8 +34,8 @@ class FollowerService
|
|||
{
|
||||
Redis::zrem(self::FOLLOWING_KEY . $actor, $target);
|
||||
Redis::zrem(self::FOLLOWERS_KEY . $target, $actor);
|
||||
Cache::forget('pf:services:follow:audience:' . $actor);
|
||||
Cache::forget('pf:services:follow:audience:' . $target);
|
||||
Cache::forget('pf:services:follower:audience:' . $actor);
|
||||
Cache::forget('pf:services:follower:audience:' . $target);
|
||||
AccountService::del($actor);
|
||||
AccountService::del($target);
|
||||
RelationshipService::refresh($actor, $target);
|
||||
|
@ -151,9 +151,9 @@ class FollowerService
|
|||
|
||||
protected function getAudienceInboxes($pid, $scope = null)
|
||||
{
|
||||
$key = 'pf:services:follow:audience:' . $pid;
|
||||
return Cache::remember($key, 86400, function() use($pid) {
|
||||
$profile = Profile::find($pid);
|
||||
$key = 'pf:services:follower:audience:' . $pid;
|
||||
$domains = Cache::remember($key, 432000, function() use($pid) {
|
||||
$profile = Profile::whereNull(['status', 'domain'])->find($pid);
|
||||
if(!$profile) {
|
||||
return [];
|
||||
}
|
||||
|
@ -165,9 +165,27 @@ class FollowerService
|
|||
})
|
||||
->filter()
|
||||
->unique()
|
||||
->values()
|
||||
->toArray();
|
||||
->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()
|
||||
->toArray();
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
public static function mutualCount($pid, $mid)
|
||||
|
|
|
@ -20,21 +20,21 @@ class InstanceService
|
|||
|
||||
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();
|
||||
});
|
||||
}
|
||||
|
||||
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();
|
||||
});
|
||||
}
|
||||
|
||||
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();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -57,8 +57,8 @@ class RelationshipService
|
|||
|
||||
public static function refresh($aid, $tid)
|
||||
{
|
||||
Cache::forget('pf:services:follow:audience:' . $aid);
|
||||
Cache::forget('pf:services:follow:audience:' . $tid);
|
||||
Cache::forget('pf:services:follower:audience:' . $aid);
|
||||
Cache::forget('pf:services:follower:audience:' . $tid);
|
||||
self::delete($tid, $aid);
|
||||
self::delete($aid, $tid);
|
||||
self::get($tid, $aid);
|
||||
|
|
Loading…
Reference in a new issue