From 57c3082a6eb85e0fad60e5f2b4c0ca2e7a9bf1a4 Mon Sep 17 00:00:00 2001 From: John-Kim Date: Sat, 7 May 2022 20:56:49 +0900 Subject: [PATCH] Add date route. - Starts getting news from date. - Updates hash as more news loaded. --- assets/js/hw.js | 12 ++++- assets/js/libs/hnapi.js | 1 + js/hw-ios-2.min.js | 111 ++++++++++++++++++++-------------------- js/hw-ios-2.min.js.map | 2 +- js/hw-ios.min.js | 66 ++++++++++++------------ js/hw-ios.min.js.map | 2 +- js/hw-web.min.js | 56 ++++++++++---------- js/hw-web.min.js.map | 2 +- 8 files changed, 131 insertions(+), 121 deletions(-) diff --git a/assets/js/hw.js b/assets/js/hw.js index d06831d..62f6047 100644 --- a/assets/js/hw.js +++ b/assets/js/hw.js @@ -211,7 +211,12 @@ $homeScrollSection.innerHTML = tmpl1.render({ load_error: true }); hw.pub('logAPIError', 'news'); }; - hnapi.news(null, function (data) { + var date = null; + // Grab date from hash. + if (location.hash) { + date = location.hash.slice(7); + } + hnapi.news(date, function (data) { loadingNews = false; if (!data || data.error) { showError(); @@ -230,6 +235,7 @@ } }, reload: function () { + ruto.go('/') amplify.store('news-latest', null); // force cache flush hnapi.number = 1; hw.news.render({ @@ -243,6 +249,7 @@ var date = target.dataset.date; hnapi.news(date, function (news) { + history.replaceState(null, null, document.location.pathname + '#/date/' + news.curr); target.classList.remove('loading'); var targetParent = target.parentNode; if (!targetParent) return; @@ -457,7 +464,7 @@ }; hw.init = function () { - console.log('INIT JKM 2022.05.07 725'); + console.log('INIT JKM 2022.05.07 853'); hw.news.render(); ruto.init(); @@ -532,6 +539,7 @@ } }) .add('/', 'home') + .add(/^\/date\/(\d+)$/i, 'home') .add('/about', 'about') .add(/^\/item\/(\d+)$/i, 'comments', function (path, id) { hw.comments.render(id); diff --git a/assets/js/libs/hnapi.js b/assets/js/libs/hnapi.js index e90ce82..32d4bf1 100644 --- a/assets/js/libs/hnapi.js +++ b/assets/js/libs/hnapi.js @@ -197,6 +197,7 @@ function onSuccess(data) { var results = process_entries(data); + results.curr = date; success(results); }; diff --git a/js/hw-ios-2.min.js b/js/hw-ios-2.min.js index 2f2adab..0a24b33 100644 --- a/js/hw-ios-2.min.js +++ b/js/hw-ios-2.min.js @@ -1,34 +1,34 @@ -!function(t){function e(){}function n(){var e=location.hash.slice(1),t=!1,n=f.current,e=e||l.defaultPath;n&&n!=f.previous&&(f.previous=n),f.current=e;for(var i=0,r=c.length;i/g,r=/\'/g,o=/\"/g,a=/[&<>\"\']/;function s(e){return String(null==e?"":e)}var f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}("undefined"!=typeof exports?exports:Hogan),function(s){function u(){return+new Date}var c=!!s.XDomainRequest,l="withCredentials"in new XMLHttpRequest||c,f=!1,d={};try{(f=new Worker("js/hnapi-worker.js")).addEventListener("message",function(e){var t,n=e.data,i=n.url||"";d[i]&&(e=( -t=d[i]).error,t=t.success,delete d[i],n.error?e(n.error):t(n.response))},!1)}catch(e){}function r(t,e,n){var i,r,o,a;e=e||function(){},n=n||function(){},l?f?(d[t]={success:e,error:n},f.postMessage({url:t,timeout:2e4})):((i=d[t]||new(c?XDomainRequest:XMLHttpRequest))._timeout&&clearTimeout(i._timeout),i._timeout=setTimeout(function(){i.abort()},2e4),i.onload=function(){clearTimeout(this._timeout),delete d[t];try{e(JSON.parse(this.responseText))}catch(e){n(e)}}, -i.onerror=i.onabort=i.ontimeout=function(e){clearTimeout(this._timeout),delete d[t],n(e)},(i.readyState<=1||c)&&(i.open("GET",t+"?"+u(),!0),i.send()),d[t]=i):(o=(r=s.document).createElement("script"),a="callback"+u(),s[a]=e,o.onerror=n,o.src=t+"?callback="+a,r.body.appendChild(o))}var o=["https://node-hnapi-eu.herokuapp.com/","https://node-hnapi.azurewebsites.net/","https://node-hnapi-eus.azurewebsites.net/"];!function(e){for(var t=e.length-1;0/g,r=/\'/g,o=/\"/g,a=/[&<>\"\']/;function s(e){return String(null==e?"":e)}var d=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}("undefined"!=typeof exports?exports:Hogan),function(s){function u(){return+new Date}var c=!!s.XDomainRequest,l="withCredentials"in new XMLHttpRequest||c,d=!1,f={};try{(d=new Worker("js/hnapi-worker.js")).addEventListener("message",function(e){var t,n=e.data,i=n.url||"";f[i]&&(e=( +t=f[i]).error,t=t.success,delete f[i],n.error?e(n.error):t(n.response))},!1)}catch(e){}function r(t,e,n){var i,r,o,a;e=e||function(){},n=n||function(){},l?d?(f[t]={success:e,error:n},d.postMessage({url:t,timeout:2e4})):((i=f[t]||new(c?XDomainRequest:XMLHttpRequest))._timeout&&clearTimeout(i._timeout),i._timeout=setTimeout(function(){i.abort()},2e4),i.onload=function(){clearTimeout(this._timeout),delete f[t];try{e(JSON.parse(this.responseText))}catch(e){n(e)}}, +i.onerror=i.onabort=i.ontimeout=function(e){clearTimeout(this._timeout),delete f[t],n(e)},(i.readyState<=1||c)&&(i.open("GET",t+"?"+u(),!0),i.send()),f[t]=i):(o=(r=s.document).createElement("script"),a="callback"+u(),s[a]=e,o.onerror=n,o.src=t+"?callback="+a,r.body.appendChild(o))}var o=["https://node-hnapi-eu.herokuapp.com/","https://node-hnapi.azurewebsites.net/","https://node-hnapi-eus.azurewebsites.net/"];!function(e){for(var t=e.length-1;0=e[i].date&&t.push(n),w=e[i].date;var r={id:(r=e[i]).id,title:r.link_text,url:r.link,domain:r.source,points:r.points,user:r.submitter,time_ago:relativeDate(1e3*r.date),time:r.date,comments_count:r.comments,type:"link"};r.i=p.number++,t.push(r)}var o=(o=dayjs.unix(w)).subtract(1,"day");return t.next=o.format("YYYYMMDD"),t} -p.number=1,p.news=function(e,t,n){var i="news-"+(e=e||"latest"),r="https://p.leftium.com/p?u=https://hckrnews.com/data/"+e+".js",o="latest"==e?6e4:2592e6;function a(e){e=y(e);t(e)}e=amplify.store(i);e?(console.log("HIT!: "+i),a(e)):(console.log("MISS!: "+i),p1=fetch(r),text=p1.then(function(e){p2=e.json(),p2.then(function(e){e?(amplify.store(i,e,{expires:o}),a(e)):n(null)})}))},s.hnapi=p}(window),function(e,t){"function"==typeof define&&define.amd?define("tappable",[],function(){return t(e, -window.document),e.tappable}):t(e,window.document)}(this,function(e,k){function $(e,t){return t=3==(t=k.elementFromPoint(e,t)).nodeType?t.parentNode:t}function n(e){return e.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")}function L(e,t){t&&(e.classList?e.classList.add(t):-1h.left-E&&nh.top-E&&ih.left-E&&nh.top-E&&i=t?e:""+Array(t+1-i.length).join(n)+e}var r="millisecond",f="second",d="minute",h="hour",m="day",p="week",v="month",a="quarter",b="year",o=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,w=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,e={s:i,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),e=Math.floor(n/60),n=n%60;return(t<=0?"+":"-")+i(e,2,"0")+":"+i(n,2,"0")},m:function(e,t){ -var n=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(n,v),r=t-i<0,e=e.clone().add(n+(r?-1:1),v);return Number(-(n+(t-i)/(r?i-e:e-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:v,y:b,w:p,d:m,D:"date",h:h,m:d,s:f,ms:r,Q:a}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},t={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), +var i=String(e);return!i||i.length>=t?e:""+Array(t+1-i.length).join(n)+e}var r="millisecond",d="second",f="minute",h="hour",m="day",p="week",v="month",a="quarter",b="year",o=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,w=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,e={s:i,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),e=Math.floor(n/60),n=n%60;return(t<=0?"+":"-")+i(e,2,"0")+":"+i(n,2,"0")},m:function(e,t){ +var n=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(n,v),r=t-i<0,e=e.clone().add(n+(r?-1:1),v);return Number(-(n+(t-i)/(r?i-e:e-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:v,y:b,w:p,d:m,D:"date",h:h,m:f,s:d,ms:r,Q:a}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},t={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},s="en",u={};u[s]=t;function c(e){return e instanceof T}function l(e,t,n){var i;return e?("string"==typeof e?(u[e]&&(i=e),t&&(u[e]=t,i=e)):(t=e.name,u[t]=e,i=t),n||(s=i),i):s}function y(e,t,n){return c(e)?e.clone():((t=t?"string"==typeof t?{format:t,pl:n}:t:{}).date=e,new T(t))}var g=e;g.l=l,g.i=c,g.w=function(e,t){return y(e,{locale:t.$L,utc:t.$u,$offset:t.$offset})};var T=((e=n.prototype ).parse=function(i){this.$d=function(){var e=i.date,t=i.utc;if(null===e)return new Date(NaN);if(g.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var n=e.match(o);if(n)return t?new Date(Date.UTC(n[1],n[2]-1,n[3]||1,n[4]||0,n[5]||0,n[6]||0,n[7]||0)):new Date(n[1],n[2]-1,n[3]||1,n[4]||0,n[5]||0,n[6]||0,n[7]||0)}return new Date(e)}(),this.init()},e.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(), this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},e.$utils=function(){return g},e.isValid=function(){return!("Invalid Date"===this.$d.toString())},e.isSame=function(e,t){e=y(e);return this.startOf(t)<=e&&e<=this.endOf(t)},e.isAfter=function(e,t){return y(e)'),i.b(i.v(i.f("comments_count",e,t,0))),i.b(" "),i.b(i.v(i.f("i_reply",e,t,0))),i.b(""),i.fl()},partials:{},subs:{}}),comments:new e({code:function(e,t,n){var i=this;return i.b(n=n||""),i.s(i.f("comments",e,t,1),e,t,0,13,418,"{{ }}")&&(i.rs(e,t,function(e,t,n){n.b('
  • "),n.s(n.f("deleted",e,t,1),e,t,1,0,0,"")||(n.b("

    "),n.b(n.t(n.f( @@ -71,28 +71,29 @@ for(var e=w.querySelectorAll(".view"),t=0,n=e.length;t'+y.news.markupStories(t -)+'

  • ';u.innerHTML=e,y.pub("onRenderNews")},t?(r=amplify.store("hacker-news"),(e=e.delay)?(l=!0,u.innerHTML=n.render({loading:!0}),setTimeout(function(){l=!1,i(r)},e)):i(r)):(l=!0,u.innerHTML=n.render({loading:!0}),o=function(){u.innerHTML=n.render({load_error:!0}),y.pub("logAPIError","news")},hnapi.news(null,function(e){l=!1,e&&!e.error?i(e):o()},function(e){l=!1,o() -})))},reload:function(){amplify.store("news-latest",null),hnapi.number=1,y.news.render({})},more:function(n){var e;n.classList.contains("loading")||(n.classList.add("loading"),amplify.store("hacker-news2"),e=n.dataset.date,hnapi.news(e,function(e){n.classList.remove("loading");var t=n.parentNode;t&&(t.parentNode&&t.parentNode.removeChild(t),e&&(t=e.slice(),t=y.news.markupStories(t),c("hwlist").insertAdjacentHTML("beforeend",t),e=e.next,c("hwlist").insertAdjacentHTML("beforeend", -'
  • ')))}))}};var t=c("view-comments"),S=t.querySelector("header h1"),M=t.querySelector("section");y.comments={currentID:null,render:function(t){if(t){var e=amplify.store.sessionStorage("hacker-item-"+t);if(y.comments.currentID!=t||!e){y.comments.currentID=t;function n(e,t){var n=function(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}(e),i=g("post-comments");if( -n.has_post=!!n.title||"comment"==n.type,!n.has_post)return y.setTitle(),S.innerHTML="",M.innerHTML=i.render(n),y.pub("adjustCommentsSection"),void y.pub("onRenderComments");var r,o,e=g("comments");/^item/i.test(n.url)?n.url="//news.ycombinator.com/"+n.url:n.domain=T(n.url),n.has_comments=n.comments&&!!n.comments.length,n.i_point=1==n.points?"point":"points",n.i_comment=1==n.comments_count?"comment":"comments",n.has_content=!!n.content,n.poll&&(o=r=0,n.poll.forEach(function(e){var t=e.points -;oul>li>ul"),m=g("comments-toggle"),p=0,c=h.length;p');var h=!1;document.addEventListener("touchstart",function(e){e=e.targetTouches[0].clientX;(e<20||e>window.innerWidth-20)&&(h=!0)}),document.addEventListener("touchend",function(e){h=!1}),ruto.config({ -before:function(e,t,n){var i,r=hw.previousView=hw.currentView,t=hw.currentView=t,o=hw.hideAllViews,a=$("view-"+t);switch(hw.setTitle(a.querySelector("header h1").textContent),t){case"home":d?(o(),$("overlay").classList.add("hide"),a.classList.remove("hidden"),(i=$("view-comments")).classList.remove("hidden"),i.querySelector("section").innerHTML='
    No Story Selected.
    ',i.querySelector("header h1").innerHTML="", -i.querySelector("header a.header-back-button").style.display="none",hw.comments.currentID=null,hw.pub("selectCurrentStory")):"comments"!=r||h?"about"!=r||h?(o(),a.classList.remove("hidden")):l({in:a,out:$("view-"+r),direction:"down"}):c({in:a,out:$("view-"+r),direction:"ltr"});break;case"about":d?(a.classList.remove("hidden"),$("view-home").classList.remove("hidden"),$("view-comments").classList.remove("hidden"),setTimeout(function(){$("overlay").classList.remove("hide")},1)):"home"!=r||h?(o(), -$("view-home").classList.remove("hidden"),a.classList.remove("hidden")):l({in:a,out:$("view-"+r),direction:"up"}),"undefined"!=typeof ga&&ga("send","pageview",e);break;case"comments":d?(o(),$("overlay").classList.add("hide"),a.classList.remove("hidden"),$("view-home").classList.remove("hidden"),hw.pub("selectCurrentStory",n[1]),a.querySelector("header a.header-back-button").style.display=""):"home"!=r||h?(o(),a.classList.remove("hidden")):((i=n[1])&&hw.comments.currentID!=i&&(a.querySelector( -"section").scrollTop=0),c({in:a,out:$("view-"+r),direction:"rtl"}))}}}),n.addEventListener("pagehide",function(){for(var e=o.querySelectorAll(".view"),t={},n=0,i=e.length;nheader a.header-button[href]",{ -noScroll:!0,onTap:function(e,t){t=t.hash;d&&/about/i.test(ruto.current)&&"#/"==t?ruto.back("/"):location.hash=t}}),tappable("#view-home-refresh",{noScroll:!0,onTap:hw.news.reload});var m,p=!1;tappable(".view>header h1",{onTap:function(e,t){var i,r=t.parentNode.nextElementSibling.firstElementChild;0==r.scrollTop||p||p||(p=!0,i=r.style.overflow,r.style.overflow="hidden",setTimeout(function(){r.style.overflow=i;var e=new TWEEN.Tween({scrollTop:r.scrollTop}).to({scrollTop:0},300).easing( -TWEEN.Easing.Cubic.InOut).onUpdate(function(){r.scrollTop=this.scrollTop}).onComplete(function(){cancelAnimationFrame(n),e.stop(),p=!1,delete e}).start(),t=function(){TWEEN.update(),requestAnimationFrame(t)},n=requestAnimationFrame(t)},200))}}),tappable("#view-home .tableview-links li>a:first-child",{allowClick:!d,activeClassDelay:100,inactiveClassDelay:d?100:1e3,onStart:function(e,t){var n;!d||(n=t.parentNode)&&(n=n.parentNode,m=setTimeout(function(){n&&n.classList.add("list-tapped")},100))}, -onMove:function(){d&&clearTimeout(m)},onEnd:function(e,t){var n;d&&(clearTimeout(m),n=t.parentNode.parentNode,setTimeout(function(){n&&n.classList.remove("list-tapped")},100))},onTap:function(e,t){t.classList.contains("more-link")?hw.news.more(t):/^#\//.test(t.getAttribute("href"))?location.hash=t.hash:t.href&&d&&n.open(t.href)}}),tappable("#view-about .grouped-tableview-links li>a:first-child",{allowClick:!0,activeClassDelay:100,inactiveClassDelay:1e3}),tappable( -"#view-home .tableview-links li>a.detail-disclosure",{noScroll:!0,noScrollDelay:100,onTap:function(e,t){"comments"!=hw.currentView&&(location.hash=t.hash)}}),tappable("button.comments-toggle",function(e,t){hw.comments.toggle(t)}),tappable("#view-comments .load-error button",hw.comments.reload),hw.sub("selectCurrentStory",function(e){if(d){e=e||(location.hash.match(/item\/(\d+)/)||[,""])[1];for(var t,n=$("view-home"),i=n.querySelectorAll("a[href].selected"),r=0,o=i.length;r'+y.news.markupStories(t +)+'
  • ';u.innerHTML=e,y.pub("onRenderNews")},t?(r=amplify.store("hacker-news"),(a=e.delay)?(l=!0,u.innerHTML=n.render({loading:!0}),setTimeout(function(){l=!1,i(r)},a)):i(r)):(l=!0,u.innerHTML=n.render({loading:!0}),o=function(){u.innerHTML=n.render({load_error:!0}),y.pub("logAPIError","news")},a=null,location.hash&&(a=location.hash.slice(7)),hnapi.news(a,function(e){ +l=!1,e&&!e.error?i(e):o()},function(e){l=!1,o()})))},reload:function(){ruto.go("/"),amplify.store("news-latest",null),hnapi.number=1,y.news.render({})},more:function(n){var e;n.classList.contains("loading")||(n.classList.add("loading"),amplify.store("hacker-news2"),e=n.dataset.date,hnapi.news(e,function(e){history.replaceState(null,null,document.location.pathname+"#/date/"+e.curr),n.classList.remove("loading");var t=n.parentNode;t&&(t.parentNode&&t.parentNode.removeChild(t),e&&(t=e.slice(), +t=y.news.markupStories(t),c("hwlist").insertAdjacentHTML("beforeend",t),e=e.next,c("hwlist").insertAdjacentHTML("beforeend",'
  • ')))}))}};var t=c("view-comments"),S=t.querySelector("header h1"),M=t.querySelector("section");y.comments={currentID:null,render:function(t){if(t){var e=amplify.store.sessionStorage("hacker-item-"+t);if(y.comments.currentID!=t||!e){y.comments.currentID=t;function n(e,t){ +var n=function(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}(e),i=g("post-comments");if(n.has_post=!!n.title||"comment"==n.type,!n.has_post)return y.setTitle(),S.innerHTML="",M.innerHTML=i.render(n),y.pub("adjustCommentsSection"),void y.pub("onRenderComments");var r,o,e=g("comments");/^item/i.test(n.url)?n.url="//news.ycombinator.com/"+n.url:n.domain=T(n.url),n.has_comments=n.comments&&!!n.comments.length,n.i_point=1==n.points?"point":"points", +n.i_comment=1==n.comments_count?"comment":"comments",n.has_content=!!n.content,n.poll&&(o=r=0,n.poll.forEach(function(e){var t=e.points;oul>li>ul"),m=g("comments-toggle"),p=0,c=h.length;p');var h=!1;document.addEventListener("touchstart", +function(e){e=e.targetTouches[0].clientX;(e<20||e>window.innerWidth-20)&&(h=!0)}),document.addEventListener("touchend",function(e){h=!1}),ruto.config({before:function(e,t,n){var i,r=hw.previousView=hw.currentView,t=hw.currentView=t,o=hw.hideAllViews,a=$("view-"+t);switch(hw.setTitle(a.querySelector("header h1").textContent),t){case"home":f?(o(),$("overlay").classList.add("hide"),a.classList.remove("hidden"),(i=$("view-comments")).classList.remove("hidden"),i.querySelector("section" +).innerHTML='
    No Story Selected.
    ',i.querySelector("header h1").innerHTML="",i.querySelector("header a.header-back-button").style.display="none",hw.comments.currentID=null,hw.pub("selectCurrentStory")):"comments"!=r||h?"about"!=r||h?(o(),a.classList.remove("hidden")):l({in:a,out:$("view-"+r),direction:"down"}):c({in:a,out:$("view-"+r),direction:"ltr"});break;case"about":f?(a.classList.remove("hidden"),$("view-home" +).classList.remove("hidden"),$("view-comments").classList.remove("hidden"),setTimeout(function(){$("overlay").classList.remove("hide")},1)):"home"!=r||h?(o(),$("view-home").classList.remove("hidden"),a.classList.remove("hidden")):l({in:a,out:$("view-"+r),direction:"up"}),"undefined"!=typeof ga&&ga("send","pageview",e);break;case"comments":f?(o(),$("overlay").classList.add("hide"),a.classList.remove("hidden"),$("view-home").classList.remove("hidden"),hw.pub("selectCurrentStory",n[1]), +a.querySelector("header a.header-back-button").style.display=""):"home"!=r||h?(o(),a.classList.remove("hidden")):((i=n[1])&&hw.comments.currentID!=i&&(a.querySelector("section").scrollTop=0),c({in:a,out:$("view-"+r),direction:"rtl"}))}}}),n.addEventListener("pagehide",function(){for(var e=o.querySelectorAll(".view"),t={},n=0,i=e.length;nheader a.header-button[href]",{noScroll:!0,onTap:function(e,t){t=t.hash;f&&/about/i.test(ruto.current)&&"#/"==t?ruto.back("/"):location.hash=t}}),tappable("#view-home-refresh",{noScroll:!0,onTap:hw.news.reload});var m,p=!1;tappable(".view>header h1",{onTap:function(e,t){var i,r=t.parentNode.nextElementSibling.firstElementChild;0==r.scrollTop||p||p||(p=!0, +i=r.style.overflow,r.style.overflow="hidden",setTimeout(function(){r.style.overflow=i;var e=new TWEEN.Tween({scrollTop:r.scrollTop}).to({scrollTop:0},300).easing(TWEEN.Easing.Cubic.InOut).onUpdate(function(){r.scrollTop=this.scrollTop}).onComplete(function(){cancelAnimationFrame(n),e.stop(),p=!1,delete e}).start(),t=function(){TWEEN.update(),requestAnimationFrame(t)},n=requestAnimationFrame(t)},200))}}),tappable("#view-home .tableview-links li>a:first-child",{allowClick:!f,activeClassDelay:100, +inactiveClassDelay:f?100:1e3,onStart:function(e,t){var n;!f||(n=t.parentNode)&&(n=n.parentNode,m=setTimeout(function(){n&&n.classList.add("list-tapped")},100))},onMove:function(){f&&clearTimeout(m)},onEnd:function(e,t){var n;f&&(clearTimeout(m),n=t.parentNode.parentNode,setTimeout(function(){n&&n.classList.remove("list-tapped")},100))},onTap:function(e,t){t.classList.contains("more-link")?hw.news.more(t):/^#\//.test(t.getAttribute("href"))?location.hash=t.hash:t.href&&f&&n.open(t.href)}}), +tappable("#view-about .grouped-tableview-links li>a:first-child",{allowClick:!0,activeClassDelay:100,inactiveClassDelay:1e3}),tappable("#view-home .tableview-links li>a.detail-disclosure",{noScroll:!0,noScrollDelay:100,onTap:function(e,t){"comments"!=hw.currentView&&(location.hash=t.hash)}}),tappable("button.comments-toggle",function(e,t){hw.comments.toggle(t)}),tappable("#view-comments .load-error button",hw.comments.reload),hw.sub("selectCurrentStory",function(e){if(f){e=e||( +location.hash.match(/item\/(\d+)/)||[,""])[1];for(var t,n=$("view-home"),i=n.querySelectorAll("a[href].selected"),r=0,o=i.length;r=e[i].date&&t.push(n),w=e[i].date;var r={id:(r=e[i]).id,title:r.link_text,url:r.link,domain:r.source,points:r.points,user:r.submitter,time_ago:relativeDate(1e3*r.date),time:r.date,comments_count:r.comments,type:"link"};r.i=p.number++,t.push(r)}var o=(o=dayjs.unix(w)).subtract(1,"day");return t.next=o.format("YYYYMMDD"),t} -p.number=1,p.news=function(e,t,n){var i="news-"+(e=e||"latest"),r="https://p.leftium.com/p?u=https://hckrnews.com/data/"+e+".js",o="latest"==e?6e4:2592e6;function a(e){e=g(e);t(e)}e=amplify.store(i);e?(console.log("HIT!: "+i),a(e)):(console.log("MISS!: "+i),p1=fetch(r),text=p1.then(function(e){p2=e.json(),p2.then(function(e){e?(amplify.store(i,e,{expires:o}),a(e)):n(null)})}))},s.hnapi=p}(window),function(e,t){"function"==typeof define&&define.amd?define("tappable",[],function(){return t(e, -window.document),e.tappable}):t(e,window.document)}(this,function(e,k){function L(e,t){return t=3==(t=k.elementFromPoint(e,t)).nodeType?t.parentNode:t}function n(e){return e.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")}function $(e,t){t&&(e.classList?e.classList.add(t):-1h.left-E&&nh.top-E&&ih.left-E&&nh.top-E&&i'+g.news.markupStories(t -)+'
  • ';l.innerHTML=e,g.pub("onRenderNews")},t?(r=amplify.store("hacker-news"),(e=e.delay)?(u=!0,l.innerHTML=n.render({loading:!0}),setTimeout(function(){u=!1,i(r)},e)):i(r)):(u=!0,l.innerHTML=n.render({loading:!0}),o=function(){l.innerHTML=n.render({load_error:!0}),g.pub("logAPIError","news")},hnapi.news(null,function(e){u=!1,e&&!e.error?i(e):o()},function(e){u=!1,o() -})))},reload:function(){amplify.store("news-latest",null),hnapi.number=1,g.news.render({})},more:function(n){var e;n.classList.contains("loading")||(n.classList.add("loading"),amplify.store("hacker-news2"),e=n.dataset.date,hnapi.news(e,function(e){n.classList.remove("loading");var t=n.parentNode;t&&(t.parentNode&&t.parentNode.removeChild(t),e&&(t=e.slice(),t=g.news.markupStories(t),c("hwlist").insertAdjacentHTML("beforeend",t),e=e.next,c("hwlist").insertAdjacentHTML("beforeend", -'
  • ')))}))}};var t=c("view-comments"),S=t.querySelector("header h1"),_=t.querySelector("section");g.comments={currentID:null,render:function(t){if(t){var e=amplify.store.sessionStorage("hacker-item-"+t);if(g.comments.currentID!=t||!e){g.comments.currentID=t;function n(e,t){var n=function(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}(e),i=y("post-comments");if( -n.has_post=!!n.title||"comment"==n.type,!n.has_post)return g.setTitle(),S.innerHTML="",_.innerHTML=i.render(n),g.pub("adjustCommentsSection"),void g.pub("onRenderComments");var r,o,e=y("comments");/^item/i.test(n.url)?n.url="//news.ycombinator.com/"+n.url:n.domain=T(n.url),n.has_comments=n.comments&&!!n.comments.length,n.i_point=1==n.points?"point":"points",n.i_comment=1==n.comments_count?"comment":"comments",n.has_content=!!n.content,n.poll&&(o=r=0,n.poll.forEach(function(e){var t=e.points -;oul>li>ul"),m=y("comments-toggle"),p=0,c=h.length;p':'
    '),ruto.config({before:function(e,t,n){var i,r=hw.currentView,o=hw.hideAllViews,a=$("view-"+t);switch(hw.setTitle(a.querySelector("header h1").textContent),t){case"home":f?(o(),$("overlay").classList.add("hide"), -a.classList.remove("hidden"),(i=$("view-comments")).classList.remove("hidden"),i.querySelector("section").innerHTML='
    No Story Selected.
    ',i.querySelector("header h1").innerHTML="",i.querySelector("header a.header-back-button").style.display="none",hw.comments.currentID=null,hw.pub("selectCurrentStory")):r?"about"==r?s({in:a,out:$("view-"+r),direction:"anticlockwise"}):"home"!=r&&l({in:a,out:$("view-"+r),direction:"ltr"} -):(o(),a.classList.remove("hidden")),hw.currentView="home";break;case"about":f?(a.classList.remove("hidden"),$("view-home").classList.remove("hidden"),$("view-comments").classList.remove("hidden"),setTimeout(function(){$("overlay").classList.remove("hide")},1)):r?"about"!=r&&s({in:a,out:$("view-home"),direction:"clockwise"}):(o(),a.classList.remove("hidden")),hw.currentView="about";break;case"comments":f?(o(),$("overlay").classList.add("hide"),a.classList.remove("hidden"),$("view-home" -).classList.remove("hidden"),hw.pub("selectCurrentStory",n[1]),a.querySelector("header a.header-back-button").style.display=""):r?"comments"!=r&&((i=n[1])&&hw.comments.currentID!=i&&(a.querySelector("section").scrollTop=0),l({in:a,out:$("view-"+r),direction:"rtl"})):(o(),a.classList.remove("hidden")),hw.currentView="comments"}}}),n.addEventListener("pagehide",function(){for(var e=o.querySelectorAll(".view"),t={},n=0,i=e.length;n.scroll"),r=null,Array.prototype.forEach.call(b,function(e){e.addEventListener("touchstart",function(){var e;n.innerHeight!=r&&(n.scrollTo(0,0),i&&((e=o.createElement("div")).style.height="600px",c.appendChild(e), -setTimeout(function(){c.removeChild(e)},100)),r=n.innerHeight)},!1)})),tappable(".view>header a.header-button[href]",{noScroll:!0,onTap:function(e,t){t=t.hash;f&&/about/i.test(ruto.current)&&"#/"==t?ruto.back("/"):location.hash=t}}),tappable("#view-home-refresh",{noScroll:!0,onTap:hw.news.reload});var h,m=!1;tappable(".view>header h1",{onTap:function(e,t){var n,i,r=t.parentNode.nextElementSibling.firstElementChild;0==r.scrollTop||m?a&&(n=c.style.height,c.style.height="100%",setTimeout(function( -){c.style.height=n},100)):m||(m=!0,i=r.style.overflow,r.style.overflow="hidden",setTimeout(function(){r.style.overflow=i;var e=new TWEEN.Tween({scrollTop:r.scrollTop}).to({scrollTop:0},300).easing(TWEEN.Easing.Cubic.InOut).onUpdate(function(){r.scrollTop=this.scrollTop}).onComplete(function(){cancelAnimationFrame(n),e.stop(),m=!1,delete e}).start(),t=function(){TWEEN.update(),requestAnimationFrame(t)},n=requestAnimationFrame(t)},200))}}),tappable("#view-home .tableview-links li>a:first-child",{ -allowClick:!f,activeClassDelay:100,inactiveClassDelay:f?100:1e3,onStart:function(e,t){var n;!f||(n=t.parentNode)&&(n=n.parentNode,h=setTimeout(function(){n&&n.classList.add("list-tapped")},100))},onMove:function(){f&&clearTimeout(h)},onEnd:function(e,t){var n;f&&(clearTimeout(h),n=t.parentNode.parentNode,setTimeout(function(){n&&n.classList.remove("list-tapped")},100))},onTap:function(e,t){t.classList.contains("more-link")?hw.news.more(t):/^#\//.test(t.getAttribute("href") -)?location.hash=t.hash:t.href&&f&&n.open(t.href)}}),tappable("#view-about .grouped-tableview-links li>a:first-child",{allowClick:!0,activeClassDelay:100,inactiveClassDelay:1e3}),tappable("#view-home .tableview-links li>a.detail-disclosure",{noScroll:!0,noScrollDelay:100,onTap:function(e,t){location.hash=t.hash}}),tappable("button.comments-toggle",function(e,t){hw.comments.toggle(t)}),tappable("#view-comments .load-error button",hw.comments.reload),hw.sub("selectCurrentStory",function(e){if(f){ -e=e||(location.hash.match(/item\/(\d+)/)||[,""])[1];for(var t,n=$("view-home"),i=n.querySelectorAll("a[href].selected"),r=0,o=i.length;r'+g.news.markupStories(t +)+'
  • ';l.innerHTML=e,g.pub("onRenderNews")},t?(r=amplify.store("hacker-news"),(a=e.delay)?(u=!0,l.innerHTML=n.render({loading:!0}),setTimeout(function(){u=!1,i(r)},a)):i(r)):(u=!0,l.innerHTML=n.render({loading:!0}),o=function(){l.innerHTML=n.render({load_error:!0}),g.pub("logAPIError","news")},a=null,location.hash&&(a=location.hash.slice(7)),hnapi.news(a,function(e){ +u=!1,e&&!e.error?i(e):o()},function(e){u=!1,o()})))},reload:function(){ruto.go("/"),amplify.store("news-latest",null),hnapi.number=1,g.news.render({})},more:function(n){var e;n.classList.contains("loading")||(n.classList.add("loading"),amplify.store("hacker-news2"),e=n.dataset.date,hnapi.news(e,function(e){history.replaceState(null,null,document.location.pathname+"#/date/"+e.curr),n.classList.remove("loading");var t=n.parentNode;t&&(t.parentNode&&t.parentNode.removeChild(t),e&&(t=e.slice(), +t=g.news.markupStories(t),c("hwlist").insertAdjacentHTML("beforeend",t),e=e.next,c("hwlist").insertAdjacentHTML("beforeend",'
  • ')))}))}};var t=c("view-comments"),S=t.querySelector("header h1"),_=t.querySelector("section");g.comments={currentID:null,render:function(t){if(t){var e=amplify.store.sessionStorage("hacker-item-"+t);if(g.comments.currentID!=t||!e){g.comments.currentID=t;function n(e,t){ +var n=function(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}(e),i=y("post-comments");if(n.has_post=!!n.title||"comment"==n.type,!n.has_post)return g.setTitle(),S.innerHTML="",_.innerHTML=i.render(n),g.pub("adjustCommentsSection"),void g.pub("onRenderComments");var r,o,e=y("comments");/^item/i.test(n.url)?n.url="//news.ycombinator.com/"+n.url:n.domain=T(n.url),n.has_comments=n.comments&&!!n.comments.length,n.i_point=1==n.points?"point":"points", +n.i_comment=1==n.comments_count?"comment":"comments",n.has_content=!!n.content,n.poll&&(o=r=0,n.poll.forEach(function(e){var t=e.points;oul>li>ul"),m=y("comments-toggle"),p=0,c=h.length;p':'
    '),ruto.config({before:function(e,t,n){var i, +r=hw.currentView,o=hw.hideAllViews,a=$("view-"+t);switch(hw.setTitle(a.querySelector("header h1").textContent),t){case"home":f?(o(),$("overlay").classList.add("hide"),a.classList.remove("hidden"),(i=$("view-comments")).classList.remove("hidden"),i.querySelector("section").innerHTML='
    No Story Selected.
    ',i.querySelector("header h1").innerHTML="",i.querySelector("header a.header-back-button").style.display="none", +hw.comments.currentID=null,hw.pub("selectCurrentStory")):r?"about"==r?s({in:a,out:$("view-"+r),direction:"anticlockwise"}):"home"!=r&&l({in:a,out:$("view-"+r),direction:"ltr"}):(o(),a.classList.remove("hidden")),hw.currentView="home";break;case"about":f?(a.classList.remove("hidden"),$("view-home").classList.remove("hidden"),$("view-comments").classList.remove("hidden"),setTimeout(function(){$("overlay").classList.remove("hide")},1)):r?"about"!=r&&s({in:a,out:$("view-home"),direction:"clockwise"} +):(o(),a.classList.remove("hidden")),hw.currentView="about";break;case"comments":f?(o(),$("overlay").classList.add("hide"),a.classList.remove("hidden"),$("view-home").classList.remove("hidden"),hw.pub("selectCurrentStory",n[1]),a.querySelector("header a.header-back-button").style.display=""):r?"comments"!=r&&((i=n[1])&&hw.comments.currentID!=i&&(a.querySelector("section").scrollTop=0),l({in:a,out:$("view-"+r),direction:"rtl"})):(o(),a.classList.remove("hidden")),hw.currentView="comments"}}}), +n.addEventListener("pagehide",function(){for(var e=o.querySelectorAll(".view"),t={},n=0,i=e.length;n.scroll"),r=null,Array.prototype.forEach.call(b, +function(e){e.addEventListener("touchstart",function(){var e;n.innerHeight!=r&&(n.scrollTo(0,0),i&&((e=o.createElement("div")).style.height="600px",c.appendChild(e),setTimeout(function(){c.removeChild(e)},100)),r=n.innerHeight)},!1)})),tappable(".view>header a.header-button[href]",{noScroll:!0,onTap:function(e,t){t=t.hash;f&&/about/i.test(ruto.current)&&"#/"==t?ruto.back("/"):location.hash=t}}),tappable("#view-home-refresh",{noScroll:!0,onTap:hw.news.reload});var h,m=!1;tappable( +".view>header h1",{onTap:function(e,t){var n,i,r=t.parentNode.nextElementSibling.firstElementChild;0==r.scrollTop||m?a&&(n=c.style.height,c.style.height="100%",setTimeout(function(){c.style.height=n},100)):m||(m=!0,i=r.style.overflow,r.style.overflow="hidden",setTimeout(function(){r.style.overflow=i;var e=new TWEEN.Tween({scrollTop:r.scrollTop}).to({scrollTop:0},300).easing(TWEEN.Easing.Cubic.InOut).onUpdate(function(){r.scrollTop=this.scrollTop}).onComplete(function(){cancelAnimationFrame(n), +e.stop(),m=!1,delete e}).start(),t=function(){TWEEN.update(),requestAnimationFrame(t)},n=requestAnimationFrame(t)},200))}}),tappable("#view-home .tableview-links li>a:first-child",{allowClick:!f,activeClassDelay:100,inactiveClassDelay:f?100:1e3,onStart:function(e,t){var n;!f||(n=t.parentNode)&&(n=n.parentNode,h=setTimeout(function(){n&&n.classList.add("list-tapped")},100))},onMove:function(){f&&clearTimeout(h)},onEnd:function(e,t){var n;f&&(clearTimeout(h),n=t.parentNode.parentNode,setTimeout( +function(){n&&n.classList.remove("list-tapped")},100))},onTap:function(e,t){t.classList.contains("more-link")?hw.news.more(t):/^#\//.test(t.getAttribute("href"))?location.hash=t.hash:t.href&&f&&n.open(t.href)}}),tappable("#view-about .grouped-tableview-links li>a:first-child",{allowClick:!0,activeClassDelay:100,inactiveClassDelay:1e3}),tappable("#view-home .tableview-links li>a.detail-disclosure",{noScroll:!0,noScrollDelay:100,onTap:function(e,t){location.hash=t.hash}}),tappable( +"button.comments-toggle",function(e,t){hw.comments.toggle(t)}),tappable("#view-comments .load-error button",hw.comments.reload),hw.sub("selectCurrentStory",function(e){if(f){e=e||(location.hash.match(/item\/(\d+)/)||[,""])[1];for(var t,n=$("view-home"),i=n.querySelectorAll("a[href].selected"),r=0,o=i.length;r/g,r=/\'/g,o=/\"/g,s=/[&<>\"\']/;function a(e){return String(null==e?"":e)}var f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}("undefined"!=typeof exports?exports:Hogan),function(a){function u(){return+new Date}var c=!!a.XDomainRequest,l="withCredentials"in new XMLHttpRequest||c,f=!1,d={};try{(f=new Worker("js/hnapi-worker.js")).addEventListener("message",function(e){var t,n=e.data,i=n.url||"";d[i]&&(e=( t=d[i]).error,t=t.success,delete d[i],n.error?e(n.error):t(n.response))},!1)}catch(e){}function r(t,e,n){var i,r,o,s;e=e||function(){},n=n||function(){},l?f?(d[t]={success:e,error:n},f.postMessage({url:t,timeout:2e4})):((i=d[t]||new(c?XDomainRequest:XMLHttpRequest))._timeout&&clearTimeout(i._timeout),i._timeout=setTimeout(function(){i.abort()},2e4),i.onload=function(){clearTimeout(this._timeout),delete d[t];try{e(JSON.parse(this.responseText))}catch(e){n(e)}}, i.onerror=i.onabort=i.ontimeout=function(e){clearTimeout(this._timeout),delete d[t],n(e)},(i.readyState<=1||c)&&(i.open("GET",t+"?"+u(),!0),i.send()),d[t]=i):(o=(r=a.document).createElement("script"),s="callback"+u(),a[s]=e,o.onerror=n,o.src=t+"?callback="+s,r.body.appendChild(o))}var o=["https://node-hnapi-eu.herokuapp.com/","https://node-hnapi.azurewebsites.net/","https://node-hnapi-eus.azurewebsites.net/"];!function(e){for(var t=e.length-1;0=e[i].date&&t.push(n),g=e[i].date;var r={id:(r=e[i]).id,title:r.link_text,url:r.link,domain:r.source,points:r.points,user:r.submitter,time_ago:relativeDate(1e3*r.date),time:r.date,comments_count:r.comments,type:"link"};r.i=h.number++,t.push(r)}var o=(o=dayjs.unix(g)).subtract(1,"day");return t.next=o.format("YYYYMMDD"),t} -h.number=1,h.news=function(e,t,n){var i="news-"+(e=e||"latest"),r="https://p.leftium.com/p?u=https://hckrnews.com/data/"+e+".js",o="latest"==e?6e4:2592e6;function s(e){e=y(e);t(e)}e=amplify.store(i);e?(console.log("HIT!: "+i),s(e)):(console.log("MISS!: "+i),p1=fetch(r),text=p1.then(function(e){p2=e.json(),p2.then(function(e){e?(amplify.store(i,e,{expires:o}),s(e)):n(null)})}))},a.hnapi=h}(window),function(e){function o(e,t){for(var n,i,r,o=!1;n=e,i=t,r=void 0,o=((r=s.documentElement -).matchesSelector||r.mozMatchesSelector||r.webkitMatchesSelector||r.oMatchesSelector||r.msMatchesSelector).call(n,i),!o&&(e=e.parentNode)&&e.ownerDocument;);return!!o&&e}var s=e.document;e.ibento=function(n,e,i){var r=s.body;r.addEventListener(e,function(e){var t=o(e.target,n);t&&i.call(r,e,t)})}}(window);var relativeDate=function(){var e=864e5,t=365*e,n=t/12,s=[[42e3,"just now"],[9e4,"a minute ago"],[36e5,"minutes ago",6e4],[54e5,"an hour ago"],[e,"hours ago",36e5],[2*e,"yesterday"],[7*e, -"days ago",e],[9072e5,"a week ago"],[n,"weeks ago",6048e5],[3942e6,"a month ago"],[t,"months ago",n],[1.5*t,"a year ago"],[Number.MAX_VALUE,"years ago",t]];return function(e,t){for(var n,i=(t=(t=t||(new Date).getTime())instanceof Date?t.getTime():t)-(e=e instanceof Date?e.getTime():e),r=-1,o=s.length;++r=t?e:""+Array(t+1-i.length).join(n)+e}var r="millisecond",f="second",d="minute",p="hour",m="day",h="week",b="month",s="quarter",v="year",o=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/, -g=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,e={s:i,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),e=Math.floor(n/60),n=n%60;return(t<=0?"+":"-")+i(e,2,"0")+":"+i(n,2,"0")},m:function(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(n,b),r=t-i<0,e=e.clone().add(n+(r?-1:1),b);return Number(-(n+(t-i)/(r?i-e:e-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:b,y:v,w:h,d:m,D:"date",h:p,m:d,s:f, +;e[t]=e[n],e[n]=i}}(o),o.unshift("https://api.hackerwebapp.com/");function s(e,t,n){r(o[0]+e,t,function(){h(0,e,t,n)})}var p=o.length,h=function(e,t,n,i){r(o[e]+t,n,e=e[i].date&&t.push(n),g=e[i].date;var r={id:(r=e[i]).id,title:r.link_text,url:r.link,domain:r.source,points:r.points,user:r.submitter,time_ago:relativeDate(1e3*r.date),time:r.date,comments_count:r.comments,type:"link"};r.i=m.number++,t.push(r)}var o=(o=dayjs.unix(g)).subtract(1,"day");return t.next=o.format("YYYYMMDD"),t} +m.number=1,m.news=function(t,n,i){var r="news-"+(t=t||"latest"),e="https://p.leftium.com/p?u=https://hckrnews.com/data/"+t+".js",o="latest"==t?6e4:2592e6;function s(e){e=y(e);e.curr=t,n(e)}var a=amplify.store(r);a?(console.log("HIT!: "+r),s(a)):(console.log("MISS!: "+r),p1=fetch(e),text=p1.then(function(e){p2=e.json(),p2.then(function(e){e?(amplify.store(r,e,{expires:o}),s(e)):i(null)})}))},a.hnapi=m}(window),function(e){function o(e,t){for(var n,i,r,o=!1;n=e,i=t,r=void 0,o=(( +r=s.documentElement).matchesSelector||r.mozMatchesSelector||r.webkitMatchesSelector||r.oMatchesSelector||r.msMatchesSelector).call(n,i),!o&&(e=e.parentNode)&&e.ownerDocument;);return!!o&&e}var s=e.document;e.ibento=function(n,e,i){var r=s.body;r.addEventListener(e,function(e){var t=o(e.target,n);t&&i.call(r,e,t)})}}(window);var relativeDate=function(){var e=864e5,t=365*e,n=t/12,s=[[42e3,"just now"],[9e4,"a minute ago"],[36e5,"minutes ago",6e4],[54e5,"an hour ago"],[e,"hours ago",36e5],[2*e, +"yesterday"],[7*e,"days ago",e],[9072e5,"a week ago"],[n,"weeks ago",6048e5],[3942e6,"a month ago"],[t,"months ago",n],[1.5*t,"a year ago"],[Number.MAX_VALUE,"years ago",t]];return function(e,t){for(var n,i=(t=(t=t||(new Date).getTime())instanceof Date?t.getTime():t)-(e=e instanceof Date?e.getTime():e),r=-1,o=s.length;++r=t?e:""+Array(t+1-i.length).join(n)+e}var r="millisecond",f="second",d="minute",p="hour",h="day",m="week",b="month",s="quarter",v="year",o=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/, +g=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,e={s:i,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),e=Math.floor(n/60),n=n%60;return(t<=0?"+":"-")+i(e,2,"0")+":"+i(n,2,"0")},m:function(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(n,b),r=t-i<0,e=e.clone().add(n+(r?-1:1),b);return Number(-(n+(t-i)/(r?i-e:e-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:b,y:v,w:m,d:h,D:"date",h:p,m:d,s:f, ms:r,Q:s}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},t={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},a="en",u={};u[a]=t;function c(e){return e instanceof _}function l(e,t,n){var i;return e?("string"==typeof e?(u[e]&&(i=e),t&&(u[e]=t,i=e)):(t=e.name,u[t]=e,i=t),n||(a=i),i):a}function y(e,t,n){return c(e )?e.clone():((t=t?"string"==typeof t?{format:t,pl:n}:t:{}).date=e,new _(t))}var w=e;w.l=l,w.i=c,w.w=function(e,t){return y(e,{locale:t.$L,utc:t.$u,$offset:t.$offset})};var _=((e=n.prototype).parse=function(i){this.$d=function(){var e=i.date,t=i.utc;if(null===e)return new Date(NaN);if(w.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var n=e.match(o);if(n)return t?new Date(Date.UTC(n[1],n[2]-1,n[3]||1,n[4]||0,n[5]||0,n[6]||0,n[7]||0)):new Date( n[1],n[2]-1,n[3]||1,n[4]||0,n[5]||0,n[6]||0,n[7]||0)}return new Date(e)}(),this.init()},e.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},e.$utils=function(){return w},e.isValid=function(){return!("Invalid Date"===this.$d.toString())},e.isSame=function(e,t){e=y(e);return this.startOf(t)<=e&&e<=this.endOf(t)},e.isAfter=function(e,t){ -return y(e)'),i.b(i.v(i.f("comments_count",e,t,0))),i.b(" "),i.b(i.v(i.f("i_reply",e,t,0))),i.b(""),i.fl()},partials:{},subs:{}}),comments:new e({code:function(e,t,n){var i=this;return i.b(n=n||""),i.s(i.f("comments",e,t,1),e,t,0,13,418,"{{ }}")&&(i.rs(e,t,function(e,t,n){n.b( '
  • ';u.innerHTML=e,y.pub("onRenderNews")},t?(r=amplify.store("hacker-news"),(e=e.delay)?(l=!0,u.innerHTML=n.render({loading:!0}),setTimeout(function(){l=!1,i(r)},e)):i(r)):(l=!0,u.innerHTML=n.render({loading:!0}),o=function(){u.innerHTML=n.render({load_error:!0}),y.pub("logAPIError","news")},hnapi.news(null,function(e){l=!1,e&&!e.error?i(e):o()},function(e){l=!1,o() -})))},reload:function(){amplify.store("news-latest",null),hnapi.number=1,y.news.render({})},more:function(n){var e;n.classList.contains("loading")||(n.classList.add("loading"),amplify.store("hacker-news2"),e=n.dataset.date,hnapi.news(e,function(e){n.classList.remove("loading");var t=n.parentNode;t&&(t.parentNode&&t.parentNode.removeChild(t),e&&(t=e.slice(),t=y.news.markupStories(t),c("hwlist").insertAdjacentHTML("beforeend",t),e=e.next,c("hwlist").insertAdjacentHTML("beforeend", -'
  • ')))}))}};var t=c("view-comments"),S=t.querySelector("header h1"),k=t.querySelector("section");y.comments={currentID:null,render:function(t){if(t){var e=amplify.store.sessionStorage("hacker-item-"+t);if(y.comments.currentID!=t||!e){y.comments.currentID=t;function n(e,t){var n=function(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}(e),i=w("post-comments");if( -n.has_post=!!n.title||"comment"==n.type,!n.has_post)return y.setTitle(),S.innerHTML="",k.innerHTML=i.render(n),y.pub("adjustCommentsSection"),void y.pub("onRenderComments");var r,o,e=w("comments");/^item/i.test(n.url)?n.url="//news.ycombinator.com/"+n.url:n.domain=_(n.url),n.has_comments=n.comments&&!!n.comments.length,n.i_point=1==n.points?"point":"points",n.i_comment=1==n.comments_count?"comment":"comments",n.has_content=!!n.content,n.poll&&(o=r=0,n.poll.forEach(function(e){var t=e.points -;oul>li>ul"),m=w("comments-toggle"),h=0,c=p.length;h.scroll{min-height: "+e+"px}"},!1),i.addEventListener("orientationchange",a,!1),a(),ibento("#view-home-refresh","click",hw.news.reload),ibento("#view-home .more-link","click",function(e,t){hw.news.more(t)}),ibento("button.comments-toggle","click",function(e,t){hw.comments.toggle(t)}),ibento( -"#view-comments .load-error button","click",hw.comments.reload),/Mobile;.*Firefox/.test(navigator.userAgent)&&navigator.mozApps&&((u=navigator.mozApps.getSelf()).onsuccess=function(){u.result&&ibento('a[href]:not([href^="#"])',"click",function(e,t){e.preventDefault(),window.open(t.href,"browser")})}),window.onload=hw.init)}(window); +amplify.store(e,o),(e=c("story-"+t))&&(n.selected=!!e.querySelector("a[href].selected"),n.i=e.dataset?e.dataset.index:e.getAttribute("data-index"),e.insertAdjacentHTML("afterend",y.news.markupStory(n)),e.parentNode.removeChild(e))))}},render:function(e){var t,n,i,r,o,s;l||(e=e||{},t=amplify.store("hacker-news-cached"),n=w("stories-load"),i=function(e){var t=e.slice(),e=e.next,e='';u.innerHTML=e,y.pub("onRenderNews")},t?(r=amplify.store("hacker-news"),(s=e.delay)?(l=!0,u.innerHTML=n.render({loading:!0}),setTimeout(function(){l=!1,i(r)},s)):i(r)):(l=!0,u.innerHTML=n.render({loading:!0}),o=function(){u.innerHTML=n.render({load_error:!0}),y.pub("logAPIError","news")},s=null,location.hash&&(s=location.hash.slice(7)),hnapi.news(s,function(e){ +l=!1,e&&!e.error?i(e):o()},function(e){l=!1,o()})))},reload:function(){ruto.go("/"),amplify.store("news-latest",null),hnapi.number=1,y.news.render({})},more:function(n){var e;n.classList.contains("loading")||(n.classList.add("loading"),amplify.store("hacker-news2"),e=n.dataset.date,hnapi.news(e,function(e){history.replaceState(null,null,document.location.pathname+"#/date/"+e.curr),n.classList.remove("loading");var t=n.parentNode;t&&(t.parentNode&&t.parentNode.removeChild(t),e&&(t=e.slice(), +t=y.news.markupStories(t),c("hwlist").insertAdjacentHTML("beforeend",t),e=e.next,c("hwlist").insertAdjacentHTML("beforeend",'
  • ')))}))}};var t=c("view-comments"),S=t.querySelector("header h1"),k=t.querySelector("section");y.comments={currentID:null,render:function(t){if(t){var e=amplify.store.sessionStorage("hacker-item-"+t);if(y.comments.currentID!=t||!e){y.comments.currentID=t;function n(e,t){ +var n=function(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}(e),i=w("post-comments");if(n.has_post=!!n.title||"comment"==n.type,!n.has_post)return y.setTitle(),S.innerHTML="",k.innerHTML=i.render(n),y.pub("adjustCommentsSection"),void y.pub("onRenderComments");var r,o,e=w("comments");/^item/i.test(n.url)?n.url="//news.ycombinator.com/"+n.url:n.domain=_(n.url),n.has_comments=n.comments&&!!n.comments.length,n.i_point=1==n.points?"point":"points", +n.i_comment=1==n.comments_count?"comment":"comments",n.has_content=!!n.content,n.poll&&(o=r=0,n.poll.forEach(function(e){var t=e.points;oul>li>ul"),h=w("comments-toggle"),m=0,c=p.length;m.scroll{min-height: "+e+"px}"},!1),i.addEventListener("orientationchange",a,!1),a(),ibento("#view-home-refresh","click",hw.news.reload),ibento( +"#view-home .more-link","click",function(e,t){hw.news.more(t)}),ibento("button.comments-toggle","click",function(e,t){hw.comments.toggle(t)}),ibento("#view-comments .load-error button","click",hw.comments.reload),/Mobile;.*Firefox/.test(navigator.userAgent)&&navigator.mozApps&&((u=navigator.mozApps.getSelf()).onsuccess=function(){u.result&&ibento('a[href]:not([href^="#"])',"click",function(e,t){e.preventDefault(),window.open(t.href,"browser")})}),window.onload=hw.init)}(window); //# sourceMappingURL=hw-web.min.js.map \ No newline at end of file diff --git a/js/hw-web.min.js.map b/js/hw-web.min.js.map index 588ea68..49efe88 100644 --- a/js/hw-web.min.js.map +++ b/js/hw-web.min.js.map @@ -1 +1 @@ -{"version":3,"file":"hw-web.min.js","sources":["../assets/js/libs/ruto.js","../assets/js/libs/amplify.store.js","../assets/js/libs/hogan.js","../assets/js/libs/hnapi.js","../assets/js/libs/ibento.js","../assets/js/libs/relative-date.js","../assets/js/libs/dayjs.js","../assets/js/templates.js","../assets/js/hw.js","../assets/js/hw-web.js"],"names":["w","noop","hashchange","hash","location","slice","found","current","ruto","options","defaultPath","previous","i","l","routes","length","route","path","name","fn","toLowerCase","before","call","on","matches","match","apply","notfound","config","opts","o","hasOwnProperty","add","push","go","back","history","init","addEventListener","reload","window","amplify","undefined","store","key","value","type","types","addType","storage","error","webStorageType","memory","timeout","rprefix","createFromStorageInterface","storageType","storedValue","parsed","remove","ret","now","Date","getTime","test","JSON","parse","getItem","expires","replace","data","pop","removeItem","stringify","setItem","localStorage","sessionStorage","e","globalStorage","hostname","copy","obj","div","document","createElement","attrKey","style","display","getElementsByTagName","appendChild","addBehavior","load","parentNode","removeChild","attr","prevValue","XMLDocument","documentElement","attributes","removeAttribute","save","getAttribute","setAttribute","userData","clearTimeout","setTimeout","this","Hogan","findInScope","scope","doModelGet","val","get","Template","codeObj","text","compiler","r","code","c","partials","subs","buf","prototype","context","indent","v","str","coerceToString","hChars","rAmp","rLt","rGt","rApos","rQuot","t","render","ri","ep","symbol","partial","template","instance","base","Error","compile","stackText","activeSub","stackSubs","stackPartials","PartialTemplate","Substitutions","subsText","createSpecializedPartial","rp","rs","section","tail","isArray","s","ctx","inverted","start","end","tags","pass","ms","d","returnFound","names","split","f","modelGet","cx","mv","ls","func","oldTags","delimiters","b","ct","disableLambda","fl","result","textSource","substring","sub","String","Array","a","Object","toString","exports","date","supportXDomainRequest","XDomainRequest","supportCORS","XMLHttpRequest","worker","requests","Worker","success","url","response","req","callback","postMessage","_timeout","abort","onload","responseText","onerror","onabort","ontimeout","readyState","open","send","src","body","urls","array","j","Math","floor","random","temp","shuffle","unshift","reqs","reqAgain","hnapi","_news","_news2","item","id","comments","last_visit","num_visits","last_time","Number","MAX_SAFE_INTEGER","process_entries","entries","hnapi_entries","last_visit_item","visit_count","time_ago","relativeDate","hnapi_entry","entry","title","link_text","link","domain","source","points","user","submitter","time","comments_count","number","day","dayjs","unix","subtract","next","format","news","onSuccess","results","console","log","p1","fetch","then","res","p2","json","closest","node","selector","root","matchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","msMatchesSelector","ownerDocument","ibento","event","target","DAY","YEAR","MONTH","formats","MAX_VALUE","input","reference","delta","len","round","module","n","define","amd","join","u","h","z","utcOffset","abs","m","year","month","clone","ceil","p","M","y","D","Q","$","weekdays","months","g","pl","locale","$L","utc","$u","$offset","$d","NaN","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","hour","minute","second","millisecond","valueOf","toDate","$locale","weekStart","$set","min","daysInMonth","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","extend","isDayjs","en","Ls","TEMPLATES","comments-toggle","