| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
- // SPDX-License-Identifier: Apache-2.0
- package itunes // import "miniflux.app/v2/internal/reader/itunes"
- import "strings"
- // Specs: https://help.apple.com/itc/podcasts_connect/#/itcb54353390
- type ItunesChannelElement struct {
- ItunesAuthor string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd author"`
- ItunesBlock string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd block"`
- ItunesCategories []ItunesCategoryElement `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd category"`
- ItunesComplete string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd complete"`
- ItunesCopyright string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd copyright"`
- ItunesExplicit string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd explicit"`
- ItunesImage ItunesImageElement `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd image"`
- Keywords string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd keywords"`
- ItunesNewFeedURL string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd new-feed-url"`
- ItunesOwner ItunesOwnerElement `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd owner"`
- ItunesSummary string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd summary"`
- ItunesTitle string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd title"`
- ItunesType string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd type"`
- }
- func (i *ItunesChannelElement) GetItunesCategories() []string {
- var categories []string
- for _, category := range i.ItunesCategories {
- categories = append(categories, category.Text)
- if category.SubCategory != nil {
- categories = append(categories, category.SubCategory.Text)
- }
- }
- return categories
- }
- type ItunesItemElement struct {
- ItunesAuthor string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd author"`
- ItunesEpisode string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd episode"`
- ItunesEpisodeType string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd episodeType"`
- ItunesExplicit string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd explicit"`
- ItunesDuration string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd duration"`
- ItunesImage ItunesImageElement `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd image"`
- ItunesSeason string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd season"`
- ItunesSubtitle string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd subtitle"`
- ItunesSummary string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd summary"`
- ItunesTitle string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd title"`
- ItunesTranscript string `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd transcript"`
- }
- type ItunesImageElement struct {
- Href string `xml:"href,attr"`
- }
- type ItunesCategoryElement struct {
- Text string `xml:"text,attr"`
- SubCategory *ItunesCategoryElement `xml:"http://www.itunes.com/dtds/podcast-1.0.dtd category"`
- }
- type ItunesOwnerElement struct {
- Name string `xml:"name"`
- Email string `xml:"email"`
- }
- func (i *ItunesOwnerElement) String() string {
- var name string
- switch {
- case i.Name != "":
- name = i.Name
- case i.Email != "":
- name = i.Email
- }
- return strings.TrimSpace(name)
- }
|