# shellcheck shell=dash

___x_cmd log init hua

xrc:mod:lib         hua                                                \
    app                                                                \
    data/shijing    data/chuci                                         \
    data/daxue  data/zhongyong  data/lunyu  data/mengzi                \
    data/guwenguanzhi                                                  \
    data/caocao     data/tangshi300  data/songci300    data/qianjiashi

# todo: laozi, sunzi, zhenguan, guiguzi, hanfeizi, guanzi, shangzi, shishuoxinyu

___x_cmd_hua___main(){
    [ "$#" -gt 0 ] ||   set --  --app

    local op="$1"; shift
    case "$op" in
        -h|--help)              ___x_cmd help -m  hua ;   return ;;
        --app)                  ___x_cmd_hua___app ;;

        sj|shijing)             ___x_cmd_hua_shijing        "$@" ;;
        cc|chuci)               ___x_cmd_hua_chuci          "$@" ;;


        dx|daxue)               ___x_cmd_hua_daxue          "$@" ;;
        zy|zhongyong)           ___x_cmd_hua_zhongyong      "$@" ;;
        ly|lunyu)               ___x_cmd_hua_lunyu          "$@" ;;
        mz|mengzi)              ___x_cmd_hua_mengzi         "$@" ;;

        gwgz|guwenguanzhi)      ___x_cmd_hua_guwenguanzhi   "$@" ;;

        caocao)                 ___x_cmd_hua_caocao         "$@" ;;

        ts|tangshi300)          ___x_cmd_hua_tangshi300     "$@" ;;
        sc|songci300)           ___x_cmd_hua_songci300      "$@" ;;
        qjs|qianjiashi)         ___x_cmd_hua_qianjiashi     "$@" ;;

        # qts|quantangshi)        ___x_cmd_hua_quantangshi    "$@" ;;
        qsc|quansongci)         ___x_cmd_hua_quansongci     "$@" ;;

        # qts|quantangshi)        ___x_cmd_hua_quantangshi    "$@" ;;
        # nl|nalangxingde)        ___x_cmd_hua_nalangxingde   "$@" ;;

        *)                      N=hua M="Unsupported command" log:ret:64 ;;
    esac
}

___x_cmd_hua___cat(){
    ___x_cmd ccmd 1d -- ___x_cmd_hua___cat_ "$@"
}

___x_cmd_hua___cat_(){
    local p="$1"
    p="$( ___x_cmd curl gencode --urlencode "$p" )"
    if ___x_cmd websrc is cn; then
        ___x_cmd curl --fail -Lqs "https://codeberg.org/x-cmd-hua/chinese-poetry/raw/branch/master/$p"
    else
        ___x_cmd curl --fail -Lqs "https://raw.githubusercontent.com/x-cmd-hua/chinese-poetry/refs/heads/master/$p"
    fi
}

___x_cmd_hua___csvlabel(){
    local line
    read -r line
    ___x_cmd xsv fmt -t "\t" | ___x_cmd_cmds awk '
        BEGIN{
            FS = "\t"
        }
        {
            print NR "\t" $0
        }
    '
}

___x_cmd_hua___tsvlabel(){
    local line
    read -r line
    ___x_cmd_cmds awk '
        BEGIN{
            FS = "\t"
        }
        {
            print NR "\t" $0
        }
    '
}


___x_cmd_hua___fzfpretty(){
    command awk '{ gsub(/\\n/, "  ", $0); print }'
}

___x_cmd_hua___fzf(){
    ___x_cmd jq --preparecmd
    FZF_DEFAULT_OPTS="
--ansi
--reverse
--height='80%'
--bind='ctrl-w:toggle-preview-wrap'
--bind='ctrl-r:change-preview-window(right,70%|down,40%,99%,border-horizontal|hidden|right)'
"   ___x_cmd fzf "$@"

}
