package utils

import (
	jsoniter "github.com/json-iterator/go"
	"wireguard-ui/global/client"
	"wireguard-ui/http/vo"
)

type dailyPoetry struct{}

func DailyPoetry() dailyPoetry {
	return dailyPoetry{}
}

// HitokotoPoetry
// @description: 获取每日一句【一言】
// @receiver dailyPoetry
// @return data
// @return err
func (dailyPoetry) HitokotoPoetry() (data *vo.Poetry, err error) {
	req := client.HttpClient.R()
	req.SetQueryParam("c", "h")
	req.SetQueryParam("c", "i")
	req.SetQueryParam("c", "k")
	req.SetQueryParam("encode", "json")
	req.SetQueryParam("charset", "utf-8")

	response, err := req.Get("https://hitokoto.mrxqq.top")
	if err != nil {
		return nil, err
	}

	author := jsoniter.Get(response.Body(), "from_who").ToString()
	if author == "" {
		author = "佚名"
	}

	data = &vo.Poetry{
		Content: jsoniter.Get(response.Body(), "hitokoto").ToString(),
		Author:  author,
	}

	return
}