Skip to content

Commit

Permalink
feat(backend): 添加电报新闻功能
Browse files Browse the repository at this point in the history
- 新增 GetTelegraphList 函数,用于获取电报新闻列表
- 在处理用户消息时,添加了获取电报新闻的协程
- 优化了消息处理流程,增加了电报新闻的回复
spark committed Jan 23, 2025
1 parent 775635a commit a55920f
Showing 1 changed file with 37 additions and 1 deletion.
38 changes: 37 additions & 1 deletion backend/data/openai_api.go
Original file line number Diff line number Diff line change
@@ -3,6 +3,8 @@ package data
import (
"bufio"
"encoding/json"
"fmt"
"github.com/PuerkitoBio/goquery"
"github.com/go-resty/resty/v2"
"go-stock/backend/logger"
"strings"
@@ -136,7 +138,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {

wg := &sync.WaitGroup{}

wg.Add(3)
wg.Add(4)
go func() {
defer wg.Done()
messages := SearchStockPriceInfo(stockCode)
@@ -149,6 +151,18 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
"content": stock + "当前价格:" + price,
})
}()

go func() {
defer wg.Done()
messages := GetTelegraphList()
for _, message := range *messages {
msg = append(msg, map[string]interface{}{
"role": "assistant",
"content": message,
})
}
}()

go func() {
defer wg.Done()
messages := SearchStockInfo(stock, "depth")
@@ -332,3 +346,25 @@ func (o OpenAi) NewCommonChatStream(stock, stockCode, apiURL, apiKey, Model stri
}()
return ch
}

func GetTelegraphList() *[]string {
url := "https://www.cls.cn/telegraph"
response, err := resty.New().R().
SetHeader("Referer", "https://www.cls.cn/").
SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.60").
Get(fmt.Sprintf(url))
if err != nil {
return &[]string{}
}
//logger.SugaredLogger.Info(string(response.Body()))
document, err := goquery.NewDocumentFromReader(strings.NewReader(string(response.Body())))
if err != nil {
return &[]string{}
}
var telegraph []string
document.Find("div.telegraph-content-box").Each(func(i int, selection *goquery.Selection) {
//logger.SugaredLogger.Info(selection.Text())
telegraph = append(telegraph, selection.Text())
})
return &telegraph
}

0 comments on commit a55920f

Please sign in to comment.