package utils import ( "github.com/go-resty/resty/v2" "go-wechat/config" "go-wechat/model/dto" "log" ) // News // @description: 新闻 type News interface { MorningPost() []string // 早报 GetHotTop() []dto.HotTopDataItem // 获取热搜排行榜 } type news struct{} // NewsUtil // @description: 新闻工具 // @param account // @param password // @return LeiGod func NewsUtil() News { return &news{} } // MorningPost // @description: 早报 // @receiver news // @return records func (news) MorningPost() (records []string) { var newsResp dto.MorningPost res := resty.New() resp, err := res.R(). SetHeader("Content-Type", "application/json;chartset=utf-8"). SetQueryParam("token", config.Conf.System.AlApiToken). SetResult(&newsResp). Post("https://v2.alapi.cn/api/zaobao") if err != nil { log.Printf("每日早报获取失败: %s", err.Error()) return } log.Printf("每日早报获取结果: %s", unicodeToText(resp.String())) records = newsResp.Data.News return } // GetHotTop // @description: 获取热搜排行榜 // @receiver news // @return records func (news) GetHotTop() (records []dto.HotTopDataItem) { var respData dto.HotTop res := resty.New() resp, err := res.R(). SetHeader("Content-Type", "application/json;chartset=utf-8"). SetResult(&respData). Get("https://api.vvhan.com/api/hotlist/baiduRD") if err != nil { log.Printf("百度热榜获取失败: %s", err.Error()) return } log.Printf("百度热榜获取结果: %s", unicodeToText(resp.String())) if !respData.Success { log.Println("百度热榜获取失败") return } return respData.Data }