-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
192 lines (179 loc) · 6.84 KB
/
index.html
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<!DOCTYPE html>
<html lang="en">
<link rel="shortcut icon" type="image/png" href="favicon.png"/>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<title>Warple: Wordle in a time warp so you can play past games / puzzles</title>
<meta name="description" content="Guess the hidden word in 6 tries. Play past games as much as you like.">
<!-- FB Meta Tags -->
<meta property="og:url" content="https://www.timewarple.com">
<meta property="og:type" content="website">
<meta property="og:title" content="Warple: Wordle in a time warp">
<meta property="og:description" content="Guess the hidden word in 6 tries. Play past games as much as you like.">
<meta property="og:image" content="https://www.timewarple.com/images/warple_og_1200x630.png">
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:domain" content="timewarple.com">
<meta name="theme-color" content="#6aaa64" />
<link rel="manifest" href="manifest.json" />
<link href="images/wordle_logo_32x32.png" rel="icon shortcut" sizes="3232" />
<link href="images/wordle_logo_192x192.png" rel="apple-touch-icon" />
<script async src="https://www.googletagmanager.com/gtag/js?id=G-W7JVXSKRJK"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-W7JVXSKRJK', {app_version: 'c0deface'});
</script>
<style>
/* Global Styles & Colors */
:root {
--green: #6aaa64;
--darkendGreen: #538d4e;
--yellow: #c9b458;
--darkendYellow: #b59f3b;
--lightGray: #d8d8d8;
--gray: #86888a;
--darkGray: #939598;
--white: #fff;
--black: #212121;
/* Colorblind colors */
--orange: #f5793a;
--blue: #85c0f9;
font-family: 'Clear Sans', 'Helvetica Neue', Arial, sans-serif;
font-size: 16px;
--header-height: 50px;
--keyboard-height: 200px;
--game-max-width: 500px;
}
/* Light theme colors */
:root {
--color-tone-1: #1a1a1b;
--color-tone-2: #787c7e;
--color-tone-3: #878a8c;
--color-tone-4: #d3d6da;
--color-tone-5: #edeff1;
--color-tone-6: #f6f7f8;
--color-tone-7: #ffffff;
--opacity-50: rgba(255, 255, 255, 0.5);
}
/* Dark Theme Colors */
.nightmode {
--color-tone-1: #d7dadc;
--color-tone-2: #818384;
--color-tone-3: #565758;
--color-tone-4: #3a3a3c;
--color-tone-5: #272729;
--color-tone-6: #1a1a1b;
--color-tone-7: #121213;
--opacity-50: rgba(0, 0, 0, 0.5);
}
/* Constant colors and colors derived from theme */
:root,
.nightmode {
--color-background: var(--color-tone-7);
}
:root {
--color-present: var(--yellow);
--color-correct: var(--green);
--color-absent: var(--color-tone-2);
--tile-text-color: var(--color-tone-7);
--key-text-color: var(--color-tone-1);
--key-evaluated-text-color: var(--color-tone-7);
--key-bg: var(--color-tone-4);
--key-bg-present: var(--color-present);
--key-bg-correct: var(--color-correct);
--key-bg-absent: var(--color-absent);
--modal-content-bg: var(--color-tone-7);
}
.nightmode {
--color-present: var(--darkendYellow);
--color-correct: var(--darkendGreen);
--color-absent: var(--color-tone-4);
--tile-text-color: var(--color-tone-1);
--key-text-color: var(--color-tone-1);
--key-evaluated-text-color: var(--color-tone-1);
--key-bg: var(--color-tone-2);
--key-bg-present: var(--color-present);
--key-bg-correct: var(--color-correct);
--key-bg-absent: var(--color-absent);
--modal-content-bg: var(--color-tone-7);
}
.colorblind {
--color-correct: var(--orange);
--color-present: var(--blue);
--tile-text-color: var(--white);
--key-bg-present: var(--color-present);
--key-bg-correct: var(--color-correct);
--key-bg-absent: var(--color-absent);
}
html {
height: 100%;
}
body {
height: 100%;
background-color: var(--color-background);
margin: 0;
padding: 0;
/* Prevent scrollbar appearing on page transition */
overflow-y: hidden;
}
</style>
</head>
<body>
<script>
(function () {
// Defining the hash before the main bundle allows the bundle access window.hash
window.wordle = window.wordle || {};
window.wordle.hash = 'c0deface';
// start of hacks
function getParameterByName(name, url = window.location.href) {
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
var startingDate = new Date(2021,5,19,1,0,0,1);
if (!localStorage.getItem('warpTime')) {
localStorage.setItem('warpTime', startingDate.getTime())
} else if (localStorage.gameState && JSON.parse(localStorage.gameState)['gameStatus'] !== 'IN_PROGRESS') {
var currentlySetEpoch = parseInt(localStorage.getItem('warpTime'))
var currentlySetDate = new Date(currentlySetEpoch)
if (currentlySetDate.getHours() === 23) {
// realign those previously messed up by improperly handled daylight savings
currentlySetDate.setHours(25)
} else {
// normal case
currentlySetDate.setDate(currentlySetDate.getDate() + 1)
}
localStorage.setItem('warpTime', currentlySetDate.getTime())
}
var tParam = getParameterByName('t');
window.activeDate = tParam ? new Date(tParam) : new Date(parseInt(localStorage.getItem('warpTime')));
console.log(window.activeDate);
window.realCurrentDate = new Date((new Date).toDateString());
var hackedDate = class extends Date{
constructor(...options) {
if (options.length) {
super(...options);
} else {
super(window.activeDate);
}
}
static now() {
return window.activeDate.getTime();
}
};
window.Date = hackedDate;
var puzzleNumber = Math.floor(((new Date) - new Date(2021,5,19))/1000/60/60/24);
console.log(puzzleNumber)
// end of hacks
})();
</script>
<script src="main.c0deface.js"></script>
<game-app></game-app>
</body>
</html>