From e347492151606e6e2aa59663b4bc0817d5f6cb2b Mon Sep 17 00:00:00 2001 From: Belim Date: Wed, 14 Feb 2024 09:08:52 +0100 Subject: [PATCH] Push new AI frontend --- src/BloatyNosy/app/UI.css | 427 +++++++++++++++++++++++++++ src/BloatyNosy/app/appxData.json | 82 +++++ src/BloatyNosy/app/backend.js | 285 ++++++++++++++++++ src/BloatyNosy/app/frontend.html | 358 ++++++++++++++++++++++ src/BloatyNosy/app/staticAIData.json | 185 ++++++++++++ 5 files changed, 1337 insertions(+) create mode 100644 src/BloatyNosy/app/UI.css create mode 100644 src/BloatyNosy/app/appxData.json create mode 100644 src/BloatyNosy/app/backend.js create mode 100644 src/BloatyNosy/app/frontend.html create mode 100644 src/BloatyNosy/app/staticAIData.json diff --git a/src/BloatyNosy/app/UI.css b/src/BloatyNosy/app/UI.css new file mode 100644 index 0000000..3bee029 --- /dev/null +++ b/src/BloatyNosy/app/UI.css @@ -0,0 +1,427 @@ +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(to right, rgba(242, 242, 242, 0.7), rgba(242, 242, 242, 0.7));/* Light grey to very light grey gradient with transparency */ + color: #333; + padding: 20px; + text-align: left; + margin: 30px 0 60px; /* Top 260px, right 0, bottom 60px, left 0 */ + zoom: 0.9; /* WebView2 zoom level */ +} + +.emoji-container { + position: fixed; + top: 0px; + left: 120px; /* Fixed left position */ + transform: translateX(-50%); + text-align: center; + z-index: 998; +} + +.emoji-container a { + text-decoration: none; +} + +.emoji-container h1 { + font-family: Arial, sans-serif; + color: black; /* Solid black color */ + font-size: 12px; /* Increased font size */ + margin: 0; + font-weight: bold; + display: inline-block; + background: linear-gradient(to right, #b3d8ff, #e6ccff); /* Gradient background */ + padding: 5px 10px; /* Add padding for border effect */ + border: 2px solid #9933cc; /* Purple border */ + border-radius: 5px; /* Rounded corners */ + z-index: 998; +} + +.emoji-container .emoji { + font-size: 35px; + display: inline-block; + cursor: pointer; + margin-top: -7px; /* Adjust margin to align vertically */ + margin-right: 0px; /* Add some space between emoji and h1 */ + animation: changeColor 15s infinite linear; + -webkit-background-clip: text; + color: transparent; /* Hide original text color */ + vertical-align: middle; /* Align vertically */ +} + + +@keyframes changeColor { + 0%, 100% { + background-size: 0% 100%; + background-image: linear-gradient(45deg, rgba(255, 255, 0, 0.5), rgba(0, 0, 255, 0.5)); + } + + 25% { + background-size: 100% 0%; + background-image: linear-gradient(45deg, rgba(0, 0, 255, 0.5), rgba(255, 0, 255, 0.5)); + } + + 50% { + background-size: 0% 100%; + background-image: linear-gradient(45deg, rgba(255, 0, 255, 0.5), rgba(128, 0, 128, 0.5)); + } + + 75% { + background-size: 100% 0%; + background-image: linear-gradient(45deg, rgba(128, 0, 128, 0.5), rgba(255, 105, 180, 0.5)); + } +} + +/* UI: Assisted AI Buttons (and static update-button) */ +#buttons-container button, +#update-button { + font-family: "Segoe UI", sans-serif; + font-size: 15px; + text-align: left; + display: inline-block; + padding: 10px 20px; + border: 2px solid #e0d0dd; + margin-bottom: 8px; + border-radius: 8px; + color: #000; + background: #fff; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + cursor: pointer; +} + +#buttons-container button:hover, +#update-button:hover { + border: 3px solid #ff4081; /* Pink border on hover */ +} + +/* UI: LogContainer */ +#logContainer { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + padding: 12px 24px; + background: rgba(255, 192, 203, 0.4); /* Pink background with transparency */ + color: #000; + border-top: 3px solid #8a2be2; /* Purple top border color */ + text-align: left; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 13px; + z-index: 1000; + animation: pulse-border 5s infinite; + backdrop-filter: blur(8px); /* Add blur effect */ + box-shadow: 0px 0px 10px rgba(138, 43, 226, 0.5); /* Purple shadow effect */ + border-radius: 12px; /* Rounded corners */ +} + +@keyframes pulse-border { + 0% { + border-top-color: #8a2be2; + } + 50% { + border-top-color: #ff69b4; /* Change to pink halfway */ + } + 100% { + border-top-color: #8a2be2; + } +} + + +/* Microsoft Copilot button replica with some improvements */ +#copilotButton { + top: 10px; + margin-left: 10px; + margin-top: 8px; + width: 140px; + padding: 10px 20px; + border: none; + border-radius: 8px; + background: linear-gradient(45deg, #8745FF, #B06AB3); /* Copilot gradient colors */ + color: white; /* Set the text color to white */ + font-size: 14px; + font-weight: bold; + cursor: pointer; + transition: background-color 0.3s ease, box-shadow 0.3s ease; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + z-index: 1000; + + } + +#copilotButton:hover { + background: linear-gradient(45deg, #B06AB3, #8745FF); /* Gradient colors swap on hover */ + box-shadow: 0 2px 8px rgba(255, 255, 255, 0.6); /* Shadow becomes lighter on hover */ +} + + +/* Refresh button */ +#refreshButton { + position: absolute; + top: 10px; + right: 10px; + padding: 5px 10px; + background-color: transparent; + border: none; + font-size: 16px; + cursor: pointer; +} + +#refreshButton:hover { + background-color: #f0f0f0; /* Even lighter grey on hover */ + color: #000000; + border-color: #757575; /* Darker grey border on hover */ + border-radius: 8px; /* Rounded corners on hover */ +} + +/* UI: Chatbox Container */ +.chat-container { + display: flex; + align-items: center; +} + +.chatbox-container { + /*display: flex; Use flexbox */ + align-items: center; + position: relative; + flex: 1; + margin-right: -20px; +} + + /* Additional style for chatbox container */ + .chatbox-container input { + backdrop-filter: blur(10px); + background-color: rgba(255, 255, 255, 0.3); + border-radius: 8px; + padding: 15px; + margin-top: 20px; + box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1); + color: #000; + } + +/* Chatbox: input styling */ +#chatbox { + background-color: rgba(255, 255, 255, 0.3); + width: 70%; + height: 20px; + padding: 10px; + font-size: 16px; + border: 0px solid transparent; /* Set border to transparent */ + border-radius: 12px; + outline: none; + border-bottom: 3px solid #7a336c; /* Bottom border color */ + transition: border-bottom 0.3s ease; /* Add transition property */ + margin-bottom: 10px; +} + +#chatbox:focus { + border-bottom: 3px solid #7a336c; /* Change bottom border on focus */ + animation: border-flash 3s infinite; /* Add border-flash animation */ +} + +@keyframes border-flash { + 0%, 100% { + border-bottom: 3px solid #b19cd9; /* Light Purple */ + } + 25% { + border-bottom: 3px solid #ffb6c1; /* Light Pink */ + } + 50% { + border-bottom: 3px solid #98fb98; /* Pale Green */ + } + 75% { + border-bottom: 3px solid #add8e6; /* Light Blue */ + } +} + +.chatbox-items div { + display: inline-block; + padding: 10px; + font-size: 14px; + cursor: pointer; + background-color: #fff; + border: 2px solid #7a336c; /* Rounded Microsoft Copilot magenta border for each result */ + border-radius: 8px; /* Rounded corners */ + margin-bottom: 10px; +} + +.chatbox-items div:hover { + background-color: #e9e9e9; + color: magenta; +} + +/* Chatbox active item styling */ +.chatbox-active { + background-color: #007BFF; + color: #fff; +} + +/* Header styling */ +#homeHeader, +#appsHeader, +#appxHeader { + background: linear-gradient(to right, rgba(206, 83, 234, 0.4), rgba(179, 131, 241, 0.1)); /* Semi-transparent gradient from pink to light purple */ + padding: 20px; + border-radius: 12px; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); + margin: 10px 0; + z-index: 998; /* Lower z-index than logContainer */ +} + +#systemHeader { + /*background: rgba(255, 255, 255, 0.2); /* Transparent background */ + background: rgba(206, 231, 201, 0.5); /* Very light green with transparency */ + backdrop-filter: blur(10px); /* Apply blur effect */ + padding: 20px; + border-radius: 12px; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); + margin: 10px 0; + z-index: 998; /* Lower z-index than logContainer */ +} + + +#systemContainer { + background: rgba(255, 255, 255, 0.2); + backdrop-filter: blur(10px); /* Apply blur effect */ + padding: 20px; + border-radius: 12px; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); + margin: 10px 0; + z-index: 998; /* Lower z-index than logContainer */ +} + +#glassy-box { + position: relative; /* Ensure relative positioning for e.g. refreshButton and absolute positioning of children */ +} + +.header-caption { + font-size: 15px; + font-weight: bold; + margin-bottom: 2px; +} +.glassy-box { + position: relative; /* Ensure relative positioning for absolute positioning of children */ +} + +/* UI: Glassy-Box effects*/ +.glassy-box button { + font-family: "Segoe UI"; + font-size: 14px; + display: inline-block; + padding: 10px 20px; + border: 1px solid #e0d0dd; /* Transparent border */ + margin-bottom: 5px; + border-radius: 10px; + color: black; + background: #fefdfe; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); /* Shadow effect */ + position: relative; /* Needed for the pseudo-element */ + cursor: pointer; + } + + .glassy-box button:hover { + border: 3px solid #ff008e; /* Pink border on hover */ + } + +/* UI: Header styling for Toggle Switches */ +.checkbox-label { + margin-left: 10px; + display: inline-block; + color: #333; + font-size: 14px; + font-weight: bold; +} + +/* UI: Toggle Switches */ +.toggle-switch { + position: relative; + display: inline-block; + width: 50px; + height: 24px; + margin-right: 20px; +} + + .toggle-switch input { + display: none; + } + +.toggle-switch-label { + display: block; + position: absolute; + cursor: pointer; + width: 50px; + height: 24px; + background-color: #d6d6d6; /* Light gray background */ + border-radius: 12px; + transition: background-color 0.3s; +} + + .toggle-switch-label:before { + content: ''; + position: absolute; + left: 2px; + top: 2px; + width: 20px; + height: 20px; + background-color: #fff; /* White circle */ + border-radius: 50%; + transition: transform 0.3s, background-color 0.3s; + } + +.toggle-switch input:checked + .toggle-switch-label { + background-color: #4a90e2; /* Dodger Blue when checked */ +} + + .toggle-switch input:checked + .toggle-switch-label:before { + transform: translateX(26px); + background-color: #fff; /* White circle when checked */ + } + + +/* SECTION: Install missing apps */ +#appList { + display: flex; + flex-wrap: wrap; + gap: 20px; +} + +.app-item { + background: rgba(255, 255, 255, 0.9); /* White */ + border-radius: 12px; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); + padding: 20px; + width: 100%; + box-sizing: border-box; + transition: transform 0.3s; + flex: 0 0 auto; +} + + .app-item:hover { + transform: scale(1.05); + box-shadow: 0 0 30px rgba(0, 0, 0, 0.2); /* Slightly larger shadow on hover */ + } + +/* SECTION: Crapware styles */ +.appx-container { + padding: 1px; + width: 100%; + margin: 0 auto; +} + +.appx-item { + background-color: #f5f5f5; /* Light background color */ + border: 1px solid #ddd; /* Border color */ + border-radius: 8px; /* Rounded corners */ + padding: 10px; + margin-bottom: 12px; + transition: background-color 0.3s ease; /* Smooth transition on hover */ +} + + .appx-item:hover { + background-color: #e0e0e0; /* Darker background color on hover */ + } + +.appx-details { + margin-bottom: 8px; +} + +/* Ensure each appx-item is on a separate line */ +.appx-item { + width: 100%; +} \ No newline at end of file diff --git a/src/BloatyNosy/app/appxData.json b/src/BloatyNosy/app/appxData.json new file mode 100644 index 0000000..1026c24 --- /dev/null +++ b/src/BloatyNosy/app/appxData.json @@ -0,0 +1,82 @@ +[ + { + "name": "BingNews", + "description": "News app from Microsoft", + "removeCommand": "Get-AppxPackage -AllUsers *BingNews* | Remove-AppxPackage" + }, + { + "name": "ZuneVideo", + "description": "Video app from Microsoft", + "removeCommand": "Get-AppxPackage -AllUsers *ZuneVideo* | Remove-AppxPackage" + }, + { + "name": "MicrosoftOfficeHub", + "description": "This is preinstalled Microsoft crapware.", + "removeCommand": "Get-AppxPackage -AllUsers *MicrosoftOfficeHub* | Remove-AppxPackage" + }, + { + "name": "GetHelp", + "description": "The Get Help app empowers customers to self-help with troubleshooters, instant answers, Microsoft support articles, and more, before contacting assisted support.", + "removeCommand": "Get-AppxPackage -AllUsers *GetHelp* | Remove-AppxPackage" + }, + { + "name": "WhatsApp", + "description": "WhatsApp has a UWP app for Windows 11, and while it’s not a web wrapper, it doesn’t have as many features as its mobile counterpart. If you dont use it, remove it.", + "removeCommand": "Get-AppxPackage -AllUsers *WhatsApp* | Remove-AppxPackage" + }, + { + "name": "Netflix", + "description": "Netflix is a popular streaming service that grants users the key to a vast library of TV shows, movies, and documentaries. This is the official Windows 11 app.", + "removeCommand": "Get-AppxPackage -AllUsers *Netflix* | Remove-AppxPackage" + }, + { + "name": "Instagram", + "description": "Instagram app on Microsoft Store is basically a PWA.", + "removeCommand": "Get-AppxPackage -AllUsers *Instagram* | Remove-AppxPackage" + }, + { + "name": "OneDrive", + "description": "Official Microsoft crapware again.", + "removeCommand": "Get-AppxPackage -AllUsers *OneDriveSync* | Remove-AppxPackage" + }, + { + "name": "Microsoft MixedReality.Portal", + "description": "Official Microsoft crapware.", + "removeCommand": "Get-AppxPackage -AllUsers *Microsoft.MixedReality* | Remove-AppxPackage" + }, + { + "name": "Microsoft Print3D", + "description": "Official Microsoft crapware again.", + "removeCommand": "Get-AppxPackage -AllUsers *Microsoft.Print3D* | Remove-AppxPackage" + }, + { + "name": "Microsoft People", + "description": "Official Microsoft crapware again.", + "removeCommand": "Get-AppxPackage -AllUsers *Microsoft.People* | Remove-AppxPackage" + }, + { + "name": "BytedancePte.Ltd.TikTok", + "description": "The app is a PWA, which is available not only for Windows 11, but also for Windows 10.", + "removeCommand": "Get-AppxPackage -AllUsers *TikTok* | Remove-AppxPackage" + }, + { + "name": "Clipchamp.Clipchamp", + "description": "Clipchamp is a web-based application. It's also not entirely free!", + "removeCommand": "Get-AppxPackage -AllUsers *Clipchamp* | Remove-AppxPackage" + }, + { + "name": "Microsoft.SkypeApp", + "description": "The official Microsoft Skype app", + "removeCommand": "Get-AppxPackage -AllUsers *Skype* | Remove-AppxPackage" + }, + { + "name": "Spotify", + "description": "Spotify’s Desktop app is basically Chromium instance.", + "removeCommand": "Get-AppxPackage -AllUsers *Spotify* | Remove-AppxPackage" + }, + { + "name": "9E2F88E3.TWITTER", + "description": "Nothing more than a frontend for the X website. You really don't need it.", + "removeCommand": "Get-AppxPackage -AllUsers *Twitter* | Remove-AppxPackage" + } +] \ No newline at end of file diff --git a/src/BloatyNosy/app/backend.js b/src/BloatyNosy/app/backend.js new file mode 100644 index 0000000..b771115 --- /dev/null +++ b/src/BloatyNosy/app/backend.js @@ -0,0 +1,285 @@ +// Refresh Button +function refreshWebView() { + console.log("Refreshing WebView..."); + window.chrome.webview.postMessage('refreshWebView2'); +} + +// Microsoft Copilot Button +function openCopilot() { + window.chrome.webview.postMessage('openCopilot'); +} + +// Assisted buttons +function buttonClicked(index) { + window.chrome.webview.postMessage("showAnswerForButtons:" + index.toString()); +} + +// Handle scrolling to bottom +function scrollToBottom() { + var logContainer = document.getElementById('logContainer'); + logContainer.scrollTop = logContainer.scrollHeight; +} + +// Handle log messages to logContainer +window.addEventListener('DOMContentLoaded', () => { + window.chrome.webview.addEventListener('message', (event) => { + const logContainer = document.getElementById('logContainer'); + logContainer.innerHTML += event.data; + }); +}); + +// Hide logContainer when a click occurs +document.addEventListener("click", function (event) { + var logContainer = document.getElementById("logContainer"); + + // Check if clicked element is outside logContainer + if (!logContainer.contains(event.target)) { + // Hide logContainer + logContainer.style.display = "none"; + } +}); + +/* +Assisted Chatbox +*/ +function chatbox(input, array) { + var currentFocus; + var container; + + input.addEventListener("input", function (e) { + var val = this.value; + closeAllLists(); + if (!val) return; + currentFocus = -1; + + container = document.createElement("div"); + container.setAttribute("id", this.id + "chatbox-list"); + container.setAttribute("class", "chatbox-items"); + + this.parentNode.appendChild(container); + + var matches = array.filter(function (item) { + return item.toLowerCase().includes(val.toLowerCase()); + }); + + // No matches found, suggest opening Copilot + if (matches.length === 0) { + var copilotSuggestion = { + Question: "Ask Copilot", + Response: "No matches found. Why not try asking Copilot?", + Action: "openCopilot" + }; + + displaySuggestion(copilotSuggestion); + return; + } + + // Search for matches + for (var i = 0; i < matches.length; i++) { + var option = document.createElement("div"); + var matchIndex = matches[i].toLowerCase().indexOf(val.toLowerCase()); + + option.innerHTML = matches[i].substr(0, matchIndex); + option.innerHTML += "" + matches[i].substr(matchIndex, val.length) + ""; + option.innerHTML += matches[i].substr(matchIndex + val.length); + option.innerHTML += ""; + + option.addEventListener("click", function (e) { + input.value = this.getElementsByTagName("input")[0].value; + // closeAllLists(); // Dont close results list when hitting on a result + + // Trigger action only when an item is clicked + chatboxInputChanged(); + }); + container.appendChild(option); + } + }); + + // Display Copilot suggestion (if not matches found!) + function displaySuggestion(suggestion) { + closeAllLists(); + + container = document.createElement("div"); + container.setAttribute("id", input.id + "chatbox-list"); + container.setAttribute("class", "chatbox-items"); + + var option = document.createElement("div"); + option.innerHTML = "" + suggestion.Question + ""; + option.innerHTML += "
" + suggestion.Response; + option.addEventListener("click", function (e) { + input.value = suggestion.Question; + closeAllLists(); + chatboxInputChanged(); + }); + container.appendChild(option); + + input.parentNode.appendChild(container); + } + + + // Related to styling and behavior of Chatbox list + function addActive(x) { + removeActive(x); + currentFocus = (currentFocus + x.length) % x.length; + x[currentFocus].classList.add("chatbox-active"); + } + + function removeActive(x) { + x.forEach(item => item.classList.remove("chatbox-active")); + } + + function closeAllLists(elmnt) { + document.querySelectorAll(".chatbox-items") + .forEach(item => (elmnt !== item && input !== item) && item.parentNode.removeChild(item)); + } + + // Clear the text inside the textbox when clicked + input.addEventListener("click", function (e) { + if (this.value !== "") { + this.value = ""; + closeAllLists(); + } + }); +} + + // Send both question and action in the message +function chatboxInputChanged() { + var inputValue = document.getElementById('chatbox').value; + console.log("Chatbox item clicked:", inputValue); + + window.chrome.webview.postMessage("showAnswerForChatbox:" + inputValue); +} + + +/* +Interop code > Checkboxes and Buttons +for other dashboards, like Privacy etc. +*/ +function getSelectedItems() { + var checkboxes = document.querySelectorAll('input[type="checkbox"]:checked'); + var selectedItems = []; + checkboxes.forEach(function (checkbox) { + selectedItems.push({ id: checkbox.id, checked: checkbox.checked }); + }); + + return selectedItems; +} + +function updateLog(id, isChecked) { + var logContainer = document.getElementById('logContainer'); + var logMessage = isChecked ? `Feature ID '${id}' is enabled.` : `Feature ID '${id}' is disabled.`; + logContainer.innerHTML += logMessage + '
'; +} + +function searchFeatures() { + console.log('Search Features clicked'); + var selectedItems = getSelectedItems(); + window.chrome.webview.postMessage(JSON.stringify({ action: 'search', checkboxes: selectedItems })); +} + +function enableFeatures() { + console.log('Enable Features clicked'); + var selectedItems = getSelectedItems(); + if (selectedItems.length > 0) { + window.chrome.webview.postMessage(JSON.stringify({ action: 'enable', checkboxes: selectedItems })); + } +} + +function disableFeatures() { + console.log('Disable Features clicked'); + var selectedItems = getSelectedItems(); + if (selectedItems.length > 0) { + window.chrome.webview.postMessage(JSON.stringify({ action: 'disable', checkboxes: selectedItems })); + } +} + +function openUpdateSettings() { + window.chrome.webview.postMessage('openUpdateSettings'); +} + +function openWallpaperSettings() { + window.chrome.webview.postMessage('openWallpaperSettings'); +} + +function openThemeSettings() { + window.chrome.webview.postMessage('openThemeSettings'); +} + +function checkEventViewerLogs() { + window.chrome.webview.postMessage('checkEventViewer'); +} + +/* +App Installer via Winget +*/ +function installSelectedApps() { + var selectedApps = []; + + // Get all toggle switches + var toggles = document.querySelectorAll('.toggle-switch-checkbox'); + + // Iterate through toggle switches + toggles.forEach(function (toggle) { + var appId = toggle.id.replace('Toggle', ''); // Extract appId from toggle ID + var wingetIdElement = document.getElementById(appId + 'WingetId'); + + if (wingetIdElement) { + var wingetId = wingetIdElement.innerText; + + selectedApps.push({ + id: appId, + checked: toggle.checked, + wingetId: wingetId + }); + } else { + console.log(`Error: Winget ID element not found for ${toggle.id}`); + } + }); + + // Log selected apps to console for debugging + console.log('Selected Apps:', selectedApps); + + // Send selected apps to WebView2 + var message = JSON.stringify({ + action: 'installSelectedApps', + checkboxes: selectedApps // No need to wrap in an additional object + }); + + console.log('Sending message:', message); + window.chrome.webview.postMessage(message); +} + + +/* +Appx Uninstaller (Crapware) +*/ +// Declare selectedPackages in the global scope +var selectedPackages = selectedPackages || []; + +function updateSelectedPackages(packageFamilyName) { + // Make sure selectedPackages is an array before using indexOf + selectedPackages = selectedPackages || []; + + var index = selectedPackages.indexOf(packageFamilyName); + if (index === -1) { + selectedPackages.push(packageFamilyName); + } else { + selectedPackages.splice(index, 1); + } +} + +function removeSelectedPackages() { + console.log("Removing selected packages..."); + console.log(selectedPackages); + window.chrome.webview.postMessage(JSON.stringify({ action: 'removeSelectedPackages', selectedPackages: selectedPackages })); +} + +function searchCustomCrapware() { + console.log("Searching for custom crapware..."); + window.chrome.webview.postMessage('searchCustomCrapware'); +} + +function removeCustomCrapware() { + console.log("Removing custom crapware..."); + window.chrome.webview.postMessage('removeCustomCrapware'); +} diff --git a/src/BloatyNosy/app/frontend.html b/src/BloatyNosy/app/frontend.html new file mode 100644 index 0000000..1a4e974 --- /dev/null +++ b/src/BloatyNosy/app/frontend.html @@ -0,0 +1,358 @@ + + + + + + Comachina + + + + + + +
+ + + +

