This commit is contained in:
UKDTOM 2021-05-29 23:25:47 +02:00
parent 07096ceef6
commit 08b424f0af
4 changed files with 81 additions and 40 deletions

View file

@ -220,10 +220,10 @@
"ExportToExcel": "Export to xlsx as well as csv",
"NotAvailIndicator": "What to use if a field can't be found",
"QualifierCSV": "Qualifier to use with a text based field for CSV (Use space for none)",
"Posters_Dimensions": "Poster height * width",
"Posters_Dimensions_TT": "Poster height*width, If 'Export Posters' is a field in the export. Can be seperated by a comma, for multiple exports, like `75*75, 1024*768`. Note: dimensions might be altered slightly in order to preserve the aspect ratio of the poster",
"Art_Dimensions": "Art height * width",
"Art_Dimensions_TT": "Art height*width, If 'Export Art' is a field in the export. Can be seperated by a comma, for multiple exports, like `75*75, 1024*768`. Note: dimensions might be altered slightly in order to preserve the aspect ratio of the art"
"Posters_Dimensions": "Poster width * height",
"Posters_Dimensions_TT": "Poster width*height, If 'Export Posters' is a field in the export. Can be seperated by a comma, for multiple exports, like `75*75, 1024*768`. Note: dimensions might be altered slightly in order to preserve the aspect ratio of the poster",
"Art_Dimensions": "Art width * height",
"Art_Dimensions_TT": "Art width*height, If 'Export Art' is a field in the export. Can be seperated by a comma, for multiple exports, like `75*75, 1024*768`. Note: dimensions might be altered slightly in order to preserve the aspect ratio of the art"
},
"Status": {
"Names":{

View file

@ -104,3 +104,34 @@ if (isDevelopment) {
})
}
}
const ipcMain = require('electron').ipcMain;
const axios = require('axios')
const fs = require('fs')
ipcMain.on('downloadFile', function (event, data) {
const filePath = data.filePath;
const item = data.item;
const https = require('https');
const agent = new https.Agent({
rejectUnauthorized: false
});
axios({
method: 'GET',
url: item,
responseType: 'stream',
httpsAgent: agent
}).then((response) => {
response.data.pipe(fs.createWriteStream(filePath))
response.data.on('end', () => {
event.sender.send('downloadEnd');
})
response.data.on('error', (error) => {
log.error(`Failed to download ${item.split('&X-Plex-Token=')[0]}`);
event.sender.send('downloadError', error);
})
}).catch((error) => {
log.error(`Failed to download ${item.split('&X-Plex-Token=')[0]}`);
event.sender.send('downloadError', error);
})
})

View file

