Merge pull request #284 from WebTools-NG/#106-Allow-Export-of-Photos

#106 allow export of photos
This commit is contained in:
Tommy Mikkelsen 2021-03-11 01:42:31 +01:00 committed by GitHub
commit dead01ce8a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 321 additions and 234 deletions

View file

@ -1,5 +1,11 @@
# ![Logo](https://github.com/WebTools-NG/WebTools-NG/blob/master/src/assets/WebTools-48x48.png) WebTools-ng Change log
## V0.2.02
**Note**: This version is an Alpha version, that is not made public
* [#106 Allow Export of Photos](https://github.com/WebTools-NG/WebTools-NG/issues/106)
## V0.2.01
**Note**: This version is an Alpha version, that is not made public

View file

@ -6,145 +6,147 @@ 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 Album |Audio Artist | Audio Track |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: |
Accessible|X|X|?|?|?|?|
Added|X|X|X|X|X|X|
Art url|X|?|X|X|?|X|
Audience Rating|X|?|X|?|?|?|
Audio Stream Audio Channel Layout|X|X|?|?|?|?|
Audio Stream Bit Depth|X|X|?|?|?|?|
Audio Stream Bitrate|X|X|?|?|?|?|
Audio Stream Bitrate Mode|X|X|?|?|?|?|
Audio Stream Channels|X|X|?|?|?|?|
Audio Stream Codec|X|X|?|?|?|?|
Audio Stream Codec ID|X|X|?|?|?|?|
Audio Stream Default|X|X|?|?|?|?|
Audio Stream Display Title|?|X|?|?|?|?|
Audio Stream Duration|X|X|?|?|?|?|
Audio Stream Extended Display Title|?|X|?|?|?|?|
Audio Stream Index|X|X|?|?|?|?|
Audio Stream Language|X|X|?|?|?|?|
Audio Stream Language Code|X|X|?|?|?|?|
Audio Stream Profile|X|X|?|?|?|?|
Audio Stream Required Bandwidths|X|X|?|?|?|?|
Audio Stream Sampling Rate|X|X|?|?|?|?|
Audio Stream Selected|X|X|?|?|?|?|
Audio Stream Title|X|X|?|?|?|?|
Chapter Count|X|?|?|?|?|?|
Chapter Source|X|?|?|?|?|?|
Chapter Title|X|?|?|?|?|?|
Collections|X|N/A|?|?|?|?|
Content Rating|X|X|X|?|?|?|
Country|X|?|?|?|X|?|
Deleted|?|X|?|?|?|?|
Directors|X|X|?|?|?|?|
Duration|X|X|X|?|?|X|
Episode|N/A|X|?|?|?|?|
Exists|X|X|?|?|?|?|
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|?|
IMDB ID|?|X|?|?|?|?|
IMDB Link|?|X|?|?|?|?|
Intro Start|N/A|X|?|?|?|?|
Intro Stop|N/A|X|?|?|?|?|
Labels|X|?|?|?|?|?|
Last Viewed at|X|?|?|X|X|?|
Locked Fields|X|X|?|?|?|?|
Media Aspect Ratio|X|X|?|?|?|?|
Media Audio Channels|X|X|?|?|?|X|
Media Audio Codec|X|X|?|?|?|X|
Media Bitrate|X|X|?|?|?|X|
Media Container|X|X|?|?|?|X|
Media ID|X|X|X|X|X|X|
Media Title|?|X|?|?|?|?|
Media Video Codec|X|X|?|?|?|?|
Media Video Duration|?|X|?|?|?|?|
Media Video FrameRate|X|X|?|?|?|?|
Media Video Height|X|X|?|?|?|?|
Media Video Profile|?|X|?|?|?|?|
Media Video Resolution|X|X|?|?|?|?|
Media Video Width|X|X|?|?|?|?|
MetaDB Link|X|?|?|?|?|?|
MetaData Language|X|X|?|?|?|?|
Original Title|X|?|?|?|?|?|
Part Container|X|X|?|?|?|X|
Part Deep Analysis Version|X|X|?|?|?|X|
Part Duration|X|X|?|?|?|X|
Part File|X|X|?|?|?|X|
Part File Combined|X|X|?|?|?|X|
Part File Path|X|X|?|?|?|X|
Part Indexed|X|X|?|?|?|?|
Part Optimized for Streaming|X|X|?|?|?|?|
Part Required Bandwidths|X|X|?|?|?|X|
Part Size|X|X|?|?|?|X|
Part Size as Bytes|X|X|?|?|?|X|
Part Video Profile|X|X|?|?|?|?|
Poster url|X|X|X|X|X|X|
Rating|X|X|?|X|?|?|
Release Date|X|X|X|X|?|?|
Roles|X|?|X|?|?|?|
Season|N/A|X|?|?|?|?|
Series Title|N/A|X|?|?|?|?|
Sort title|X|X|?|?|X|?|
Studio|X|?|X|X|?|?|
Subtitle Stream Codec|X|X|?|?|?|?|
Subtitle Stream Codec ID|X|X|?|?|?|?|
Subtitle Stream Forced|X|X|?|?|?|?|
Subtitle Stream Format|X|X|?|?|?|?|
Subtitle Stream Header Compression|X|X|?|?|?|?|
Subtitle Stream Index|X|X|?|?|?|?|
Subtitle Stream Language|X|X|?|?|?|?|
Subtitle Stream Language Code|X|X|?|?|?|?|
Subtitle Stream Required Bandwidths|X|X|?|?|?|?|
Subtitle Stream Selected|X|X|?|?|?|?|
Subtitle Stream Title|X|X|?|?|?|?|
Summary|X|X|X|X|X|X|
TMDB ID|X|X|?|?|?|?|
TMDB Link|X|N/A|?|?|?|?|
TVDB ID|N/A|X|?|?|?|?|
Tagline|X|?|X|X|?|?|
Title|X|X|X|X|X|X|
Updated|X|X|X|X|X|X|
User Rating|X|X|?|?|?|?|
Video Stream Anamorphic|X|?|?|?|?|?|
Video Stream Bit Depth|X|X|?|?|?|?|
Video Stream Bitrate|X|X|?|?|?|?|
Video Stream Cabac|X|X|?|?|?|?|
Video Stream Chroma Sub Sampling|X|X|?|?|?|?|
Video Stream Codec|X|X|?|?|?|?|
Video Stream Codec ID|X|X|?|?|?|?|
Video Stream Color Primaries|X|X|?|?|?|?|
Video Stream Color Range|X|X|?|?|?|?|
Video Stream Color Space|X|X|?|?|?|?|
Video Stream Color Trc|X|X|?|?|?|?|
Video Stream Default|X|X|?|?|?|?|
Video Stream Duration|X|X|?|?|?|?|
Video Stream Frame Rate|X|X|?|?|?|?|
Video Stream Frame Rate Mode|X|X|?|?|?|?|
Video Stream Has Scaling Matrix|X|X|?|?|?|?|
Video Stream Height|X|X|?|?|?|?|
Video Stream Index|X|X|?|?|?|?|
Video Stream Language|X|X|?|?|?|?|
Video Stream Language Code|X|X|?|?|?|?|
Video Stream Level|X|X|?|?|?|?|
Video Stream Pixel Aspect Ratio|X|?|?|?|?|?|
Video Stream Pixel Format|X|X|?|?|?|?|
Video Stream Profile|X|X|?|?|?|?|
Video Stream Ref Frames|X|X|?|?|?|?|
Video Stream Required Bandwidths|X|X|?|?|?|?|
Video Stream Scan Type|X|X|?|?|?|?|
Video Stream Stream Identifier|X|?|?|?|?|?|
Video Stream Title|X|X|?|?|?|?|
Video Stream Width|X|X|?|?|?|?|
View Count|X|?|?|?|?|?|
Writers|X|X|?|?|?|?|
Year|X|X|X|X|?|?|
| Fields | Movie | TV Episode | TV Show | Audio Album |Audio Artist | Audio Track | Photo |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
Added|X|X|X|X|X|X|X|
Art url|X|?|X|X|?|X|X|
Audience Rating|X|?|X|?|?|?|?|
Audio Stream Audio Channel Layout|X|X|?|?|?|?|?|
Audio Stream Bit Depth|X|X|?|?|?|?|?|
Audio Stream Bitrate|X|X|?|?|?|?|?|
Audio Stream Bitrate Mode|X|X|?|?|?|?|?|
Audio Stream Channels|X|X|?|?|?|?|?|
Audio Stream Codec|X|X|?|?|?|?|?|
Audio Stream Codec ID|X|X|?|?|?|?|?|
Audio Stream Default|X|X|?|?|?|?|?|
Audio Stream Display Title|?|X|?|?|?|?|?|
Audio Stream Duration|X|X|?|?|?|?|?|
Audio Stream Extended Display Title|?|X|?|?|?|?|?|
Audio Stream Index|X|X|?|?|?|?|?|
Audio Stream Language|X|X|?|?|?|?|?|
Audio Stream Language Code|X|X|?|?|?|?|?|
Audio Stream Profile|X|X|?|?|?|?|?|
Audio Stream Required Bandwidths|X|X|?|?|?|?|?|
Audio Stream Sampling Rate|X|X|?|?|?|?|?|
Audio Stream Selected|X|X|?|?|?|?|?|
Audio Stream Title|X|X|?|?|?|?|?|
Chapter Count|X|?|?|?|?|?|?|
Chapter Source|X|?|?|?|?|?|?|
Chapter Title|X|?|?|?|?|?|?|
Collections|X|N/A|?|?|?|?|?|
Content Rating|X|X|X|?|?|?|?|
Country|X|?|?|?|X|?|?|
Deleted|?|X|?|?|?|?|?|
Directors|X|X|?|?|?|?|?|
Duration|X|X|X|?|?|X|?|
Episode|N/A|X|?|?|?|?|?|
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|?|?|
IMDB ID|?|X|?|?|?|?|?|
IMDB Link|?|X|?|?|?|?|?|
Intro Start|N/A|X|?|?|?|?|?|
Intro Stop|N/A|X|?|?|?|?|?|
Key|X|X|X|X|X|X|X|
Labels|X|?|?|?|?|?|?|
Last Viewed at|X|?|?|X|X|?|?|
Locked Fields|X|X|?|?|?|?|?|
Media Aspect Ratio|X|X|?|?|?|?|X|
Media Audio Channels|X|X|?|?|?|X|?|
Media Audio Codec|X|X|?|?|?|X|?|
Media Bitrate|X|X|?|?|?|X|?|
Media Container|X|X|?|?|?|X|X|
Media Height|X|X|?|?|?|?|X|
Media ID|?|?|?|?|?|?|X|
Media Title|?|X|?|?|?|?|?|
Media Video Codec|X|X|?|?|?|?|?|
Media Video Duration|?|X|?|?|?|?|?|
Media Video FrameRate|X|X|?|?|?|?|?|
Media Video Profile|?|X|?|?|?|?|?|
Media Video Resolution|X|X|?|?|?|?|?|
Media Width|X|X|?|?|?|?|X|
MetaDB Link|X|?|?|?|?|?|?|
MetaData Language|X|X|?|?|?|?|?|
Original Title|X|?|?|?|?|?|?|
Part Accessible|X|X|?|?|?|?|X|
Part Container|X|X|?|?|?|X|X|
Part Deep Analysis Version|X|X|?|?|?|X|?|
Part Duration|X|X|?|?|?|X|?|
Part Exists|X|X|?|?|?|?|X|
Part File|X|X|?|?|?|X|X|
Part File Combined|X|X|?|?|?|X|X|
Part File Path|X|X|?|?|?|X|X|
Part Indexed|X|X|?|?|?|?|?|
Part Optimized for Streaming|X|X|?|?|?|?|?|
Part Orientation|?|?|?|?|?|?|X|
Part Required Bandwidths|X|X|?|?|?|X|?|
Part Size|X|X|?|?|?|X|X|
Part Size as Bytes|X|X|?|?|?|X|X|
Part Video Profile|X|X|?|?|?|?|?|
Poster url|X|X|X|X|X|X|X|
Rating|X|X|?|X|?|?|?|
Release Date|X|X|X|X|?|?|X|
Roles|X|?|X|?|?|?|?|
Season|N/A|X|?|?|?|?|?|
Series Title|N/A|X|?|?|?|?|?|
Sort title|X|X|?|?|X|?|?|
Studio|X|?|X|X|?|?|?|
Subtitle Stream Codec|X|X|?|?|?|?|?|
Subtitle Stream Codec ID|X|X|?|?|?|?|?|
Subtitle Stream Forced|X|X|?|?|?|?|?|
Subtitle Stream Format|X|X|?|?|?|?|?|
Subtitle Stream Header Compression|X|X|?|?|?|?|?|
Subtitle Stream Index|X|X|?|?|?|?|?|
Subtitle Stream Language|X|X|?|?|?|?|?|
Subtitle Stream Language Code|X|X|?|?|?|?|?|
Subtitle Stream Required Bandwidths|X|X|?|?|?|?|?|
Subtitle Stream Selected|X|X|?|?|?|?|?|
Subtitle Stream Title|X|X|?|?|?|?|?|
Summary|X|X|X|X|X|X|X|
TMDB ID|X|X|?|?|?|?|?|
TMDB Link|X|N/A|?|?|?|?|?|
TVDB ID|N/A|X|?|?|?|?|?|
Tagline|X|?|X|X|?|?|?|
Title|X|X|X|X|X|X|X|
Updated|X|X|X|X|X|X|X|
User Rating|X|X|?|?|?|?|?|
Video Stream Anamorphic|X|?|?|?|?|?|?|
Video Stream Bit Depth|X|X|?|?|?|?|?|
Video Stream Bitrate|X|X|?|?|?|?|?|
Video Stream Cabac|X|X|?|?|?|?|?|
Video Stream Chroma Sub Sampling|X|X|?|?|?|?|?|
Video Stream Codec|X|X|?|?|?|?|?|
Video Stream Codec ID|X|X|?|?|?|?|?|
Video Stream Color Primaries|X|X|?|?|?|?|?|
Video Stream Color Range|X|X|?|?|?|?|?|
Video Stream Color Space|X|X|?|?|?|?|?|
Video Stream Color Trc|X|X|?|?|?|?|?|
Video Stream Default|X|X|?|?|?|?|?|
Video Stream Duration|X|X|?|?|?|?|?|
Video Stream Frame Rate|X|X|?|?|?|?|?|
Video Stream Frame Rate Mode|X|X|?|?|?|?|?|
Video Stream Has Scaling Matrix|X|X|?|?|?|?|?|
Video Stream Height|X|X|?|?|?|?|?|
Video Stream Index|X|X|?|?|?|?|?|
Video Stream Language|X|X|?|?|?|?|?|
Video Stream Language Code|X|X|?|?|?|?|?|
Video Stream Level|X|X|?|?|?|?|?|
Video Stream Pixel Aspect Ratio|X|?|?|?|?|?|?|
Video Stream Pixel Format|X|X|?|?|?|?|?|
Video Stream Profile|X|X|?|?|?|?|?|
Video Stream Ref Frames|X|X|?|?|?|?|?|
Video Stream Required Bandwidths|X|X|?|?|?|?|?|
Video Stream Scan Type|X|X|?|?|?|?|?|
Video Stream Stream Identifier|X|?|?|?|?|?|?|
Video Stream Title|X|X|?|?|?|?|?|
Video Stream Width|X|X|?|?|?|?|?|
View Count|X|?|?|?|?|?|?|
Writers|X|X|?|?|?|?|?|
Year|X|X|X|X|?|?|X|

View file

@ -109,7 +109,7 @@
{ text: i18n.t('Modules.ET.RadioAudioArtist'), value: 'artist', disabled: false },
{ text: i18n.t('Modules.ET.RadioAudioAlbum'), value: 'album', disabled: false },
{ text: i18n.t('Modules.ET.RadioAudioTrack'), value: 'track', disabled: false },
{ text: i18n.t('Modules.ET.RadioPhotos'), value: 'photo', disabled: true },
{ text: i18n.t('Modules.ET.RadioPhotos'), value: 'photo', disabled: false },
{ text: i18n.t('Modules.ET.RadioPlayLists'), value: 'playlist', disabled: true }
],
selCustLevel: "",