BloatynosyAI

+
+ + +
+ + + +
+ + +
+ Hi, I'm Ava, your friendly companion from Redmond, WA. Would you like to get some assistance? +
+ + +
+
Pinned
+

+ + +
+ +
+ + + + + +
+ + + +
+
Recommended
+

Choose how much information you want to share with Microsoft.

+
+ +
+
+ +
+
+ + +
+ +
+

+ Windows 11 comes integrated with advertising. Microsoft assigns a unique identifier to track your + activity in the Microsoft Store and on UWP apps to target you with relavant ads +

+ + Let apps show me personalized ads by using my advertising ID +
+ +
+

Tips and Suggestions Notifications on your Windows device for a more focused computing experience

+ + Get tips and suggestions when using Windows +
+ +
+

Windows won't be able to help you keep track of your device if you lose it.

+ + Find my device +
+ +
+

+ Send only info about your device, its settings and capabilities, and whether it is performing properly. + Diagnostic data is used to help keep Windows secure and up to date, troubleshoot problems, and make + product improvements +

+ + Diagnostic data +
+ +
+

+ Help Microsoft improve your Windows experience and fix problems more quickly by sending us additional + diagnostic data. This includes data about websites you browse, how you use apps and features, and + enhanced error reporting. +

+ + Send optional diagnostic data +
+ +
+

