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)
* [#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)
* [#267 Allow export of Albums](https://github.com/WebTools-NG/WebTools-NG/issues/267)
## 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
| Fields | Movie | TV Episode | TV Show | Audio Artist|
| :--- | :---: | :---: | :-------------: | :-------------: |
Accessible|X|X|?|?|
Added|X|X|X|X|
Art url|X|?|X|?
| Fields | Movie | TV Episode | TV Show | Audio Artist| Audio Album|
| :--- | :---: | :---: | :-------------: | :-------------: | :-------------: |
Accessible|X|X|?|?|?
Added|X|X|X|X|X
Art url|X|?|X|?|X
Audience Rating|X|?|?|X|?
Audio Stream Audio Channel Layout|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|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|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 Duration|X|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 Language Code|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 Required Bandwidths|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 Title|X|X|N/A|N/A
Chapter Count|X|?|?|?
Chapter Source|X|?|?|?
Chapter Title|X|?|?|?
Collections|X|?|?|?
Content Rating|X|X|X|?
Country|X|?|?|X
Deleted|?|X|?|?|
Directors|X|X|?|?
Duration|X|X|?|X|?
Episode|N/A|X|?|?
Exists|X|X|?|?|N/A
Extras|X|X|?|?
Extras-behindthescenes|X|?|?|?
Extras-deleted|X|?|?|?
Extras-featurette|X|?|?|?
Extras-interview|X|?|?|?
Extras-scene|X|?|?|?
Extras-sceneOrSample|X|?|?|?
Extras-short|X|?|?|?
Extras-trailer|X|?|?|?
Genre|X|X|?|X|?
IMDB ID|?|X|?|?
IMDB Link|?|X|?|?
Intro Start|N/A|X|?|N/A
Intro Stop|N/A|X|?|N/A
Labels|X|?|?|?
Last Viewed at|X|?|?|X
Locked Fields|X|X|?|?
Media Aspect Ratio|X|X|N/A|?
Media Audio Channels|X|X|N/A|N/A
Media Audio Codec|X|X|N/A|N/A
Media Container|X|X|N/A|N/A
Media ID|X|X|X|X
Media Title|?|X|N/A|?
Media Video Bitrate|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 FrameRate|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 Resolution|X|X|N/A|N/A
Media Video Width|X|X|N/A|N/A
MetaData Language|X|X|N/A|N/A
MetaDB Link|X|?|?|?
Original Title|X|N/A|?|?
Part Container|X|X|N/A|N/A
Part Deep Analysis Version|X|X|N/A|N/A
Part Duration|X|X|N/A|N/A
Part File Combined|X|X|N/A|N/A
Part File Path|X|X|N/A|N/A
Part File|X|X|N/A|N/A
Part Indexed|X|X|N/A|N/A
Part Optimized for Streaming|X|X|N/A|N/A
Part Required Bandwidths|X|X|N/A|N/A
Part Size as Bytes|X|X|N/A|N/A
Part Size|X|X|N/A|N/A
Part Video Profile|X|X|N/A|N/A
Poster url|X|X|X|X
Rating|X|X|?|?
Release Date|X|X|X|?
Roles|X|?|X|?
Season|N/A|X|?|N/A
Series Title|N/A|X|?|?
Sort title|X|X|?|?
Studio|X|N/A|X|?
Subtitle Stream Codec ID|X|X|N/A|N/A
Subtitle Stream Codec|X|X|N/A|N/A
Subtitle Stream Forced|X|X|N/A|N/A
Subtitle Stream Format|X|X|N/A|N/A
Subtitle Stream Header Compression|X|X|N/A|N/A
Subtitle Stream Index|X|X|N/A|N/A
Subtitle Stream Language Code|X|X|N/A|N/A
Subtitle Stream Language|X|X|N/A|N/A
Subtitle Stream Required Bandwidths|X|X|N/A|N/A
Subtitle Stream Selected|X|X|N/A|N/A
Subtitle Stream Title|X|X|N/A|N/A
Summary|X|X|X|X|
Tagline|X|?|X|?
Title|X|X|X|X
TMDB ID|?|X|?|N/A
TMDB Link|X|N/A|?|N/A
TVDB ID|?|X|?|N/A
Updated|X|X|X|X
User Rating|X|X|?|N/A
Video Stream Anamorphic|X|?|N/A|N/A
Video Stream Bit Depth|X|X|N/A|N/A
Video Stream Bitrate|X|X|N/A|N/A
Video Stream Cabac|X|X|N/A|N/A
Video Stream Chroma Sub Sampling|X|X|N/A|N/A
Video Stream Codec ID|X|X|N/A|N/A
Video Stream Codec|X|X|N/A|N/A
Video Stream Color Primaries|X|X|N/A|N/A
Video Stream Color Range|X|X|N/A|N/A
Video Stream Color Space|X|X|N/A|N/A
Video Stream Color Trc|X|X|N/A|N/A
Video Stream Default|X|X|N/A|N/A
Video Stream Duration|X|X|N/A|N/A
Video Stream Frame Rate Mode|X|X|N/A|N/A
Video Stream Frame Rate|X|X|N/A|N/A
Video Stream Has Scaling Matrix|X|X|N/A|N/A
Video Stream Height|X|X|N/A|N/A
Video Stream Index|X|X|N/A|N/A
Video Stream Language Code|X|X|N/A|N/A
Video Stream Language|X|X|N/A|N/A
Video Stream Level|X|X|N/A|N/A
Video Stream Pixel Aspect Ratio|X|?|N/A|N/A
Video Stream Pixel Format|X|X|N/A|N/A
Video Stream Profile|X|X|N/A|N/A
Video Stream Ref Frames|X|X|N/A|N/A
Video Stream Required Bandwidths|X|X|N/A|N/A
Video Stream Scan Type|X|X|N/A|N/A
Video Stream Stream Identifier|X|?|N/A|N/A
Video Stream Title|X|X|N/A|N/A
Video Stream Width|X|X|N/A|N/A
View Count|X|X|?|?
Writers|X|X|?|?
Year|X|X|?|X|?
Audio Stream Audio Channel Layout|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|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|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 Duration|X|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 Language Code|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 Required Bandwidths|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 Title|X|X|N/A|N/A|?
Chapter Count|X|?|?|?|?
Chapter Source|X|?|?|?|?
Chapter Title|X|?|?|?|?
Collections|X|?|?|?|?
Content Rating|X|X|X|?|?
Country|X|?|?|X|?
Deleted|?|X|?|?|?
Directors|X|X|?|?|?
Duration|X|X|?|X|?|?
Episode|N/A|X|?|?|?
Exists|X|X|?|?|N/A|?
Extras|X|X|?|?|?
Extras-behindthescenes|X|?|?|?|?
Extras-deleted|X|?|?|?|?
Extras-featurette|X|?|?|?|?
Extras-interview|X|?|?|?|?
Extras-scene|X|?|?|?|?
Extras-sceneOrSample|X|?|?|?|?
Extras-short|X|?|?|?|?
Extras-trailer|X|?|?|?|?
Genre|X|X|?|X|?|?
IMDB ID|?|X|?|?|?
IMDB Link|?|X|?|?|?
Intro Start|N/A|X|?|N/A|?
Intro Stop|N/A|X|?|N/A|?
Labels|X|?|?|?|?
Last Viewed at|X|?|?|X|?
Locked Fields|X|X|?|?|?
Media Aspect Ratio|X|X|N/A|?|?
Media Audio Channels|X|X|N/A|N/A|?
Media Audio Codec|X|X|N/A|N/A|?
Media Container|X|X|N/A|N/A|?
Media ID|X|X|X|X|X
Media Title|?|X|N/A|?|?
Media Video Bitrate|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 FrameRate|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 Resolution|X|X|N/A|N/A|?
Media Video Width|X|X|N/A|N/A|?
MetaData Language|X|X|N/A|N/A|?
MetaDB Link|X|?|?|?|?
Original Title|X|N/A|?|?|?
Part Container|X|X|N/A|N/A|N/A
Part Deep Analysis Version|X|X|N/A|N/A|N/A
Part Duration|X|X|N/A|N/A|N/A
Part File Combined|X|X|N/A|N/A|N/A
Part File Path|X|X|N/A|N/A|N/A
Part File|X|X|N/A|N/A|N/A
Part Indexed|X|X|N/A|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|N/A
Part Size as Bytes|X|X|N/A|N/A|N/A
Part Size|X|X|N/A|N/A|N/A
Part Video Profile|X|X|N/A|N/A|N/A
Poster url|X|X|X|X|X
Rating|X|X|?|?|X
Release Date|X|X|X|?|X
Roles|X|?|X|?|?
Season|N/A|X|?|N/A|?
Series Title|N/A|X|?|?|?
Sort title|X|X|?|?|?
Studio|X|N/A|X|?|X
Subtitle Stream Codec ID|X|X|N/A|N/A|N/A
Subtitle Stream Codec|X|X|N/A|N/A|N/A
Subtitle Stream Forced|X|X|N/A|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|N/A
Subtitle Stream Index|X|X|N/A|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|N/A
Subtitle Stream Required Bandwidths|X|X|N/A|N/A|N/A
Subtitle Stream Selected|X|X|N/A|N/A|N/A
Subtitle Stream Title|X|X|N/A|N/A|N/A
Summary|X|X|X|X|X
Tagline|X|?|X|?|?
Title|X|X|X|X|X
TMDB ID|?|X|?|N/A|?
TMDB Link|X|N/A|?|N/A|?
TVDB ID|?|X|?|N/A|?
Updated|X|X|X|X|X
User Rating|X|X|?|N/A|?
Video Stream Anamorphic|X|?|N/A|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|N/A
Video Stream Cabac|X|X|N/A|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|N/A
Video Stream Codec|X|X|N/A|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|?|N/A
Video Stream Color Space|X|X|N/A|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|N/A
Video Stream Duration|X|X|N/A|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|N/A
Video Stream Has Scaling Matrix|X|X|N/A|N/A|N/A
Video Stream Height|X|X|N/A|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|N/A
Video Stream Language|X|X|N/A|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|N/A
Video Stream Pixel Format|X|X|N/A|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|N/A
Video Stream Required Bandwidths|X|X|N/A|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|N/A
Video Stream Title|X|X|N/A|N/A|N/A
Video Stream Width|X|X|N/A|N/A|N/A
View Count|X|X|?|?|?
Writers|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.RadioTVEpisodes'), value: 'episode', 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.RadioPhotos'), value: 'photo', disabled: true },
{ text: i18n.t('Modules.ET.RadioPlayLists'), value: 'playlist', disabled: true }
@ -206,6 +206,10 @@
{
targetType = 'show'
}
if (targetType == 'album')
{
targetType = 'artist'
}
if (Array.isArray(sections) && sections.length) {
sections.forEach(req => {
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"
],
"all": [
"Added",
"Country",
"Genre",
"Last Viewed at",
"Media ID",
"Title",
"Poster url",
"Sort title",
"Summary",
"Poster url",
"Added",
"Updated",
"Genre",
"Country",
"Last Viewed at"
"Title",
"Updated"
]
}
}

View file

@ -1,32 +1,5 @@
{
"movie": {
"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": {
"album": {
"levels": {
"Level 1": "level1",
"Level 2": "level2",
@ -50,6 +23,45 @@
"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": {
"levels": {
"No Level Yet": "level1"

View file

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