diff --git a/cookies.data b/cookies.data index 535b736..acc2da7 100644 Binary files a/cookies.data and b/cookies.data differ diff --git a/festival-tts b/festival-tts new file mode 100755 index 0000000..727b07c --- /dev/null +++ b/festival-tts @@ -0,0 +1,20 @@ +#!/bin/bash + +# Check if festival is installed +if ! command -v festival &> /dev/null; then + echo "🎀 Festival not found. Installing now (requires sudo)..." + sudo apt update + sudo apt install -y festival +fi + +# Check if user provided text +if [ $# -eq 0 ]; then + echo "Usage: $0 \"text to speak\"" + exit 1 +fi + +TEXT="$1" + +# Speak text using festival +echo "$TEXT" | festival --tts + diff --git a/firefox/.parentlock b/firefox/.parentlock new file mode 100644 index 0000000..e69de29 diff --git a/firefox/application.ini b/firefox/application.ini new file mode 100644 index 0000000..95ce115 --- /dev/null +++ b/firefox/application.ini @@ -0,0 +1,26 @@ +; This file is not used. If you modify it and want the application to use +; your modifications, move it under the browser/ subdirectory and start with +; the "-app /path/to/browser/application.ini" argument. +[App] +Vendor=Mozilla +Name=Firefox +RemotingName=firefox +Version=141.0.3 +BuildID=20250806102122 +SourceRepository=https://hg.mozilla.org/releases/mozilla-release +SourceStamp=f3e8f920d75245874ec3bb5c0d9b865129fe7f38 +ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384} + +[Gecko] +MinVersion=141.0.3 +MaxVersion=141.0.3 + +[XRE] +EnableProfileMigrator=1 + +[Crash Reporter] +Enabled=1 +ServerURL=https://crash-reports.mozilla.com/submit?id={ec8030f7-c20a-464f-9b0e-13a3a9e97384}&version=141.0.3&buildid=20250806102122 + +[AppUpdate] +URL=https://aus5.mozilla.org/update/6/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%SYSTEM_CAPABILITIES%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml diff --git a/firefox/browser/chrome/icons/default/default128.png b/firefox/browser/chrome/icons/default/default128.png new file mode 100644 index 0000000..b92d78c Binary files /dev/null and b/firefox/browser/chrome/icons/default/default128.png differ diff --git a/firefox/browser/chrome/icons/default/default16.png b/firefox/browser/chrome/icons/default/default16.png new file mode 100644 index 0000000..fe860e4 Binary files /dev/null and b/firefox/browser/chrome/icons/default/default16.png differ diff --git a/firefox/browser/chrome/icons/default/default32.png b/firefox/browser/chrome/icons/default/default32.png new file mode 100644 index 0000000..67042db Binary files /dev/null and b/firefox/browser/chrome/icons/default/default32.png differ diff --git a/firefox/browser/chrome/icons/default/default48.png b/firefox/browser/chrome/icons/default/default48.png new file mode 100644 index 0000000..765ea42 Binary files /dev/null and b/firefox/browser/chrome/icons/default/default48.png differ diff --git a/firefox/browser/chrome/icons/default/default64.png b/firefox/browser/chrome/icons/default/default64.png new file mode 100644 index 0000000..39e7738 Binary files /dev/null and b/firefox/browser/chrome/icons/default/default64.png differ diff --git a/firefox/browser/omni.ja b/firefox/browser/omni.ja new file mode 100644 index 0000000..9ae3b31 Binary files /dev/null and b/firefox/browser/omni.ja differ diff --git a/firefox/crashhelper b/firefox/crashhelper new file mode 100755 index 0000000..a87ee57 Binary files /dev/null and b/firefox/crashhelper differ diff --git a/firefox/crashreporter b/firefox/crashreporter new file mode 100755 index 0000000..1ad94ca Binary files /dev/null and b/firefox/crashreporter differ diff --git a/firefox/defaults/pref/channel-prefs.js b/firefox/defaults/pref/channel-prefs.js new file mode 100644 index 0000000..6b9d3f1 --- /dev/null +++ b/firefox/defaults/pref/channel-prefs.js @@ -0,0 +1,9 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +// +// This pref is in its own file for complex reasons. See the comment in +// browser/app/Makefile.in, bug 756325, and bug 1431342 for details. Do not add +// other prefs to this file. + +pref("app.update.channel", "release"); diff --git a/firefox/dependentlibs.list b/firefox/dependentlibs.list new file mode 100644 index 0000000..66d45de --- /dev/null +++ b/firefox/dependentlibs.list @@ -0,0 +1,14 @@ +libnspr4.so +libplc4.so +libplds4.so +libmozsandbox.so +libgkcodecs.so +liblgpllibs.so +libnssutil3.so +libnss3.so +libsmime3.so +libmozsqlite3.so +libssl3.so +libmozgtk.so +libmozwayland.so +libxul.so diff --git a/firefox/firefox b/firefox/firefox new file mode 100755 index 0000000..1e069b7 Binary files /dev/null and b/firefox/firefox differ diff --git a/firefox/firefox-bin b/firefox/firefox-bin new file mode 100755 index 0000000..f086ffa Binary files /dev/null and b/firefox/firefox-bin differ diff --git a/firefox/firefox-bin.sig b/firefox/firefox-bin.sig new file mode 100644 index 0000000..1de71ff Binary files /dev/null and b/firefox/firefox-bin.sig differ diff --git a/firefox/firefox.sig b/firefox/firefox.sig new file mode 100644 index 0000000..726ec77 Binary files /dev/null and b/firefox/firefox.sig differ diff --git a/firefox/fonts/TwemojiMozilla.ttf b/firefox/fonts/TwemojiMozilla.ttf new file mode 100644 index 0000000..9f45178 Binary files /dev/null and b/firefox/fonts/TwemojiMozilla.ttf differ diff --git a/firefox/glxtest b/firefox/glxtest new file mode 100755 index 0000000..b5248fe Binary files /dev/null and b/firefox/glxtest differ diff --git a/firefox/gmp-clearkey/0.1/libclearkey.so b/firefox/gmp-clearkey/0.1/libclearkey.so new file mode 100755 index 0000000..6122047 Binary files /dev/null and b/firefox/gmp-clearkey/0.1/libclearkey.so differ diff --git a/firefox/gmp-clearkey/0.1/libclearkey.so.sig b/firefox/gmp-clearkey/0.1/libclearkey.so.sig new file mode 100644 index 0000000..f0214e8 Binary files /dev/null and b/firefox/gmp-clearkey/0.1/libclearkey.so.sig differ diff --git a/firefox/gmp-clearkey/0.1/manifest.json b/firefox/gmp-clearkey/0.1/manifest.json new file mode 100644 index 0000000..85710dc --- /dev/null +++ b/firefox/gmp-clearkey/0.1/manifest.json @@ -0,0 +1,9 @@ +{ + "name": "clearkey", + "description": "ClearKey Gecko Media Plugin", + "version": "1", + "x-cdm-module-versions": "4", + "x-cdm-interface-versions": "10", + "x-cdm-host-versions": "10", + "x-cdm-codecs": "" +} \ No newline at end of file diff --git a/firefox/icons/updater.png b/firefox/icons/updater.png new file mode 100644 index 0000000..6f1251b Binary files /dev/null and b/firefox/icons/updater.png differ diff --git a/firefox/libfreeblpriv3.so b/firefox/libfreeblpriv3.so new file mode 100755 index 0000000..f823bd3 Binary files /dev/null and b/firefox/libfreeblpriv3.so differ diff --git a/firefox/libgkcodecs.so b/firefox/libgkcodecs.so new file mode 100755 index 0000000..0504317 Binary files /dev/null and b/firefox/libgkcodecs.so differ diff --git a/firefox/liblgpllibs.so b/firefox/liblgpllibs.so new file mode 100755 index 0000000..0cb3c8b Binary files /dev/null and b/firefox/liblgpllibs.so differ diff --git a/firefox/libmozavcodec.so b/firefox/libmozavcodec.so new file mode 100755 index 0000000..a19f1f0 Binary files /dev/null and b/firefox/libmozavcodec.so differ diff --git a/firefox/libmozavutil.so b/firefox/libmozavutil.so new file mode 100755 index 0000000..a3acc35 Binary files /dev/null and b/firefox/libmozavutil.so differ diff --git a/firefox/libmozgtk.so b/firefox/libmozgtk.so new file mode 100755 index 0000000..bcbdd06 Binary files /dev/null and b/firefox/libmozgtk.so differ diff --git a/firefox/libmozsandbox.so b/firefox/libmozsandbox.so new file mode 100755 index 0000000..0300b00 Binary files /dev/null and b/firefox/libmozsandbox.so differ diff --git a/firefox/libmozsqlite3.so b/firefox/libmozsqlite3.so new file mode 100755 index 0000000..f346db2 Binary files /dev/null and b/firefox/libmozsqlite3.so differ diff --git a/firefox/libmozwayland.so b/firefox/libmozwayland.so new file mode 100755 index 0000000..27c40fc Binary files /dev/null and b/firefox/libmozwayland.so differ diff --git a/firefox/libnspr4.so b/firefox/libnspr4.so new file mode 100755 index 0000000..09f3220 Binary files /dev/null and b/firefox/libnspr4.so differ diff --git a/firefox/libnss3.so b/firefox/libnss3.so new file mode 100755 index 0000000..cc1ff5c Binary files /dev/null and b/firefox/libnss3.so differ diff --git a/firefox/libnssutil3.so b/firefox/libnssutil3.so new file mode 100755 index 0000000..105b4ba Binary files /dev/null and b/firefox/libnssutil3.so differ diff --git a/firefox/libonnxruntime.so b/firefox/libonnxruntime.so new file mode 100755 index 0000000..3d774c1 Binary files /dev/null and b/firefox/libonnxruntime.so differ diff --git a/firefox/libplc4.so b/firefox/libplc4.so new file mode 100755 index 0000000..c82e0ae Binary files /dev/null and b/firefox/libplc4.so differ diff --git a/firefox/libplds4.so b/firefox/libplds4.so new file mode 100755 index 0000000..647c480 Binary files /dev/null and b/firefox/libplds4.so differ diff --git a/firefox/libsmime3.so b/firefox/libsmime3.so new file mode 100755 index 0000000..a1a5dd3 Binary files /dev/null and b/firefox/libsmime3.so differ diff --git a/firefox/libsoftokn3.so b/firefox/libsoftokn3.so new file mode 100755 index 0000000..df47ecb Binary files /dev/null and b/firefox/libsoftokn3.so differ diff --git a/firefox/libssl3.so b/firefox/libssl3.so new file mode 100755 index 0000000..d38d795 Binary files /dev/null and b/firefox/libssl3.so differ diff --git a/firefox/libxul.so b/firefox/libxul.so new file mode 100755 index 0000000..36eb8f3 Binary files /dev/null and b/firefox/libxul.so differ diff --git a/firefox/libxul.so.sig b/firefox/libxul.so.sig new file mode 100644 index 0000000..ca95d0f Binary files /dev/null and b/firefox/libxul.so.sig differ diff --git a/firefox/omni.ja b/firefox/omni.ja new file mode 100644 index 0000000..eda9e88 Binary files /dev/null and b/firefox/omni.ja differ diff --git a/firefox/pingsender b/firefox/pingsender new file mode 100755 index 0000000..3c2075a Binary files /dev/null and b/firefox/pingsender differ diff --git a/firefox/platform.ini b/firefox/platform.ini new file mode 100644 index 0000000..3bb6d13 --- /dev/null +++ b/firefox/platform.ini @@ -0,0 +1,5 @@ +[Build] +BuildID=20250806102122 +Milestone=141.0.3 +SourceRepository=https://hg.mozilla.org/releases/mozilla-release +SourceStamp=f3e8f920d75245874ec3bb5c0d9b865129fe7f38 diff --git a/firefox/precomplete b/firefox/precomplete new file mode 100644 index 0000000..ed8d569 --- /dev/null +++ b/firefox/precomplete @@ -0,0 +1,58 @@ +remove "vaapitest" +remove "updater.ini" +remove "updater" +remove "removed-files" +remove "precomplete" +remove "platform.ini" +remove "pingsender" +remove "omni.ja" +remove "libxul.so.sig" +remove "libxul.so" +remove "libssl3.so" +remove "libsoftokn3.so" +remove "libsmime3.so" +remove "libplds4.so" +remove "libplc4.so" +remove "libonnxruntime.so" +remove "libnssutil3.so" +remove "libnss3.so" +remove "libnspr4.so" +remove "libmozwayland.so" +remove "libmozsqlite3.so" +remove "libmozsandbox.so" +remove "libmozgtk.so" +remove "libmozavutil.so" +remove "libmozavcodec.so" +remove "liblgpllibs.so" +remove "libgkcodecs.so" +remove "libfreeblpriv3.so" +remove "icons/updater.png" +remove "gmp-clearkey/0.1/manifest.json" +remove "gmp-clearkey/0.1/libclearkey.so.sig" +remove "gmp-clearkey/0.1/libclearkey.so" +remove "glxtest" +remove "fonts/TwemojiMozilla.ttf" +remove "firefox.sig" +remove "firefox-bin.sig" +remove "firefox-bin" +remove "firefox" +remove "dependentlibs.list" +remove "crashreporter" +remove "crashhelper" +remove "browser/omni.ja" +remove "browser/chrome/icons/default/default64.png" +remove "browser/chrome/icons/default/default48.png" +remove "browser/chrome/icons/default/default32.png" +remove "browser/chrome/icons/default/default16.png" +remove "browser/chrome/icons/default/default128.png" +remove "application.ini" +rmdir "icons/" +rmdir "gmp-clearkey/0.1/" +rmdir "gmp-clearkey/" +rmdir "fonts/" +rmdir "defaults/pref/" +rmdir "defaults/" +rmdir "browser/chrome/icons/default/" +rmdir "browser/chrome/icons/" +rmdir "browser/chrome/" +rmdir "browser/" diff --git a/firefox/removed-files b/firefox/removed-files new file mode 100644 index 0000000..e69de29 diff --git a/firefox/update-settings.ini b/firefox/update-settings.ini new file mode 100644 index 0000000..a83179b --- /dev/null +++ b/firefox/update-settings.ini @@ -0,0 +1,5 @@ +; If you modify this file updates may fail. +; Do not modify this file. + +[Settings] +ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release diff --git a/firefox/updater b/firefox/updater new file mode 100755 index 0000000..d97ff5c Binary files /dev/null and b/firefox/updater differ diff --git a/firefox/updater.ini b/firefox/updater.ini new file mode 100644 index 0000000..84d1b15 --- /dev/null +++ b/firefox/updater.ini @@ -0,0 +1,9 @@ +; This Source Code Form is subject to the terms of the Mozilla Public +; License, v. 2.0. If a copy of the MPL was not distributed with this +; file, You can obtain one at http://mozilla.org/MPL/2.0/. + +; This file is in the UTF-8 encoding +[Strings] +Title=Firefox Update +Info=Firefox is installing your updates and will start in a few moments… +MozillaMaintenanceDescription=The Mozilla Maintenance Service ensures that you have the latest and most secure version of Mozilla Firefox on your computer. Keeping Firefox up to date is very important for your online security, and Mozilla strongly recommends that you keep this service enabled. diff --git a/firefox/vaapitest b/firefox/vaapitest new file mode 100755 index 0000000..9f5f684 Binary files /dev/null and b/firefox/vaapitest differ diff --git a/pom.xml b/pom.xml index fb2495b..c33746a 100644 --- a/pom.xml +++ b/pom.xml @@ -18,17 +18,17 @@ test - + - io.cucumber - cucumber-java - 7.15.0 + io.cucumber + cucumber-java + 7.15.0 - io.cucumber - cucumber-junit - 7.15.0 - test + io.cucumber + cucumber-junit + 7.15.0 + test @@ -70,6 +70,16 @@ 17 + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + com.ghost.temple.BrowserLauncher + + diff --git a/solo-level b/solo-level new file mode 100755 index 0000000..aaf9b47 --- /dev/null +++ b/solo-level @@ -0,0 +1,4 @@ +#!/bin/bash + +/usr/bin/mvn exec:java + diff --git a/src/main/java/com/ghost/temple/BrowserLauncher.java b/src/main/java/com/ghost/temple/BrowserLauncher.java new file mode 100644 index 0000000..4f2048e --- /dev/null +++ b/src/main/java/com/ghost/temple/BrowserLauncher.java @@ -0,0 +1,113 @@ +package com.ghost.temple; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.firefox.FirefoxBinary; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.firefox.FirefoxProfile; + +import java.io.File; +import java.util.Scanner; + +public class BrowserLauncher { + + private static WebDriver driver; + + private static final String APP_URL = "http://192.168.31.73:3000/"; + + public static void main(String[] args) { + // IMPORTANT: Remove WebDriverManager setup here if you already manage drivers elsewhere + // WebDriverManager.firefoxdriver().setup(); // uncomment if you want dynamic driver management + + String projectDir = System.getProperty("user.dir"); + + // Paths β€” customize if your automation project has different structure + String firefoxBinaryPath = projectDir + "/firefox/firefox"; + String profilePath = projectDir + "/.mozilla/firefox/b4xl9fej.default-release"; + + File firefoxBinary = new File(firefoxBinaryPath); + if (!firefoxBinary.exists() || !firefoxBinary.canExecute()) { + System.err.println("❌ Firefox binary missing or not executable at: " + firefoxBinaryPath); + System.exit(1); + } + + File profileDir = new File(profilePath); + if (!profileDir.exists() || !profileDir.isDirectory()) { + System.err.println("❌ Firefox profile directory missing or invalid at: " + profilePath); + System.exit(1); + } + + FirefoxProfile profile = new FirefoxProfile(profileDir); + FirefoxOptions options = new FirefoxOptions(); + options.setBinary(new FirefoxBinary(firefoxBinary)); + options.setProfile(profile); + + driver = new FirefoxDriver(options); + driver.manage().window().maximize(); + + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + System.out.println("\n⚠ JVM Shutdown detected. Saving data before exit..."); + saveAll(); + })); + + try { + StorageManager.loadStorage(driver, APP_URL); + CookieManager.loadCookies(driver, APP_URL); + + System.out.println("πŸ”₯ Browser launched with persisted cookies and storage!"); + + Scanner scanner = new Scanner(System.in); + String input = ""; + + while (!input.equalsIgnoreCase("save")) { + speakPrompt("Please type save and press Enter to save your work before closing the browser."); + System.out.print("> "); + input = scanner.nextLine().trim(); + + if (!input.equalsIgnoreCase("save")) { + System.out.println("❌ You must save before quitting. Try again."); + } + } + + Thread.sleep(500); + + saveAll(); + + System.out.println("πŸ’Ύ Storage and cookies saved. Closing browser now..."); + + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (driver != null) { + driver.quit(); + driver = null; + } + } + } + + private static void speakPrompt(String message) { + System.out.println(message); + try { + ProcessBuilder pb = new ProcessBuilder("./festival-tts", message); + pb.redirectErrorStream(true); + Process process = pb.start(); + + try (var reader = new java.io.BufferedReader(new java.io.InputStreamReader(process.getInputStream()))) { + while (reader.readLine() != null) {} + } + + process.waitFor(); + + } catch (Exception e) { + System.err.println("❌ Failed to run festival-tts:"); + e.printStackTrace(); + } + } + + private static void saveAll() { + if (driver != null) { + CookieManager.saveCookies(driver); + StorageManager.saveStorage(driver); + } + } +} diff --git a/src/main/java/com/ghost/temple/driver/DriverManager.java b/src/main/java/com/ghost/temple/driver/DriverManager.java index 04e14dc..562c358 100644 --- a/src/main/java/com/ghost/temple/driver/DriverManager.java +++ b/src/main/java/com/ghost/temple/driver/DriverManager.java @@ -4,6 +4,7 @@ import io.github.bonigarcia.wdm.WebDriverManager; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.firefox.FirefoxProfile; import java.io.File; public class DriverManager { @@ -13,17 +14,16 @@ public class DriverManager { if (driver == null) { WebDriverManager.firefoxdriver().setup(); - // 🌟 Point to your existing Firefox profile - String userProfile = System.getProperty("user.home") + "/.mozilla/firefox/"; - File profilesDir = new File(userProfile); - File[] profiles = profilesDir.listFiles((dir, name) -> name.endsWith(".default-release")); + // Path to Firefox binary + String firefoxBinaryPath = "/home/arul/solo-level-app-automation/firefox/firefox"; - if (profiles == null || profiles.length == 0) { - throw new RuntimeException("No Firefox profile found 😭"); - } + // Path to specific profile + String profilePath = "/home/arul/solo-level-app-automation/.mozilla/firefox/b4xl9fej.default-release"; + FirefoxProfile profile = new FirefoxProfile(new File(profilePath)); FirefoxOptions options = new FirefoxOptions(); - options.setProfile(new org.openqa.selenium.firefox.FirefoxProfile(profiles[0])); + options.setBinary(firefoxBinaryPath); + options.setProfile(profile); driver = new FirefoxDriver(options); driver.manage().window().maximize(); diff --git a/storage.json b/storage.json index 2d2563d..d63975a 100644 --- a/storage.json +++ b/storage.json @@ -1 +1 @@ -{"localStorage":{"soloLevelUpUserStats":"{\"name\":\"Arul\",\"level\":1,\"exp\":30,\"expToNextLevel\":100,\"job\":null,\"title\":null,\"hp\":100,\"maxHp\":100,\"mp\":10,\"maxMp\":10,\"fatigue\":0,\"gold\":0,\"stats\":{\"str\":10,\"agi\":10,\"per\":10,\"int\":10,\"vit\":10},\"statPoints\":1,\"equipment\":[],\"quests\":[{\"title\":\"Offgrid Hermit - Disconnect from Internet\",\"description\":\"ghostTemple system forces user by disabling internet by default in the computer to go offgrid. Equiped with self designed /etc/host based porn blocker. It still provides user option to enable the internet at boot. asking user to enter password. to make user realize that their decision is conscious.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"2c9d2590-5d0d-47bd-adcd-fcf1cc55f712\",\"active\":false,\"completed\":true,\"progress\":100,\"isCustom\":true,\"createdAt\":1754679761906,\"completedAt\":1754680173874},{\"title\":\"Offgrid Hermit - Disconnect from Internet\",\"description\":\"ghostTemple system forces user by disabling internet by default in the computer to go offgrid. Equiped with self designed /etc/host based porn blocker. It still provides user option to enable the internet at boot. asking user to enter password. to make user realize that their decision is conscious.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"e41fbba2-6fc5-4a89-87ef-68c00b3b3be2\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754682145517},{\"title\":\"The Refiner - Appearance Leveling\",\"description\":\"Focusing on Skin health, Hair health, preventing Hair loss, Preventing Fat gain. Focused on Weight Loss and over all Hygiene the way we look. To Attract people and be charismatic.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"8f2e8569-e24f-444f-952a-041b760c0294\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754682154296},{\"title\":\"King of Deception - Leveling up Art of Attraction\",\"description\":\"Focused on building a solid character. that is strong.. Talented, Attract people and seductive at same time. Manipulative in good way. Positive Manipulation by doing a good job on something we do and gaining trust among other people.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"d99e97aa-2f8e-49fd-b95a-48151b968e2f\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754682163973},{\"title\":\"The Architect of Himself - Leveling up strength both physically and mentally\",\"description\":\"1. Exercise everyday Morning 1 hr (Cardio + strength) 2. Gain Knowledge on New concept or Technology, Read books. 3. Train Martial arts - Armed or Unarmed combat styles. Focus on Leveling up your Intellect, your Strength, Your Martial arts skill and your Aesthetics eventually.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"af7940da-92d7-4ae8-8c79-54287f94dc6a\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754682175060},{\"title\":\"The Phoenix - Rise from Ashes\",\"description\":\"Keep Moving Forward, No matter what. No matter how much pain you face. you can do take breaks to learn from failures. But never quit . Never Settle. Accept your Pain. see it as a part of life. both physical and Mental Pain. If you can cure it you can cure them. but if you can't never use them as an excuse to be Lower. Always improve from pain and be strong if possible. the Key idea is not to stop at any cost and keep moving forward. Not to embrace pain or romanticize it.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"d029572f-2731-4f4c-b02b-e132ca165d74\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754682188512}],\"completedQuests\":[\"2c9d2590-5d0d-47bd-adcd-fcf1cc55f712\"],\"inventory\":[{\"id\":\"item-health-potion\",\"name\":\"Health Potion\",\"type\":\"Consumable\",\"rarity\":\"Common\",\"description\":\"Restores 100 HP when consumed.\",\"quantity\":3},{\"id\":\"item-mana-potion\",\"name\":\"Mana Potion\",\"type\":\"Consumable\",\"rarity\":\"Common\",\"description\":\"Restores 50 MP when consumed.\",\"quantity\":2}]}"},"sessionStorage":{}} \ No newline at end of file +{"localStorage":{"soloLevelUpUserStats":"{\"name\":\"Arul\",\"level\":1,\"exp\":30,\"expToNextLevel\":100,\"job\":null,\"title\":null,\"hp\":100,\"maxHp\":100,\"mp\":10,\"maxMp\":10,\"fatigue\":0,\"gold\":0,\"stats\":{\"str\":10,\"agi\":10,\"per\":10,\"int\":10,\"vit\":10},\"statPoints\":1,\"equipment\":[],\"quests\":[{\"title\":\"Offgrid Hermit - Disconnect from Internet\",\"description\":\"ghostTemple system forces user by disabling internet by default in the computer to go offgrid. Equiped with self designed /etc/host based porn blocker. It still provides user option to enable the internet at boot. asking user to enter password. to make user realize that their decision is conscious.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"1eab5d73-3269-4775-b2a8-8af98d8add44\",\"active\":false,\"completed\":true,\"progress\":100,\"isCustom\":true,\"createdAt\":1754693126749,\"completedAt\":1754693246659},{\"title\":\"The Refiner - Appearance Leveling\",\"description\":\"Focusing on Skin health, Hair health, preventing Hair loss, Preventing Fat gain. Focused on Weight Loss and over all Hygiene the way we look. To Attract people and be charismatic.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"72c6bfa2-419e-4b89-b52f-e28ecad313bb\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754693134029},{\"title\":\"King of Deception - Leveling up Art of Attraction\",\"description\":\"Focused on building a solid character. that is strong.. Talented, Attract people and seductive at same time. Manipulative in good way. Positive Manipulation by doing a good job on something we do and gaining trust among other people.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"9255e741-318f-40aa-8545-f4d778b63aec\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754693142005},{\"title\":\"The Architect of Himself - Leveling up strength both physically and mentally\",\"description\":\"1. Exercise everyday Morning 1 hr (Cardio + strength) 2. Gain Knowledge on New concept or Technology, Read books. 3. Train Martial arts - Armed or Unarmed combat styles. Focus on Leveling up your Intellect, your Strength, Your Martial arts skill and your Aesthetics eventually.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"022fec2c-06e9-4e50-afd6-8f8008989966\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754693150990},{\"title\":\"The Phoenix - Rise from Ashes\",\"description\":\"Keep Moving Forward, No matter what. No matter how much pain you face. you can do take breaks to learn from failures. But never quit . Never Settle. Accept your Pain. see it as a part of life. both physical and Mental Pain. If you can cure it you can cure them. but if you can't never use them as an excuse to be Lower. Always improve from pain and be strong if possible. the Key idea is not to stop at any cost and keep moving forward. Not to embrace pain or romanticize it.\",\"reward\":\"Experience only\",\"difficulty\":\"S\",\"priority\":\"High\",\"expiry\":\"Daily\",\"expReward\":30,\"statPointsReward\":1,\"goldReward\":0,\"statRewards\":{\"str\":0,\"agi\":0,\"per\":0,\"int\":0,\"vit\":0},\"itemRewards\":[],\"id\":\"5dc3636e-a00e-4015-89f5-18d22b4d85f6\",\"active\":true,\"completed\":false,\"progress\":0,\"isCustom\":true,\"createdAt\":1754693161795}],\"completedQuests\":[\"1eab5d73-3269-4775-b2a8-8af98d8add44\"],\"inventory\":[{\"id\":\"item-health-potion\",\"name\":\"Health Potion\",\"type\":\"Consumable\",\"rarity\":\"Common\",\"description\":\"Restores 100 HP when consumed.\",\"quantity\":3},{\"id\":\"item-mana-potion\",\"name\":\"Mana Potion\",\"type\":\"Consumable\",\"rarity\":\"Common\",\"description\":\"Restores 50 MP when consumed.\",\"quantity\":2}]}"},"sessionStorage":{}} \ No newline at end of file diff --git a/target/classes/com/ghost/temple/BrowserLauncher.class b/target/classes/com/ghost/temple/BrowserLauncher.class new file mode 100644 index 0000000..5fc1b27 Binary files /dev/null and b/target/classes/com/ghost/temple/BrowserLauncher.class differ diff --git a/target/classes/com/ghost/temple/CookieManager.class b/target/classes/com/ghost/temple/CookieManager.class index 0afafdb..6e9711e 100644 Binary files a/target/classes/com/ghost/temple/CookieManager.class and b/target/classes/com/ghost/temple/CookieManager.class differ diff --git a/target/classes/com/ghost/temple/ExcelUtils.class b/target/classes/com/ghost/temple/ExcelUtils.class index be9eabb..e0042e1 100644 Binary files a/target/classes/com/ghost/temple/ExcelUtils.class and b/target/classes/com/ghost/temple/ExcelUtils.class differ diff --git a/target/classes/com/ghost/temple/ReusableFunctions.class b/target/classes/com/ghost/temple/ReusableFunctions.class index eab63fb..622be43 100644 Binary files a/target/classes/com/ghost/temple/ReusableFunctions.class and b/target/classes/com/ghost/temple/ReusableFunctions.class differ diff --git a/target/classes/com/ghost/temple/StorageManager.class b/target/classes/com/ghost/temple/StorageManager.class index 1cdcebc..0ade916 100644 Binary files a/target/classes/com/ghost/temple/StorageManager.class and b/target/classes/com/ghost/temple/StorageManager.class differ diff --git a/target/classes/com/ghost/temple/driver/DriverManager.class b/target/classes/com/ghost/temple/driver/DriverManager.class index f718f0e..0b090e0 100644 Binary files a/target/classes/com/ghost/temple/driver/DriverManager.class and b/target/classes/com/ghost/temple/driver/DriverManager.class differ diff --git a/target/classes/com/ghost/temple/hooks/Hooks.class b/target/classes/com/ghost/temple/hooks/Hooks.class index 1e44d60..4381f9c 100644 Binary files a/target/classes/com/ghost/temple/hooks/Hooks.class and b/target/classes/com/ghost/temple/hooks/Hooks.class differ diff --git a/target/cucumber-report.html b/target/cucumber-report.html index f642452..2f85351 100644 --- a/target/cucumber-report.html +++ b/target/cucumber-report.html @@ -40,7 +40,7 @@ body{padding:0;margin:0}.html-formatter{max-width:1600px;min-height:100vh;margin