diff --git a/Command/WikidataCommand.php b/Command/WikidataCommand.php index 82ac5e6..dd4e317 100644 --- a/Command/WikidataCommand.php +++ b/Command/WikidataCommand.php @@ -116,9 +116,7 @@ function ($element): bool { // Download Wikidata item $path = sprintf('%s/%s.json', $outputDir, $identifier); - if (!file_exists($path)) { - self::save($identifier, $element, $path, $warnings); - } + self::save($identifier, $element, $path, $warnings); } } @@ -132,27 +130,22 @@ function ($element): bool { // Download Wikidata item $path = sprintf('%s/%s.json', $outputDir, $wikidataTag); - if (!file_exists($path)) { - self::save($wikidataTag, $element, $path, $warnings); - - $wikiPath = sprintf('%s/%s.json', $outputDir, $wikidataTag); - $entity = Wikidata::read($wikiPath); - - $identifiers = Wikidata::extractNamedAfter($entity); - if (!is_null($identifiers)) { - foreach ($identifiers as $identifier) { - // Check that the value of the tag is a valid Wikidata item identifier - if (preg_match('/^Q[0-9]+$/', $identifier) !== 1) { - $warnings[] = sprintf('Format of `P138` (NamedAfter) property is invalid (%s) for in item "%s".', $identifier, $wikidataTag); - continue; - } - - // Download Wikidata item - $path = sprintf('%s/%s.json', $outputDir, $identifier); - if (!file_exists($path)) { - self::save($identifier, $element, $path, $warnings); - } + self::save($wikidataTag, $element, $path, $warnings); + + $entity = Wikidata::read($path); + + $identifiers = Wikidata::extractNamedAfter($entity); + if (!is_null($identifiers)) { + foreach ($identifiers as $identifier) { + // Check that the value of the tag is a valid Wikidata item identifier + if (preg_match('/^Q[0-9]+$/', $identifier) !== 1) { + $warnings[] = sprintf('Format of `P138` (NamedAfter) property is invalid (%s) for in item "%s".', $identifier, $wikidataTag); + continue; } + + // Download Wikidata item + $path = sprintf('%s/%s.json', $outputDir, $identifier); + self::save($identifier, $element, $path, $warnings); } } } @@ -187,31 +180,33 @@ function ($element): bool { */ private static function save(string $identifier, $element, string $path, array &$warnings = []): void { - $url = sprintf('%s%s.json', self::URL, $identifier); - - try { - $client = new \GuzzleHttp\Client(); - $client->request('GET', $url, [ - 'headers' => [ - 'User-Agent' => 'EqualStreetNames (https://equalstreetnames.org)', - 'Accept' => 'application/json', - ], - 'sink' => $path, - ]); - } catch (BadResponseException $exception) { - if (file_exists($path)) { - unlink($path); - } + if (!file_exists($path)) { + $url = sprintf('%s%s.json', self::URL, $identifier); + + try { + $client = new \GuzzleHttp\Client(); + $client->request('GET', $url, [ + 'headers' => [ + 'User-Agent' => 'EqualStreetNames (https://equalstreetnames.org)', + 'Accept' => 'application/json', + ], + 'sink' => $path, + ]); + } catch (BadResponseException $exception) { + if (file_exists($path)) { + unlink($path); + } - switch ($exception->getResponse()->getStatusCode()) { - case 404: - $warnings[] = sprintf('Wikidata item %s for %s(%d) does not exist.', $identifier, $element->type, $element->id); - break; - default: - $warnings[] = sprintf('Error while fetching Wikidata item %s for %s(%d): %s.', $identifier, $element->type, $element->id, $exception->getMessage()); - break; + switch ($exception->getResponse()->getStatusCode()) { + case 404: + $warnings[] = sprintf('Wikidata item %s for %s(%d) does not exist.', $identifier, $element->type, $element->id); + break; + default: + $warnings[] = sprintf('Error while fetching Wikidata item %s for %s(%d): %s.', $identifier, $element->type, $element->id, $exception->getMessage()); + break; + } + print_r($warnings); } - print_r($warnings); } } }