-----
(def parse-site (url) (rev (tokens (cadr (tokens url [in _ #\/ #\?])) #\.))) (defmemo sitename (url) (and (valid-url url) (let toks (parse-site (rem #\space url)) (if (isa (saferead (car toks)) 'int) (tostring (prall toks "" ".")) (let (t1 t2 t3 . rest) toks (if (and (~in t3 nil "www") (or (mem t1 multi-tld-countries*) (mem t2 long-domains*))) (+ t3 "." t2 "." t1) (and t2 (+ t2 "." t1))))))))
arc> (parse-site "http://99.60.16.192:8080/") ("192:8080" "16" "60" "99") arc> (isa (saferead "192:8080") 'int) nil
arc> (and (~in t3 nil "www") (or (mem t1 multi-tld-countries*) (mem t2 long-domains*))) nil
arc> (and t2 (+ t2 "." t1)) "16.192:8080"