Skip to content

Commit a55920f

Browse files
author
spark
committed
feat(backend): 添加电报新闻功能
- 新增 GetTelegraphList 函数,用于获取电报新闻列表 - 在处理用户消息时,添加了获取电报新闻的协程 - 优化了消息处理流程,增加了电报新闻的回复
1 parent 775635a commit a55920f

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

backend/data/openai_api.go

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package data
33
import (
44
"bufio"
55
"encoding/json"
6+
"fmt"
7+
"github.com/PuerkitoBio/goquery"
68
"github.com/go-resty/resty/v2"
79
"go-stock/backend/logger"
810
"strings"
@@ -136,7 +138,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
136138

137139
wg := &sync.WaitGroup{}
138140

139-
wg.Add(3)
141+
wg.Add(4)
140142
go func() {
141143
defer wg.Done()
142144
messages := SearchStockPriceInfo(stockCode)
@@ -149,6 +151,18 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
149151
"content": stock + "当前价格:" + price,
150152
})
151153
}()
154+
155+
go func() {
156+
defer wg.Done()
157+
messages := GetTelegraphList()
158+
for _, message := range *messages {
159+
msg = append(msg, map[string]interface{}{
160+
"role": "assistant",
161+
"content": message,
162+
})
163+
}
164+
}()
165+
152166
go func() {
153167
defer wg.Done()
154168
messages := SearchStockInfo(stock, "depth")
@@ -332,3 +346,25 @@ func (o OpenAi) NewCommonChatStream(stock, stockCode, apiURL, apiKey, Model stri
332346
}()
333347
return ch
334348
}
349+
350+
func GetTelegraphList() *[]string {
351+
url := "https://www.cls.cn/telegraph"
352+
response, err := resty.New().R().
353+
SetHeader("Referer", "https://www.cls.cn/").
354+
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").
355+
Get(fmt.Sprintf(url))
356+
if err != nil {
357+
return &[]string{}
358+
}
359+
//logger.SugaredLogger.Info(string(response.Body()))
360+
document, err := goquery.NewDocumentFromReader(strings.NewReader(string(response.Body())))
361+
if err != nil {
362+
return &[]string{}
363+
}
364+
var telegraph []string
365+
document.Find("div.telegraph-content-box").Each(func(i int, selection *goquery.Selection) {
366+
//logger.SugaredLogger.Info(selection.Text())
367+
telegraph = append(telegraph, selection.Text())
368+
})
369+
return &telegraph
370+
}

0 commit comments

Comments
 (0)