2025-05-12 22:56:57 +10:00
<!DOCTYPE html>
2025-05-10 13:53:38 +02:00
< html lang = "en" >
2025-05-12 22:42:14 +10:00
< head >
< meta charset = "UTF-8" />
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" />
2025-05-21 11:05:59 +02:00
< title > CrapFixer Update Check</ title >
2025-05-12 22:42:14 +10:00
< style >
2025-05-15 17:42:36 +02:00
: root {
--bg : #f3f6fd ;
--primary : #0067c0 ;
--text : #1b1b1b ;
--card-bg : #ffffff cc ;
--shadow : 0 8 px 24 px rgba ( 0 , 0 , 0 , 0.1 );
--radius : 20 px ;
}
* {
box-sizing : border-box ;
}
2025-05-12 22:42:14 +10:00
body {
2025-05-15 17:42:36 +02:00
font-family : "Segoe UI Variable" , "Segoe UI" , Tahoma , sans-serif ;
background : linear-gradient ( 145 deg , #ecf0f7 , #f8faff );
color : var ( -- text );
2025-05-12 22:42:14 +10:00
padding : 2 rem ;
2025-05-15 17:42:36 +02:00
margin : 0 ;
display : flex ;
flex-direction : column ;
align-items : center ;
min-height : 100 vh ;
2025-05-12 22:42:14 +10:00
}
2025-05-15 17:42:36 +02:00
2025-05-12 22:42:14 +10:00
h1 {
2025-05-15 17:42:36 +02:00
font-size : 2 rem ;
font-weight : 600 ;
margin-bottom : 1 rem ;
display : flex ;
align-items : center ;
gap : 0.5 rem ;
2025-05-12 22:42:14 +10:00
}
2025-05-15 17:42:36 +02:00
2025-05-21 11:05:59 +02:00
/* ---------- Two-Column Layout Container ---------- */
. content-wrapper {
display : flex ;
gap : 2 rem ;
max-width : 1100 px ;
width : 100 % ;
margin-top : 2 rem ;
flex-wrap : wrap ;
}
/* ---------- Left Column: Status, Donate, GitHub ---------- */
. left-column {
flex : 1 1 480 px ;
display : flex ;
flex-direction : column ;
gap : 1.5 rem ;
}
2025-05-12 22:42:14 +10:00
# status {
2025-05-15 17:42:36 +02:00
background : var ( -- card - bg );
backdrop-filter : blur ( 10 px );
padding : 1.5 rem ;
border-radius : var ( -- radius );
box-shadow : var ( -- shadow );
width : 100 % ;
font-size : 1.1 rem ;
2025-05-12 22:42:14 +10:00
}
2025-05-15 17:42:36 +02:00
2025-05-12 22:42:14 +10:00
. donate {
2025-05-15 17:42:36 +02:00
padding : 1.5 rem ;
background-color : #e7f5ec ;
border-left : 6 px solid #4caf50 ;
border-radius : var ( -- radius );
box-shadow : var ( -- shadow );
2025-05-12 22:42:14 +10:00
}
2025-05-15 17:42:36 +02:00
2025-05-12 22:42:14 +10:00
. donate strong {
display : block ;
2025-05-15 17:42:36 +02:00
font-size : 1.2 rem ;
2025-05-12 22:42:14 +10:00
margin-bottom : 0.5 rem ;
}
2025-05-15 17:42:36 +02:00
2025-05-12 22:42:14 +10:00
. donate a {
2025-05-15 17:42:36 +02:00
margin-top : 1 rem ;
2025-05-12 22:42:14 +10:00
display : inline-block ;
2025-05-15 17:42:36 +02:00
padding : 0.6 rem 1.2 rem ;
background-color : #4caf50 ;
color : white ;
border-radius : 8 px ;
transition : background 0.3 s ease ;
2025-05-21 11:05:59 +02:00
text-decoration : none ;
2025-05-15 17:42:36 +02:00
}
. donate a : hover {
background-color : #388e3c ;
2025-05-12 22:42:14 +10:00
}
2025-05-15 17:42:36 +02:00
2025-05-12 22:42:14 +10:00
. project-follow {
text-align : center ;
}
2025-05-15 17:42:36 +02:00
2025-05-12 22:42:14 +10:00
. project-follow a {
2025-05-15 17:42:36 +02:00
padding : 0.8 rem 1.5 rem ;
background : #24292f ;
2025-05-12 22:42:14 +10:00
color : white ;
2025-05-15 17:42:36 +02:00
border-radius : var ( -- radius );
2025-05-12 22:42:14 +10:00
text-decoration : none ;
2025-05-15 17:42:36 +02:00
font-size : 1 rem ;
transition : background 0.3 s ease ;
display : inline-block ;
2025-05-12 22:42:14 +10:00
}
2025-05-15 17:42:36 +02:00
2025-05-12 22:42:14 +10:00
. project-follow a : hover {
2025-05-15 17:42:36 +02:00
background : #0366d6 ;
}
2025-05-21 11:05:59 +02:00
/* ---------- Right Column: YouTube Review ---------- */
. right-column {
flex : 1 1 480 px ;
}
. video-container {
position : relative ;
padding-bottom : 56.25 % ;
height : 0 ;
overflow : hidden ;
border-radius : var ( -- radius );
box-shadow : var ( -- shadow );
}
. video-container iframe {
position : absolute ;
top : 0 ;
left : 0 ;
width : 100 % ;
height : 100 % ;
}
/* ---------- Responsive Tweaks ---------- */
2025-05-15 17:42:36 +02:00
@ media ( max-width : 600px ) {
body {
padding : 1 rem ;
}
# status ,
. donate {
padding : 1 rem ;
}
2025-05-12 22:42:14 +10:00
}
</ style >
</ head >
2025-05-10 14:22:53 +02:00
2025-05-21 11:05:59 +02:00
< body >
< h1 > 🔍 CrapFixer Update Check</ h1 >
<!-- Main Content: Two Columns -->
< div class = "content-wrapper" >
<!-- Left Column -->
< div class = "left-column" >
< p id = "status" > Checking version...</ p >
< div class = "donate" >
< strong > 💖 Support CrapFixer</ strong >
Every donation helps me provide more updates. – Thanks, Belim 🙏
< br />< br />
< a href = "https://www.paypal.com/donate/?hosted_button_id=M9DW4VNKH9ECQ" target = "_blank" > 💸 PayPal</ a >
< a href = "https://ko-fi.com/builtbybel" target = "_blank" style = "background-color: #ff5f5f" > ☕ Ko-fi</ a >
</ div >
< div class = "project-follow" >
< a href = "https://github.com/builtbybel/CrapFixer" target = "_blank" > 🐙 View on GitHub</ a >
</ div >
</ div >
<!-- Right Column: YouTube Video -->
< div class = "right-column" >
< p style = "font-weight: 500; margin-bottom: 1rem;" >
🎬 Here's a recent cool review of CrapFixer on YouTube:
</ p >
< div class = "video-container" >
< iframe
src = "https://www.youtube.com/embed/RmnNo9RGRT8"
title = "CrapFixer Review"
frameborder = "0"
allow = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></ iframe >
</ div >
</ div >
2025-05-12 22:42:14 +10:00
</ div >
2025-05-10 13:46:41 +02:00
2025-05-21 11:05:59 +02:00
<!-- Update Logic Script -->
2025-05-12 22:42:14 +10:00
< script >
2025-05-21 11:05:59 +02:00
const latestVersion = "1.1.236" ;
2025-05-10 13:46:41 +02:00
2025-05-12 22:42:14 +10:00
function compareVersions ( v1 , v2 ) {
const a = v1 . split ( "." ). map ( Number );
const b = v2 . split ( "." ). map ( Number );
for ( let i = 0 ; i < Math . max ( a . length , b . length ); i ++ ) {
if (( a [ i ] || 0 ) < ( b [ i ] || 0 )) return - 1 ;
if (( a [ i ] || 0 ) > ( b [ i ] || 0 )) return 1 ;
}
return 0 ;
2025-05-10 13:46:41 +02:00
}
2025-05-12 22:42:14 +10:00
const params = new URLSearchParams ( window . location . search );
const userVersion = params . get ( "version" );
2025-05-10 13:46:41 +02:00
2025-05-12 22:42:14 +10:00
const status = document . getElementById ( "status" );
2025-05-10 13:46:41 +02:00
2025-05-12 22:42:14 +10:00
if ( ! userVersion ) {
2025-05-21 11:05:59 +02:00
status . innerText = "❓ No version found. Please open this page from the CrapFixer app." ;
2025-05-10 14:22:53 +02:00
} else {
2025-05-12 22:42:14 +10:00
const result = compareVersions ( userVersion , latestVersion );
if ( result < 0 ) {
2025-05-21 11:05:59 +02:00
status . innerHTML = `⚠️ Your version ( ${ userVersion } ) is outdated.<br><strong>Latest version:</strong> ${ latestVersion } <br><a href="https://github.com/builtbybel/CrapFixer/releases">⬇️ Download here</a>` ;
2025-05-12 22:42:14 +10:00
} else if ( result === 0 ) {
status . innerHTML = `✅ Your version ( ${ userVersion } ) is up to date.` ;
} else {
status . innerHTML = `✅ Your version ( ${ userVersion } ) is newer than the official release ( ${ latestVersion } ).<br><em>Note: You may be using a development build.</em>` ;
}
2025-05-10 14:22:53 +02:00
}
2025-05-12 22:42:14 +10:00
</ script >
</ body >
2025-05-10 13:46:41 +02:00
</ html >