View file

@ -108,7 +108,7 @@
{ text: i18n.t('Modules.ET.RadioAudioArtist'), value: 'artist', disabled: false },
{ text: i18n.t('Modules.ET.RadioAudioAlbum'), value: 'album', disabled: false },
{ text: i18n.t('Modules.ET.RadioAudioTrack'), value: 'track', disabled: false },
{ text: i18n.t('Modules.ET.RadioPhotos'), value: 'photo', disabled: true },
{ text: i18n.t('Modules.ET.RadioPhotos'), value: 'photo', disabled: false },
{ text: i18n.t('Modules.ET.RadioPlayLists'), value: 'playlist', disabled: true }
]
};

View file

@ -2,13 +2,13 @@
"album": {
"level": {
"level1": [
"Media ID",
"Key",
"Title",
"Summary",
"Studio"
],
"level2": [
"Media ID",
"Key",
"Title",
"Summary",
"Studio",
@ -19,7 +19,7 @@
"all": [
"Added",
"Art url",
"Media ID",
"Key",
"Poster url",
"Rating",
"Release Date",

View file

@ -2,13 +2,13 @@
"artist": {
"level": {
"level1": [
"Media ID",
"Key",
"Title",
"Sort title",
"Summary"
],
"level2": [
"Media ID",
"Key",
"Title",
"Sort title",
"Summary",
@ -21,8 +21,8 @@
"Added",
"Country",
"Genre",
"Key",
"Last Viewed at",
"Media ID",
"Poster url",
"Sort title",
"Summary",

View file

@ -2,7 +2,7 @@
"episode": {
"level": {
"level1": [
"Media ID",
"Key",
"Series Title",
"Sort title",
"Title",
@ -15,7 +15,7 @@
"User Rating"
],
"level2": [
"Media ID",
"Key",
"Series Title",
"Sort title",
"Title",
@ -35,9 +35,8 @@
"Deleted"
],
"all": [
"Media ID",
"Key",
"Series Title",
"Accessible",
"Added",
"Audio Stream Audio Channel Layout",
"Audio Stream Bit Depth",
@ -63,7 +62,6 @@
"Directors",
"Duration",
"Episode",
"Exists",
"Extras",
"IMDB ID",
"IMDB Link",
@ -75,18 +73,20 @@
"Media Audio Codec",
"Media Bitrate",
"Media Container",
"Media Height",
"Media Title",
"Media Video Codec",
"Media Video Duration",
"Media Video FrameRate",
"Media Video Height",
"Media Video Profile",
"Media Video Resolution",
"Media Video Width",
"Media Width",
"MetaData Language",
"Part Accessible",
"Part Container",
"Part Deep Analysis Version",
"Part Duration",
"Part Exists",
"Part File Combined",
"Part File Path",
"Part File",

View file

@ -1,13 +1,5 @@
{
"fields": {
"Accessible":
{
"key": "$.Media[*].Part[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.accessible"
},
"Added":
{
"key": "$.addedAt",
@ -246,14 +238,6 @@
"call": 1,
"type": "string"
},
"Exists":
{
"key": "$.Media[*].Part[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.exists"
},
"Extras":
{
"key": "$.Extras.size",
@ -350,6 +334,12 @@
"subtype": "time",
"subkey": "$.endTimeOffset"
},
"Key":
{
"key": "$.ratingKey",
"call": 1,
"type": "string"
},
"Last Viewed at":
{
"key": "$..lastViewedAt",
@ -412,11 +402,21 @@
"subtype": "string",
"subkey": "$.container"
},
"Media Height":
{
"key": "$.Media[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.height"
},
"Media ID":
{
"key": "$.ratingKey",
"call": 1,
"type": "string"
"key": "$.Media[*].Part[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.id"
},
"Media Title":
{
@ -450,14 +450,6 @@
"subtype": "string",
"subkey": "$.videoFrameRate"
},
"Media Video Height":
{
"key": "$.Media[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.height"
},
"Media Video Profile":
{
"key": "$.Media[*]",
@ -474,7 +466,7 @@
"subtype": "string",
"subkey": "$.videoResolution"
},
"Media Video Width":
"Media Width":
{
"key": "$.Media[*]",
"call": 2,
@ -503,6 +495,14 @@
"type": "string",
"postProcess": true
},
"Part Accessible":
{
"key": "$.Media[*].Part[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.accessible"
},
"Part Container":
{
"key": "$.Media[*].Part[*]",
@ -528,6 +528,14 @@
"subtype": "string",
"subkey": "$.deepAnalysisVersion"
},
"Part Exists":
{
"key": "$.Media[*].Part[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.exists"
},
"Part File":
{
"key": "$.Media[*].Part[*]",
@ -570,6 +578,14 @@
"subtype": "string",
"subkey": "$.optimizedForStreaming"
},
"Part Orientation":
{
"key": "$.Media[*].Part[*]",
"call": 2,
"type": "array",
"subtype": "string",
"subkey": "$.orientation"
},
"Part Required Bandwidths":
{
"key": "$.Media[*].Part[*]",

View file

@ -76,7 +76,14 @@
},
"photo": {
"levels": {
"No Level Yet": "level1"
"Level 1": "level1",
"Level 2": "level2",
"All": "all"
},
"LevelCount": {
"Level 1": 1,
"Level 2": 1,
"All": 2
}
}
}

View file

@ -2,10 +2,10 @@
"movie": {
"level": {
"devTommy": [
"Media ID", "Title"
"Key", "Title"
],
"level1": [
"Media ID",
"Key",
"Title",
"Sort title",
"Studio",
@ -15,7 +15,7 @@
"Summary"
],
"level2": [
"Media ID",
"Key",
"Title",
"Sort title",
"Studio",
@ -36,7 +36,6 @@
"User Rating"
],
"all": [
"Accessible",
"Added",
"Art url",
"Audience Rating",
@ -65,7 +64,6 @@
"Country",
"Directors",
"Duration",
"Exists",
"Extras",
"Extras-behindthescenes",
"Extras-deleted",
@ -75,6 +73,7 @@
"Extras-sceneOrSample",
"Extras-short",
"Extras-trailer",
"Key",
"Labels",
"Last Viewed at",
"Locked Fields",
@ -83,18 +82,19 @@
"Media Audio Codec",
"Media Bitrate",
"Media Container",
"Media ID",
"Media Height",
"Media Video Codec",
"Media Video FrameRate",
"Media Video Height",
"Media Video Resolution",
"Media Video Width",
"Media Width",
"MetaDB Link",
"MetaData Language",
"Original Title",
"Part Accessible",
"Part Container",
"Part Deep Analysis Version",
"Part Duration",
"Part Exists",
"Part File",
"Part File Combined",
"Part File Path",

View file

@ -1 +1,47 @@
{}
{
"photo": {
"level": {
"level1": [
"Key",
"Title",
"Added",
"Year"
],
"level2": [
"Key",
"Title",
"Added",
"Year",
"Media Aspect Ratio",
"Media Container",
"Media Height",
"Media Width"
],
"all": [
"Added",
"Art url",
"Key",
"Media Aspect Ratio",
"Media Container",
"Media Height",
"Media ID",
"Media Width",
"Part Accessible",
"Part Container",
"Part Exists",
"Part File",
"Part File Combined",
"Part File Path",
"Part Orientation",
"Part Size",
"Part Size as Bytes",
"Poster url",
"Release Date",
"Summary",
"Title",
"Updated",
"Year"
]
}
}
}

View file

@ -2,12 +2,12 @@
"show": {
"level": {
"level1": [
"Media ID",
"Key",
"Title",
"Summary"
],
"level2": [
"Media ID",
"Key",
"Title",
"Summary",
"Audience Rating",
@ -21,7 +21,7 @@
"Content Rating",
"Duration",
"Genre",
"Media ID",
"Key",
"Poster url",
"Release Date",
"Roles",

View file

@ -2,14 +2,14 @@
"track": {
"level": {
"level1": [
"Media ID",
"Key",
"Title",
"Summary",
"Duration",
"Added"
],
"level2": [
"Media ID",
"Key",
"Title",
"Summary",
"Duration",
@ -22,11 +22,11 @@
"Added",
"Art url",
"Duration",
"Key",
"Media Audio Channels",
"Media Audio Codec",
"Media Bitrate",
"Media Container",
"Media ID",
"Part Container",
"Part Deep Analysis Version",
"Part Duration",

View file

@ -83,7 +83,14 @@ const et = new class ET {
const element = '/library/sections/' + libKey
let size
do {
postURI = `/all?X-Plex-Container-Start=${idx}&X-Plex-Container-Size=${step}&type=${this.mediaType[libType]}&${this.uriParams}`;
if (libType == 'photo')
{
postURI = `/all?addedAt>>=-2208992400&X-Plex-Container-Start=${idx}&X-Plex-Container-Size=${step}&type=${this.mediaType[libType]}&${this.uriParams}`;
}
else
{
postURI = `/all?X-Plex-Container-Start=${idx}&X-Plex-Container-Size=${step}&type=${this.mediaType[libType]}&${this.uriParams}`;
}
log.info(`Calling url ${baseURL + element + postURI}`);
chuncks = await et.getItemData({baseURL: baseURL, accessToken: accessToken, element: element, postURI: postURI});
size = JSONPath({path: '$.MediaContainer.size', json: chuncks});
@ -1014,41 +1021,44 @@ const excel2 = new class Excel {
var stream = fs.createWriteStream(tmpFile, {flags:'a'});
// Add the header
stream.write( strHeader + "\n");
// Get all the items in small chuncks
var sectionData = await et.getSectionData({sectionName: libName, baseURL: baseURL, accessToken: accessToken, libType: libType})
log.verbose(`Amount of chunks in sectionData are: ${sectionData.length}`)
let item
let counter = 1
const totalSize = JSONPath({path: '$..totalSize', json: sectionData[0]});
for (var x=0; x<sectionData.length; x++)
var sectionData, x;
{
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.Processing-Chunk', {current: x, total: sectionData.length}))
var sectionChunk = await JSONPath({path: "$.MediaContainer.Metadata[*]", json: sectionData[x]});
if ( call == 1 )
// Get all the items in small chuncks
sectionData = await et.getSectionData({sectionName: libName, baseURL: baseURL, accessToken: accessToken, libType: libType})
log.verbose(`Amount of chunks in sectionData are: ${sectionData.length}`)
let item
let counter = 1
const totalSize = JSONPath({path: '$..totalSize', json: sectionData[0]});
for (x=0; x<sectionData.length; x++)
{
for (item of sectionChunk){
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.ProcessItem', {count: counter, total: totalSize}));
await excel2.addRowToTmp( { libType: libType, level: level, data: item, stream: stream } );
counter += 1;
await new Promise(resolve => setTimeout(resolve, 1));
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.Processing-Chunk', {current: x, total: sectionData.length}))
var sectionChunk = await JSONPath({path: "$.MediaContainer.Metadata[*]", json: sectionData[x]});
if ( call == 1 )
{
for (item of sectionChunk){
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.ProcessItem', {count: counter, total: totalSize}));
await excel2.addRowToTmp( { libType: libType, level: level, data: item, stream: stream } );
counter += 1;
await new Promise(resolve => setTimeout(resolve, 1));
}
}
}
else
{
// Get ratingKeys in the chunk
const urls = await JSONPath({path: '$..ratingKey', json: sectionChunk});
let urlStr = urls.join(',');
log.verbose(`Items to lookup are: ${urlStr}`)
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.Processing-Chunk-Detailed', {current: x, total: sectionData.length, urlStr: urlStr}));
const urlWIthPath = '/library/metadata/' + urlStr + '?' + this.uriParams;
log.verbose(`Items retrieved`);
const contents = await et.getItemData({baseURL: baseURL, accessToken: accessToken, element: urlWIthPath});
const contentsItems = await JSONPath({path: '$.MediaContainer.Metadata[*]', json: contents});
for (item of contentsItems){
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.ProcessItem', {count: counter, total: totalSize}));
await excel2.addRowToTmp( { libType: libType, level: level, data: item, stream: stream } );
counter += 1;
await new Promise(resolve => setTimeout(resolve, 1));
else
{
// Get ratingKeys in the chunk
const urls = await JSONPath({path: '$..ratingKey', json: sectionChunk});
let urlStr = urls.join(',');
log.verbose(`Items to lookup are: ${urlStr}`)
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.Processing-Chunk-Detailed', {current: x, total: sectionData.length, urlStr: urlStr}));
const urlWIthPath = '/library/metadata/' + urlStr + '?' + this.uriParams;
log.verbose(`Items retrieved`);
const contents = await et.getItemData({baseURL: baseURL, accessToken: accessToken, element: urlWIthPath});
const contentsItems = await JSONPath({path: '$.MediaContainer.Metadata[*]', json: contents});
for (item of contentsItems){
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.ProcessItem', {count: counter, total: totalSize}));
await excel2.addRowToTmp( { libType: libType, level: level, data: item, stream: stream } );
counter += 1;
await new Promise(resolve => setTimeout(resolve, 1));
}
}
}
}