feat: migrate codes from previous project
This commit is contained in:
48
internal/rss/client.go
Normal file
48
internal/rss/client.go
Normal file
@@ -0,0 +1,48 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user