Merge pull request #65 from vinceh121/bugfix/tld

fix: tld fetch and stats display
This commit is contained in:
Maël Gangloff 2025-02-09 10:11:41 +01:00 committed by GitHub
commit 66dfb19dfc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 8 deletions

View File

@ -111,7 +111,7 @@ export default function StatisticsPage() {
<Card bordered={false}>
<Statistic
loading={stats === undefined}
title={`.${tld}`}
title={tld ? `.${tld}` : t`TLD`}
value={domain}
valueStyle={{color: 'darkorange'}}
/>

View File

@ -170,18 +170,27 @@ readonly class RDAPService
return $domain;
}
private function getTld($domain): ?object
private function getTld($domain): Tld
{
if (!str_contains($domain, '.')) {
return $this->tldRepository->findOneBy(['tld' => '']);
$tldEntity = $this->tldRepository->findOneBy(['tld' => '']);
if (null == $tldEntity) {
throw new NotFoundHttpException('The requested TLD is not yet supported, please try again with another one');
}
return $tldEntity;
}
$lastDotPosition = strrpos($domain, '.');
if (false === $lastDotPosition) {
throw new BadRequestException('Domain must contain at least one dot');
}
$tld = strtolower(idn_to_ascii(substr($domain, $lastDotPosition + 1)));
$tldEntity = $this->tldRepository->findOneBy(['tld' => $tld]);
if (null === $tldEntity) {
throw new NotFoundHttpException('The requested TLD is not yet supported, please try again with another one');
}
@ -610,19 +619,20 @@ readonly class RDAPService
{
foreach ($dnsRoot['services'] as $service) {
foreach ($service[0] as $tld) {
if ('' === $tld) {
if (null === $this->tldRepository->findOneBy(['tld' => $tld])) {
$this->em->persist((new Tld())->setTld('.')->setType(TldType::root));
if ('' === $tld && null === $this->tldRepository->findOneBy(['tld' => $tld])) {
$this->em->persist((new Tld())->setTld('')->setType(TldType::root));
$this->em->flush();
}
}
$tldReference = $this->em->getReference(Tld::class, $tld);
foreach ($service[1] as $rdapServerUrl) {
$server = $this->rdapServerRepository->findOneBy(['tld' => $tldReference, 'url' => $rdapServerUrl]);
if (null === $server) {
$server = new RdapServer();
}
$server
->setTld($tldReference)
->setUrl($rdapServerUrl)

View File

@ -175,6 +175,7 @@ msgid "Domain Finder"
msgstr ""
#: assets/components/Sider.tsx:49
#: assets/pages/StatisticsPage.tsx:114
#: assets/pages/search/TldPage.tsx:79
msgid "TLD"
msgstr ""