mirror of
https://github.com/samsonjs/isitmycakeday.net.git
synced 2026-03-25 09:25:51 +00:00
70 lines
2.2 KiB
HTML
70 lines
2.2 KiB
HTML
<!doctype html>
|
|
<title>is it my cake day?</title>
|
|
<style>
|
|
h1, h3, p, footer { text-align: center }
|
|
</style>
|
|
<h1>is it my cake day?</h1>
|
|
<p>
|
|
reddit name:
|
|
<input id=user placeholder=spez>
|
|
</p>
|
|
<h3 id=answer></h3>
|
|
<footer>made by <a href=http://reddit.com/user/sjs>sjs</a></footer>
|
|
<script>
|
|
(function() {
|
|
$user = null, $answer = null;
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
$user = document.getElementById('user');
|
|
$answer = document.getElementById('answer');
|
|
$user.addEventListener('change', setRequestTimer);
|
|
$user.addEventListener('keyup', setRequestTimer);
|
|
});
|
|
var timer;
|
|
function setRequestTimer() {
|
|
$answer.innerText = '';
|
|
if (!timer) {
|
|
timer = setTimeout(checkForCakeDay, 300);
|
|
}
|
|
}
|
|
function checkForCakeDay() {
|
|
timer = null;
|
|
var user = encodeURIComponent($user.value);
|
|
var r = document.createElement('script');
|
|
r.async = true;
|
|
r.src = 'http://reddit.com/user/' + user + '/about.json?jsonp=redditCb';
|
|
var s = document.getElementsByTagName('script')[0];
|
|
s.parentNode.insertBefore(r, s);
|
|
}
|
|
function ord(n) {
|
|
if (n % 10 == 1 && n % 100 != 11) return 'st';
|
|
if (n % 10 == 2 && n % 100 != 12) return 'nd';
|
|
if (n % 10 == 3 && n % 100 != 13) return 'rd';
|
|
return 'th';
|
|
}
|
|
var Months = 'January February March April May June July August September October November December'.split(' ');
|
|
var OneYear = 365 * 86400000;
|
|
window.redditCb = function(res) {
|
|
try {
|
|
var t = res.data.created_utc * 1000;
|
|
var nowT = +new Date() + (new Date().getTimezoneOffset() * 60000);
|
|
// Reddit seems to treat this fuzzily for timezone differences, so we should also treat it fuzzily.
|
|
var isCakeDay = (Math.abs(nowT - t) % OneYear) <= 86400000;
|
|
var d = new Date(t);
|
|
var now = new Date(nowT);
|
|
var n = now.getFullYear() - d.getFullYear();
|
|
var msg;
|
|
if (isCakeDay) {
|
|
msg = 'happy ' + n + ord(n) + ' cake day!';
|
|
}
|
|
else {
|
|
var month = Months[d.getMonth()];
|
|
msg = 'nope, check back on ' + month + ' ' + d.getDate() + ord(d.getDate());
|
|
}
|
|
$answer.innerText = msg;
|
|
} catch (e) {
|
|
$answer.innerText = 'maybe';
|
|
console.log(e);
|
|
}
|
|
};
|
|
}());
|
|
</script>
|