summaryrefslogtreecommitdiff
path: root/src/main/manaplus/manaApp/windows.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/manaplus/manaApp/windows.ts')
-rw-r--r--src/main/manaplus/manaApp/windows.ts58
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.");
+ }
+}