+ You can customize your lock screen. Try changing the background to a favorite photo or slide show. You + can also choose quick status notifications to show you upcoming calendar events, social network updates, + or other app and system notifications. +

+ + Use personalized lock screen +
+ +
+

+ If your PC is experiencing slowdowns or inexplicable crashes, then you should make it your priority to + diagnose what’s causing those problems. You can configure Windows so that you receive verbose startup, + shutdown, logon, and logoff status messages. Verbose status messages may be helpful when you're + troubleshooting slow startup, shutdown, logon, or logoff behavior. +

+ + Display highly detailed status messages +
+ +
+

+ When you create a new account in Windows, it comes up with options related to privacy. For example, you + will see the option to enable or disable Speech recognition, Location service, Find my device, Inking & + typing, and so on. +

+ + Privacy Settings Experience at sign-in +
+ +
+

+ The Windows 11 Start menu comes with a default Bing search engine. It shows up when you use Windows + Search or open the Start menu. For local searches, it doesn't work well and slows down the search + experience. +

+ + Say goodbye to Bing Cloud content search +
+ +
+

+ Visual effects are the visual bells and whistles for the appearance of Windows for your account. + These visual bells and whistles can affect the performance of Windows on the PC though. + This will turn off all visual effects under My computer > Properties > Advanced > Settings > and set to "Adjust for best performance". +

