mirror of
https://github.com/WebTools-NG/WebTools-NG
synced 2024-11-23 11:33:14 +00:00
Merge pull request #142 from WebTools-NG/#94-Export-Episodes-as-well
Started on #131
This commit is contained in:
commit
aac7388ca8
6 changed files with 1090 additions and 7 deletions
|
@ -5,7 +5,10 @@
|
|||
"About": "@:Common.AppName provides different tool modules to help with Plex Server management.",
|
||||
"Modules": "Currently available tool modules are:",
|
||||
"Name": "Home",
|
||||
"Title": "Welcome to @:Common.AppName"
|
||||
"Title": "Welcome to @:Common.AppName",
|
||||
"LangUpdateTitle": "Language update",
|
||||
"LangUpdateMsg": "{0} Language has been updated on the translation site",
|
||||
"LangUpdateMsg2": "Please go to Language section and select '{0}'"
|
||||
},
|
||||
"Language": {
|
||||
"Description": "@:Common.Language.Name allows you to change language of the app",
|
||||
|
|
|
@ -18,7 +18,63 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
const log = require('electron-log');
|
||||
import i18n from '../i18n';
|
||||
import {wtutils, wtconfig} from '../wtutils'
|
||||
export default {
|
||||
mounted() {
|
||||
log.info("About Mounted");
|
||||
this.checkLangUpdates();
|
||||
},
|
||||
methods: {
|
||||
async checkLangUpdates() {
|
||||
// Start by getting the currently selected language
|
||||
const selLang = wtconfig.get('General.language');
|
||||
const selLangUpdated = wtconfig.get(`Languages.${selLang}`, 'N/A')
|
||||
console.log('Ged selLang: ' + selLang)
|
||||
console.log('Ged selLangUpdated: ' + selLangUpdated)
|
||||
var onlineLangs = await this.$store.getters.getLanguages
|
||||
for (var i=0; i<onlineLangs.length; i++) {
|
||||
if (onlineLangs[i]['code'] == selLang)
|
||||
{
|
||||
if ( onlineLangs[i]['updated'] != selLangUpdated)
|
||||
{
|
||||
console.log('Ged update needed for : ' + onlineLangs[i]['name'])
|
||||
//const bodyStr = i18n.t("Common.Home.LangUpdateMsg") + '</br>' + i18n.t("Common.Home.LangUpdateMsg2");
|
||||
//const bodyStr = 'Test'
|
||||
/* this.$bvToast.toast("Test"), {
|
||||
// title: this.$t("Common.Home.LangUpdateTitle"),
|
||||
title: "Ged title",
|
||||
autoHideDelay: 3000,
|
||||
solid: true,
|
||||
//enableHtml: true,
|
||||
variant: 'primary',
|
||||
toaster: 'b-toaster-bottom-right'
|
||||
} */
|
||||
|
||||
|
||||
const bodyStr = i18n.t("Common.Home.LangUpdateMsg", [onlineLangs[i]['name']]) + '. ' + i18n.t("Common.Home.LangUpdateMsg2", [i18n.t("Common.Language.btnForce")]);
|
||||
|
||||
//this.$bvToast.toast(this.$t("Modules.ET.ErrorNoServerSelectedMsg"), {
|
||||
this.$bvToast.toast(bodyStr, {
|
||||
//title: this.$t("Modules.ET.ErrorNoServerSelectedTitle"),
|
||||
title: this.$t("Common.Home.LangUpdateTitle"),
|
||||
autoHideDelay: 400000,
|
||||
solid: true,
|
||||
variant: 'primary',
|
||||
toaster: 'b-toaster-bottom-right'
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
selLang, i18n, wtutils, selLangUpdated
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
// User Config
|
||||
import i18n from '../i18n';
|
||||
import { shell } from 'electron';
|
||||
import { wtconfig} from '../wtutils'
|
||||
const log = require('electron-log');
|
||||
|
||||
export default {
|
||||
|
@ -105,6 +106,21 @@ export default {
|
|||
this.olLangs = [];
|
||||
await this.$store.dispatch("updateAndSetLang", { "langCode": i18n.locale, "forceDownload": true});
|
||||
this.getOnlineLangs();
|
||||
|
||||
console.log('Ged lang time: ' + i18n.locale)
|
||||
//const langTimeStamp = 'ged223344'
|
||||
// Get timeStamp
|
||||
let timeStamp = ''
|
||||
var onlineLangs = await this.$store.getters.getLanguages
|
||||
for (var i=0; i<onlineLangs.length; i++) {
|
||||
if (onlineLangs[i]['code'] == i18n.locale)
|
||||
{
|
||||
timeStamp = onlineLangs[i]['updated']
|
||||
}
|
||||
}
|
||||
|
||||
// Update settings with timestamp
|
||||
wtconfig.set(`Languages.${i18n.locale}`, timeStamp)
|
||||
},
|
||||
joinPOE() {
|
||||
shell.openExternal("https://github.com/WebTools-NG/WebTools-NG/wiki/Translator")
|
||||
|
|
958
src/components/modules/ExportTools/definitions-episode.json
Normal file
958
src/components/modules/ExportTools/definitions-episode.json
Normal file
|
@ -0,0 +1,958 @@
|
|||
{
|
||||
"movie": {
|
||||
"fields": {
|
||||
"Media ID":
|
||||
{
|
||||
"key": "$.ratingKey",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Title":
|
||||
{
|
||||
"key": "$.title",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Sort title":
|
||||
{
|
||||
"key": "$.titleSort",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Studio":
|
||||
{
|
||||
"key": "$.studio",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Content Rating":
|
||||
{
|
||||
"key": "$.contentRating",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Year":
|
||||
{
|
||||
"key": "$.year",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Rating":
|
||||
{
|
||||
"key": "$.rating",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Summary":
|
||||
{
|
||||
"key": "$.summary",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Genre":
|
||||
{
|
||||
"key": "$.Genre[*]",
|
||||
"call": 1,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"View Count":
|
||||
{
|
||||
"key": "viewCount",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Last Viewed at":
|
||||
{
|
||||
"key": "$..lastViewedAt",
|
||||
"call": 1,
|
||||
"type": "datetime"
|
||||
},
|
||||
"Tagline":
|
||||
{
|
||||
"key": "tagline",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Release Date":
|
||||
{
|
||||
"key": "$..originallyAvailableAt",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Writers":
|
||||
{
|
||||
"key": "$.Writer[*]",
|
||||
"call": 1,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"Country":
|
||||
{
|
||||
"key": "$.Country[*]",
|
||||
"call": 1,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"Duration":
|
||||
{
|
||||
"key": "$.duration",
|
||||
"call": 1,
|
||||
"type": "time"
|
||||
},
|
||||
"Directors":
|
||||
{
|
||||
"key": "$.Director[*]",
|
||||
"call": 1,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"Roles":
|
||||
{
|
||||
"key": "$.Role[*]",
|
||||
"call": 1,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"Audience Rating":
|
||||
{
|
||||
"key": "audienceRating",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"User Rating":
|
||||
{
|
||||
"key": "userRating",
|
||||
"call": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"Labels":
|
||||
{
|
||||
"key": "$.Label[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"Locked Fields":
|
||||
{
|
||||
"key": "$.Field[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.name"
|
||||
},
|
||||
"Extras":
|
||||
{
|
||||
"key": "$.Extras.size",
|
||||
"call": 2,
|
||||
"type": "int"
|
||||
},
|
||||
"Extras-behindthescenes":
|
||||
{
|
||||
"key": "$..Extras.Metadata[?(@.subtype=='behindTheScenes')].ratingKey",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Extras-deleted":
|
||||
{
|
||||
"key": "$..Extras.Metadata[?(@.subtype=='deleted')].ratingKey",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Extras-featurette":
|
||||
{
|
||||
"key": "$..Extras.Metadata[?(@.subtype=='featurette')].ratingKey",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Extras-interview":
|
||||
{
|
||||
"key": "$..Extras.Metadata[?(@.subtype=='interview')].ratingKey",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Extras-scene":
|
||||
{
|
||||
"key": "$..Extras.Metadata[?(@.subtype=='scene')].ratingKey",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Extras-short":
|
||||
{
|
||||
"key": "$..Extras.Metadata[?(@.subtype=='short')].ratingKey",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Extras-trailer":
|
||||
{
|
||||
"key": "$..Extras.Metadata[?(@.subtype=='trailer')].ratingKey",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Collections":
|
||||
{
|
||||
"key": "$.Collection[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"Original Title":
|
||||
{
|
||||
"key": "$..originalTitle",
|
||||
"call": 2,
|
||||
"type": "string",
|
||||
"postProcess": true
|
||||
},
|
||||
"Added":
|
||||
{
|
||||
"key": "$.addedAt",
|
||||
"call": 1,
|
||||
"type": "datetime"
|
||||
},
|
||||
"Updated":
|
||||
{
|
||||
"key": "$.updatedAt",
|
||||
"call": 1,
|
||||
"type": "datetime"
|
||||
},
|
||||
"Audio Languages":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.languageCode"
|
||||
},
|
||||
"Audio Title":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.title"
|
||||
},
|
||||
"Subtitle Languages":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.languageCode"
|
||||
},
|
||||
"Subtitle Title":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.title"
|
||||
},
|
||||
"Subtitle Codec":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.codec"
|
||||
},
|
||||
"Subtitle Forced":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.forced"
|
||||
},
|
||||
"Accessible":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.accessible"
|
||||
},
|
||||
"Exists":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.exists"
|
||||
},
|
||||
"MetaDB Link":
|
||||
{
|
||||
"key": "$.guid",
|
||||
"call": 2,
|
||||
"type": "string",
|
||||
"postProcess": true
|
||||
},
|
||||
"MetaData Language":
|
||||
{
|
||||
"key": "$.guid",
|
||||
"call": 2,
|
||||
"type": "string",
|
||||
"postProcess": true
|
||||
},
|
||||
"Poster url":
|
||||
{
|
||||
"key": "$.thumb",
|
||||
"call": 2,
|
||||
"type": "string"
|
||||
},
|
||||
"Art url":
|
||||
{
|
||||
"key": "$.art",
|
||||
"call": 2,
|
||||
"type": "string"
|
||||
},
|
||||
"Chapter Source":
|
||||
{
|
||||
"key": "$.chapterSource",
|
||||
"call": 2,
|
||||
"type": "string"
|
||||
},
|
||||
"Chapter Title":
|
||||
{
|
||||
"key": "$.Chapter[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.tag"
|
||||
},
|
||||
"Chapter Count":
|
||||
{
|
||||
"key": "$..Chapter[*]",
|
||||
"call": 2,
|
||||
"type": "array-count"
|
||||
},
|
||||
"Video Resolution":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.videoResolution"
|
||||
},
|
||||
"Bitrate":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.bitrate"
|
||||
},
|
||||
"Width":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.width"
|
||||
},
|
||||
"Height":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.height"
|
||||
},
|
||||
"Aspect Ratio":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.aspectRatio"
|
||||
},
|
||||
"Audio Channels":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.audioChannels"
|
||||
},
|
||||
"Audio Codec":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.audioCodec"
|
||||
},
|
||||
"Video Codec":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.videoCodec"
|
||||
},
|
||||
"Container":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.container"
|
||||
},
|
||||
"Video FrameRate":
|
||||
{
|
||||
"key": "$.Media[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.videoFrameRate"
|
||||
},
|
||||
"Part File Combined":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.file"
|
||||
},
|
||||
"Part File":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"postProcess": true,
|
||||
"subtype": "string",
|
||||
"subkey": "$.file"
|
||||
},
|
||||
"Part File Path":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"postProcess": true,
|
||||
"subtype": "string",
|
||||
"subkey": "$.file"
|
||||
},
|
||||
"Part Size":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"postProcess": true,
|
||||
"subtype": "string",
|
||||
"subkey": "$.size"
|
||||
},
|
||||
"Part Size as Bytes":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.size"
|
||||
},
|
||||
"Part Indexed":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.indexes"
|
||||
},
|
||||
"Part Duration":
|
||||
{
|
||||
"key": "$..Media[*].Part[?(@.key.startsWith('/library/parts'))]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"postProcess": false,
|
||||
"subtype": "time",
|
||||
"subkey": "$.duration"
|
||||
},
|
||||
"Part Container":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.container"
|
||||
},
|
||||
"Part Optimized for Streaming":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.optimizedForStreaming"
|
||||
},
|
||||
"Part Deep Analysis Version":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.deepAnalysisVersion"
|
||||
},
|
||||
"Required Bandwidths":
|
||||
{
|
||||
"key": "$.Media[*].Part[*]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.requiredBandwidths"
|
||||
},
|
||||
"Video Stream Title":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "title"
|
||||
},
|
||||
"Video Stream Default":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "default"
|
||||
},
|
||||
"Video Stream Index":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "index"
|
||||
},
|
||||
"Video Stream Pixel Format":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "pixelFormat"
|
||||
},
|
||||
"Video Stream Profile":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "profile"
|
||||
},
|
||||
"Video Stream Ref Frames":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "refFrames"
|
||||
},
|
||||
"Video Stream Scan Type":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "scanType"
|
||||
},
|
||||
"Video Stream Stream Identifier":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "streamIdentifier"
|
||||
},
|
||||
"Video Stream Width":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "width"
|
||||
},
|
||||
"Video Stream Pixel Aspect Ratio":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "pixelAspectRatio"
|
||||
},
|
||||
"Video Stream Height":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "height"
|
||||
},
|
||||
"Video Stream Has Scaling Matrix":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "hasScalingMatrix"
|
||||
},
|
||||
"Video Stream Frame Rate Mode":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "frameRateMode"
|
||||
},
|
||||
"Video Stream Frame Rate":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "frameRate"
|
||||
},
|
||||
"Video Stream Codec":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "codec"
|
||||
},
|
||||
"Video Stream Codec ID":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "codecID"
|
||||
},
|
||||
"Video Stream Chroma Sub Sampling":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "chromaSubsampling"
|
||||
},
|
||||
"Video Stream Color Primaries":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "colorPrimaries"
|
||||
},
|
||||
"Video Stream Color Range":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "colorRange"
|
||||
},
|
||||
"Video Stream Color Space":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "colorSpace"
|
||||
},
|
||||
"Video Stream Color Trc":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "colorTrc"
|
||||
},
|
||||
"Video Stream Cabac":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "cabac"
|
||||
},
|
||||
"Video Stream Anamorphic":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "anamorphic"
|
||||
},
|
||||
"Video Stream Language Code":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "languageCode"
|
||||
},
|
||||
"Video Stream Language":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "language"
|
||||
},
|
||||
"Video Stream Bitrate":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "bitrate"
|
||||
},
|
||||
"Video Stream Bit Depth":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "bitDepth"
|
||||
},
|
||||
"Video Stream Duration":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "duration"
|
||||
},
|
||||
"Video Stream Required Bandwidths":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "requiredBandwidths"
|
||||
},
|
||||
"Video Stream Level":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==1)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "level"
|
||||
},
|
||||
"Audio Stream Selected":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "selected"
|
||||
},
|
||||
"Audio Stream Default":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "default"
|
||||
},
|
||||
"Audio Stream Codec":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "codec"
|
||||
},
|
||||
"Audio Stream Index":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "index"
|
||||
},
|
||||
"Audio Stream Channels":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "channels"
|
||||
},
|
||||
"Audio Stream Bitrate":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "bitrate"
|
||||
},
|
||||
"Audio Stream Language":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "language"
|
||||
},
|
||||
"Audio Stream Language Code":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "languageCode"
|
||||
},
|
||||
"Audio Stream Audio Channel Layout":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "audioChannelLayout"
|
||||
},
|
||||
"Audio Stream Bit Depth":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "bitDepth"
|
||||
},
|
||||
"Audio Stream Bitrate Mode":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.bitrateMode"
|
||||
},
|
||||
"Audio Stream Codec ID":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.codecID"
|
||||
},
|
||||
"Audio Stream Duration":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.duration"
|
||||
},
|
||||
"Audio Stream Profile":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.profile"
|
||||
},
|
||||
"Audio Stream Sampling Rate":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.samplingRate"
|
||||
},
|
||||
"Audio Stream Required Bandwidths":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==2)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.requiredBandwidths"
|
||||
},
|
||||
"Subtitle Stream Codec":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.profile"
|
||||
},
|
||||
"Subtitle Stream Language":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.language"
|
||||
},
|
||||
"Subtitle Stream Language Code":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.languageCode"
|
||||
},
|
||||
"Subtitle Stream Codec ID":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "codecID"
|
||||
},
|
||||
"Subtitle Stream Format":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "format"
|
||||
},
|
||||
"Subtitle Stream Title":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "title"
|
||||
},
|
||||
"Subtitle Stream Selected":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "selected"
|
||||
},
|
||||
"Subtitle Stream Required Bandwidths":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "requiredBandwidths"
|
||||
},
|
||||
"Subtitle Header Compression":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "headerCompression"
|
||||
},
|
||||
"Subtitle Stream Default":
|
||||
{
|
||||
"key": "$.Media[*].Part[*].Stream[?(@.streamType==3)]",
|
||||
"call": 2,
|
||||
"type": "array",
|
||||
"subtype": "string",
|
||||
"subkey": "$.default"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
56
src/components/modules/ExportTools/sample/episodel2.json
Normal file
56
src/components/modules/ExportTools/sample/episodel2.json
Normal file
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"ratingKey":"2148",
|
||||
"key":"/library/metadata/2148",
|
||||
"parentRatingKey":"2097",
|
||||
"grandparentRatingKey":"2096",
|
||||
"guid":"com.plexapp.agents.thetvdb://296762/3/8?lang=en",
|
||||
"parentGuid":"com.plexapp.agents.thetvdb://296762/3?lang=en",
|
||||
"grandparentGuid":"com.plexapp.agents.thetvdb://296762?lang=en",
|
||||
"type":"episode",
|
||||
"title":"Crisis Theory",
|
||||
"grandparentKey":"/library/metadata/2096",
|
||||
"parentKey":"/library/metadata/2097",
|
||||
"grandparentTitle":"Westworld",
|
||||
"parentTitle":"Season 3",
|
||||
"contentRating":"TV-MA",
|
||||
"summary":"Time to face the music.",
|
||||
"index":8,
|
||||
"parentIndex":3,
|
||||
"year":2020,
|
||||
"thumb":"/library/metadata/2148/thumb/1588809708",
|
||||
"art":"/library/metadata/2096/art/1588809708",
|
||||
"parentThumb":"/library/metadata/2097/thumb/1588809708",
|
||||
"grandparentThumb":"/library/metadata/2096/thumb/1588809708",
|
||||
"grandparentArt":"/library/metadata/2096/art/1588809708",
|
||||
"grandparentTheme":"/library/metadata/2096/theme/1588809708",
|
||||
"duration":4634642,
|
||||
"originallyAvailableAt":"2020-05-03",
|
||||
"addedAt":1588809667,
|
||||
"updatedAt":1588809708,
|
||||
"deletedAt":1590192212,
|
||||
"Media":[
|
||||
{
|
||||
"id":1980,"duration":4634642,"bitrate":5602,"width":1280,
|
||||
"height":720,"aspectRatio":1.78,"audioChannels":6,
|
||||
"audioCodec":"eac3","videoCodec":"h264",
|
||||
"videoResolution":"720","container":"mkv",
|
||||
"videoFrameRate":"24p","videoProfile":"high",
|
||||
"deletedAt":1590192212,
|
||||
"Part":[
|
||||
{
|
||||
"id":1990,
|
||||
"key":"/library/parts/1990/1588792405/file.mkv",
|
||||
"duration":4634642,
|
||||
"file":"/share/CACHEDEV1_DATA/video/new/shows/Westworld (2016)/Season 3/Westworld.S03E08.WEBDL-720p.mkv",
|
||||
"size":3245323033,
|
||||
"container":"mkv",
|
||||
"videoProfile":"high"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"Writer":[
|
||||
{"tag":"Denise Thé"},
|
||||
{"tag":"Jonathan Nolan"}
|
||||
]
|
||||
}
|
|
@ -58,14 +58,8 @@ const menu = require('electron').remote.Menu.buildFromTemplate(menuTemplate.defa
|
|||
require('electron').remote.Menu.setApplicationMenu(menu)
|
||||
log.info('App Menu builded')
|
||||
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
new Vue({
|
||||
render: h => h(App),
|
||||
router: router,
|
||||
|
|
Loading…
Reference in a new issue