-
Notifications
You must be signed in to change notification settings - Fork 0
/
quotes.html
169 lines (146 loc) · 5.33 KB
/
quotes.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
<!DOCTYPE html>
<html lang="en">
<head>
<title>Trenton Burnes (Gruficlath) - Quotes</title>
<meta charset="utf-8">
<link rel="stylesheet" href="static/styles/styles.css">
</head>
<script src="static/scripts/templatey.js"></script>
<body>
<script>load_template("header", document.currentScript)</script>
<main>
<h2>I like quotes, so I present to you my quote collection.</h2>
<div class="quotes">
<blockquote>
C is a chainsaw with all the safefies removed.<br>
Don't worry though, if you lose a finger or hand, C will give you another<br>
(Another chainsaw that is)<br>
- <a href="https://stackoverflow.com/questions/3536153/c-dynamically-growing-array" target="_blank">Jaco Van Niekerk (Feb 25, 2022)</a>
</blockquote>
<blockquote>
If you don't know how to unzip a file,<br>
get someone who knows how to use a computer to help you.<br>
- <a href="https://github.com/tModLoader/tModLoader/wiki/tModLoader-guide-for-players#manual-installation" target="_blank">JavidPack (May 30, 2020)</a>
</blockquote>
<blockquote>
Using C without pointers is like using a car without fuel.<br>
- <a href="https://stackoverflow.com/questions/3536153/c-dynamically-growing-array" target="_blank">martinkunec (Dec 2, 2017)</a>
</blockquote>
<blockquote>
Never put off until tomorrow what you can do today.<br>
There might be a law against it by that time.<br>
- <a href="https://github.com/shlomif/fortune-mod/blob/master/fortune-mod/datfiles/law#L889" target="_blank">fortune-mod-law (Unknown)</a>
</blockquote>
</div>
<!--<h2>Submit your own quotes!</h2>
<form name="quote_submit" action="" method="POST">
<label for="quote">Quote</label>
<textarea rows="3" cols="40" name="quote" class="quote-input"></textarea>
<label for="author">Author</label>
<input name="author" class="author-input">
<label for="date">Date</label>
<input type="date" name="date" class="date-input">
<input type="button" name="submit" class="submit" id="submit" style="margin-top: 1em;" value="Submit" onclick="submit_quote(this.form)">
</form>
<script>
function submit_quote(form) {
let form_data = new FormData(form);
const form_entries = Object.fromEntries(form_data)
console.log(form_entries);
fetch('https://quotes-submitter.shuttleapp.rs',
{
method: "POST",
mode: "no-cors",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(form_entries)
}
)
}
</script> -->
<!-- Will implement later. For now, screaming into the void works just fine. -->
<!-- <script>
const CLIENT_ID = "263841981216-jiac050ugot23gslj1at569pvc7fdhpm.apps.googleusercontent.com";
const API_KEY = "AIzaSyD2vdDKk18-Aja2biL6j8FJvCEtPtAcZgQ";
const DISCOVERY_DOC = "https://sheets.googleapis.com/$discovery/rest?version=v4";
const SCOPES = "https://www.googleapis.com/auth/spreadsheets.readonly";
let token_client;
let gapi_inited = false;
let gis_inited = false;
document.getElementById('submit').style.visibility = 'hidden';
function gapi_loaded() {
gapi.load('client', async () => {
await gapi.client.init({
apiKey: API_KEY,
client_id: CLIENT_ID,
scope: SCOPES,
discoveryDocs: [DISCOVERY_DOC],
});
gapi_inited = true;
allow_submit();
});
}
function gis_loaded() {
tokenClient = google.accounts.oauth2.initTokenClient({
client_id: CLIENT_ID,
scope: SCOPES,
callback: '',
});
gis_inited = true;
allow_submit();
}
function allow_submit() {
if (gapi_inited && gis_inited) {
document.getElementById('submit').style.visibility = 'visible';
}
}
function submit_quote(form) {
let form_data = new FormData(form);
const form_entries = Object.fromEntries(form_data)
console.log(form_entries);
fetch('https://quotes-submitter.shuttleapp.rs',
{
method: "POST",
mode: "no-cors",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(form_entries)
}
)
if (gapi.client.getToken() === null) {
tokenClient.requestAccessToken({prompt: 'consent'});
}
else {
tokenClient.requestAccessToken({prompt: ''});
}
update_quote(form_entries.quote, form_entries.author, form_entries.date);
}
function update_quote(quote, author, quote_date) {
let values = [[quote, author, quote_date]];
const body = {values: values};
try {
gapi.client.sheets.spreadsheets.values.append({
spreadsheetId: "1pqgrv_76RpOX6cZNjtGeHY97HMSnMc883XJSSrZoHDo",
range: "Sheet1!A1:C1",
valueInputOption: "RAW",
insertDataOption: "INSERT_ROWS",
resource: body,
}).then((res) => {
const result = res.result;
console.log(`${result.updatedCells} cells updated.`);
});
}
catch (err) {
console.log(err.message);
return;
}
}
</script> -->
</main>
<script>load_template("footer", document.currentScript)</script>
<script async defer src="https://apis.google.com/js/api.js" onload="gapi_loaded()" crossorigin="anonymous"></script>
<script async defer src="https://accounts.google.com/gsi/client" onload="gis_loaded()"></script>
</body>
</html>