Merge pull request #276 from WebTools-NG/#267-Allow-export-of-Albums

#267 allow export of albums
This commit is contained in:
Tommy Mikkelsen 2021-03-08 01:47:36 +01:00 committed by GitHub
commit 89c86e1fa9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 232 additions and 177 deletions

View file

@ -8,6 +8,7 @@
* [#107 Allow export of Artist](https://github.com/WebTools-NG/WebTools-NG/issues/107) * [#107 Allow export of Artist](https://github.com/WebTools-NG/WebTools-NG/issues/107)
* [#271 Export Filename missing type](https://github.com/WebTools-NG/WebTools-NG/issues/271) * [#271 Export Filename missing type](https://github.com/WebTools-NG/WebTools-NG/issues/271)
* [#272 Allow export of TV Shows](https://github.com/WebTools-NG/WebTools-NG/issues/272) * [#272 Allow export of TV Shows](https://github.com/WebTools-NG/WebTools-NG/issues/272)
* [#267 Allow export of Albums](https://github.com/WebTools-NG/WebTools-NG/issues/267)
## V0.1.16 ## V0.1.16

View file

@ -6,145 +6,145 @@ If a field is marked as `N/A` it means it does not exist for the type of export
If a field is marked as `X` it means you can export it for the type of export If a field is marked as `X` it means you can export it for the type of export
| Fields | Movie | TV Episode | TV Show | Audio Artist| | Fields | Movie | TV Episode | TV Show | Audio Artist| Audio Album|
| :--- | :---: | :---: | :-------------: | :-------------: | | :--- | :---: | :---: | :-------------: | :-------------: | :-------------: |
Accessible|X|X|?|?| Accessible|X|X|?|?|?
Added|X|X|X|X| Added|X|X|X|X|X
Art url|X|?|X|? Art url|X|?|X|?|X
Audience Rating|X|?|?|X|? Audience Rating|X|?|?|X|?
Audio Stream Audio Channel Layout|X|X|N/A|N/A Audio Stream Audio Channel Layout|X|X|N/A|N/A|?
Audio Stream Bit Depth|X|X|N/A|N/A Audio Stream Bit Depth|X|X|N/A|N/A|?
Audio Stream Bitrate Mode|X|X|N/A|N/A Audio Stream Bitrate Mode|X|X|N/A|N/A|?
Audio Stream Bitrate|X|X|N/A|N/A Audio Stream Bitrate|X|X|N/A|N/A|?
Audio Stream Channels|X|X|N/A|N/A Audio Stream Channels|X|X|N/A|N/A|?
Audio Stream Codec ID|X|X|N/A|N/A Audio Stream Codec ID|X|X|N/A|N/A|?
Audio Stream Codec|X|X|N/A|N/A Audio Stream Codec|X|X|N/A|N/A|?
Audio Stream Default|X|X|N/A|N/A Audio Stream Default|X|X|N/A|N/A|?
Audio Stream Display Title|?|X|N/A|N/A Audio Stream Display Title|?|X|N/A|N/A|?
Audio Stream Duration|X|X|N/A|N/A Audio Stream Duration|X|X|N/A|N/A|?
Audio Stream Extended Display Title|?|X|N/A|N/A Audio Stream Extended Display Title|?|X|N/A|N/A|?
Audio Stream Index|X|X|N/A|N/A Audio Stream Index|X|X|N/A|N/A|?
Audio Stream Language Code|X|X|N/A|N/A Audio Stream Language Code|X|X|N/A|N/A|?
Audio Stream Language|X|X|N/A|N/A Audio Stream Language|X|X|N/A|N/A|?
Audio Stream Profile|X|X|N/A|N/A Audio Stream Profile|X|X|N/A|N/A|?
Audio Stream Required Bandwidths|X|X|N/A|N/A Audio Stream Required Bandwidths|X|X|N/A|N/A|?
Audio Stream Sampling Rate|X|X|N/A|N/A Audio Stream Sampling Rate|X|X|N/A|N/A|?
Audio Stream Selected|X|X|N/A|N/A Audio Stream Selected|X|X|N/A|N/A|?
Audio Stream Title|X|X|N/A|N/A Audio Stream Title|X|X|N/A|N/A|?
Chapter Count|X|?|?|? Chapter Count|X|?|?|?|?
Chapter Source|X|?|?|? Chapter Source|X|?|?|?|?
Chapter Title|X|?|?|? Chapter Title|X|?|?|?|?
Collections|X|?|?|? Collections|X|?|?|?|?
Content Rating|X|X|X|? Content Rating|X|X|X|?|?
Country|X|?|?|X Country|X|?|?|X|?
Deleted|?|X|?|?| Deleted|?|X|?|?|?
Directors|X|X|?|? Directors|X|X|?|?|?
Duration|X|X|?|X|? Duration|X|X|?|X|?|?
Episode|N/A|X|?|? Episode|N/A|X|?|?|?
Exists|X|X|?|?|N/A Exists|X|X|?|?|N/A|?
Extras|X|X|?|? Extras|X|X|?|?|?
Extras-behindthescenes|X|?|?|? Extras-behindthescenes|X|?|?|?|?
Extras-deleted|X|?|?|? Extras-deleted|X|?|?|?|?
Extras-featurette|X|?|?|? Extras-featurette|X|?|?|?|?
Extras-interview|X|?|?|? Extras-interview|X|?|?|?|?
Extras-scene|X|?|?|? Extras-scene|X|?|?|?|?
Extras-sceneOrSample|X|?|?|? Extras-sceneOrSample|X|?|?|?|?
Extras-short|X|?|?|? Extras-short|X|?|?|?|?
Extras-trailer|X|?|?|? Extras-trailer|X|?|?|?|?
Genre|X|X|?|X|? Genre|X|X|?|X|?|?
IMDB ID|?|X|?|? IMDB ID|?|X|?|?|?
IMDB Link|?|X|?|? IMDB Link|?|X|?|?|?
Intro Start|N/A|X|?|N/A Intro Start|N/A|X|?|N/A|?
Intro Stop|N/A|X|?|N/A Intro Stop|N/A|X|?|N/A|?
Labels|X|?|?|? Labels|X|?|?|?|?
Last Viewed at|X|?|?|X Last Viewed at|X|?|?|X|?
Locked Fields|X|X|?|? Locked Fields|X|X|?|?|?
Media Aspect Ratio|X|X|N/A|? Media Aspect Ratio|X|X|N/A|?|?
Media Audio Channels|X|X|N/A|N/A Media Audio Channels|X|X|N/A|N/A|?
Media Audio Codec|X|X|N/A|N/A Media Audio Codec|X|X|N/A|N/A|?
Media Container|X|X|N/A|N/A Media Container|X|X|N/A|N/A|?
Media ID|X|X|X|X Media ID|X|X|X|X|X
Media Title|?|X|N/A|? Media Title|?|X|N/A|?|?
Media Video Bitrate|X|X|N/A|N/A Media Video Bitrate|X|X|N/A|N/A|?
Media Video Codec|X|X|N/A|N/A Media Video Codec|X|X|N/A|N/A|?
Media Video Duration|?|X|N/A|N/A Media Video Duration|?|X|N/A|N/A|?
Media Video FrameRate|X|X|N/A|N/A Media Video FrameRate|X|X|N/A|N/A|?
Media Video Height|X|X|N/A|N/A Media Video Height|X|X|N/A|N/A|?
Media Video Profile|?|X|N/A|N/A Media Video Profile|?|X|N/A|N/A|?
Media Video Resolution|X|X|N/A|N/A Media Video Resolution|X|X|N/A|N/A|?
Media Video Width|X|X|N/A|N/A Media Video Width|X|X|N/A|N/A|?
MetaData Language|X|X|N/A|N/A MetaData Language|X|X|N/A|N/A|?
MetaDB Link|X|?|?|? MetaDB Link|X|?|?|?|?
Original Title|X|N/A|?|? Original Title|X|N/A|?|?|?
Part Container|X|X|N/A|N/A Part Container|X|X|N/A|N/A|N/A
Part Deep Analysis Version|X|X|N/A|N/A Part Deep Analysis Version|X|X|N/A|N/A|N/A
Part Duration|X|X|N/A|N/A Part Duration|X|X|N/A|N/A|N/A
Part File Combined|X|X|N/A|N/A Part File Combined|X|X|N/A|N/A|N/A
Part File Path|X|X|N/A|N/A Part File Path|X|X|N/A|N/A|N/A
Part File|X|X|N/A|N/A Part File|X|X|N/A|N/A|N/A
Part Indexed|X|X|N/A|N/A Part Indexed|X|X|N/A|N/A|N/A
Part Optimized for Streaming|X|X|N/A|N/A Part Optimized for Streaming|X|X|N/A|N/A|N/A
Part Required Bandwidths|X|X|N/A|N/A Part Required Bandwidths|X|X|N/A|N/A|N/A
Part Size as Bytes|X|X|N/A|N/A Part Size as Bytes|X|X|N/A|N/A|N/A
Part Size|X|X|N/A|N/A Part Size|X|X|N/A|N/A|N/A
Part Video Profile|X|X|N/A|N/A Part Video Profile|X|X|N/A|N/A|N/A
Poster url|X|X|X|X Poster url|X|X|X|X|X
Rating|X|X|?|? Rating|X|X|?|?|X
Release Date|X|X|X|? Release Date|X|X|X|?|X
Roles|X|?|X|? Roles|X|?|X|?|?
Season|N/A|X|?|N/A Season|N/A|X|?|N/A|?
Series Title|N/A|X|?|? Series Title|N/A|X|?|?|?
Sort title|X|X|?|? Sort title|X|X|?|?|?
Studio|X|N/A|X|? Studio|X|N/A|X|?|X
Subtitle Stream Codec ID|X|X|N/A|N/A Subtitle Stream Codec ID|X|X|N/A|N/A|N/A
Subtitle Stream Codec|X|X|N/A|N/A Subtitle Stream Codec|X|X|N/A|N/A|N/A
Subtitle Stream Forced|X|X|N/A|N/A Subtitle Stream Forced|X|X|N/A|N/A|N/A
Subtitle Stream Format|X|X|N/A|N/A Subtitle Stream Format|X|X|N/A|N/A|N/A
Subtitle Stream Header Compression|X|X|N/A|N/A Subtitle Stream Header Compression|X|X|N/A|N/A|N/A
Subtitle Stream Index|X|X|N/A|N/A Subtitle Stream Index|X|X|N/A|N/A|N/A
Subtitle Stream Language Code|X|X|N/A|N/A Subtitle Stream Language Code|X|X|N/A|N/A|N/A
Subtitle Stream Language|X|X|N/A|N/A Subtitle Stream Language|X|X|N/A|N/A|N/A
Subtitle Stream Required Bandwidths|X|X|N/A|N/A Subtitle Stream Required Bandwidths|X|X|N/A|N/A|N/A
Subtitle Stream Selected|X|X|N/A|N/A Subtitle Stream Selected|X|X|N/A|N/A|N/A
Subtitle Stream Title|X|X|N/A|N/A Subtitle Stream Title|X|X|N/A|N/A|N/A
Summary|X|X|X|X| Summary|X|X|X|X|X
Tagline|X|?|X|? Tagline|X|?|X|?|?
Title|X|X|X|X Title|X|X|X|X|X
TMDB ID|?|X|?|N/A TMDB ID|?|X|?|N/A|?
TMDB Link|X|N/A|?|N/A TMDB Link|X|N/A|?|N/A|?
TVDB ID|?|X|?|N/A TVDB ID|?|X|?|N/A|?
Updated|X|X|X|X Updated|X|X|X|X|X
User Rating|X|X|?|N/A User Rating|X|X|?|N/A|?
Video Stream Anamorphic|X|?|N/A|N/A Video Stream Anamorphic|X|?|N/A|N/A|N/A
Video Stream Bit Depth|X|X|N/A|N/A Video Stream Bit Depth|X|X|N/A|N/A|N/A
Video Stream Bitrate|X|X|N/A|N/A Video Stream Bitrate|X|X|N/A|N/A|N/A
Video Stream Cabac|X|X|N/A|N/A Video Stream Cabac|X|X|N/A|N/A|N/A
Video Stream Chroma Sub Sampling|X|X|N/A|N/A Video Stream Chroma Sub Sampling|X|X|N/A|N/A|N/A
Video Stream Codec ID|X|X|N/A|N/A Video Stream Codec ID|X|X|N/A|N/A|N/A
Video Stream Codec|X|X|N/A|N/A Video Stream Codec|X|X|N/A|N/A|N/A
Video Stream Color Primaries|X|X|N/A|N/A Video Stream Color Primaries|X|X|N/A|N/A|N/A
Video Stream Color Range|X|X|N/A|N/A Video Stream Color Range|X|X|N/A|N/A|?|N/A
Video Stream Color Space|X|X|N/A|N/A Video Stream Color Space|X|X|N/A|N/A|N/A
Video Stream Color Trc|X|X|N/A|N/A Video Stream Color Trc|X|X|N/A|N/A|N/A
Video Stream Default|X|X|N/A|N/A Video Stream Default|X|X|N/A|N/A|N/A
Video Stream Duration|X|X|N/A|N/A Video Stream Duration|X|X|N/A|N/A|N/A
Video Stream Frame Rate Mode|X|X|N/A|N/A Video Stream Frame Rate Mode|X|X|N/A|N/A|N/A
Video Stream Frame Rate|X|X|N/A|N/A Video Stream Frame Rate|X|X|N/A|N/A|N/A
Video Stream Has Scaling Matrix|X|X|N/A|N/A Video Stream Has Scaling Matrix|X|X|N/A|N/A|N/A
Video Stream Height|X|X|N/A|N/A Video Stream Height|X|X|N/A|N/A|N/A
Video Stream Index|X|X|N/A|N/A Video Stream Index|X|X|N/A|N/A|N/A
Video Stream Language Code|X|X|N/A|N/A Video Stream Language Code|X|X|N/A|N/A|N/A
Video Stream Language|X|X|N/A|N/A Video Stream Language|X|X|N/A|N/A|N/A
Video Stream Level|X|X|N/A|N/A Video Stream Level|X|X|N/A|N/A|N/A
Video Stream Pixel Aspect Ratio|X|?|N/A|N/A Video Stream Pixel Aspect Ratio|X|?|N/A|N/A|N/A
Video Stream Pixel Format|X|X|N/A|N/A Video Stream Pixel Format|X|X|N/A|N/A|N/A
Video Stream Profile|X|X|N/A|N/A Video Stream Profile|X|X|N/A|N/A|N/A
Video Stream Ref Frames|X|X|N/A|N/A Video Stream Ref Frames|X|X|N/A|N/A|N/A
Video Stream Required Bandwidths|X|X|N/A|N/A Video Stream Required Bandwidths|X|X|N/A|N/A|N/A
Video Stream Scan Type|X|X|N/A|N/A Video Stream Scan Type|X|X|N/A|N/A|N/A
Video Stream Stream Identifier|X|?|N/A|N/A Video Stream Stream Identifier|X|?|N/A|N/A|N/A
Video Stream Title|X|X|N/A|N/A Video Stream Title|X|X|N/A|N/A|N/A
Video Stream Width|X|X|N/A|N/A Video Stream Width|X|X|N/A|N/A|N/A
View Count|X|X|?|? View Count|X|X|?|?|?
Writers|X|X|?|? Writers|X|X|?|?|?
Year|X|X|?|X|? Year|X|X|?|X|?|X

Binary file not shown.

View file

@ -106,7 +106,7 @@
{ text: i18n.t('Modules.ET.RadioTVSeries'), value: 'show', disabled: false }, { text: i18n.t('Modules.ET.RadioTVSeries'), value: 'show', disabled: false },
{ text: i18n.t('Modules.ET.RadioTVEpisodes'), value: 'episode', disabled: false }, { text: i18n.t('Modules.ET.RadioTVEpisodes'), value: 'episode', disabled: false },
{ text: i18n.t('Modules.ET.RadioAudioArtist'), value: 'artist', disabled: false }, { text: i18n.t('Modules.ET.RadioAudioArtist'), value: 'artist', disabled: false },
{ text: i18n.t('Modules.ET.RadioAudioAlbum'), value: 'album', disabled: true }, { text: i18n.t('Modules.ET.RadioAudioAlbum'), value: 'album', disabled: false },
{ text: i18n.t('Modules.ET.RadioAudioTrack'), value: 'track', disabled: true }, { text: i18n.t('Modules.ET.RadioAudioTrack'), value: 'track', disabled: true },
{ text: i18n.t('Modules.ET.RadioPhotos'), value: 'photo', disabled: true }, { text: i18n.t('Modules.ET.RadioPhotos'), value: 'photo', disabled: true },
{ text: i18n.t('Modules.ET.RadioPlayLists'), value: 'playlist', disabled: true } { text: i18n.t('Modules.ET.RadioPlayLists'), value: 'playlist', disabled: true }
@ -206,6 +206,10 @@
{ {
targetType = 'show' targetType = 'show'
} }
if (targetType == 'album')
{
targetType = 'artist'
}
if (Array.isArray(sections) && sections.length) { if (Array.isArray(sections) && sections.length) {
sections.forEach(req => { sections.forEach(req => {
if (req.type == targetType) { if (req.type == targetType) {

View file

@ -0,0 +1,34 @@
{
"album": {
"level": {
"level1": [
"Media ID",
"Title",
"Summary",
"Studio"
],
"level2": [
"Media ID",
"Title",
"Summary",
"Studio",
"Release Date",
"Rating",
"Year"
],
"all": [
"Added",
"Art url",
"Media ID",
"Poster url",
"Release Date",
"Studio",
"Summary",
"Title",
"Updated",
"Rating",
"Year"
]
}
}
}

View file

@ -18,16 +18,16 @@
"Genre" "Genre"
], ],
"all": [ "all": [
"Added",
"Country",
"Genre",
"Last Viewed at",
"Media ID", "Media ID",
"Title", "Poster url",
"Sort title", "Sort title",
"Summary", "Summary",
"Poster url", "Title",
"Added", "Updated"
"Updated",
"Genre",
"Country",
"Last Viewed at"
] ]
} }
} }

View file

@ -1,32 +1,5 @@
{ {
"movie": { "album": {
"levels": {
"Level 1": "level1",
"Level 2": "level2",
"All": "all",
"dev tommy": "devTommy"
},
"LevelCount": {
"Level 1": 1,
"Level 2": 1,
"All": 2,
"devTommy": 2
}
},
"episode": {
"levels": {
"Level 1": "level1",
"Level 2": "level2",
"All": "all"
},
"LevelCount": {
"Level 1": 1,
"Level 2": 1,
"All": 2
}
},
"show": {
"levels": { "levels": {
"Level 1": "level1", "Level 1": "level1",
"Level 2": "level2", "Level 2": "level2",
@ -50,6 +23,45 @@
"All": 2 "All": 2
} }
}, },
"episode": {
"levels": {
"Level 1": "level1",
"Level 2": "level2",
"All": "all"
},
"LevelCount": {
"Level 1": 1,
"Level 2": 1,
"All": 2
}
},
"movie": {
"levels": {
"Level 1": "level1",
"Level 2": "level2",
"All": "all",
"dev tommy": "devTommy"
},
"LevelCount": {
"Level 1": 1,
"Level 2": 1,
"All": 2,
"devTommy": 2
}
},
"show": {
"levels": {
"Level 1": "level1",
"Level 2": "level2",
"All": "all"
},
"LevelCount": {
"Level 1": 1,
"Level 2": 1,
"All": 2
}
},
"photo": { "photo": {
"levels": { "levels": {
"No Level Yet": "level1" "No Level Yet": "level1"

View file

@ -224,6 +224,10 @@ const et = new class ET {
// code block // code block
def = JSON.parse(JSON.stringify(require('./../defs/def-Artist.json'))); def = JSON.parse(JSON.stringify(require('./../defs/def-Artist.json')));
break; break;
case 'album':
// code block
def = JSON.parse(JSON.stringify(require('./../defs/def-Album.json')));
break;
case 'photo': case 'photo':
// code block // code block
def = JSON.parse(JSON.stringify(require('./../defs/def-Photo.json'))); def = JSON.parse(JSON.stringify(require('./../defs/def-Photo.json')));