| 123456789101112131415161718192021222324 |
- // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
- // SPDX-License-Identifier: Apache-2.0
- package rss // import "miniflux.app/v2/internal/reader/rss"
- import (
- "fmt"
- "io"
- "miniflux.app/v2/internal/model"
- "miniflux.app/v2/internal/reader/xml"
- )
- // Parse returns a normalized feed struct from a RSS feed.
- func Parse(baseURL string, data io.ReadSeeker) (*model.Feed, error) {
- rssFeed := new(rss)
- decoder := xml.NewXMLDecoder(data)
- decoder.DefaultSpace = "rss"
- if err := decoder.Decode(rssFeed); err != nil {
- return nil, fmt.Errorf("rss: unable to parse feed: %w", err)
- }
- adapter := &rssAdapter{rssFeed}
- return adapter.buildFeed(baseURL), nil
- }
|