whois.tinysites.com/pages/results.vue

107 lines
3.3 KiB
Vue

<script setup>
const route = useRoute()
const { getItems } = useDirectusItems()
let loading = true
let domain, zone, whois = null
const updateQuery = async () => {
domain = ref(route.query.search ? route.query.search : null)
useHead({
title: `Whois Lookup for ${domain.value} | Tinysites`,
meta: [
{ name: `og:url`, content: `https://www.tinysites.com` },
{ name: `og:title`, content: `Whois Lookup for ${domain.value} | Tinysites` },
{ name: `twitter:url`, content: `https://www.tinysites.com` },
{ name: `twitter:title`, content: `Whois Lookup for ${domain.value} | Tinysites` },
],
})
zone = zones(domain.value.substr(domain.value.indexOf('.') + 1))
try {
whois = await getItems({
collection: "domains",
params: {
filter: { domain_name: domain.value },
},
})
loading = false
whois = whois.length > 0 ? whois[0] : null
} catch (e) {}
loading = false
update.value += 1
}
useHead({
meta: [
{ name: 'description', content: `` },
{ name: `og:type`, content: `website` },
{ name: `og:description`, content: `` },
{ name: `og:image`, content: `https://www.tinysites.com/img/meta.png` },
{ name: `twitter:card`, content: `summary_large_image` },
{ name: `twitter:description`, content: `` },
{ name: `twitter:image`, content: `https://www.tinysites.com/img/meta.png` },
],
})
let update = ref(1);
updateQuery()
watch(() => route.query, async () => {
loading = true
updateQuery()
})
const host = hostname()
</script>
<template>
<div class="results">
<Search />
<div class="loading" v-if="loading" :key="update.value">
<div class="square"></div>
</div>
<div v-if="!loading">
<div class="unknown" v-if="!zone" :key="update.value">
<b>'{{ domain }}' contains an unknown extension. See <NuxtLink :to="host + 'docs/domains#micro-registry'" target="_BLANK">extensions</NuxtLink>.</b>
</div>
<div class="register" v-if="whois === null && zone" :key="update.value">
<b>{{ domain }} does not appear registered yet. <NuxtLink :to="host + 'dashboard/domains?search=' + domain" target="_BLANK">Register this domain</NuxtLink></b>
</div>
<div class="registered" v-if="whois !== null && zone" :key="update.value">
<b><NuxtLink :to="'https://' + domain + '/'" target="_BLANK">{{ domain }}</NuxtLink> has already been registered.</b>
</div>
<div class="whois" v-if="whois !== null && zone" :key="update.value">
<h2>Whois data</h2>
<div class="details">
<p>Domain Name: {{ whois.domain_name }}</p>
<p>Registrar: <NuxtLink :to="host" target="_BLANK">Tinysites</NuxtLink></p>
<p>Updated Date: {{ whois.date_updated }}</p>
<p>Creation Date: {{ whois.date_created }}</p>
<p>Registry Expiry Date: {{ whois.date_expire }}</p>
<p>Registrar Abuse Contact Email: <NuxtLink to="mailto:abuse@tinysites.com">abuse@tinysites.com</NuxtLink></p>
<p>Domain Status: {{ whois.status }}</p>
<p>Name Server: {{ whois.ns1 }}</p>
<p>Name Server: {{ whois.ns2 }}</p>
<p>DNSSEC: {{ whois.dnssec }}</p>
</div>
</div>
</div>
<Products />
<Faq />
</div>
</template>