diff --git a/src/configuration.json.example b/src/configuration.json.example index 173be7c..8ce9e62 100644 --- a/src/configuration.json.example +++ b/src/configuration.json.example @@ -12,10 +12,10 @@ "dynamic.download.furniture.url": "${flash.dynamic.download.url}%revision%/%className%.swf", "external.variables.url": "https://www.habbo.com/gamedata/external_variables/1", "external.texts.url": "${external.texts.txt}", - "convert.productdata": "0", - "convert.externaltexts": "0", - "convert.figure": "0", - "convert.effect": "0", - "convert.furniture": "0", - "convert.pet": "0" + "convert.productdata": "1", + "convert.externaltexts": "1", + "convert.figure": "1", + "convert.effect": "1", + "convert.furniture": "1", + "convert.pet": "1" } diff --git a/src/converters/effect/EffectDownloader.ts b/src/converters/effect/EffectDownloader.ts index 780a3c6..3ee92ce 100644 --- a/src/converters/effect/EffectDownloader.ts +++ b/src/converters/effect/EffectDownloader.ts @@ -33,7 +33,7 @@ export class EffectDownloader const existingFile = new File(directory.path + '/' + className + '.nitro'); - if(existingFile.isDirectory()) continue; + if(existingFile.exists()) continue; if(classNames.indexOf(className) >= 0) continue; diff --git a/src/converters/effectmap/EffectMapConverter.ts b/src/converters/effectmap/EffectMapConverter.ts index 1218419..5c254ce 100644 --- a/src/converters/effectmap/EffectMapConverter.ts +++ b/src/converters/effectmap/EffectMapConverter.ts @@ -23,45 +23,52 @@ export class EffectMapConverter extends Converter public async convertAsync(): Promise { - const now = Date.now(); - - const spinner = ora('Preparing EffectMap').start(); - - const directory = this.getDirectory(); - - try + return new Promise((resolve, reject) => { - await this._effectMapDownloader.download(async (content: string) => + const now = Date.now(); + + const spinner = ora('Preparing EffectMap').start(); + + const directory = this.getDirectory(); + + try { - spinner.text = 'Parsing EffectMap'; - - spinner.render(); - - let effectMapString = content; - - if(!effectMapString.startsWith('{')) + this._effectMapDownloader.download(async (content: string) => { - const xml = await parseStringPromise(effectMapString); + spinner.text = 'Parsing EffectMap'; - const effectMap = await this.mapXML2JSON(xml); + spinner.render(); - effectMapString = JSON.stringify(effectMap); - } + let effectMapString = content; - const path = directory.path + '/EffectMap.json'; + if(!effectMapString.startsWith('{')) + { + const xml = await parseStringPromise(effectMapString); - await writeFile(path, effectMapString, 'utf8'); + const effectMap = await this.mapXML2JSON(xml); - this._configuration.setValue('effectmap.load.url', path); - }); + effectMapString = JSON.stringify(effectMap); + } - spinner.succeed(`EffectMap finished in ${ Date.now() - now }ms`); - } + const path = directory.path + '/EffectMap.json'; - catch (error) - { - spinner.fail('EffectMap failed: ' + error.message); - } + await writeFile(path, effectMapString, 'utf8'); + + this._configuration.setValue('effectmap.load.url', path); + + spinner.succeed(`EffectMap finished in ${ Date.now() - now }ms`); + + resolve(); + }); + } + + catch (error) + { + spinner.fail('EffectMap failed: ' + error.message); + + reject(error); + } + }); } private getDirectory(): File diff --git a/src/converters/externaltexts/ExternalTextsConverter.ts b/src/converters/externaltexts/ExternalTextsConverter.ts index c5983e6..44167b6 100644 --- a/src/converters/externaltexts/ExternalTextsConverter.ts +++ b/src/converters/externaltexts/ExternalTextsConverter.ts @@ -23,41 +23,48 @@ export class ExternalTextsConverter extends Converter { if(!this._configuration.getBoolean('convert.externaltexts')) return; - const now = Date.now(); - - const spinner = ora('Preparing ExternalTexts').start(); - - const directory = this.getDirectory(); - - try + return new Promise((resolve, reject) => { - await this._externalTextsDownloader.download(async (content: string) => + const now = Date.now(); + + const spinner = ora('Preparing ExternalTexts').start(); + + const directory = this.getDirectory(); + + try { - spinner.text = 'Parsing ExternalTexts'; - - spinner.render(); - - let externalTextsString = content; - - if(!externalTextsString.startsWith('{')) + this._externalTextsDownloader.download(async (content: string) => { - const externalTexts = await this.mapText2JSON(externalTextsString); + spinner.text = 'Parsing ExternalTexts'; - externalTextsString = JSON.stringify(externalTexts); - } + spinner.render(); - const path = directory.path + '/ExternalTexts.json'; + let externalTextsString = content; - await writeFile(path, externalTextsString, 'utf8'); - }); + if(!externalTextsString.startsWith('{')) + { + const externalTexts = await this.mapText2JSON(externalTextsString); - spinner.succeed(`ExternalTexts finished in ${ Date.now() - now }ms`); - } + externalTextsString = JSON.stringify(externalTexts); + } - catch (error) - { - spinner.fail('ExternalTexts failed: ' + error.message); - } + const path = directory.path + '/ExternalTexts.json'; + + await writeFile(path, externalTextsString, 'utf8'); + + spinner.succeed(`ExternalTexts finished in ${ Date.now() - now }ms`); + + resolve(); + }); + } + + catch (error) + { + spinner.fail('ExternalTexts failed: ' + error.message); + + reject(error); + } + }); } private getDirectory(): File diff --git a/src/converters/figure/FigureDownloader.ts b/src/converters/figure/FigureDownloader.ts index 9e2cb4b..f7878a7 100644 --- a/src/converters/figure/FigureDownloader.ts +++ b/src/converters/figure/FigureDownloader.ts @@ -33,7 +33,7 @@ export class FigureDownloader const existingFile = new File(directory.path + '/' + className + '.nitro'); - if(existingFile.isDirectory()) continue; + if(existingFile.exists()) continue; if(className === 'hh_human_fx' || className === 'hh_pets') continue; diff --git a/src/converters/figuremap/FigureMapConverter.ts b/src/converters/figuremap/FigureMapConverter.ts index 14a5fc2..1b9c996 100644 --- a/src/converters/figuremap/FigureMapConverter.ts +++ b/src/converters/figuremap/FigureMapConverter.ts @@ -23,45 +23,52 @@ export class FigureMapConverter extends Converter public async convertAsync(): Promise { - const now = Date.now(); - - const spinner = ora('Preparing FigureMap').start(); - - const directory = this.getDirectory(); - - try + return new Promise((resolve, reject) => { - await this._figureMapDownloader.download(async (content: string) => + const now = Date.now(); + + const spinner = ora('Preparing FigureMap').start(); + + const directory = this.getDirectory(); + + try { - spinner.text = 'Parsing FigureMap'; - - spinner.render(); - - let figureMapString = content; - - if(!figureMapString.startsWith('{')) + this._figureMapDownloader.download(async (content: string) => { - const xml = await parseStringPromise(figureMapString); + spinner.text = 'Parsing FigureMap'; - const figureMap = await this.mapXML2JSON(xml); + spinner.render(); - figureMapString = JSON.stringify(figureMap); - } + let figureMapString = content; - const path = directory.path + '/FigureMap.json'; + if(!figureMapString.startsWith('{')) + { + const xml = await parseStringPromise(figureMapString); - await writeFile(path, figureMapString, 'utf8'); + const figureMap = await this.mapXML2JSON(xml); - this._configuration.setValue('figuremap.load.url', path); - }); + figureMapString = JSON.stringify(figureMap); + } - spinner.succeed(`FigureMap finished in ${ Date.now() - now }ms`); - } + const path = directory.path + '/FigureMap.json'; - catch (error) - { - spinner.fail('FigureMap failed: ' + error.message); - } + await writeFile(path, figureMapString, 'utf8'); + + this._configuration.setValue('figuremap.load.url', path); + + spinner.succeed(`FigureMap finished in ${ Date.now() - now }ms`); + + resolve(); + }); + } + + catch (error) + { + spinner.fail('FigureMap failed: ' + error.message); + + reject(error); + } + }); } private getDirectory(): File diff --git a/src/converters/furniture/FurnitureDownloader.ts b/src/converters/furniture/FurnitureDownloader.ts index 4b1328f..6a339b5 100644 --- a/src/converters/furniture/FurnitureDownloader.ts +++ b/src/converters/furniture/FurnitureDownloader.ts @@ -37,7 +37,7 @@ export class FurnitureDownloader const existingFile = new File(directory.path + '/' + className + '.nitro'); - if(existingFile.isDirectory()) continue; + if(existingFile.exists()) continue; if(classNames.indexOf(className) >= 0) continue; @@ -68,7 +68,7 @@ export class FurnitureDownloader const existingFile = new File(directory.path + '/' + className + '.nitro'); - if(existingFile.isDirectory()) continue; + if(existingFile.exists()) continue; if(classNames.indexOf(className) >= 0) continue; diff --git a/src/converters/furnituredata/FurnitureDataConverter.ts b/src/converters/furnituredata/FurnitureDataConverter.ts index 178f352..6acd071 100644 --- a/src/converters/furnituredata/FurnitureDataConverter.ts +++ b/src/converters/furnituredata/FurnitureDataConverter.ts @@ -23,45 +23,52 @@ export class FurnitureDataConverter extends Converter public async convertAsync(): Promise { - const now = Date.now(); - - const spinner = ora('Preparing FurnitureData').start(); - - const directory = this.getDirectory(); - - try + return new Promise((resolve, reject) => { - await this._furnitureDataDownloader.download(async (content: string) => + const now = Date.now(); + + const spinner = ora('Preparing FurnitureData').start(); + + const directory = this.getDirectory(); + + try { - spinner.text = 'Parsing FurnitureData'; - - spinner.render(); - - let furnitureDataString = content; - - if(!furnitureDataString.startsWith('{')) + this._furnitureDataDownloader.download(async (content: string) => { - const xml = await parseStringPromise(furnitureDataString); + spinner.text = 'Parsing FurnitureData'; - const furnitureData = await this.mapXML2JSON(xml); + spinner.render(); - furnitureDataString = JSON.stringify(furnitureData); - } + let furnitureDataString = content; - const path = directory.path + '/FurnitureData.json'; + if(!furnitureDataString.startsWith('{')) + { + const xml = await parseStringPromise(furnitureDataString); - await writeFile(path, furnitureDataString, 'utf8'); + const furnitureData = await this.mapXML2JSON(xml); - this._configuration.setValue('furnidata.load.url', path); - }); + furnitureDataString = JSON.stringify(furnitureData); + } - spinner.succeed(`FurnitureData finished in ${ Date.now() - now }ms`); - } + const path = directory.path + '/FurnitureData.json'; - catch (error) - { - spinner.fail('FurnitureData failed: ' + error.message); - } + await writeFile(path, furnitureDataString, 'utf8'); + + this._configuration.setValue('furnidata.load.url', path); + + spinner.succeed(`FurnitureData finished in ${ Date.now() - now }ms`); + + resolve(); + }); + } + + catch (error) + { + spinner.fail('FurnitureData failed: ' + error.message); + + reject(error); + } + }); } private getDirectory(): File diff --git a/src/converters/pet/PetDownloader.ts b/src/converters/pet/PetDownloader.ts index 12fdba8..c4492a0 100644 --- a/src/converters/pet/PetDownloader.ts +++ b/src/converters/pet/PetDownloader.ts @@ -25,7 +25,7 @@ export class PetDownloader { const existingFile = new File(directory.path + '/' + petType + '.nitro'); - if(existingFile.isDirectory()) continue; + if(existingFile.exists()) continue; if(classNames.indexOf(petType) >= 0) continue; diff --git a/src/converters/productdata/ProductDataConverter.ts b/src/converters/productdata/ProductDataConverter.ts index 4d8938c..58340dc 100644 --- a/src/converters/productdata/ProductDataConverter.ts +++ b/src/converters/productdata/ProductDataConverter.ts @@ -23,41 +23,48 @@ export class ProductDataConverter extends Converter { if(!this._configuration.getBoolean('convert.productdata')) return; - const now = Date.now(); - - const spinner = ora('Preparing ProductData').start(); - - const directory = this.getDirectory(); - - try + return new Promise((resolve, reject) => { - await this._productDataDownloader.download(async (content: string) => + const now = Date.now(); + + const spinner = ora('Preparing ProductData').start(); + + const directory = this.getDirectory(); + + try { - spinner.text = 'Parsing FurnitureData'; - - spinner.render(); - - let productDataString = content; - - if(!productDataString.startsWith('{')) + this._productDataDownloader.download(async (content: string) => { - const productData = await this.mapText2JSON(productDataString); + spinner.text = 'Parsing FurnitureData'; - productDataString = JSON.stringify(productData); - } + spinner.render(); - const path = directory.path + '/ProductData.json'; + let productDataString = content; - await writeFile(path, productDataString, 'utf8'); - }); + if(!productDataString.startsWith('{')) + { + const productData = await this.mapText2JSON(productDataString); - spinner.succeed(`ProductData finished in ${ Date.now() - now }ms`); - } + productDataString = JSON.stringify(productData); + } - catch (error) - { - spinner.fail('ProductData failed: ' + error.message); - } + const path = directory.path + '/ProductData.json'; + + await writeFile(path, productDataString, 'utf8'); + + spinner.succeed(`ProductData finished in ${ Date.now() - now }ms`); + + resolve(); + }); + } + + catch (error) + { + spinner.fail('ProductData failed: ' + error.message); + + reject(error); + } + }); } private getDirectory(): File