76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
class FeedMeta {
|
|
constructor(meta) {
|
|
this.title = null
|
|
this.description = null
|
|
this.author = null
|
|
this.imageUrl = null
|
|
this.feedUrl = null
|
|
this.link = null
|
|
this.explicit = null
|
|
|
|
if (meta) {
|
|
this.construct(meta)
|
|
}
|
|
}
|
|
|
|
construct(meta) {
|
|
this.title = meta.title
|
|
this.description = meta.description
|
|
this.author = meta.author
|
|
this.imageUrl = meta.imageUrl
|
|
this.feedUrl = meta.feedUrl
|
|
this.link = meta.link
|
|
this.explicit = meta.explicit
|
|
}
|
|
|
|
toJSON() {
|
|
return {
|
|
title: this.title,
|
|
description: this.description,
|
|
author: this.author,
|
|
imageUrl: this.imageUrl,
|
|
feedUrl: this.feedUrl,
|
|
link: this.link,
|
|
explicit: this.explicit
|
|
}
|
|
}
|
|
|
|
getRSSData() {
|
|
return {
|
|
title: this.title,
|
|
description: this.description || '',
|
|
generator: 'Audiobookshelf',
|
|
feed_url: this.feedUrl,
|
|
site_url: this.link,
|
|
image_url: this.imageUrl,
|
|
language: 'en',
|
|
custom_namespaces: {
|
|
'itunes': 'http://www.itunes.com/dtds/podcast-1.0.dtd',
|
|
'psc': 'http://podlove.org/simple-chapters',
|
|
'podcast': 'https://podcastindex.org/namespace/1.0'
|
|
},
|
|
custom_elements: [
|
|
{ 'author': this.author || 'advplyr' },
|
|
{ 'itunes:author': this.author || 'advplyr' },
|
|
{ 'itunes:summary': this.description || '' },
|
|
{
|
|
'itunes:image': {
|
|
_attr: {
|
|
href: this.imageUrl
|
|
}
|
|
}
|
|
},
|
|
{
|
|
'itunes:owner': [
|
|
{ 'itunes:name': this.author || '' },
|
|
{ 'itunes:email': '' }
|
|
]
|
|
},
|
|
{
|
|
"itunes:explicit": !!this.explicit
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
module.exports = FeedMeta |