diff --git a/following.html b/following.html index fee5078..f7615dd 100644 --- a/following.html +++ b/following.html @@ -156,11 +156,14 @@
  • - user-photo + + user-photo +
    - - + + +
    Followed by
    diff --git a/home.html b/home.html index 4b88a8c..18cbb37 100644 --- a/home.html +++ b/home.html @@ -163,11 +163,14 @@
  • - user-photo + + user-photo +
    - - + + +
    Followed by
    diff --git a/interface_common.js b/interface_common.js index 7967601..4be5917 100644 --- a/interface_common.js +++ b/interface_common.js @@ -66,6 +66,38 @@ function timeGmtToText(t) { return d.toString().replace(/GMT.*/g,""); } +function timeSincePost(t) { + var d = new Date(0); + d.setUTCSeconds(t); + var now = new Date(); + var t_delta = Math.ceil((now - d) / 1000); + var expression = ""; + if(t_delta < 2) { + expression = "1 second" + } + else if(t_delta < 60) { + expression = t_delta + " seconds" + } + else if(t_delta < 120) { + expression = "1 second" + } + else if(t_delta < 60 * 60) { + expression = Math.floor(t_delta/60) + " minutes" + } + else if(t_delta < 2 * 60 * 60) { + expression = "1 hour" + } + else if(t_delta < 24 * 60 * 60) { + expression = Math.floor(t_delta/60/60) + " hours" + } + else if(t_delta < 2 * 24 * 60 * 60) { + expression = "1 day" + } + else { + expression = Math.floor(t_delta/24/60/60) + " days" + } + return expression + " ago"; +} // // Profile, mentions and hashtag modal diff --git a/twister_formatpost.js b/twister_formatpost.js index 2e656fc..fdebfdc 100644 --- a/twister_formatpost.js +++ b/twister_formatpost.js @@ -76,6 +76,7 @@ function postToElem( post, kind ) { elem.find(".post-info-tag").text = "@" + n; getAvatar( n, elem.find(".avatar") ); elem.find(".post-info-time").text(timeGmtToText(t)); + elem.find(".post-info-time").attr("title",timeSincePost(t)); var mentions = []; htmlFormatMsg( msg, elem.find(".post-text"), mentions); @@ -117,6 +118,7 @@ function dmDataToSnippetItem(dmData, remoteUser) { getFullname( remoteUser, dmItem.find("a.post-info-name") ); dmItem.find(".post-text").text(escapeHtmlEntities(dmData.text)); dmItem.find(".post-info-time").text(timeGmtToText(dmData.time)); + dmItem.find(".post-info-time").attr("title",timeSincePost(dmData.time)); return dmItem; } @@ -129,6 +131,7 @@ function dmDataToConversationItem(dmData, localUser, remoteUser) { dmItem.addClass(classDm); getAvatar(dmData.fromMe ? localUser : remoteUser, dmItem.find(".post-photo").find("img") ); dmItem.find(".post-info-time").text(timeGmtToText(dmData.time)); + dmItem.find(".post-info-time").attr("title",timeSincePost(dmData.time)); var mentions = []; htmlFormatMsg( dmData.text, dmItem.find(".post-text"), mentions); return dmItem;