@ -9,6 +9,9 @@ const defpostURI = '?checkFiles=1&includeRelated=0&includeExtras=1&includeBandwi
import {wtconfig, wtutils} from '../../General/wtutils';
import i18n from '../../../../i18n';
import {ipcRenderer} from 'electron';
//const fs = require('fs');
import filesize from 'filesize';
var path = require("path");
@ -365,14 +368,15 @@ const et = new class ET {
{
libType = et.expSettings.libTypeSec;
}
levelName = defLevels[libType]['levels'][level]
levelName = defLevels[libType]['levels'][level];
if (levelName == undefined)
{
// We are dealing with a custom level here
levelName = level
levelName = et.expSettings.exportLevel;
}
}
return levelName
et.expSettings.levelName = levelName;
return levelName;
}
async getSections(address, accessToken)
@ -469,12 +473,10 @@ const et = new class ET {
getLevelFields(level, libType) {
// return fields in a level
const out = []
const out = [];
if (libType == et.ETmediaType.Playlist)
{
libType = et.expSettings.libTypeSec;
//libType = store.getters.getSelectedLibTypeSec;
}
let realName = et.getRealLevelName(level, libType);
@ -535,12 +537,12 @@ const et = new class ET {
if (levels == undefined)
{
// We are dealing with a custom level
levels = wtconfig.get(`ET.CustomLevels.${libType}.level.${realName}`);
levels = wtconfig.get(`ET.CustomLevels.${this.expSettings.libTypeSec}.level.${realName}`);
}
Object.keys(levels).forEach(function(key) {
out.push(levels[key])
});
return out
return out;
}
async getLevelCall (libType, level) {
@ -1170,14 +1172,26 @@ const excel2 = new class Excel {
}
async forceDownload(url, target) {
const fs = require('fs');
//var out = fs.createWriteStream(target);
var request = require('request');
await new Promise(resolve =>
request(url)
.pipe(fs.createWriteStream(target))
.on('finish', resolve));
}
const _this = this;
return new Promise((resolve, reject) => {
_this.isDownloading = true;
ipcRenderer.send('downloadFile', {
item: url,
filePath: target
})
ipcRenderer.on('downloadEnd', () => {
ipcRenderer.removeAllListeners('downloadEnd');
ipcRenderer.removeAllListeners('downloadError');
resolve(target);
})
ipcRenderer.on('downloadError', (event, error) => {
ipcRenderer.removeAllListeners('downloadEnd');
ipcRenderer.removeAllListeners('downloadError');
reject(error);
})
})
}
async exportPics( { type: extype, data, baseURL, accessToken} ) {
let ExpDir, picUrl, resolutions;
@ -1214,8 +1228,8 @@ const excel2 = new class Excel {
fileName
);
// Build up pic url
const width = res.split('*')[0].trim();
const hight = res.split('*')[1].trim();
const width = res.split('*')[1].trim();
const hight = res.split('*')[0].trim();
let URL = baseURL + '/photo/:/transcode?width=';
URL += width + '&height=' + hight;
URL += '&minSize=1&url=';
@ -1469,10 +1483,8 @@ const excel2 = new class Excel {
{
jPath = "$.MediaContainer.Metadata[*]";
}
const bExportPosters = wtconfig.get(`ET.CustomLevels.${libType}.Posters.${level}`, false);
const bExportArt = wtconfig.get(`ET.CustomLevels.${libType}.Art.${level}`, false);
const bExportPosters = wtconfig.get(`ET.CustomLevels.${et.expSettings.libTypeSec}.Posters.${et.expSettings.levelName}`, false);
const bExportArt = wtconfig.get(`ET.CustomLevels.${et.expSettings.libTypeSec}.Art.${et.expSettings.levelName}`, false);
for (x=0; x<sectionData.length; x++)
{
et.updateStatusMsg(et.rawMsgType.Chuncks, i18n.t('Modules.ET.Status.Processing-Chunk', {current: x, total: sectionData.length -1}));

View file

@ -33,8 +33,8 @@ log.transports.console.level = wtconfig.get('Log.consoleLevel', 'silly');
log.transports.file.maxSize = wtconfig.get('Log.maxSize', 1048576);
log.info('*********************************')
log.info(`Starting ${wtutils.AppName} Version: ${wtutils.AppVersion}`);
log.info(`Running on ${wtutils.RunningOS}`)
log.info(`Log level set to ${log.transports.file.level}`)
log.info(`Running on ${wtutils.RunningOS}`);
log.info(`Log level set to ${log.transports.file.level}`);
// Logging ended
// Log Commandline Params
@ -53,18 +53,14 @@ params.forEach(param => {
// Handles dev stuff from Json
const token = wtconfig.get('Developer.X-Plex-Token', '');
if ( token != ''){
log.verbose(`Logging in with Dev Token`)
log.verbose(`Logging in with Dev Token`);
store.commit("UPDATE_AUTHTOKEN", token);
}
// Prepopulate config file with defaults
if (wtconfig.get("general.version", "") != wtutils.AppVersion){
// Config file out of date, so prepopulate with default values if missing
wtutils.UpdateConfigFile()
wtutils.UpdateConfigFile();
}
// Log prefs settings
@ -76,18 +72,20 @@ log.verbose(prefs);
log.verbose('***** Prefs Ended *****');
// Get saved language to use, and default to en
i18n.locale = wtconfig.get('General.language', 'en')
i18n.locale = wtconfig.get('General.language', 'en');
// App Menu Bar
log.verbose('Starting to build App Menu')
const menuTemplate = require('./components/layout/script/menubar')
const menu = require('electron').remote.Menu.buildFromTemplate(menuTemplate.default)
require('electron').remote.Menu.setApplicationMenu(menu)
log.verbose('App Menu builded')
log.verbose('Starting to build App Menu');
const menuTemplate = require('./components/layout/script/menubar');
const menu = require('electron').remote.Menu.buildFromTemplate(menuTemplate.default);
require('electron').remote.Menu.setApplicationMenu(menu);
log.verbose('App Menu builded');
Vue.config.productionTip = false;
new Vue({
render: h => h(App),
router: router,