first commit
This commit is contained in:
commit
80f393fb2b
1 changed files with 176 additions and 0 deletions
176
index.html
Normal file
176
index.html
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>المديرية العامة للامتحانات</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background: linear-gradient(to bottom right, #124f43, #8eb9b0);
|
||||||
|
color: white;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
text-align: center;
|
||||||
|
max-width: 500px;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: rgb(48, 96, 87);
|
||||||
|
border-radius: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5em;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-button {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 15px 25px;
|
||||||
|
background-color: #fff;
|
||||||
|
color: #124f43;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 10px;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: background-color 0.3s;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-button:hover {
|
||||||
|
background-color: rgb(28, 126, 106);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #ddd;
|
||||||
|
margin-top: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar-inner {
|
||||||
|
height: 20px;
|
||||||
|
width: 0;
|
||||||
|
background-color: #38953a;
|
||||||
|
transition: width 0.4s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-text {
|
||||||
|
margin-top: 10px;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speed-text,
|
||||||
|
.remaining-time-text {
|
||||||
|
margin-top: 5px;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>المديرية العامة للامتحانات</h1>
|
||||||
|
<p>تطبيق المديرية العامة للامتحانات لإصدار نتائج امتحان الشهادات والتعميمات الخاصة بها</p>
|
||||||
|
<button id="download-button" class="download-button">تحميل لنظام الأندرويد</button>
|
||||||
|
|
||||||
|
<div class="progress-bar" id="progress-bar">
|
||||||
|
<div class="progress-bar-inner" id="progress-bar-inner"></div>
|
||||||
|
</div>
|
||||||
|
<div class="progress-text" id="progress-text"></div>
|
||||||
|
<div class="speed-text" id="speed-text"></div>
|
||||||
|
<div class="remaining-time-text" id="remaining-time-text"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.getElementById('download-button').addEventListener('click', function () {
|
||||||
|
const progressBar = document.getElementById('progress-bar');
|
||||||
|
const progressBarInner = document.getElementById('progress-bar-inner');
|
||||||
|
const progressText = document.getElementById('progress-text');
|
||||||
|
const speedText = document.getElementById('speed-text');
|
||||||
|
const remainingTimeText = document.getElementById('remaining-time-text');
|
||||||
|
|
||||||
|
progressBar.style.display = 'block';
|
||||||
|
|
||||||
|
const xhr = new XMLHttpRequest();
|
||||||
|
xhr.open('GET', 'https://certificateresult.education-syria.com/certificate_result_1_0_4.apk', true);
|
||||||
|
xhr.responseType = 'blob';
|
||||||
|
|
||||||
|
let startTime = null;
|
||||||
|
let previousLoaded = 0;
|
||||||
|
let totalBytes = 0; // Total size of the file
|
||||||
|
let remainingBytes = 0;
|
||||||
|
|
||||||
|
xhr.onprogress = function (event) {
|
||||||
|
if (event.lengthComputable) {
|
||||||
|
if (!startTime) {
|
||||||
|
startTime = new Date().getTime();
|
||||||
|
totalBytes = event.total;
|
||||||
|
}
|
||||||
|
|
||||||
|
const currentTime = new Date().getTime();
|
||||||
|
const elapsedTime = (currentTime - startTime) / 1000; // seconds
|
||||||
|
const loaded = event.loaded;
|
||||||
|
remainingBytes = totalBytes - loaded;
|
||||||
|
|
||||||
|
const percentComplete = (loaded / totalBytes) * 100;
|
||||||
|
progressBarInner.style.width = percentComplete + '%';
|
||||||
|
progressText.innerText = '' + Math.round(percentComplete) + '%';
|
||||||
|
|
||||||
|
const speed = (loaded - previousLoaded) / elapsedTime; // bytes per second
|
||||||
|
previousLoaded = loaded;
|
||||||
|
startTime = currentTime;
|
||||||
|
|
||||||
|
const speedKbps = (speed * 8 / 1024).toFixed(2); // kbps
|
||||||
|
speedText.innerText = 'السرعة: ' + speedKbps + ' kbps';
|
||||||
|
|
||||||
|
const remainingTime = (remainingBytes / speed).toFixed(0); // seconds
|
||||||
|
const minutes = Math.floor(remainingTime / 60);
|
||||||
|
const seconds = remainingTime % 60;
|
||||||
|
remainingTimeText.innerText = 'الوقت المتبقي: ' + minutes + ' دقيقة و ' + seconds + ' ثانية';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
xhr.onload = function () {
|
||||||
|
if (xhr.status === 200) {
|
||||||
|
const url = window.URL.createObjectURL(xhr.response);
|
||||||
|
const a = document.createElement('a');
|
||||||
|
a.href = url;
|
||||||
|
a.download = 'certificate_result_1_0_4.apk';
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
a.remove();
|
||||||
|
|
||||||
|
progressText.innerText = 'اكتمل تحميل التطبيق. قم بفتح الملف من مجلد التنزيلات';
|
||||||
|
} else {
|
||||||
|
progressText.innerText = 'حدث خطأ أثناء تحميل التطبيق. الرجاء المحاولة مرة أخرى.';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
xhr.onerror = function () {
|
||||||
|
progressText.innerText = 'حدث خطأ أثناء تحميل التطبيق. الرجاء المحاولة مرة أخرى.';
|
||||||
|
};
|
||||||
|
|
||||||
|
xhr.send();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<!-- Cloudflare Web Analytics -->
|
||||||
|
<script defer src='https://static.cloudflareinsights.com/beacon.min.js'
|
||||||
|
data-cf-beacon='{"token": "82542d9a43454e7ba6f4946b1e2e21e9"}'></script><!-- End Cloudflare Web Analytics -->
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
Loading…
Reference in a new issue