This repository was archived by the owner on Jun 3, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 551
Collapse file tree
Files
Search this repository(forward slash) forward slash/
/
Copy pathHelios-Offline.html
More file actions
More file actions
Latest commit
4198 lines (3655 loc) · 126 KB
/
Copy pathHelios-Offline.html
File metadata and controls
4198 lines (3655 loc) · 126 KB
You must be signed in to make or propose changes
More edit options
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<!-- Google tag (gtag.js) -->
<!-- This is just so I can see page views and anylitics for Helios. None of your data is collected. -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-8VVWXBH142"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-8VVWXBH142');
</script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<style> body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
background-color: #202124;
color: #e8eaed;
display: flex;
flex-direction: column;
height: 100vh;
z-index: 0;
font-size: 17px;
font-weight: 500;
}
::placeholder {
color: #c4d4d4;
opacity: 1; /* For Firefox users */
}
.search-containeraa {
display: flex;
align-items: center;
position: relative;
}
.search-engine-dropdownaa {
position: absolute;
right: 23px;
top: -27px;
width: 56px;
height: 55px;
background-color: #3c4043;
border: none;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
cursor: pointer;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
z-index: 2;
}
.search-engine-dropdownaa img {
width: 38px;
height: 38px;
pointer-events: none;
margin-top: 1px;
margin-left: 1px;
}
.dropdown-contentaa {
display: none;
position: absolute;
background-color: #3c4043;
min-width: 250px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
bottom: 36px;
left: -78px;
border-radius: 10px;
padding: 0;
border: 3px solid #66ffa1;
}
.dropdown-contentaa .status-messageaa {
color: #f1f1f1;
padding: 14px 14px;
background-color: #484d51;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
font-size: 15px;
}
.dropdown-contentaa a {
color: #fff;
padding: 12px 12px;
text-decoration: none;
display: flex;
align-items: center;
height: 48px;
box-sizing: border-box;
border-radius: 10px;
}
.dropdown-contentaa a:hover {
background-color: #484d51;
border-radius: 10px;
}
.dropdown-contentaa a img {
width: 28px;
height: 28px;
margin-right: 12px;
}
.dropdown-contentaa,
.dropdown-contentaa a,
.status-messageaa {
font-family: Arial, sans-serif;
font-size: 15px;
}
.cloak-buttonaa {
margin-top: 25px;
margin-right: 4px;
margin-left: 4px;
padding: 11px 0px;
width: 170px;
font-size: 16px;
background-color: #ff6161;
color: white;
border: none;
cursor: pointer;
border-radius: 8px;
transition: background-color 0.3s ease;
}
.cloak-buttonaa:hover {
background-color: #ff4747;
}
.uptop-baraa {
background-color: #242729;
};
// Function to switch categories
function showCategory(category) {
document.querySelectorAll('.content-containervv').forEach(content => {
content.classList.remove('activevv');
});
document.getElementById(category).classList.add('activevv');
}
document.getElementById('clear-history').addEventListener('click', () => {
// Clear localStorage and sessionStorage
localStorage.clear();
sessionStorage.clear();
// Clear cookies
document.cookie.split(';').forEach((cookie) => {
const cookieName = cookie.split('=')[0].trim();
document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/;`;
});
// Display cleared message
const message = document.getElementById('cleared-message');
message.style.display = 'block';
// Hide the message after 3 seconds
setTimeout(() => {
message.style.display = 'none';
}, 3000);
});
// Function to hide and show relavent categories by ID
function showCategory(categoryId) {
document.querySelectorAll('.content-containervv').forEach(container => {
container.classList.remove('activevv');
});
document.getElementById(categoryId).classList.add('activevv');
document.querySelectorAll('.sidebarvv button').forEach(button => {
button.classList.remove('active');
});
document.querySelector(`.sidebarvv button[onclick="showCategory('${categoryId}')"]`).classList.add('active');
}
function sanitizeHtmlText(htmlText) {
console.log("Before any replacement: ", htmlText);
// Rule 1: If � is between a lowercase letter and an uppercase letter, assume it's a missing space
htmlText = htmlText.replace(/([a-z])�([A-Z])/g, '$1 $2');
console.log("After Rule 1 (fixing � between letters): ", htmlText);
// Rule 2: Replace remaining � with é
htmlText = htmlText.replace(/\uFFFD/g, 'é');
console.log("After Rule 2 (replacing remaining � with é): ", htmlText);
// Rule 3: Translate the redirection notice
htmlText = htmlText.replace(/Avertissement de redirection/g, 'Redirect Notice');
console.log("After Rule 3 (redirection message): ", htmlText);
htmlText = htmlText.replace(/La page que vous consultiez essaie de vous rediriger vers/g, 'The page you were on is trying to send you to');
console.log("After Rule 4 (translation of the redirection page): ", htmlText);
htmlText = htmlText.replace(/Si\s+vous\s+ne\s+souhaitez\s+pas\s+consulter\s+Cette\s+page/i, 'If you do not want to visit that page');
console.log("After Rule 5 (translation of the notice about visiting the page): ", htmlText);
htmlText = htmlText.replace(/vous\s* pouvez\s*revenir\s*à\s*la\s*page\s*précédente\./i, 'you can return to the previous page.');
console.log("After Rule 6 (translation of the return to previous page): ", htmlText);
return htmlText;
}</script>
</body>
</html>