#!/bin/sh

. ../common/ajax_common

lib_url_list()
{
	${FLOWEYE} newurl list type=tree node=root | awk \
	-v lang="${PALANG}" \
	'BEGIN{
		dot = "";

		printf "[";
	}{
		if($3 == "unknown" || $3 == "default") next;

		title = lang == "" ? $4 : $3;

		printf "%s{", dot;
		if(dot == "") dot = ",";

		printf "\"id\":\"%s\",", $1;
		printf "\"pid\":\"%s\",", $2;
		printf "\"title\":\"%s\",", title;
		printf "\"type\":\"%s\",", $5;
		printf "\"desc\":\"%s\",", $6;
		printf "\"ifblock\":\"%s\",", $7;
		printf "\"blocks\":\"%s\",", $8;
		printf "\"url_num\":\"%s\"", $9;

		printf "}";
	}END{
		printf "]";
	}'
}

add_black(){
    errmsg=`${FLOWEYE} newurl add node=${CGI_node}`
    [ $? -ne 0 ] && retjson "${LANG012:=ʧ}:${errmsg}"
    WEB_LOGGER "URL" "node=${CGI_node}"
    retjson 0 "${LANG006:=ɹ}"
}

remove_black(){
    errmsg=`${FLOWEYE} newurl remove node=${CGI_node}`
    [ $? -ne 0 ] && retjson "${LANG012:=ʧ}:${errmsg}"
    WEB_LOGGER "URL" "node=${CGI_node}"
    retjson 0 "${LANG006:=ɹ}"
}

load_url_log()
{
	[ "${CGI_sort}" = "" ] && CGI_sort="last"
	[ "${CGI_page}" = "" ] && CGI_page=1
	[ "${CGI_limit}" = "" ] && CGI_limit=100

	end=$((${CGI_page} * ${CGI_limit}))
	start=$((${end} - ${CGI_limit}))

	# appid appname flow node aup adown all per1 lup ldown lall per2 bpsup bpsdn bpsall natupbps natdownbps theother
	${FLOWEYE} newurl list type=hitlog | grep -i "${CGI_keyword}" | awk \
	-v end=${end} -v start=${start} -v type=${CGI_type} \
	'BEGIN{
		row = 0;
		dot = "";
		printf "{\"data\":[";
	}{
		if(type != "all" && $6 != type) next;
		row++;
        if(row > end || row <= start) next;
		printf "%s", dot;
		printf "{";
		printf "\"time\":\"%s\",", $2;
		printf "\"url\":\"%s\",", $3;
		printf "\"name\":\"%s\",", $4;
		printf "\"type\":\"%s\"", $5;
		printf "}";
		if(dot == "") dot = ",";
	}END{
		printf "],\"total\":%s}", row;
	}'
}

export_url_log()
{    
    file_name="url_`date +"%Y%m%d%H%M%S"`.log"
    file_path="${WEB_DOWNLOAD}/${file_name}"

    mkdir -p ${WEB_DOWNLOAD}

    [ "${CGI_id}" = "" ] && CGI_id=0
    [ "${CGI_type}" != "" ] && cmdargs="type=${CGI_type}"

    ${FLOWEYE} newurl list type=hitlog | grep -i "${CGI_keyword}" > ${file_path}

    retjson 0 "OK" "\"${file_name}\""
}

query_domain(){
	${FLOWEYE} newurl get url=${CGI_url} | awk \
	'BEGIN{
		dot = "";
		printf "{";
	}{
		if(dot == "") dot = ",";
		printf "\"url\":\"%s\",", $1;
		printf "\"type\":\"%s\",", $4;
		printf "\"ptype\":\"%s\",", $7;
		printf "\"blocks\":\"%s\"", $5;
	}END{
		printf "}";
	}'
}

load_sys_env(){
    ${FLOWEYE} newurl get url_base=1 | awk '
    {
      printf "{";
      for(i=1;i<=NF;i++){
        split($i, arr, "=");
        printf "\"%s\":\"%s\"", arr[1], arr[2];
        if(i<NF) printf ",";
      }
      printf "}";
    }'
}

upgrade_version(){
    errmsg=`${FLOWEYE} newurl load file=${CGI_file}`
    [ $? -ne 0 ] && retjson "${LANG012:=ʧ}:${errmsg}"
    WEB_LOGGER "汾" "file=${CGI_file}"
    retjson 0 "${LANG006:=ɹ}"
}

case "${CGI_action}" in
	"lib_url_list")
		retjson 0 "OK" "`lib_url_list`"
		;;
	"add_black")
        action_check
        add_black
        ;;
	"remove_black")
        action_check
        remove_black
        ;;
	"load_url_log")
		retjson 0 "OK" "`load_url_log`"
		;;
	"export_url_log")
        action_check
        export_url_log
        ;;
	"query_domain")
        action_check
        retjson 0 "OK" "`query_domain`"
        ;;
    "load_sys_env")
		retjson 0 "OK" "`load_sys_env`"
		;;
    "upgrade_version")
        action_check
        upgrade_version
        ;;
	*)
		retjson 1 "UNKNOW_ACTION!"
		;;
esac