validateDomain($domain); $this->processUnblocks($domain); return; } protected function validateDomain($domain) { if(!strpos($domain, '.')) { $this->error('Invalid domain'); return; } if(str_starts_with($domain, 'https://')) { $domain = str_replace('https://', '', $domain); } if(str_starts_with($domain, 'http://')) { $domain = str_replace('http://', '', $domain); } $valid = filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME|FILTER_NULL_ON_FAILURE); if(!$valid) { $this->error('Invalid domain'); return; } $domain = strtolower(parse_url('https://' . $domain, PHP_URL_HOST)); if($domain === config('pixelfed.domain.app')) { $this->error('Invalid domain'); return; } $confirmed = confirm('Are you sure you want to unblock ' . $domain . '?'); if(!$confirmed) { return; } return $domain; } protected function processUnblocks($domain) { progress( label: 'Updating user domain blocks...', steps: UserDomainBlock::whereDomain($domain)->lazyById(500), callback: fn ($domainBlock) => $this->performTask($domainBlock), ); } protected function performTask($domainBlock) { $domainBlock->deleteQuietly(); } }