+ + Adjust visual effects for best performance +
+ +
+

+ The built-in Game DVR feature helps you record your gameplay, capture screenshots, and share them online. + But it can interfere with your game’s performance, too. Background recording requires some of your GPU power, and some gamers will want all the GPU power they can get. + If you experience low FPS or FPS loss after upgrading to Windows 11, you may resolve the issue by disabling the Xbox DVR feature. +

+ + Game DVR feature +
+ +
+

+ With the Windows 10 Fall Creators Update, Microsoft’s OS has added feature called Power Throttling + Power Throttling is only available on Intel 6th gen and higher processors), a way to increase the battery life of laptops by slowing down background processes. + This feature is enabled by default in laptops and tablets. Though Windows is good at detecting background apps and limiting power, there might be situations where this feature is not so desirable. +

+ + Power Throttling +
+ +
+ + +
+
+ Cleaning Up the Digital Playground with Bloatpilot + *This option is not supported by Microsoft +
+ Microsoft inked deals with third-party suppliers for app icons on the new Windows 11 Start Menu. Just click on icons like Picsart Pro or WhatsApp to install them. Windows 11 also has Spotify, Instagram, and TikTok. If you want, you can check and remove these apps here. +

Installed App Packages

+ + + + +

+ +
+ +
+
+ + +
+
Install missing apps
+

