From 62779ef0dde40bedbb6d39f4328a3062ece214b4 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 1 May 2013 14:23:57 -0400 Subject: [PATCH 1/2] relative time on topics and posts --- public/templates/home.tpl | 2 +- public/templates/topic.tpl | 2 +- src/posts.js | 6 ++++-- src/topics.js | 7 +++---- src/user.js | 2 +- src/utils.js | 35 +++++++++++++++++++++++++++++++++++ utils.js | 25 +++++++++++++++++++++++++ 7 files changed, 70 insertions(+), 9 deletions(-) create mode 100644 src/utils.js diff --git a/public/templates/home.tpl b/public/templates/home.tpl index 3149404251..e65f469776 100644 --- a/public/templates/home.tpl +++ b/public/templates/home.tpl @@ -3,7 +3,7 @@
  • {topics.title}

    -

    Posted on {topics.timestamp} by user {topics.uid}. {topics.post_count} posts.

    +

    Posted {topics.relativeTime} by user {topics.uid}. {topics.post_count} posts.

  • diff --git a/public/templates/topic.tpl b/public/templates/topic.tpl index 56c230a31f..777c72fb89 100644 --- a/public/templates/topic.tpl +++ b/public/templates/topic.tpl @@ -2,7 +2,7 @@
  • {posts.content}

    -

    Posted on {posts.timestamp} by user {posts.uid}.

    +

    Posted {posts.relativeTime} by user {posts.uid}.

  • \ No newline at end of file diff --git a/src/posts.js b/src/posts.js index c34d088232..c0d7e50acc 100644 --- a/src/posts.js +++ b/src/posts.js @@ -1,4 +1,5 @@ -var RDB = require('./redis.js'); +var RDB = require('./redis.js'), + utils = require('./utils.js'); (function(Posts) { //data structure @@ -42,7 +43,8 @@ var RDB = require('./redis.js'); posts.push({ 'content' : content[i], 'uid' : uid[i], - 'timestamp' : timestamp[i] + 'timestamp' : timestamp[i], + 'relativeTime': utils.relativeTime(timestamp[i]) }); } diff --git a/src/topics.js b/src/topics.js index fdc76cd8c7..aa41f8684e 100644 --- a/src/topics.js +++ b/src/topics.js @@ -1,8 +1,6 @@ var RDB = require('./redis.js'), - posts = require('./posts.js'); - - - + posts = require('./posts.js'), + utils = require('./utils.js'); (function(Topics) { //data structure @@ -82,6 +80,7 @@ var RDB = require('./redis.js'), 'title' : title[i], 'uid' : uid[i], 'timestamp' : timestamp[i], + 'relativeTime': utils.relativeTime(timestamp[i]), 'slug' : slug[i], 'post_count' : postcount[i] }); diff --git a/src/user.js b/src/user.js index 59589271dc..a743a39abe 100644 --- a/src/user.js +++ b/src/user.js @@ -1,5 +1,5 @@ var config = require('../config.js'), - utils = require('../utils.js'), + utils = require('./utils.js'), RDB = require('./redis.js'), crypto = require('crypto'), emailjs = require('emailjs'), diff --git a/src/utils.js b/src/utils.js new file mode 100644 index 0000000000..6728175336 --- /dev/null +++ b/src/utils.js @@ -0,0 +1,35 @@ +var utils = { + generateUUID: function() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); + return v.toString(16); + }); + }, + relativeTime: function(timestamp) { + var now = +new Date(), + difference = now - Math.floor(parseFloat(timestamp)); + + difference = Math.floor(difference / 1000); + if (difference < 60) return difference + ' second' + (difference !== 1 ? 's' : '') + ' ago'; + + difference = Math.floor(difference / 60); + if (difference < 60) return difference + ' minute' + (difference !== 1 ? 's' : '') + ' ago'; + + difference = Math.floor(difference / 60); + if (difference < 24) return difference + ' hour' + (difference !== 1 ? 's' : '') + ' ago'; + + difference = Math.floor(difference / 24); + if (difference < 3) return difference + ' day' + (difference !== 1 ? 's' : '') + ' ago'; + + // Lastly, just return a formatted date + var date = new Date(timestamp); + // hour = date.getHours(), + // minute = date.getMinutes(), + // day = date.getDate(), + // month = date.getMonth(), + // months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + return date.toDateString(); + } +} + +module.exports = utils; \ No newline at end of file diff --git a/utils.js b/utils.js index 7b003e466a..6728175336 100644 --- a/utils.js +++ b/utils.js @@ -4,6 +4,31 @@ var utils = { var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); return v.toString(16); }); + }, + relativeTime: function(timestamp) { + var now = +new Date(), + difference = now - Math.floor(parseFloat(timestamp)); + + difference = Math.floor(difference / 1000); + if (difference < 60) return difference + ' second' + (difference !== 1 ? 's' : '') + ' ago'; + + difference = Math.floor(difference / 60); + if (difference < 60) return difference + ' minute' + (difference !== 1 ? 's' : '') + ' ago'; + + difference = Math.floor(difference / 60); + if (difference < 24) return difference + ' hour' + (difference !== 1 ? 's' : '') + ' ago'; + + difference = Math.floor(difference / 24); + if (difference < 3) return difference + ' day' + (difference !== 1 ? 's' : '') + ' ago'; + + // Lastly, just return a formatted date + var date = new Date(timestamp); + // hour = date.getHours(), + // minute = date.getMinutes(), + // day = date.getDate(), + // month = date.getMonth(), + // months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + return date.toDateString(); } } From 1f91a5198dd3ef98c2a9d9fb231348eb3b869630 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 1 May 2013 14:24:39 -0400 Subject: [PATCH 2/2] removing utils.js... fucking git --- utils.js | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 utils.js diff --git a/utils.js b/utils.js deleted file mode 100644 index 6728175336..0000000000 --- a/utils.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = { - generateUUID: function() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); - return v.toString(16); - }); - }, - relativeTime: function(timestamp) { - var now = +new Date(), - difference = now - Math.floor(parseFloat(timestamp)); - - difference = Math.floor(difference / 1000); - if (difference < 60) return difference + ' second' + (difference !== 1 ? 's' : '') + ' ago'; - - difference = Math.floor(difference / 60); - if (difference < 60) return difference + ' minute' + (difference !== 1 ? 's' : '') + ' ago'; - - difference = Math.floor(difference / 60); - if (difference < 24) return difference + ' hour' + (difference !== 1 ? 's' : '') + ' ago'; - - difference = Math.floor(difference / 24); - if (difference < 3) return difference + ' day' + (difference !== 1 ? 's' : '') + ' ago'; - - // Lastly, just return a formatted date - var date = new Date(timestamp); - // hour = date.getHours(), - // minute = date.getMinutes(), - // day = date.getDate(), - // month = date.getMonth(), - // months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - return date.toDateString(); - } -} - -module.exports = utils; \ No newline at end of file