From 8908c3bfaf10277de632c98e70ea9e988f0c7471 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 18 Nov 2014 23:08:07 +0100 Subject: Scrape zone with hxt. --- Regfish.hs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'Regfish.hs') diff --git a/Regfish.hs b/Regfish.hs index 4119d4d..a0c70db 100644 --- a/Regfish.hs +++ b/Regfish.hs @@ -14,6 +14,7 @@ module Regfish , add , edit , del + , RRData(..) ) where import Control.Lens @@ -90,10 +91,21 @@ list = -- TODO login and try again (once) error "not logged in" else do - mapM_ pr $ readZone $ body + mapM_ pr =<< readZoneIO body where - pr (Record rrid rrtype rrname rrttl rraux rrdata) = do - printf "%-8s %-24s\t%s\tIN\t%-5s\t%s\n" + pr (RR rrid rrname rrttl x) = case x of + A rrdata -> f "A" rrid rrname rrttl 0 rrdata + AAAA rrdata -> f "AAAA" rrid rrname rrttl 0 rrdata + ALIAS rrdata -> f "ALIAS" rrid rrname rrttl 0 rrdata + CNAME rrdata -> f "CNAME" rrid rrname rrttl 0 rrdata + MX rraux rrdata -> f "MX" rrid rrname rrttl rraux rrdata + NS rrdata -> f "NS" rrid rrname rrttl 0 rrdata + TXT rrdata -> f "TXT" rrid rrname rrttl 0 rrdata + SRV rrdata -> f "SRV" rrid rrname rrttl 0 rrdata + + f :: String -> String -> String -> Integer -> Integer -> String -> IO () + f rrtype rrid rrname rrttl rraux rrdata = + printf "%-8s %-24s\t%s\tin\t%-5s\t%s\n" rrid rrname (if rrttl /= 0 then show rrttl else mempty) @@ -177,8 +189,14 @@ isLoginPage = undata :: RRData -> (String -> Integer -> String -> a) -> a undata (A rrdata) f = f "A" 0 rrdata -undata (MX rraux rrdata) f = f "MX" rraux rrdata +undata (AAAA rrdata) f = f "AAAA" 0 rrdata +undata (ALIAS rrdata) f = f "ALIAS" 0 rrdata undata (CNAME rrdata) f = f "CNAME" 0 rrdata +undata (MX rraux rrdata) f = f "MX" rraux rrdata +undata (NS rrdata) f = f "NS" 0 rrdata +undata (TXT rrdata) f = f "TXT" 0 rrdata +undata (SRV rrdata) f = f "SRV" 0 rrdata + add :: RRname -> RRttl -> RRData -> IO (Either String (W.Response LBS8.ByteString)) add rrname rrttl rrdata = -- cgit v1.2.3