fix: tld fetch and stats display

This commit is contained in:
vinceh121 2025-02-09 01:12:17 +01:00
parent 05a7ec9a82
commit 54d9b9dd19
No known key found for this signature in database
GPG Key ID: 780725DCACF96F16
3 changed files with 18 additions and 7 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

@ -173,15 +173,24 @@ readonly class RDAPService
private function getTld($domain): ?object
{
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 ""