mirror of
https://github.com/samsonjs/isitmycakeday.net.git
synced 2026-03-25 09:25:51 +00:00
first commit
This commit is contained in:
commit
c3d7493f17
1 changed files with 70 additions and 0 deletions
70
index.html
Normal file
70
index.html
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<!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>
|
||||
Loading…
Reference in a new issue