+ Ava's app picks for a delightful Windows experience! Windows comes with basic apps for many purposes, but a lot of the best Windows software isn't + pre-installed. You may choose to download and install a web browser other than Microsoft Edge, such as + Chrome or Firefox. Because every app is a new adventure! +

+ + +

+ +
+
+
+ + +
+ +

ID Google.Chrome

+

A more simple, secure, and faster web browser than ever, with Google’s smarts built-in.

+
+ +
+
+ + +
+ +

ID Mozilla.Firefox

+

+ Mozilla Firefox is free and open source software, built by a community of thousands from all over the + world. +

+
+ +
+
+ + +
+ +

ID Opera.Opera

+

+ The Opera browser includes everything you need for private, safe, and efficient browsing, along with + a variety of unique features to enhance your capabilities online. +

+
+ +
+
+ + +
+ +

ID VivaldiTechnologies.Vivaldi

+

Web browser based on Chromium with added features inspired by Opera.

+
+ +
+
+ + +
+ +

ID VideoLAN.VLC

+

+ VLC is a free and open source cross-platform multimedia player and framework that plays most + multimedia files, and various streaming protocols. +

+
+ +
+
+ + +
+ +

ID 7Zip.7zip

+

Free and open source file archiver with a high compression ratio.

+
+ +
+
+ + +
+ +

