Files
rss-to-feishu-next/internal/rss/client.go
2026-01-19 02:10:24 -06:00

49 lines
907 B
Go

package rss
import (
"context"
"rss-to-feishu-next/internal/config"
"rss-to-feishu-next/internal/net"
)
type Client struct {
netClient *net.Client
}
func NewClient(client *net.Client) *Client {
return &Client{netClient: client}
}
func (c *Client) FetchRss(ctx context.Context, name, url string) (*Message, error) {
resp, err := c.netClient.Get(ctx, url)
if err != nil {
return nil, err
}
return &Message{
Name: name,
Url: url,
Content: resp,
}, nil
}
func (c *Client) FetchAllRss(ctx context.Context) ([]*Message, error) {
cfg, err := config.LoadConfig()
if err != nil {
return nil, err
}
var messages []*Message
subscribes := cfg.Subscribes
for i := 0; i < len(cfg.Subscribes); i++ {
message, err := c.FetchRss(ctx, subscribes[i].Name, subscribes[i].Url)
if err != nil {
return nil, err
}
messages = append(messages, message)
}
return messages, nil
}