MCPcopy
hub / github.com/mmcdole/gofeed / parseChannel

Method parseChannel

rss/parser.go:117–313  ·  view source on GitHub ↗
(p *xpp.XMLPullParser)

Source from the content-addressed store, hash-verified

115}
116
117func (rp *Parser) parseChannel(p *xpp.XMLPullParser) (rss *Feed, err error) {
118 if err = p.Expect(xpp.StartTag, "channel"); err != nil {
119 return nil, err
120 }
121
122 rss = &Feed{}
123 rss.Items = []*Item{}
124
125 extensions := ext.Extensions{}
126 categories := []*Category{}
127 links := []string{}
128
129 for {
130 tok, err := shared.NextTag(p)
131 if err != nil {
132 return nil, err
133 }
134
135 if tok == xpp.EndTag {
136 break
137 }
138
139 if tok == xpp.StartTag {
140
141 name := strings.ToLower(p.Name)
142
143 if shared.IsExtension(p) {
144 ext, err := shared.ParseExtension(extensions, p)
145 if err != nil {
146 return nil, err
147 }
148 extensions = ext
149 } else if name == "title" {
150 result, err := shared.ParseText(p)
151 if err != nil {
152 return nil, err
153 }
154 rss.Title = result
155 } else if name == "description" {
156 result, err := shared.ParseText(p)
157 if err != nil {
158 return nil, err
159 }
160 rss.Description = result
161 } else if name == "link" {
162 result, err := rp.parseLink(p)
163 if err != nil {
164 return nil, err
165 }
166 rss.Link = result
167 links = append(links, result)
168 } else if name == "language" {
169 result, err := shared.ParseText(p)
170 if err != nil {
171 return nil, err
172 }
173 rss.Language = result
174 } else if name == "copyright" {

Callers 1

parseRootMethod · 0.95

Calls 13

parseLinkMethod · 0.95
parseSkipHoursMethod · 0.95
parseSkipDaysMethod · 0.95
parseItemMethod · 0.95
parseCloudMethod · 0.95
parseCategoryMethod · 0.95
parseImageMethod · 0.95
parseTextInputMethod · 0.95
NextTagFunction · 0.92
IsExtensionFunction · 0.92
ParseExtensionFunction · 0.92
ParseTextFunction · 0.92

Tested by

no test coverage detected