#!/usr/bin/env python3

# http://inamidst.com/saxo/
# Created by Sean B. Palmer

import saxo

@saxo.command()
def punycode(arg):
    # e.g. "xn--ht-1ia18f"
    if arg.startswith("xn--"):
        arg = arg[4:]

    # e.g. "ht-1ia18f"
    try: arg = arg.encode("ascii")
    except UnicodeEncodeError as err:
        arg = arg.encode("punycode")
        arg = arg.decode("ascii")
        return arg
    else:
        # e.g. b"ht-1ia18f"
        arg = arg.decode("punycode")
        # e.g. "hƿæt"
        # not necessary here:
        # arg = arg.encode("utf-8")
        return arg
