diff options
Diffstat (limited to 'src/main/manaplus/manaApp/windows.ts')
-rw-r--r-- | src/main/manaplus/manaApp/windows.ts | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/manaplus/manaApp/windows.ts b/src/main/manaplus/manaApp/windows.ts new file mode 100644 index 0000000..0728e32 --- /dev/null +++ b/src/main/manaplus/manaApp/windows.ts @@ -0,0 +1,58 @@ +import { ManaPlusApp } from './manaApp.interface'; +import { app } from 'electron'; +//import * as path from 'path'; +import * as fs from 'fs'; +import { Status } from '../../status'; +import {download, Progress as ProgressType} from '../../util/downloader'; + +export class ManaPlusAppWindows implements ManaPlusApp { + private path:string; + + constructor(){ + const ManaPath = app.getPath('userData')+"\\manaplus"; + fs.existsSync(ManaPath) || fs.mkdirSync(ManaPath); + fs.existsSync(app.getPath('userData')+"\\temp") || fs.mkdirSync(app.getPath('userData')+"\\temp"); + this.path = ManaPath; + } + run(parameters: string[]): void { + + } + getGameDir(): string { + return this.path; + } + getVersion(): Promise<string> { + throw new Error("Not Installed."); + } + isInstalled(): boolean { + return fs.existsSync(this.path+"\\Mana\\manaplus.exe"); + } + + async update() { + // Get Update URL + Status.setProgress(500); + Status.setActivity("Fetching Download URL"); + //// TODO: Fetch update url + Status.setProgress(-1); + const downloadURL = 'https://[URL]/Mana.zip'; + try { + await download(downloadURL, `${app.getPath('userData')}\\temp\\update.zip`, (state:ProgressType) => { + Status.setProgress(Math.floor(state.percent*100)); + Status.setActivity(`Downloading ManaPlus... ${state.speed}`); + console.log(state); + }); + } catch (e){ + console.log(e); + Status.showError("ManaPlus download failed", e.message, `DL Failed: ${e.message}`); + throw new Error("Download Error"); + } + Status.setProgress(100); + Status.setActivity(`ManaPlus download completed`); + Status.showError("Unziping isn't implemented yet", "WIP", "not further implemented") + + + return 0; + } + updateAvailible(): Promise<{ isNewVersion: boolean; newestVersion: string; }> { + throw new Error("Method not implemented."); + } +} |