Update ApiV1Controller, add Custom Filters to home/public and hashtag feeds

pull/5928/head
Daniel Supernault 7 months ago
parent 77044ba193
commit 5a32bfe304
No known key found for this signature in database
GPG Key ID: 23740873EE6F76A1

@ -2565,7 +2565,7 @@ class ApiV1Controller extends Controller
if (! empty($filterResults)) { if (! empty($filterResults)) {
$status['filtered'] = $filterResults; $status['filtered'] = $filterResults;
$shouldHide = collect($filterResults)->contains(function ($result) { $shouldHide = collect($filterResults)->contains(function ($result) {
return $result['filter']['filter_action'] === "hide"; return $result['filter']['filter_action'] === 'hide';
}); });
if ($shouldHide) { if ($shouldHide) {
@ -2690,7 +2690,7 @@ class ApiV1Controller extends Controller
if (! empty($filterResults)) { if (! empty($filterResults)) {
$status['filtered'] = $filterResults; $status['filtered'] = $filterResults;
$shouldHide = collect($filterResults)->contains(function ($result) { $shouldHide = collect($filterResults)->contains(function ($result) {
return $result['filter']['filter_action'] === "hide"; return $result['filter']['filter_action'] === 'hide';
}); });
if ($shouldHide) { if ($shouldHide) {
@ -2761,7 +2761,7 @@ class ApiV1Controller extends Controller
if (! empty($filterResults)) { if (! empty($filterResults)) {
$status['filtered'] = $filterResults; $status['filtered'] = $filterResults;
$shouldHide = collect($filterResults)->contains(function ($result) { $shouldHide = collect($filterResults)->contains(function ($result) {
return $result['filter']['filter_action'] === "hide"; return $result['filter']['filter_action'] === 'hide';
}); });
if ($shouldHide) { if ($shouldHide) {
@ -3050,7 +3050,7 @@ class ApiV1Controller extends Controller
if (! empty($filterResults)) { if (! empty($filterResults)) {
$status['filtered'] = $filterResults; $status['filtered'] = $filterResults;
$shouldHide = collect($filterResults)->contains(function ($result) { $shouldHide = collect($filterResults)->contains(function ($result) {
return $result['filter']['filter_action'] === "hide"; return $result['filter']['filter_action'] === 'hide';
}); });
if ($shouldHide) { if ($shouldHide) {
@ -4004,8 +4004,16 @@ class ApiV1Controller extends Controller
$pe = $request->has(self::PF_API_ENTITY_KEY); $pe = $request->has(self::PF_API_ENTITY_KEY);
$pid = $request->user()->profile_id; $pid = $request->user()->profile_id;
$cachedFilters = CustomFilter::getCachedFiltersForAccount($pid);
$tagFilters = array_filter($cachedFilters, function ($item) {
[$filter, $rules] = $item;
return in_array('tags', $filter->context);
});
if ($min || $max) { if ($min || $max) {
$minMax = SnowflakeService::byDate(now()->subMonths(6)); $minMax = SnowflakeService::byDate(now()->subMonths(9));
if ($min && intval($min) < $minMax) { if ($min && intval($min) < $minMax) {
return []; return [];
} }
@ -4060,6 +4068,23 @@ class ApiV1Controller extends Controller
return ! in_array($i['account']['id'], $filters) && ! in_array($domain, $domainBlocks); return ! in_array($i['account']['id'], $filters) && ! in_array($domain, $domainBlocks);
}) })
->map(function ($status) use ($tagFilters) {
$filterResults = CustomFilter::applyCachedFilters($tagFilters, $status);
if (! empty($filterResults)) {
$status['filtered'] = $filterResults;
$shouldHide = collect($filterResults)->contains(function ($result) {
return $result['filter']['filter_action'] === 'hide';
});
if ($shouldHide) {
return null;
}
}
return $status;
})
->filter()
->take($limit) ->take($limit)
->values() ->values()
->toArray(); ->toArray();

Loading…
Cancel
Save