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 }