ID Notepad++.Notepad++

+

Notepad++ is a free source code editor that supports several languages.

+
+ +
+
+ + +
+ +

ID Microsoft.PowerToys

+

Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity.

+
+ +
+
+ + +
+ +

ID Adobe.Acrobat.Reader.64-bit

+

The free global standard for reliably viewing, printing, signing, and commenting on PDF documents.

+
+ +
+
+ + +
+ +

ID IrfanSkiljan.IrfanView

+

Fast and compact image viewer and converter

+
+ +
+
+ + \ No newline at end of file diff --git a/src/BloatyNosy/app/staticAIData.json b/src/BloatyNosy/app/staticAIData.json new file mode 100644 index 0000000..4d323b8 --- /dev/null +++ b/src/BloatyNosy/app/staticAIData.json @@ -0,0 +1,185 @@ +[ + { + "question": "Hi!", + "response": "Hello! How may I assist you today?", + "action": "none" + }, + { + "question": "I want to report a problem with BloatynosyAI #reddit #help #issue #github", + "response": "AI on it! 🚀 #BugBuster", + "action": "https://www.reddit.com/search/?q=bloatynosy&type=comment&sort=new" + }, + { + "question": "How can I add my Microsoft Account?", + "response": "Sure, I'll guide you. Opening Account settings...", + "action": "ms-settings:privacy-accountinfo" + }, + { + "question": "I want to create a PIN", + "response": "Sure, let me help. Opening Sign-in settings...", + "action": "ms-settings:signinoptions" + }, + { + "question": "Check for Windows updates", + "response": "Sure, I'll check for updates. Checking for updates...", + "action": "ms-settings:windowsupdate" + }, + { + "question": "I want to change my Wallpaper", + "response": "Sure, a Windows desktop should reflect your personality. Let us change it.", + "action": "changeWallpaper" + }, + { + "question": "I want to adjust the appearance and performance of Windows", + "response": "Sure, Let us switch to the Performance Options", + "action": "SystemPropertiesPerformance.exe" + }, + { + "question": "I want to switch between dark and light Windows mode", + "response": "Let us join the dark or light side...", + "action": "toggleThemeMode" + }, + { + "question": "How can I restore backups?", + "response": "Certainly! Opening Appcopier...", + "action": "openFile", + "appPath": "packages\\Appcopier\\Appcopier.exe" + }, + { + "question": "I want to create a Restore point", + "response": "Now you are on the safe side. Restore point has been created.", + "action": "createRestorePoint", + "powershellCommand": "$desc = 'BloatynosyAI Restore'; Checkpoint-Computer -Description \"$desc\" -RestorePointType \"Modify_Settings\"" + }, + { + "question": "How can I reset my system?", + "response": "Resetting your PC lets you perform a clean reinstallation and update of Windows while keeping your personal data and most Windows settings intact.", + "action": "runSystemReset" + }, + { + "question": "I want to clean up my storage", + "response": "Running intelligent Storage Sense.", + "action": "runStorageSense" + }, + { + "question": "What is my Windows version?", + "response": "You are on Build: [buildNumber]", + "action": "showWindowsVersion" + }, + { + "question": "Display my systems available disk space", + "response": "Available space on your system partition:", + "action": "showDiskSpace" + }, + { + "question": "Take screenshot #SnippingTool", + "response": "Screenshot captured and send to clipboard.", + "action": "takeScreenshot" + }, + { + "question": "Show apps that start with Windows", + "response": "Opening Task Manager to the autostart tab.", + "action": "switchToAutostartTab" + }, + { + "question": "I want to uninstall an App", + "response": "Opening the Windows Apps Uninstaller...", + "action": "openWindowsAppsUninstaller" + }, + { + "question": "Show Processes with High RAM Usage", + "response": "Listing processes with high RAM usage...", + "action": "showHighRamProcesses" + }, + { + "question": "I want to run a quick scan in Windows Defender Security", + "response": "Running Windows Defender quick scan...", + "action": "runWindowsDefenderScan" + }, + { + "question": "Give me a sneak peek of Chris Titus tool in action #plugin", + "response": "Interpreting PowerShell script...", + "action": "runPowerShellScript", + "scriptPath": "research\\ChrisTitusAppHandler.ps1" + }, + { + "question": "Help me remove the Microsoft OneDrive app #plugin", + "response": "Interpreting PowerShell script...", + "action": "runPowerShellScript", + "scriptPath": "research\\OneDriveHandler.ps1" + }, + { + "question": "I want to install an app #winget", + "response": "Switching to apps section...", + "action": "installApps", + }, + { + "question": "I want to uninstall bloatware appx packages", + "response": "Switching to crapware section...", + "action": "uninstallAppx", + }, + { + "question": "I want set up my my system and privacy settings", + "response": "Switching to privacy dashboard...", + "action": "privacyDashboard", + }, + { + "question": "Restart Windows Explorer (Along With the Taskbar and Start Menu)", + "response": "Restarting explorer.exe...", + "action": "shell", + "command":"taskkill /f /im explorer.exe && start explorer.exe" + }, + { + "question": "Change Taskbar alignment to the left", + "response": "Taskbar has been aligned to left.", + "action": "shell", + "command":"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarAl /t REG_DWORD /d 0 /f" + }, + { + "question": "Change Taskbar alignment to the center", + "response": "Taskbar has been aligned to center.", + "action": "shell", + "command":"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarAl /t REG_DWORD /d 1 /f" + }, + { + "question": "Add the Widgets Button on the Taskbar", + "response": "Let us enable the Widgets.", + "action": "shell", + "command":"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarDa /t REG_DWORD /d 1 /f" + }, + { + "question": "Remove the Widgets Button on the Taskbar", + "response": "Let us disable the Widgets button.", + "action": "shell", + "command":"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarDa /t REG_DWORD /d 0 /f" + }, + { + "question": "Remove AI in Taskbar (Copilot Button) #ai", + "response": "Copilot Button in Taskbar has been disabled.", + "action": "shell", + "command":"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v ShowCopilotButton /t REG_DWORD /d 0 /f" + }, + { + "question": "Remove AI Icon in Microsoft Edge #ai", + "response": "Copilot Button in Edge has been disabled.", + "action": "shell", + "command":"reg add HKEY_CURRENT_USER\\Software\\Policies\\Microsoft\\Windows /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f" + }, + { + "question": "Disable Copilot Pro ads on Windows 11 #vivetool", + "response": "ViveTool action performed successfully.", + "action": "viveTool", + "viveCommand": "disable", + "viveFeatureId": "47942561", + "viveBuildAvailability": "This is hidden in the latest Windows 11 Dev and Beta builds." + }, + { + "question": "Translate the UI of this app into German #deutsch #update", + "response": "Ava says: Kindly click the refresh button to apply the recent changes. This might be an AI-powered translation, where errors cannot be ruled out.", + "action": "translate", + "downloadUri": { + "frontend.html": "https://raw.githubusercontent.com/builtbybel/Bloatynosy/main/Localization/DE/frontend.html", + "staticAIData.json": "https://raw.githubusercontent.com/builtbybel/Bloatynosy/main/Localization/DE/staticAIData.json" + } + } +] \ No newline at end of file