mirror of
https://github.com/Evolix/chexpire.git
synced 2024-07-01 05:22:53 +02:00
86 lines
1.8 KiB
Ruby
86 lines
1.8 KiB
Ruby
# Copyright (C) 2018 Colin Darie <colin@darie.eu>, 2018 Evolix <info@evolix.fr>
|
|
# License: GNU AGPL-3+ (see full text in LICENSE file)
|
|
|
|
module Whois
|
|
module Parser
|
|
class Afilias < Base
|
|
# https://afilias.info/products-services
|
|
# https://afilias.info/global-registry-services/ctlds
|
|
# https://afilias.info/global-registry-services/gtlds
|
|
SUPPORTED_TLD = %w[
|
|
.info
|
|
.ag
|
|
.bz
|
|
.gi
|
|
.au
|
|
.lc
|
|
.me
|
|
.mn
|
|
.sc
|
|
.vc
|
|
.aero
|
|
.asia
|
|
.xxx
|
|
.post
|
|
.global
|
|
.vegas
|
|
.onl
|
|
.rich
|
|
.ltda
|
|
.srl
|
|
.adult
|
|
.porn
|
|
.ngo
|
|
.ong
|
|
.bet
|
|
.pet
|
|
.lotto
|
|
.poker
|
|
.lgbt
|
|
.vote
|
|
.voto
|
|
.organic
|
|
.green
|
|
.black
|
|
.red
|
|
.pink
|
|
.blue
|
|
.kim
|
|
.shiksha
|
|
.promo
|
|
.pro
|
|
].freeze
|
|
|
|
COMMENT_REGEX = /^(%|>)+ +(?<text>.+)$/
|
|
FIELD_REGEX = /^(?<name>[^:]+)\s*:\s+(?<value>.+)$/
|
|
|
|
def self.supports?(domain)
|
|
SUPPORTED_TLD.include?(tld(domain))
|
|
end
|
|
|
|
protected
|
|
|
|
def do_parse
|
|
raise_not_found if text_include?("NOT FOUND")
|
|
|
|
extract_values
|
|
end
|
|
|
|
private
|
|
|
|
def extract_values
|
|
domain_index = get_field!("Domain Name", value: domain.upcase).index
|
|
|
|
created_date = get_value!("Creation Date", after: domain_index)
|
|
response.created_at = parse_date(created_date)
|
|
|
|
expire_date = get_value!("Registry Expiry Date", after: domain_index)
|
|
response.expire_at = parse_date(expire_date)
|
|
|
|
updated_date = get_value!("Updated Date", after: domain_index)
|
|
response.updated_at = parse_date(updated_date)
|
|
end
|
|
end
|
|
end
|
|
end
|