Merge pull request #235 from WebTools-NG/#226-Exporting-episodes

#226 exporting episodes
This commit is contained in:
Tommy Mikkelsen 2021-02-01 22:38:59 +01:00 committed by GitHub
commit 2eba458142
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 19 deletions

View file

@ -7,6 +7,7 @@
* [#229 Bump electron from 7.3.3 to 9.4.0](https://github.com/WebTools-NG/WebTools-NG/pull/229) * [#229 Bump electron from 7.3.3 to 9.4.0](https://github.com/WebTools-NG/WebTools-NG/pull/229)
* [#227 ET Export filename](https://github.com/WebTools-NG/WebTools-NG/pull/227) * [#227 ET Export filename](https://github.com/WebTools-NG/WebTools-NG/pull/227)
* [#231 Open LogDir folder failes](https://github.com/WebTools-NG/WebTools-NG/pull/231) * [#231 Open LogDir folder failes](https://github.com/WebTools-NG/WebTools-NG/pull/231)
* [#226 Exporting episodes](https://github.com/WebTools-NG/WebTools-NG/pull/226)
## V0.1.13 ## V0.1.13

View file

@ -233,7 +233,9 @@
"Processing-Chunk": "Processing chunk {current} of {total}", "Processing-Chunk": "Processing chunk {current} of {total}",
"Processing-Chunk-Detailed": "Processing chunk {current} of {total}.\nitems to export: {urlStr}", "Processing-Chunk-Detailed": "Processing chunk {current} of {total}.\nitems to export: {urlStr}",
"StartExport": "Starting to Export", "StartExport": "Starting to Export",
"GetSectionItems": "Fetching items {idx} in chunks of {chunck}" "CreateExlsFile": "Creating Excel file",
"ProcessItem": "Processing item {count} of {total}",
"GetSectionItems": "Fetching items {idx} in chunks of {chunck} with a total of {totalSize}"
}, },
"ErrorNoOutDirTitle": "No output directory defined", "ErrorNoOutDirTitle": "No output directory defined",
"ErrorNoOutDirMsg": "You need to define an output directory in the settings page first", "ErrorNoOutDirMsg": "You need to define an output directory in the settings page first",

View file

@ -73,7 +73,7 @@
<b-form-textarea <b-form-textarea
id="status" id="status"
v-bind:placeholder="$t('Modules.ET.Status.Status')" v-bind:placeholder="$t('Modules.ET.Status.Status')"
v-model="count" v-model="statusMsg"
:disabled=true :disabled=true
rows="1" rows="1"
max-rows="8" max-rows="8"
@ -89,7 +89,6 @@
<script> <script>
import { et } from "./scripts/et"; import { et } from "./scripts/et";
import i18n from '../../../i18n'; import i18n from '../../../i18n';
import store from '../../../store';
import { wtconfig } from '../General/wtutils'; import { wtconfig } from '../General/wtutils';
const log = require("electron-log"); const log = require("electron-log");
@ -124,6 +123,10 @@
}, },
selectedServerAddressUpdateInProgress: async function(){ selectedServerAddressUpdateInProgress: async function(){
this.selLibraryWait = false; this.selLibraryWait = false;
},
statusMsg: async function(){
console.log('Ged Watch for statusMsg: ' + this.statusMsg())
this.statusMsg();
} }
}, },
created() { created() {
@ -134,10 +137,13 @@
}, },
computed: { computed: {
selectedServerAddress: function(){ selectedServerAddress: function(){
return this.$store.getters.getSelectedServerAddress return this.$store.getters.getSelectedServerAddress
}, },
selectedServerAddressUpdateInProgress(){ selectedServerAddressUpdateInProgress(){
return this.$store.getters.getSelectedServerAddressUpdateInProgress return this.$store.getters.getSelectedServerAddressUpdateInProgress
},
statusMsg: function(){
return this.$store.getters.getExportStatus
}, },
exportLevels: function() { exportLevels: function() {
et.getLevelDisplayName('My Level', this.selMediaType); et.getLevelDisplayName('My Level', this.selMediaType);
@ -189,9 +195,6 @@
}); });
item['options']=options; item['options']=options;
return options; return options;
},
count () {
return store.getters.getExportStatus
} }
}, },
methods: { methods: {

View file

@ -52,12 +52,13 @@ const et = new class ET {
{ {
postURI += '&type=4' postURI += '&type=4'
postURI +='&checkFiles=1&includeAllConcerts=1&includeBandwidths=1&includeChapters=1&includeChildren=1&includeConcerts=1&includeExtras=1&includeFields=1&includeGeolocation=1&includeLoudnessRamps=1&includeMarkers=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeRelated=1&includeRelatedCount=1&includeReviews=1&includeStations=1' postURI +='&checkFiles=1&includeAllConcerts=1&includeBandwidths=1&includeChapters=1&includeChildren=1&includeConcerts=1&includeExtras=1&includeFields=1&includeGeolocation=1&includeLoudnessRamps=1&includeMarkers=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeRelated=1&includeRelatedCount=1&includeReviews=1&includeStations=1'
log.verbose(`Calling url ${baseURL + element + postURI}`) log.info(`Calling url ${baseURL + element + postURI}`)
} }
chuncks = await et.getItemData({baseURL: baseURL, accessToken: accessToken, element: element, postURI: postURI}); chuncks = await et.getItemData({baseURL: baseURL, accessToken: accessToken, element: element, postURI: postURI});
size = JSONPath({path: '$.MediaContainer.size', json: chuncks}); size = JSONPath({path: '$.MediaContainer.size', json: chuncks});
log.verbose(`getSectionData chunck size is ${size} and idx is ${idx}`) const totalSize = JSONPath({path: '$.MediaContainer.totalSize', json: chuncks});
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.GetSectionItems', {idx: idx, chunck: size})) log.info(`getSectionData chunck size is ${size} and idx is ${idx} and totalsize is ${totalSize}`)
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.GetSectionItems', {idx: idx, chunck: size, totalSize: totalSize}))
sectionData.push(chuncks) sectionData.push(chuncks)
log.debug(`Pushed chunk as ${JSON.stringify(chuncks)}`) log.debug(`Pushed chunk as ${JSON.stringify(chuncks)}`)
idx = idx + step; idx = idx + step;
@ -173,7 +174,7 @@ const et = new class ET {
// We are dealing with a custom level here // We are dealing with a custom level here
realName = level realName = level
} }
log.debug(`RealName is ${realName}`) // log.debug(`RealName is ${realName}`)
// We need to load fields and defs into def var // We need to load fields and defs into def var
switch(libType) { switch(libType) {
case 'movie': case 'movie':
@ -498,7 +499,7 @@ const excel2 = new class Excel {
async SaveWorkbook(Workbook, Library, Level, Type) { async SaveWorkbook(Workbook, Library, Level, Type) {
const fs = require('fs') const fs = require('fs')
const name = await this.getFileName( { Library: Library, Level: Level, Type: Type }) const name = await this.getFileName( { Library: Library, Level: Level, Type: Type })
log.debug('Saving output file as: ' + name) log.info('Saving output file as: ' + name)
// Save Excel on Hard Disk // Save Excel on Hard Disk
Workbook.xlsx.writeBuffer() Workbook.xlsx.writeBuffer()
.then(buffer => fs.writeFileSync(name, buffer)) .then(buffer => fs.writeFileSync(name, buffer))
@ -610,7 +611,7 @@ const excel2 = new class Excel {
} }
async addRowToTmp( { libType, level, data, stream }) { async addRowToTmp( { libType, level, data, stream }) {
log.debug(`Start addRowToTmp. libType: ${libType} - level: ${level}`) // log.debug(`Start addRowToTmp. libType: ${libType} - level: ${level}`)
let date, year, month, day, hours, minutes, seconds let date, year, month, day, hours, minutes, seconds
const fields = et.getFields( libType, level) const fields = et.getFields( libType, level)
let lookup, val, array, i, valArray, valArrayVal, subType, subKey let lookup, val, array, i, valArray, valArrayVal, subType, subKey
@ -818,6 +819,8 @@ const excel2 = new class Excel {
var sectionData = await et.getSectionData({sectionName: libName, baseURL: baseURL, accessToken: accessToken, libType: libType}) var sectionData = await et.getSectionData({sectionName: libName, baseURL: baseURL, accessToken: accessToken, libType: libType})
log.verbose(`Amount of chunks in sectionData are: ${sectionData.length}`) log.verbose(`Amount of chunks in sectionData are: ${sectionData.length}`)
let item let item
let counter = 1
const totalSize = JSONPath({path: '$..totalSize', json: sectionData[0]});
for (var x=0; x<sectionData.length; x++) for (var x=0; x<sectionData.length; x++)
{ {
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.Processing-Chunk', {current: x, total: sectionData.length})) store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.Processing-Chunk', {current: x, total: sectionData.length}))
@ -825,7 +828,10 @@ const excel2 = new class Excel {
if ( call == 1 ) if ( call == 1 )
{ {
for (item of sectionChunk){ 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 } ); await excel2.addRowToTmp( { libType: libType, level: level, data: item, stream: stream } );
counter += 1;
await new Promise(resolve => setTimeout(resolve, 1));
} }
} }
else else
@ -840,7 +846,10 @@ const excel2 = new class Excel {
const contents = await et.getItemData({baseURL: baseURL, accessToken: accessToken, element: urlWIthPath}); const contents = await et.getItemData({baseURL: baseURL, accessToken: accessToken, element: urlWIthPath});
const contentsItems = await JSONPath({path: '$.MediaContainer.Metadata[*]', json: contents}); const contentsItems = await JSONPath({path: '$.MediaContainer.Metadata[*]', json: contents});
for (item of contentsItems){ 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 } ); await excel2.addRowToTmp( { libType: libType, level: level, data: item, stream: stream } );
counter += 1;
await new Promise(resolve => setTimeout(resolve, 1));
} }
} }
} }
@ -852,6 +861,7 @@ const excel2 = new class Excel {
// Need to export to xlsx as well? // Need to export to xlsx as well?
if (wtconfig.get('ET.ExpExcel')){ if (wtconfig.get('ET.ExpExcel')){
log.info('We need to create an xlsx file as well') log.info('We need to create an xlsx file as well')
store.commit("UPDATE_EXPORTSTATUS", i18n.t('Modules.ET.Status.CreateExlsFile'))
await excel2.createXLSXFile( {csvFile: newFile, level: level, libType: libType, libName: libName}) await excel2.createXLSXFile( {csvFile: newFile, level: level, libType: libType, libName: libName})
} }
store.commit("UPDATE_EXPORTSTATUS", `Export finished. File:"${newFile}" created`); store.commit("UPDATE_EXPORTSTATUS", `Export finished. File:"${newFile}" created`);