From 01b50df1623fcb8f6d86967834e3ba90d1d1afcd Mon Sep 17 00:00:00 2001 From: thuhole Date: Wed, 8 Jul 2020 03:29:21 +0000 Subject: [PATCH] 200708112919 --- CNAME | 2 +- asset-manifest.json | 6 +++--- index.html | 2 +- ... precache-manifest.6c32bee72519c8873d00a3665712b0b2.js | 8 ++++---- service-worker.js | 2 +- .../js/{main.8ace1835.chunk.js => main.82b47677.chunk.js} | 4 ++-- ...n.8ace1835.chunk.js.map => main.82b47677.chunk.js.map} | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) rename precache-manifest.41228c71a29250771e8af2133bd793b3.js => precache-manifest.6c32bee72519c8873d00a3665712b0b2.js (98%) rename static/js/{main.8ace1835.chunk.js => main.82b47677.chunk.js} (99%) rename static/js/{main.8ace1835.chunk.js.map => main.82b47677.chunk.js.map} (99%) diff --git a/CNAME b/CNAME index d8132a1..c6e8287 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -tst.thuhole.com \ No newline at end of file +dev.thuhole.com \ No newline at end of file diff --git a/asset-manifest.json b/asset-manifest.json index c42a019..8073930 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,15 +1,15 @@ { "files": { "main.css": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/css/main.41e0671f.chunk.css", - "main.js": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/main.8ace1835.chunk.js", - "main.js.map": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/main.8ace1835.chunk.js.map", + "main.js": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/main.82b47677.chunk.js", + "main.js.map": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/main.82b47677.chunk.js.map", "runtime~main.js": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/runtime~main.a9c024a1.js", "runtime~main.js.map": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/runtime~main.a9c024a1.js.map", "static/css/2.01da1c71.chunk.css": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/css/2.01da1c71.chunk.css", "static/js/2.8759de54.chunk.js": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/2.8759de54.chunk.js", "static/js/2.8759de54.chunk.js.map": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/2.8759de54.chunk.js.map", "index.html": "./index.html", - "precache-manifest.41228c71a29250771e8af2133bd793b3.js": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/precache-manifest.41228c71a29250771e8af2133bd793b3.js", + "precache-manifest.6c32bee72519c8873d00a3665712b0b2.js": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/precache-manifest.6c32bee72519c8873d00a3665712b0b2.js", "service-worker.js": "./service-worker.js", "static/css/2.01da1c71.chunk.css.map": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/css/2.01da1c71.chunk.css.map", "static/css/main.41e0671f.chunk.css.map": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/css/main.41e0671f.chunk.css.map", diff --git a/index.html b/index.html index c7e808c..9fa5097 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -T大树洞
\ No newline at end of file +T大树洞
\ No newline at end of file diff --git a/precache-manifest.41228c71a29250771e8af2133bd793b3.js b/precache-manifest.6c32bee72519c8873d00a3665712b0b2.js similarity index 98% rename from precache-manifest.41228c71a29250771e8af2133bd793b3.js rename to precache-manifest.6c32bee72519c8873d00a3665712b0b2.js index af69bc5..d5d01ab 100644 --- a/precache-manifest.41228c71a29250771e8af2133bd793b3.js +++ b/precache-manifest.6c32bee72519c8873d00a3665712b0b2.js @@ -1,6 +1,6 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "b13bcff4dac1c8771c41eb00d47be4c3", + "revision": "12e623696e6b0ede0141843cea502a84", "url": "./index.html" }, { @@ -8,7 +8,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/css/2.01da1c71.chunk.css" }, { - "revision": "43495ca6f09fb9faa150", + "revision": "8c5ed7de59ab4592c3a9", "url": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/css/main.41e0671f.chunk.css" }, { @@ -16,8 +16,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/2.8759de54.chunk.js" }, { - "revision": "43495ca6f09fb9faa150", - "url": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/main.8ace1835.chunk.js" + "revision": "8c5ed7de59ab4592c3a9", + "url": "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/static/js/main.82b47677.chunk.js" }, { "revision": "62bace3391c0c82c1116", diff --git a/service-worker.js b/service-worker.js index 1d471a8..e173168 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/precache-manifest.41228c71a29250771e8af2133bd793b3.js" + "//cdn.jsdelivr.net/gh/thuhole/webhole@gh-pages/precache-manifest.6c32bee72519c8873d00a3665712b0b2.js" ); self.addEventListener('message', (event) => { diff --git a/static/js/main.8ace1835.chunk.js b/static/js/main.82b47677.chunk.js similarity index 99% rename from static/js/main.8ace1835.chunk.js rename to static/js/main.82b47677.chunk.js index 78d2fa4..0f16ed3 100644 --- a/static/js/main.8ace1835.chunk.js +++ b/static/js/main.82b47677.chunk.js @@ -1,2 +1,2 @@ -(window.webpackJsonpwebhole=window.webpackJsonpwebhole||[]).push([[0],{131:function(e,t){},150:function(e,t,n){},426:function(e,t,n){},428:function(e,t,n){},429:function(e,t,n){},438:function(e,t,n){},439:function(e,t,n){},440:function(e,t,n){},441:function(e,t,n){},442:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(10),i=n.n(r),s=(n(86),n(1)),l=n(2),c=n(4),u=n(3),h=n(6),d=n(5),p=n(22),m=n(9),f=n(23),g=n.n(f),b=function(){function e(){Object(s.a)(this,e),this.names={},this.current_h=Math.random()}return Object(l.a)(e,[{key:"get",value:function(e){return"\u6d1e\u4e3b"===(e=e.toLowerCase())?["hsl(0,0%,97%)","hsl(0,0%,16%)"]:(this.names[e]||(this.current_h+=.618033988749895,this.current_h%=1,this.names[e]=["hsl(".concat(360*this.current_h,", 50%, 90%)"),"hsl(".concat(360*this.current_h,", 60%, 20%)")]),this.names[e])}}]),e}(),v=/(^|[^\d\u20e3\ufe0e\ufe0f])(#\d{1,7})(?![\d\u20e3\ufe0e\ufe0f])/g,E=/((?:https?:\/\/)?thuhole\.com\/?#(?:#|%23)(\d{1,7}))(?!\d|\u20e3|\ufe0e|\ufe0f)/g,_=/(^|[^A-Za-z])((?:(?:Angry|Baby|Crazy|Diligent|Excited|Fat|Greedy|Hungry|Interesting|Jolly|Kind|Little|Magic|Na\xefve|Old|PKU|Quiet|Rich|Superman|Tough|Undefined|Valuable|Wifeless|Xiangbuchulai|Young|Zombie)\s)?(?:Alice|Bob|Carol|Dave|Eve|Francis|Grace|Hans|Isabella|Jason|Kate|Louis|Margaret|Nathan|Olivia|Paul|Queen|Richard|Susan|Thomas|Uma|Vivian|Winnie|Xander|Yasmine|Zach)|You Win(?: \d+)?|\u6d1e\u4e3b)(?![A-Za-z])/gi,w=/(^|[^.@a-zA-Z0-9_])((?:https?:\/\/)?(?:(?:[\w-]+\.)+[a-zA-Z]{2,3}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d{1,5})?(?:\/[\w~!@#$%^&*()\-_=+[\]{};:,./?|]*)?)(?![a-zA-Z0-9])/gi;function A(e,t){return e=[[null,e]],t.forEach(function(t){var n=Object(m.a)(t,2),a=n[0],o=n[1];e=[].concat.apply([],e.map(function(e){var t=Object(m.a)(e,2),n=t[0],r=t[1];return n?[e]:r.split(o).map(function(e){return o.test(e)?[a,e]:[null,e]}).filter(function(e){var t=Object(m.a)(e,2),n=t[0],a=t[1];return null!==n||a})}))}),e}var k=n(66),y=n.n(k),O=n(67),j=n.n(O),C=n(68),N=n.n(C),x=(n(90),n(91),n(69)),S=n.n(x),I=n(70),D=n.n(I),U=n(71),R=n.n(U),H=n(72),T=n.n(H),L=n(73),Q=n.n(L),M=n(74),P=n.n(M),G=(n(92),n(93),n(75)),X=n.n(G);function F(e){if(!e.ok)throw Error("\u7f51\u7edc\u9519\u8bef ".concat(e.status," ").concat(e.statusText));return e.text().then(function(e){try{return JSON.parse(e)}catch(t){throw console.error("json parse error"),console.trace(t),console.log(e),new SyntaxError("JSON Parse Error "+e.substr(0,50))}})}function V(){return"&PKUHelperAPI=3.0&jsapiver="+encodeURIComponent("Travis200708110644-"+2*Math.floor(+new Date/72e5))}var W=n(35),B="pkuhelper_login_popup_anchor";function K(e){return e<10?"0"+e:""+e}function Y(e){return"".concat(e.getMonth()+1,"-").concat(K(e.getDate())," ").concat(e.getHours(),":").concat(K(e.getMinutes()),":").concat(K(e.getSeconds()))}var z=N()(j.a);function q(e){var t=new Date(1e3*e.stamp);return o.a.createElement("span",{className:"time-str"},o.a.createElement(y.a,{date:t,formatter:z,title:t.toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1})}),"\xa0",Y(t))}function Z(e){return o.a.createElement("p",{className:"centered-line title-line aux-margin"},o.a.createElement("span",{className:"black-outline"},e.text))}S.a,D.a,R.a,T.a,Q.a,P.a,X.a;var J=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={loading_status:"idle",recaptcha_verified:!1},n.username_ref=o.a.createRef(),n.password_ref=o.a.createRef(),n.input_token_ref=o.a.createRef(),n.popup_anchor=document.getElementById(B),n.popup_anchor||(n.popup_anchor=document.createElement("div"),n.popup_anchor.id=B,document.body.appendChild(n.popup_anchor)),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"do_sendcode",value:function(e){var t=this;this.state.recaptcha_verified?"loading"!==this.state.loading_status&&this.setState({loading_status:"loading"},function(){fetch("//thuhole.com/api_xmcp/login/send_code?user="+encodeURIComponent(t.username_ref.current.value)+"&code_type="+encodeURIComponent(e)+"&recaptcha_token="+localStorage.recaptcha+V(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({excluded_scopes:[]})}).then(F).then(function(e){if(console.log(e),!e.success)throw new Error(JSON.stringify(e));alert(e.msg),t.setState({loading_status:"done"})}).catch(function(e){console.error(e),alert("\u53d1\u9001\u5931\u8d25\n"+e),t.setState({loading_status:"done"})})}):alert("reCAPTCHA\u98ce\u63a7\u7cfb\u7edf\u6b63\u5728\u8bc4\u4f30\u60a8\u7684\u6d4f\u89c8\u5668\u5b89\u5168\u72b6\u6001\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002")}},{key:"do_login",value:function(e){var t=this;"loading"!==this.state.loading_status&&this.setState({loading_status:"loading"},function(){fetch("//thuhole.com/api_xmcp/login/login?user="+encodeURIComponent(t.username_ref.current.value)+"&valid_code="+encodeURIComponent(t.password_ref.current.value)+V(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({excluded_scopes:[]})}).then(F).then(function(n){if(0!==n.code){if(n.msg)throw new Error(n.msg);throw new Error(JSON.stringify(n))}e(n.user_token),alert("\u767b\u5f55\u6210\u529f"),t.setState({loading_status:"done"}),t.props.on_close()}).catch(function(e){console.error(e),alert("\u767b\u5f55\u5931\u8d25\n"+e),t.setState({loading_status:"done"})})})}},{key:"do_input_token",value:function(e){var t=this;if("loading"!==this.state.loading_status){var n=this.input_token_ref.current.value;this.setState({loading_status:"loading"},function(){fetch("//thuhole.com/api_xmcp/hole/system_msg?user_token="+encodeURIComponent(n)+V()).then(function(e){return e.json()}).then(function(a){if(a.error)throw new Error(a.error);if(0===a.result.length)throw new Error("result check failed");t.setState({loading_status:"done"}),e(n),t.props.on_close()}).catch(function(e){alert("Token\u68c0\u9a8c\u5931\u8d25\n"+e),t.setState({loading_status:"done"}),console.error(e)})})}}},{key:"render",value:function(){var e=this;return i.a.createPortal(o.a.createElement(W.b,{reCaptchaKey:"6Leq0a0ZAAAAAHEStocsqtJfKEs9APB0LdgzTNfZ",useRecaptchaNet:!0},o.a.createElement(W.a,{onVerify:function(t){e.setState({recaptcha_verified:!0}),localStorage.recaptcha=t}}),o.a.createElement("div",null,o.a.createElement("div",{className:"thuhole-login-popup-shadow"}),o.a.createElement("div",{className:"thuhole-login-popup"},o.a.createElement("p",null,o.a.createElement("b",null,"\u63a5\u6536\u9a8c\u8bc1\u7801\u6765\u767b\u5f55 T\u5927\u6811\u6d1e")),o.a.createElement("p",null,o.a.createElement("label",null,"\u3000\u90ae\u7bb1\xa0",o.a.createElement("input",{ref:this.username_ref,type:"email",autoFocus:!0,defaultValue:"@mails.tsinghua.edu.cn"})),o.a.createElement("span",{className:"thuhole-login-type"},o.a.createElement("a",{onClick:function(t){return e.do_sendcode("mail")}},"\xa0\u53d1\u9001\u90ae\u4ef6\xa0"))),o.a.createElement("p",null,o.a.createElement("label",null,"\u9a8c\u8bc1\u7801\xa0",o.a.createElement("input",{ref:this.password_ref,type:"tel"})),o.a.createElement("button",{type:"button",disabled:"loading"===this.state.loading_status,onClick:function(t){return e.do_login(e.props.token_callback)}},"\u767b\u5f55")),o.a.createElement("hr",null),o.a.createElement("p",null,o.a.createElement("b",null,"\u4ece\u5176\u4ed6\u8bbe\u5907\u5bfc\u5165\u767b\u5f55\u72b6\u6001")),o.a.createElement("p",null,o.a.createElement("input",{ref:this.input_token_ref,placeholder:"User Token"}),o.a.createElement("button",{type:"button",disabled:"loading"===this.state.loading_status,onClick:function(t){return e.do_input_token(e.props.token_callback)}},"\u5bfc\u5165")),o.a.createElement("hr",null),o.a.createElement("p",{style:{fontSize:11}},"This site is protected by reCAPTCHA and the Google ",o.a.createElement("a",{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",o.a.createElement("a",{href:"https://policies.google.com/terms"},"Terms of Service")," apply."),o.a.createElement("p",null,o.a.createElement("button",{onClick:this.props.on_close},"\u53d6\u6d88"))))),this.popup_anchor)}}]),t}(a.Component),$=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={popup_show:!1},n.on_popup_bound=n.on_popup.bind(Object(h.a)(n)),n.on_close_bound=n.on_close.bind(Object(h.a)(n)),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"on_popup",value:function(){this.setState({popup_show:!0})}},{key:"on_close",value:function(){this.setState({popup_show:!1})}},{key:"render",value:function(){return o.a.createElement(o.a.Fragment,null,this.props.children(this.on_popup_bound),this.state.popup_show&&o.a.createElement(J,{token_callback:this.props.token_callback,on_close:this.on_close_bound}))}}]),t}(a.Component),ee="hole_cache_db",te=1,ne=function(){function e(){var t=this;Object(s.a)(this,e),this.db=null,this.added_items_since_maintenance=0,this.encrypt=this.encrypt.bind(this),this.decrypt=this.decrypt.bind(this);var n=indexedDB.open(ee,te);n.onerror=console.error.bind(console),n.onupgradeneeded=function(e){console.log("comment cache db upgrade"),e.target.result.createObjectStore("comment",{keyPath:"pid"}).createIndex("last_access","last_access",{unique:!1})},n.onsuccess=function(e){console.log("comment cache db loaded"),t.db=e.target.result,setTimeout(t.maintenance.bind(t),1)}}return Object(l.a)(e,[{key:"encrypt",value:function(e,t){for(var n=JSON.stringify(t),a="",o=0,r=(42^e)%128;o1e3?(console.log("comment cache db maintenance",a),t.index("last_access").openKeyCursor().onsuccess=function(e){var n=e.target.result;n&&(t.delete(n.primaryKey),--a>1e3&&n.continue())}):console.log("comment cache db no need to maintenance",a),e.added_items_since_maintenance=0},n.onerror=console.error.bind(console)}}},{key:"clear",value:function(){this.db&&(indexedDB.deleteDatabase(ee),console.log("delete comment cache db"))}}]),e}();function ae(){return window.hole_cache||(window.hole_cache=new ne),window.hole_cache}function oe(e){return V()+(e?"&user_token="+e:"")}var re={load_replies:function(e,t,n,a){return e=parseInt(e),fetch(ge+"/api.php?action=getcomment&pid="+e+oe(t)).then(F).then(function(t){if(0!==t.code)throw t.msg?new Error(t.msg):new Error(JSON.stringify(t));return ae().delete(e).then(function(){ae().put(e,a,t)}),t.data=t.data.sort(function(e,t){return parseInt(e.cid,10)-parseInt(t.cid,10)}).map(function(e){return e._display_color=n.get(e.name),e.variant={},e}),t})},load_replies_with_cache:function(e,t,n,a){return e=parseInt(e),ae().get(e,a).then(function(o){return o?(o.data=o.data.sort(function(e,t){return parseInt(e.cid,10)-parseInt(t.cid,10)}).map(function(e){return e._display_color=n.get(e.name),e.variant={},e}),o):re.load_replies(e,t,n,a)})},set_attention:function(e,t,n){var a=new URLSearchParams;return a.append("user_token",n),a.append("pid",e),a.append("switch",t?"1":"0"),fetch(ge+"/api.php?action=attention"+oe(n),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a}).then(F).then(function(t){if(ae().delete(e),0!==t.code&&(!t.msg||"\u5df2\u7ecf\u5173\u6ce8\u8fc7\u4e86"!==t.msg))throw t.msg&&alert(t.msg),new Error(JSON.stringify(t));return t})},report:function(e,t,n){var a=new URLSearchParams;return a.append("user_token",n),a.append("pid",e),a.append("reason",t),fetch(ge+"/api.php?action=report"+oe(n),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a}).then(F).then(function(e){if(0!==e.code)throw e.msg&&alert(e.msg),new Error(JSON.stringify(e));return e})},get_list:function(e,t){return fetch(ge+"/api.php?action=getlist&p="+e+oe(t)).then(F).then(function(e){if(0!==e.code)throw new Error(JSON.stringify(e));return e})},get_search:function(e,t,n){return fetch(ge+"/api.php?action=search&pagesize=50&page="+e+"&keywords="+encodeURIComponent(t)+oe(n)).then(F).then(function(e){if(0!==e.code){if(e.msg)throw new Error(e.msg);throw new Error(JSON.stringify(e))}return e})},get_single:function(e,t){return fetch(ge+"/api.php?action=getone&pid="+e+oe(t)).then(F).then(function(e){if(0!==e.code)throw e.msg?new Error(e.msg):new Error(JSON.stringify(e));return e})},get_attention:function(e){return fetch(ge+"/api.php?action=getattention"+oe(e)).then(F).then(function(e){if(0!==e.code){if(e.msg)throw new Error(e.msg);throw new Error(JSON.stringify(e))}return e})}},ie=n(36),se=n.n(ie),le=(n(150),n(76)),ce=n.n(le),ue=n(77),he=n.n(ue),de=n(37),pe=n.n(de),me=(n(425),n(426),n(427),new ce.a({html:!1,linkify:!1,breaks:!0,inline:!0,highlight:function(e,t){if(t&&pe.a.getLanguage(t))try{return'
'+pe.a.highlight(t,e,!0).value+"
"}catch(n){}return'
'+me.utils.escapeHtml(e)+"
"}}).use(he.a,{throwOnError:!1,errorColor:"#aa0000"})),fe=function(e){return me.render(e)},ge="//thuhole.com/services/thuhole";function be(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ve(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"g";return e?new RegExp("(".concat(e.split(t).filter(function(e){return!!e}).map(be).join("|"),")"),n):/^$/g}function Ee(e){return o.a.createElement("span",{className:"colored-span",style:{"--coloredspan-bgcolor-light":e.colors[0],"--coloredspan-bgcolor-dark":e.colors[1]}},e.children)}function _e(e){return/^https?:\/\//.test(e)?e:"http://"+e}a.PureComponent;var we=function(e){function t(){return Object(s.a)(this,t),Object(c.a)(this,Object(u.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){var e=this.props,t=[{shouldProcessNode:function(e){return"img"===e.name},processNode:function(e,t,n){return o.a.createElement("div",{key:n},"[\u56fe\u7247]")}},{shouldProcessNode:function(e){return/^h[123456]$/.test(e.name)},processNode:function(e,t,n){var a=+e.name[1];a<3&&(a=3);var r="h".concat(a);return o.a.createElement(r,{key:n},t)}},{shouldProcessNode:function(e){return"a"===e.name},processNode:function(e,t,n){return o.a.createElement("a",{href:_e(e.attribs.href),target:"_blank",rel:"noopenner noreferrer",className:"ext-link",key:n},t,o.a.createElement("span",{className:"icon icon-new-tab"}))}},{shouldProcessNode:function(e){return"text"===e.type&&(!e.parent||!e.parent.attribs||"application/x-tex"!=e.parent.attribs.encoding)},processNode:function(t,n,a){var r=A(t.data,[["url_pid",E],["url",w],["pid",v],["nickname",_]]);return o.a.createElement(o.a.Fragment,{key:a},r.map(function(t,n){var a=Object(m.a)(t,2),r=a[0],i=a[1];return o.a.createElement("span",{key:n},"url_pid"===r?o.a.createElement("span",{className:"url-pid-link",title:i},"/##"):"url"===r?o.a.createElement("a",{href:_e(i),className:"ext-link",target:"_blank",rel:"noopener noreferrer"},i,o.a.createElement("span",{className:"icon icon-new-tab"})):"pid"===r?o.a.createElement("a",{href:"#"+i,onClick:function(t){t.preventDefault(),e.show_pid(i.substring(1))}},i):"nickname"===r?o.a.createElement(Ee,{colors:e.color_picker.get(i)},i):"search"===r?o.a.createElement("span",{className:"search-query-highlight"},i):i)}))}},{shouldProcessNode:function(){return!0},processNode:new se.a.ProcessNodeDefinitions(o.a).processDefaultNode}],n=new se.a.Parser;if(e.author&&e.text.match(/^(?:#+ |>|```|\t|\s*-|\s*\d+\.)/)){var a=fe(e.text);return o.a.createElement(o.a.Fragment,null,e.author,n.parseWithInstructions(a,function(e){return"script"!==e.type},t)||"")}var r=e.text;e.author&&(r=e.author+" "+r);var i=fe(r);return n.parseWithInstructions(i,function(e){return"script"!==e.type},t)||null}}]),t}(a.Component);window.TEXTAREA_BACKUP={};var Ae=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={text:""},n.on_change_bound=n.on_change.bind(Object(h.a)(n)),n.on_keydown_bound=n.on_keydown.bind(Object(h.a)(n)),n.clear=n.clear.bind(Object(h.a)(n)),n.area_ref=o.a.createRef(),n.change_callback=e.on_change||function(){},n.submit_callback=e.on_submit||function(){},n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.setState({text:window.TEXTAREA_BACKUP[this.props.id]||""},function(){e.change_callback(e.state.text)})}},{key:"componentWillUnmount",value:function(){window.TEXTAREA_BACKUP[this.props.id]=this.state.text,this.change_callback(this.state.text)}},{key:"on_change",value:function(e){this.setState({text:e.target.value}),this.change_callback(e.target.value)}},{key:"on_keydown",value:function(e){"Enter"===e.key&&e.ctrlKey&&!e.altKey&&(e.preventDefault(),this.submit_callback())}},{key:"clear",value:function(){this.setState({text:""})}},{key:"set",value:function(e){this.change_callback(e),this.setState({text:e})}},{key:"get",value:function(){return this.state.text}},{key:"focus",value:function(){this.area_ref.current.focus()}},{key:"render",value:function(){return o.a.createElement("textarea",{ref:this.area_ref,onChange:this.on_change_bound,value:this.state.text,onKeyDown:this.on_keydown_bound})}}]),t}(a.Component),ke=null;function ye(e){var t=/iPhone|iPad|iPod/i.test(window.navigator.userAgent);return window.matchMedia("(display-mode: standalone)").matches||window.navigator.standalone?null:t?navigator.standalone?null:o.a.createElement("div",{className:"box promotion-bar"},o.a.createElement("span",{className:"icon icon-about"}),"\xa0 \u7528 Safari \u628a\u6811\u6d1e ",o.a.createElement("b",null,"\u6dfb\u52a0\u5230\u4e3b\u5c4f\u5e55")," \u66f4\u597d\u7528"):ke?o.a.createElement("div",{className:"box promotion-bar"},o.a.createElement("span",{className:"icon icon-about"}),"\xa0 \u628a\u7f51\u9875\u7248\u6811\u6d1e ",o.a.createElement("b",null,o.a.createElement("a",{onClick:function(){ke&&ke.prompt()}},"\u5b89\u88c5\u5230\u684c\u9762"))," \u66f4\u597d\u7528"):null}window.addEventListener("beforeinstallprompt",function(e){console.log("pwa: received before install prompt"),ke=e});var Oe=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={moved:!0,init_y:0,init_x:0},n.on_begin_bound=n.on_begin.bind(Object(h.a)(n)),n.on_move_bound=n.on_move.bind(Object(h.a)(n)),n.on_end_bound=n.on_end.bind(Object(h.a)(n)),n.MOVE_THRESHOLD=3,n.last_fire=0,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"on_begin",value:function(e){this.setState({moved:!1,init_y:(e.touches?e.touches[0]:e).screenY,init_x:(e.touches?e.touches[0]:e).screenX})}},{key:"on_move",value:function(e){this.state.moved||Math.abs((e.touches?e.touches[0]:e).screenY-this.state.init_y)+Math.abs((e.touches?e.touches[0]:e).screenX-this.state.init_x)>this.MOVE_THRESHOLD&&this.setState({moved:!0})}},{key:"on_end",value:function(e){this.state.moved||this.do_callback(e),this.setState({moved:!0})}},{key:"do_callback",value:function(e){this.last_fire+100>+new Date||(this.last_fire=+new Date,this.props.callback(e))}},{key:"render",value:function(){return o.a.createElement("div",{onTouchStart:this.on_begin_bound,onMouseDown:this.on_begin_bound,onTouchMove:this.on_move_bound,onMouseMove:this.on_move_bound,onClick:this.on_end_bound},this.props.children)}}]),t}(a.PureComponent);n(428);function je(e,t,n,a){a=a||!1,e.addEventListener?e.addEventListener(t,n,a):e.attachEvent&&e.attachEvent("on".concat(t),function(t){n.call(e,t||window.event)})}function Ce(e,t,n,a){a=a||!1,e.removeEventListener?e.removeEventListener(t,n,a):e.detachEvent&&e.detachEvent("on".concat(t),n)}var Ne=function(e){if(!(e instanceof HTMLElement))return document.documentElement;for(var t="absolute"===e.style.position,n=/(scroll|auto)/,a=e;a;){if(!a.parentNode)return e.ownerDocument||document.documentElement;var o=window.getComputedStyle(a),r=o.position,i=o.overflow,s=o["overflow-x"],l=o["overflow-y"];if("static"===r&&t)a=a.parentNode;else{if(n.test(i)&&n.test(s)&&n.test(l))return a;a=a.parentNode}}return e.ownerDocument||e.documentElement||document.documentElement};var xe=0,Se=0,Ie="data-lazyload-listened",De=[],Ue=[],Re=!1;try{var He=Object.defineProperty({},"passive",{get:function(){Re=!0}});window.addEventListener("test",null,He)}catch(Ut){}var Te,Le=!!Re&&{capture:!1,passive:!0},Qe=function(e){var t=i.a.findDOMNode(e);if(t instanceof HTMLElement){var n=Ne(t);(e.props.overflow&&n!==t.ownerDocument&&n!==document&&n!==document.documentElement?function(e,t){var n,a,o=i.a.findDOMNode(e);try{var r=t.getBoundingClientRect();n=r.top,a=r.height}catch(Ut){n=xe,a=Se}var s,l,c=window.innerHeight||document.documentElement.clientHeight,u=Math.max(n,0),h=Math.min(c,n+a)-u;try{var d=o.getBoundingClientRect();s=d.top,l=d.height}catch(Ut){s=xe,l=Se}var p=s-u,m=Array.isArray(e.props.offset)?e.props.offset:[e.props.offset,e.props.offset];return p-m[0]<=h&&p+l+m[1]>=0}(e,n):function(e){var t,n,a=i.a.findDOMNode(e);if(!(a.offsetWidth||a.offsetHeight||a.getClientRects().length))return!1;try{var o=a.getBoundingClientRect();t=o.top,n=o.height}catch(Ut){t=xe,n=Se}var r=window.innerHeight||document.documentElement.clientHeight,s=Array.isArray(e.props.offset)?e.props.offset:[e.props.offset,e.props.offset];return t-s[0]<=r&&t+n+s[1]>=0}(e))?e.state.visible&&!e.state.hidden||(e.props.once&&Ue.push(e),e.setState({visible:!0,hidden:!1})):e.props.once||(e.props.unmountIfInvisible?!0===e.visible&&e.setState({visible:!1}):e.props.hiddenIfInvisible&&!1===e.state.hidden&&e.setState({hidden:!0}))}},Me=function(){for(var e=0;e=0?a=setTimeout(l,t-c):(a=null,n||(s=e.apply(r,o),a||(r=null,o=null)))};return function(){r=this,o=arguments,i=+new Date;var c=n&&!a;return a||(a=setTimeout(l,t)),c&&(s=e.apply(r,o),r=null,o=null),s}}(Me,"number"===typeof this.props.debounce?this.props.debounce:300),Te="debounce"):void 0!==this.props.throttle?(Pe=function(e,t,n){var a,o;return t||(t=250),function(){var r=n||this,i=+new Date,s=arguments;a&&iat&&(r=r*at/e,e=at,i=!0),r>at&&(e=e*at/r,r=at,i=!0),r*e>ot){var s=Math.sqrt(r*e/ot);r/=s,e/=s,i=!0}console.log("chosen img size",e,r);var l=document.createElement("canvas"),c=l.getContext("2d");l.width=e,l.height=r,c.drawImage(o,0,0,e,r);for(var u,h,d=.1,p=.9;p-d>=.03;)u=(p+d)/2,h=l.toDataURL("image/jpeg",u),console.log(d,p,"trying quality",u,"size",h.length),h.length<=rt?d=u:p=u;d>=.101?(console.log("chosen img quality",u),t({img:a(h),quality:u,width:Math.round(e),height:Math.round(r),compressed:i})):n("\u56fe\u7247\u8fc7\u5927\uff0c\u65e0\u6cd5\u4e0a\u4f20")},o.src=e}(e)})},o.readAsDataURL(e)})}},{key:"on_img_change",value:function(){var e=this;this.img_ref.current&&this.img_ref.current.files.length?this.setState({img_tip:"\uff08\u6b63\u5728\u5904\u7406\u56fe\u7247\u2026\u2026\uff09"},function(){e.proc_img(e.img_ref.current.files[0]).then(function(t){e.setState({img_tip:"\uff08".concat(t.compressed?"\u538b\u7f29\u5230":"\u5c3a\u5bf8"," ").concat(t.width,"*").concat(t.height," / ")+"\u8d28\u91cf ".concat(Math.floor(100*t.quality),"% / ").concat(Math.floor(t.img.length/(4/3)/1e3),"KB\uff09")})}).catch(function(t){e.setState({img_tip:"\u56fe\u7247\u65e0\u6548\uff1a".concat(t)})})}):this.setState({img_tip:null})}},{key:"on_submit",value:function(e){var t=this;e&&e.preventDefault(),"loading"!==this.state.loading_status&&(this.img_ref.current.files.length?(this.setState({loading_status:"processing"}),this.proc_img(this.img_ref.current.files[0]).then(function(e){t.setState({loading_status:"loading"}),t.do_post(t.state.text,e.img)}).catch(function(e){alert(e)})):(this.setState({loading_status:"loading"}),this.do_post(this.state.text,null)))}},{key:"toggle_preview",value:function(){this.setState({preview:!this.state.preview})}},{key:"render",value:function(){var e=this;return o.a.createElement("form",{onSubmit:this.on_submit.bind(this),className:"post-form box"},o.a.createElement("div",{className:"post-form-bar"},o.a.createElement("label",null,"\u56fe\u7247",o.a.createElement("input",{ref:this.img_ref,type:"file",accept:"image/*",disabled:"done"!==this.state.loading_status,onChange:this.on_img_change_bound})),this.state.preview?o.a.createElement("button",{type:"button",onClick:function(){e.toggle_preview()}},o.a.createElement("span",{className:"icon icon-eye-blocked"}),"\xa0\u7f16\u8f91"):o.a.createElement("button",{type:"button",onClick:function(){e.toggle_preview()}},o.a.createElement("span",{className:"icon icon-eye"}),"\xa0\u9884\u89c8"),"done"!==this.state.loading_status?o.a.createElement("button",{disabled:"disabled"},o.a.createElement("span",{className:"icon icon-loading"}),"\xa0","processing"===this.state.loading_status?"\u5904\u7406":"\u4e0a\u4f20"):o.a.createElement("button",{type:"submit"},o.a.createElement("span",{className:"icon icon-send"}),"\xa0\u53d1\u8868")),!!this.state.img_tip&&o.a.createElement("p",{className:"post-form-img-tip"},o.a.createElement("a",{onClick:function(){e.img_ref.current.value="",e.on_img_change()}},"\u5220\u9664\u56fe\u7247"),this.state.img_tip),this.state.preview?o.a.createElement("div",{className:"post-preview"},o.a.createElement(we,{text:this.state.text,color_picker:this.color_picker,show_pid:function(){}})):o.a.createElement(Ae,{ref:this.area_ref,id:"new_post",on_change:this.on_change_bound,on_submit:this.on_submit.bind(this)}),o.a.createElement("p",null,o.a.createElement("small",null,"\u8bf7\u9075\u5b88",o.a.createElement("a",{href:"https://thuhole.com/policy.html",target:"_blank"},"\u6811\u6d1e\u7ba1\u7406\u89c4\u8303\uff08\u8bd5\u884c\uff09"),"\uff0c\u6587\u660e\u53d1\u8a00")))}}]),t}(a.Component),ht={a:!0,audio:!0},dt=[],pt=["\u6027\u76f8\u5173","\u653f\u6cbb\u76f8\u5173","\u6027\u8bdd\u9898","\u653f\u6cbb\u8bdd\u9898","\u6298\u53e0","NSFW","\u5237\u5c4f","\u771f\u5b9e\u6027\u53ef\u7591","\u7528\u6237\u4e3e\u62a5\u8f83\u591a","\u4e3e\u62a5\u8f83\u591a","\u91cd\u590d\u5185\u5bb9"];window.LATEST_POST_ID=parseInt(localStorage._LATEST_POST_ID,10)||0;function mt(e,t){return function(n){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=new b,i="\u6811\u6d1e #"+n;e(i,o.a.createElement("div",{className:"box box-tip"},"\u6b63\u5728\u52a0\u8f7d #",n),a?"replace":"push"),re.get_single(n,t).then(function(e){return e.data.variant={},new Promise(function(a,o){re.load_replies_with_cache(n,t,r,parseInt(e.data.reply)).then(function(t){a([e,t])}).catch(o)})}).then(function(n){var a=Object(m.a)(n,2),s=a[0],l=a[1];e(i,o.a.createElement(bt,{key:+new Date,info:s.data,replies:l.data,attention:l.attention,token:t,show_sidebar:e,color_picker:r,deletion_detect:"on"===localStorage.DELETION_DETECT}),"replace")}).catch(function(a){console.error(a),e(i,o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement("a",{onClick:function(){return mt(e,t)(n,!0)}},"\u91cd\u65b0\u52a0\u8f7d")),o.a.createElement("p",null,""+a)),"replace")})}}var ft=function(e){function t(e){return Object(s.a)(this,t),Object(c.a)(this,Object(u.a)(t).call(this,e))}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){var e=this,t=this.props.info.text,n=t.indexOf("]"),a=t.substr(0,n+1),r=t.substr(n+2);return o.a.createElement("div",{className:"flow-reply box",style:this.props.info._display_color?{"--box-bgcolor-light":this.props.info._display_color[0],"--box-bgcolor-dark":this.props.info._display_color[1]}:null},o.a.createElement("div",{className:"box-header"},o.a.createElement("code",{className:"box-id"},"#",this.props.info.cid),!!this.props.do_filter_name&&o.a.createElement("span",{className:"reply-header-badge clickable",onClick:function(){e.props.do_filter_name(e.props.info.name)}},o.a.createElement("span",{className:"icon icon-locate"})),"\xa0",null!==this.props.info.tag&&o.a.createElement("span",{className:"box-header-tag"},this.props.info.tag),o.a.createElement(q,{stamp:this.props.info.timestamp})),o.a.createElement("div",{className:"box-content"},o.a.createElement(we,{author:a,text:r,color_picker:this.props.color_picker,show_pid:this.props.show_pid})))}}]),t}(a.PureComponent),gt=function(e){function t(e){return Object(s.a)(this,t),Object(c.a)(this,Object(u.a)(t).call(this,e))}return Object(d.a)(t,e),Object(l.a)(t,[{key:"copy_link",value:function(e){e.preventDefault(),g()("".concat(e.target.href).concat(this.props.info.tag?" \u3010"+this.props.info.tag+"\u3011":"","\n")+"".concat(this.props.info.text).concat("image"===this.props.info.type?" [\u56fe\u7247]":"audio"===this.props.info.type?" [\u8bed\u97f3]":"","\n")+"\uff08".concat(Y(new Date(1e3*this.props.info.timestamp))," ").concat(this.props.info.likenum,"\u5173\u6ce8 ").concat(this.props.info.reply,"\u56de\u590d\uff09\n")+this.props.replies.map(function(e){return(e.tag?"\u3010"+e.tag+"\u3011":"")+e.text}).join("\n"))}},{key:"render",value:function(){var e=this,t=this.props;return o.a.createElement("div",{className:"flow-item"+(t.is_quote?" flow-item-quote":"")},!!t.is_quote&&o.a.createElement("div",{className:"quote-tip black-outline"},o.a.createElement("div",null,o.a.createElement("span",{className:"icon icon-quote"})),o.a.createElement("div",null,o.a.createElement("small",null,"\u63d0\u5230"))),o.a.createElement("div",{className:"box"},!!window.LATEST_POST_ID&&parseInt(t.info.pid,10)>window.LATEST_POST_ID&&o.a.createElement("div",{className:"flow-item-dot"}),o.a.createElement("div",{className:"box-header"},!!this.props.do_filter_name&&o.a.createElement("span",{className:"reply-header-badge clickable",onClick:function(){e.props.do_filter_name("\u6d1e\u4e3b")}},o.a.createElement("span",{className:"icon icon-locate"})),!!parseInt(t.info.likenum,10)&&o.a.createElement("span",{className:"box-header-badge"},t.info.likenum,"\xa0",o.a.createElement("span",{className:"icon icon-"+(t.attention?"star-ok":"star")})),!!parseInt(t.info.reply,10)&&o.a.createElement("span",{className:"box-header-badge"},t.info.reply,"\xa0",o.a.createElement("span",{className:"icon icon-reply"})),o.a.createElement("code",{className:"box-id"},o.a.createElement("a",{href:"##"+t.info.pid,onClick:this.copy_link.bind(this)},"#",t.info.pid)),"\xa0",null!==t.info.tag&&"\u6298\u53e0"!==t.info.tag&&o.a.createElement("span",{className:"box-header-tag"},t.info.tag),o.a.createElement(q,{stamp:t.info.timestamp})),o.a.createElement("div",{className:"box-content"},o.a.createElement(we,{text:t.fold?"_\u5355\u51fb\u4ee5\u67e5\u770b\u6811\u6d1e_":t.info.text,color_picker:t.color_picker,show_pid:t.show_pid}),"image"===t.info.type&&!t.fold&&o.a.createElement("p",{className:"img"},t.img_clickable?o.a.createElement("a",{className:"no-underline",href:"//img.thuhole.com/"+t.info.url,target:"_blank"},o.a.createElement("img",{src:"//img.thuhole.com/"+t.info.url})):o.a.createElement("img",{src:"//img.thuhole.com/"+t.info.url}))),!(!t.attention||!t.info.variant.latest_reply)&&o.a.createElement("p",{className:"box-footer"},"\u6700\u65b0\u56de\u590d ",o.a.createElement(q,{stamp:t.info.variant.latest_reply}))))}}]),t}(a.PureComponent),bt=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={attention:e.attention,info:e.info,replies:e.replies,loading_status:"done",error_msg:null,filter_name:null,rev:!1},n.color_picker=e.color_picker,n.syncState=e.sync_state||function(){},n.reply_ref=o.a.createRef(),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"set_variant",value:function(e,t){this.setState(function(n){return e?{replies:n.replies.map(function(n){return n.cid===e?Object.assign({},n,{variant:Object.assign({},n.variant,t)}):n})}:{info:Object.assign({},n.info,{variant:Object.assign({},n.info.variant,t)})}},function(){this.syncState({info:this.state.info,replies:this.state.replies})})}},{key:"load_replies",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.setState({loading_status:"loading",error_msg:null}),re.load_replies(this.state.info.pid,this.props.token,this.color_picker,null).then(function(n){e.setState(function(e,a){return{replies:n.data,info:t?Object.assign({},e.info,{reply:""+n.data.length}):e.info,attention:!!n.attention,loading_status:"done",error_msg:null}},function(){e.syncState({replies:e.state.replies,attention:e.state.attention,info:e.state.info}),e.state.replies.length&&e.set_variant(null,{latest_reply:Math.max.apply(null,e.state.replies.map(function(e){return parseInt(e.timestamp)}))})})}).catch(function(t){console.error(t),e.setState({replies:[],loading_status:"done",error_msg:""+t})})}},{key:"toggle_attention",value:function(){var e=this;this.setState({loading_status:"loading"});var t=!this.state.attention;re.set_attention(this.state.info.pid,t,this.props.token).then(function(n){e.setState({loading_status:"done",attention:t}),e.syncState({attention:t})}).catch(function(t){e.setState({loading_status:"done"}),alert("\u8bbe\u7f6e\u5173\u6ce8\u5931\u8d25"),console.error(t)})}},{key:"report",value:function(){var e=prompt("\u4e3e\u62a5 #".concat(this.state.info.pid," \u7684\u7406\u7531\uff1a"));null!==e&&re.report(this.state.info.pid,e,this.props.token).then(function(e){alert("\u4e3e\u62a5\u6210\u529f")}).catch(function(e){alert("\u4e3e\u62a5\u5931\u8d25"),console.error(e)})}},{key:"set_filter_name",value:function(e){this.setState(function(t){return{filter_name:e===t.filter_name?null:e}})}},{key:"toggle_rev",value:function(){this.setState(function(e){return{rev:!e.rev}})}},{key:"show_reply_bar",value:function(e,t){if(this.reply_ref.current&&!t.target.closest("a, .clickable")){var n=this.reply_ref.current.get();if(/^\s*(?:Re (?:|\u6d1e\u4e3b|(?:[A-Z][a-z]+ )?(?:[A-Z][a-z]+)|You Win(?: \d+)?):)?\s*$/.test(n)){var a="Re "+e+": ";a===this.reply_ref.current.get()?this.reply_ref.current.set(""):this.reply_ref.current.set(a)}}}},{key:"render",value:function(){var e=this;if("loading"===this.state.loading_status)return o.a.createElement("p",{className:"box box-tip"},"\u52a0\u8f7d\u4e2d\u2026\u2026");var t=mt(this.props.show_sidebar,this.props.token),n=this.state.filter_name?this.state.replies.filter(function(t){return t.name===e.state.filter_name}):this.state.replies.slice();this.state.rev&&n.reverse();var a=(this.state.rev?"y-":"n-")+(this.state.filter_name||"null"),r=Object(p.a)({},"\u6d1e\u4e3b",1);n.forEach(function(e){void 0===r[e.name]&&(r[e.name]=0),r[e.name]++});var i=this.state.filter_name&&"\u6d1e\u4e3b"!==this.state.filter_name?null:o.a.createElement(Oe,{callback:function(t){e.show_reply_bar("",t)}},o.a.createElement(gt,{info:this.state.info,attention:this.state.attention,img_clickable:!0,fold:!1,color_picker:this.color_picker,show_pid:t,replies:this.state.replies,set_variant:function(t){e.set_variant(null,t)},do_filter_name:r["\u6d1e\u4e3b"]>1?this.set_filter_name.bind(this):null}));return o.a.createElement("div",{className:"flow-item-row sidebar-flow-item"},o.a.createElement("div",{className:"box box-tip"},!!this.props.token&&o.a.createElement("span",null,o.a.createElement("a",{onClick:this.report.bind(this)},o.a.createElement("span",{className:"icon icon-flag"}),o.a.createElement("label",null,"\u4e3e\u62a5")),"\xa0\xa0"),o.a.createElement("a",{onClick:this.load_replies.bind(this)},o.a.createElement("span",{className:"icon icon-refresh"}),o.a.createElement("label",null,"\u5237\u65b0")),(this.state.replies.length>=1||this.state.rev)&&o.a.createElement("span",null,"\xa0\xa0",o.a.createElement("a",{onClick:this.toggle_rev.bind(this)},o.a.createElement("span",{className:"icon icon-order-rev"}),o.a.createElement("label",null,this.state.rev?"\u8fd8\u539f":"\u9006\u5e8f"))),!!this.props.token&&o.a.createElement("span",null,"\xa0\xa0",o.a.createElement("a",{onClick:function(){e.toggle_attention()}},this.state.attention?o.a.createElement("span",null,o.a.createElement("span",{className:"icon icon-star-ok"}),o.a.createElement("label",null,"\u5df2\u5173\u6ce8")):o.a.createElement("span",null,o.a.createElement("span",{className:"icon icon-star"}),o.a.createElement("label",null,"\u672a\u5173\u6ce8"))))),!!this.state.filter_name&&o.a.createElement("div",{className:"box box-tip flow-item filter-name-bar"},o.a.createElement("p",null,o.a.createElement("span",{style:{float:"left"}},o.a.createElement("a",{onClick:function(){e.set_filter_name(null)}},"\u8fd8\u539f")),o.a.createElement("span",{className:"icon icon-locate"}),"\xa0\u5f53\u524d\u53ea\u770b\xa0",o.a.createElement(Ee,{colors:this.color_picker.get(this.state.filter_name)},this.state.filter_name))),!this.state.rev&&i,!!this.state.error_msg&&o.a.createElement("div",{className:"box box-tip flow-item"},o.a.createElement("p",null,"\u56de\u590d\u52a0\u8f7d\u5931\u8d25"),o.a.createElement("p",null,this.state.error_msg)),this.props.deletion_detect&&parseInt(this.state.info.reply)>this.state.replies.length&&!!this.state.replies.length&&o.a.createElement("div",{className:"box box-tip flow-item box-danger"},parseInt(this.state.info.reply)-this.state.replies.length," \u6761\u56de\u590d\u88ab\u5220\u9664"),n.map(function(n){return o.a.createElement(Xe,{key:n.cid+a,offset:1500,height:"5em",overflow:!0,once:!0},o.a.createElement(Oe,{callback:function(t){e.show_reply_bar(n.name,t)}},o.a.createElement(ft,{info:n,color_picker:e.color_picker,show_pid:t,set_variant:function(t){e.set_variant(n.cid,t)},do_filter_name:r[n.name]>1?e.set_filter_name.bind(e):null})))}),this.state.rev&&i,this.props.token?o.a.createElement(ct,{pid:this.state.info.pid,token:this.props.token,area_ref:this.reply_ref,on_complete:this.load_replies.bind(this)}):o.a.createElement("div",{className:"box box-tip flow-item"},"\u767b\u5f55\u540e\u53ef\u4ee5\u56de\u590d\u6811\u6d1e"))}}]),t}(a.PureComponent),vt=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={replies:[],reply_status:"done",reply_error:null,info:Object.assign({},e.info,{variant:{}}),attention:null!==e.attention_override&&e.attention_override},n.color_picker=new b,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){parseInt(this.state.info.reply,10)&&this.load_replies(null,!1)}},{key:"load_replies",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];console.log("fetching reply",this.state.info.pid),this.setState({reply_status:"loading",reply_error:null}),re.load_replies_with_cache(this.state.info.pid,this.props.token,this.color_picker,parseInt(this.state.info.reply)).then(function(a){t.setState(function(e,t){return{replies:a.data,info:Object.assign({},e.info,{reply:n?""+a.data.length:e.info.reply,variant:a.data.length?{latest_reply:Math.max.apply(null,a.data.map(function(e){return parseInt(e.timestamp)}))}:{}}),attention:!!a.attention,reply_status:"done",reply_error:null}},e)}).catch(function(n){console.error(n),t.setState({replies:[],reply_status:"failed",reply_error:""+n},e)})}},{key:"show_sidebar",value:function(){this.props.show_sidebar("\u6811\u6d1e #"+this.state.info.pid,o.a.createElement(bt,{key:+new Date,info:this.state.info,replies:this.state.replies,attention:this.state.attention,sync_state:this.setState.bind(this),token:this.props.token,show_sidebar:this.props.show_sidebar,color_picker:this.color_picker,deletion_detect:this.props.deletion_detect}))}},{key:"render",value:function(){var e=this,t=mt(this.props.show_sidebar,this.props.token,this.state.info.pid),n=[["url_pid",E],["url",w],["pid",v],["nickname",_]];this.props.search_param&&n.push(["search",ve(this.props.search_param," ","gi")]);var a=A(this.state.info.text,n),r=null;if(!this.props.is_quote){var i=!0,s=!1,l=void 0;try{for(var c,u=a[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value,d=Object(m.a)(h,2),p=d[0],f=d[1];if(f=f.length>0?f.substring(1):f,"pid"===p&&-1===dt.indexOf(f)&&parseInt(f)-1&&("\u70ed\u699c"===this.props.search_param||!this.props.search_param)&&window.config.fold,b=o.a.createElement("div",{className:"flow-item-row flow-item-row-with-prompt"+(this.props.is_quote?" flow-item-row-quote":""),onClick:function(t){ht[t.target.tagName.toLowerCase()]||e.show_sidebar()}},o.a.createElement(gt,{parts:a,info:this.state.info,attention:this.state.attention,img_clickable:!1,is_quote:this.props.is_quote,color_picker:this.color_picker,show_pid:t,replies:this.state.replies,fold:g}),!g&&o.a.createElement("div",{className:"flow-reply-row"},"loading"===this.state.reply_status&&o.a.createElement("div",{className:"box box-tip"},"\u52a0\u8f7d\u4e2d"),"failed"===this.state.reply_status&&o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement("a",{onClick:function(){e.load_replies()}},"\u91cd\u65b0\u52a0\u8f7d\u8bc4\u8bba")),o.a.createElement("p",null,this.state.reply_error)),this.state.replies.slice(0,10).map(function(n){return o.a.createElement(ft,{key:n.cid,info:n,color_picker:e.color_picker,show_pid:t})}),this.state.replies.length>10&&o.a.createElement("div",{className:"box box-tip"},"\u8fd8\u6709 ",this.state.replies.length-10," \u6761")));return!g&&r?o.a.createElement("div",null,b,o.a.createElement(Et,{pid:r,show_sidebar:this.props.show_sidebar,token:this.props.token,deletion_detect:this.props.deletion_detect})):b}}]),t}(a.PureComponent),Et=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={loading_status:"empty",error_msg:null,info:null},n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){this.load()}},{key:"load",value:function(){var e=this;this.setState({loading_status:"loading"},function(){re.get_single(e.props.pid,e.props.token).then(function(t){e.setState({loading_status:"done",info:t.data})}).catch(function(t){-1!==(""+t).indexOf("\u6ca1\u6709\u8fd9\u6761\u6811\u6d1e")?e.setState({loading_status:"empty"}):e.setState({loading_status:"error",error_msg:""+t})})})}},{key:"render",value:function(){return"empty"===this.state.loading_status?null:"loading"===this.state.loading_status?o.a.createElement("div",{className:"aux-margin"},o.a.createElement("div",{className:"box box-tip"},o.a.createElement("span",{className:"icon icon-loading"}),"\u63d0\u5230\u4e86 #",this.props.pid)):"error"===this.state.loading_status?o.a.createElement("div",{className:"aux-margin"},o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement("a",{onClick:this.load.bind(this)},"\u91cd\u65b0\u52a0\u8f7d")),o.a.createElement("p",null,this.state.error_msg))):o.a.createElement(vt,{info:this.state.info,show_sidebar:this.props.show_sidebar,token:this.props.token,is_quote:!0,deletion_detect:this.props.deletion_detect})}}]),t}(a.PureComponent);function _t(e){return o.a.createElement(it.Consumer,null,function(t){var n=t.value;return o.a.createElement("div",{className:"flow-chunk"},!!e.title&&o.a.createElement(Z,{text:e.title}),e.list.map(function(t,a){return o.a.createElement(Xe,{key:t.pid,offset:1500,height:"15em",hiddenIfInvisible:!0},o.a.createElement("div",null,!!(e.deletion_detect&&"list"===e.mode&&a&&e.list[a-1].pid-t.pid>1)&&o.a.createElement("div",{className:"flow-item-row"},o.a.createElement("div",{className:"box box-tip flow-item box-danger"},e.list[a-1].pid-t.pid-1," \u6761\u88ab\u5220\u9664")),o.a.createElement(vt,{info:t,show_sidebar:e.show_sidebar,token:n,attention_override:"attention_finished"===e.mode||null,deletion_detect:e.deletion_detect,search_param:e.search_param})))}))})}var wt=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={mode:e.mode,search_param:e.search_text,loaded_pages:0,chunks:{title:"",data:[]},loading_status:"done",error_msg:null},n.on_scroll_bound=n.on_scroll.bind(Object(h.a)(n)),window.LATEST_POST_ID=parseInt(localStorage._LATEST_POST_ID,10)||0,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"load_page",value:function(e){var t=this,n=function(e){console.error(e),t.setState(function(t,n){return{loaded_pages:t.loaded_pages-1,loading_status:"failed",error_msg:""+e}})};if(e>this.state.loaded_pages+1)throw new Error("bad page");if(e===this.state.loaded_pages+1){if(console.log("fetching page",e),"list"===this.state.mode)re.get_list(e,this.props.token).then(function(n){if(1===e&&n.data.length){var a=-1;n.data.forEach(function(e){parseInt(e.pid,10)>a&&(a=parseInt(e.pid,10))}),localStorage._LATEST_POST_ID=""+a}t.setState(function(e,t){return{chunks:{title:"News Feed",data:e.chunks.data.concat(n.data.filter(function(t){return 0===e.chunks.data.length||!e.chunks.data.slice(-100).some(function(e){return e.pid===t.pid})}))},loading_status:"done"}})}).catch(n);else if("search"===this.state.mode)re.get_search(e,this.state.search_param,this.props.token).then(function(e){var n=0===e.data.length;t.setState(function(a,o){return{chunks:{title:'Result for "'+t.state.search_param+'"',data:a.chunks.data.concat(e.data.filter(function(e){return 0===a.chunks.data.length||!a.chunks.data.slice(-100).some(function(t){return t.pid===e.pid})}))},mode:n?"search_finished":"search",loading_status:"done"}})}).catch(n);else if("single"===this.state.mode){var a=parseInt(this.state.search_param.substr(1),10);re.get_single(a,this.props.token).then(function(e){t.setState({chunks:{title:"PID = "+a,data:[e.data]},mode:"single_finished",loading_status:"done"})}).catch(n)}else{if("attention"!==this.state.mode)return void console.log("nothing to load");re.get_attention(this.props.token).then(function(e){t.setState({chunks:{title:"Attention List",data:e.data},mode:"attention_finished",loading_status:"done"})}).catch(n)}this.setState(function(e,t){return{loaded_pages:e.loaded_pages+1,loading_status:"loading",error_msg:null}})}}},{key:"on_scroll",value:function(e){e.target===document&&(document.body.scrollHeight-window.scrollY-window.innerHeight2&&o.a.createElement("a",{className:"no-underline",onClick:this.do_back_bound},"\xa0",o.a.createElement("span",{className:"icon icon-back"}),"\xa0"),t))}}]),t}(a.PureComponent),jt=n(80),Ct=n.n(jt),Nt=(n(441),function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={level:0,fired:!1},n.callback=e.callback,n.esc_interval=null,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"do_fire",value:function(){var e=this;this.esc_interval&&(clearInterval(this.esc_interval),this.esc_interval=null),this.setState({level:1,fired:!0}),this.callback(),window.setTimeout(function(){e.setState({level:0,fired:!1})},300)}},{key:"componentDidMount",value:function(){var e=this;window.config.pressure&&(Ct.a.set(document.body,{change:function(t){e.state.fired||(t>=.999?e.do_fire():e.setState({level:t}))},end:function(){e.setState({level:0,fired:!1})}},{polyfill:!1,only:"touch",preventSelect:!1}),document.addEventListener("keydown",function(t){t.repeat||"Escape"!==t.key||(e.esc_interval&&clearInterval(e.esc_interval),e.setState({level:.2},function(){e.esc_interval=setInterval(function(){var t=e.state.level+.1;t>=.999?e.do_fire():e.setState({level:t})},30)}))}),document.addEventListener("keyup",function(t){"Escape"===t.key&&(e.esc_interval&&(clearInterval(e.esc_interval),e.esc_interval=null),e.setState({level:0}))}))}},{key:"render",value:function(){var e=25*(this.state.level-.4)-500;return o.a.createElement("div",{className:"pressure-box"+(this.state.fired?" pressure-box-fired":"")+(this.state.level<=1e-4?" pressure-box-empty":""),style:{left:e,right:e,top:e,bottom:e}})}}]),t}(a.Component));function xt(e){return o.a.createElement("div",{id:"global-hint-container",style:{display:"none"}})}var St=function(e){function t(e){var n;return Object(s.a)(this,t),n=Object(c.a)(this,Object(u.a)(t).call(this,e)),Ye(),function(e){function t(){(void 0===e?window.matchMedia("(prefers-color-scheme: dark)").matches:e)?document.body.classList.add("root-dark-mode"):document.body.classList.remove("root-dark-mode")}t(),window.matchMedia("(prefers-color-scheme: dark)").addListener(function(){t()})}({default:void 0,light:!1,dark:!0}[window.config.color_scheme]),n.state={sidebar_stack:[[null,null]],mode:"list",search_text:null,flow_render_key:+new Date,token:localStorage.TOKEN||null},n.show_sidebar_bound=n.show_sidebar.bind(Object(h.a)(n)),n.set_mode_bound=n.set_mode.bind(Object(h.a)(n)),n.on_pressure_bound=n.on_pressure.bind(Object(h.a)(n)),n.inthu_flag=-1!==window[atob("ZG9jdW1lbnQ")][atob("Y29va2ll")].indexOf(atob("dGh1X2lwX2ZsYWc9eWVz")),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"on_pressure",value:function(){this.state.sidebar_stack.length>1?this.show_sidebar(null,null,"clear"):this.set_mode("list",null)}},{key:"show_sidebar",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"push";this.setState(function(a){var o=a.sidebar_stack.slice();if("push"===n)o.length>10&&o.splice(1,1),o=o.concat([[e,t]]);else if("pop"===n){if(1===o.length)return;o.pop()}else if("replace"===n)o.pop(),o=o.concat([[e,t]]);else{if("clear"!==n)throw new Error("bad show_sidebar mode");o=[[null,null]]}return{sidebar_stack:o}})}},{key:"set_mode",value:function(e,t){this.setState({mode:e,search_text:t,flow_render_key:+new Date})}},{key:"render",value:function(){var e=this;return o.a.createElement(it.Provider,{value:{value:this.state.token,set_value:function(t){localStorage.TOKEN=t||"",e.setState({token:t})}}},o.a.createElement(Nt,{callback:this.on_pressure_bound}),o.a.createElement("div",{className:"bg-img",style:qe()}),o.a.createElement(yt,{show_sidebar:this.show_sidebar_bound,set_mode:this.set_mode_bound}),o.a.createElement(it.Consumer,null,function(t){return o.a.createElement("div",{className:"left-container"},o.a.createElement(xt,{token:t.value}),!t.value&&o.a.createElement("div",{className:"flow-item-row aux-margin"},o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement($,{token_callback:t.set_value},function(e){return o.a.createElement("a",{onClick:e},o.a.createElement("span",{className:"icon icon-login"}),"\xa0\u767b\u5f55\u5230 T\u5927\u6811\u6d1e")})))),e.inthu_flag||t.value?o.a.createElement(wt,{key:e.state.flow_render_key,show_sidebar:e.show_sidebar_bound,mode:e.state.mode,search_text:e.state.search_text,token:t.value}):o.a.createElement(Z,{text:"\u8bf7\u767b\u5f55\u540e\u67e5\u770b\u5185\u5bb9"}),o.a.createElement("br",null))}),o.a.createElement(Ot,{show_sidebar:this.show_sidebar_bound,stack:this.state.sidebar_stack}))}}],[{key:"is_darkmode",value:function(){return"dark"===window.config.color_scheme||"light"!==window.config.color_scheme&&window.matchMedia("(prefers-color-scheme: dark)").matches}}]),t}(a.Component),It=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function Dt(e){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var t=e.installing;t.onstatechange=function(){"installed"===t.state&&(navigator.serviceWorker.controller?console.log("New content is available; please refresh."):console.log("Content is cached for offline use."))}}}).catch(function(e){console.error("Error during service worker registration:",e)})}i.a.render(o.a.createElement(St,null),document.getElementById("root")),"serviceWorker"in navigator&&window.addEventListener("load",function(){var e="".concat(".","/service-worker.js");It?(function(e){fetch(e).then(function(t){404===t.status||-1===t.headers.get("content-type").indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):Dt(e)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://goo.gl/SC7cgQ")})):Dt(e)})},69:function(e,t){e.exports="data:image/png;base64,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"},70:function(e,t){e.exports="data:image/png;base64,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"},71:function(e,t){e.exports="data:image/png;base64,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"},72:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFdklEQVR42sVW+VNTVxS+f4Od9oeW0RmlU8dOcRx3BEHbqiio3dtfamds+0N1bGe62emirYpSLRYDguAWJQihLZBAEkgKgbCHgIBAXbBTtgSykhAQEL/ecyWtwwMHx9DemS/vvXvv+c73zj3n5DEAjHBodJz9MD7BvuP3KVbb0xqV1p6lzENzS9u7Y3zOVWNittXPMmvMWmaNjZgeW8OZY91i1pSbzSqcg6y01Lj7V7UOap3Bma9WhyiKtEyh0bGsQg0L+P3n5talDNZ5LpWZCwqYqqYxJk9TggK1Bkpza7pWrWNdsZHM/uKymZ1Pgvb07ohiel0Jy7VcO1ug0iCfc+WbW7fUa0vYrUw5u6G8IhXglR1l/qR45tu/l9WeTo5XGqvxS3k1tPmF+t6Y8MXOVYui+3ZEb+ROHoq+HVEb3WtCo23bIhZrCwoNuZyHuKpTU474v/2M+dOSmDdDJhVgzUxn1oQDcd7w59C5+00oqxqgsLTBnHAIQ8vnoy9uPbiDWYH2kk1dwmFkWdqRU2nG9V2vw8e5rScOx/ZnX5YK6Dvw6Z6+VzYMepY8hT8++ZALMONKfQuqkxLhWf88rNvCZy2A54KwqTp1UnCQgPZ9H8Cz5ElYX93gsR38/COpgO3r5bata+FYHYrKve8jp7EDuW23USRLQveKhXDERc5agCMuAt0rF6JQdkpw5DS1o3LPbsFti1nLIxQplx7BljVyO3fSExUG/YYVyFMVIa/lOvLfewcdyxbAvTNq1gJobzu3Ue16G3nNnCNfDUP0cvRELwX5IF9SAbERchtftO+MRsOKUKjXhUG9JRJlSxegm4fUvn32OUB7ycYYNh/qzRFQh4cJTuK23Y+kVED/1nA5BxycwMZxbWUoml4IQdemVXBujwStPQpc3KZr8yo0hYWglXMRJ3FPrksF2F57Sc4BK4f9jZfhfmuzgPPNTWLO9oggG7IN8BDnAzxSAaWL5sk58C+emMS8x8S0PFIBjQf3yznwH0EqwAfIOTAThqZgpjXf7CAV4PAMyjkwFXa3R1xHx+9i4h4wzn/o6r8zKtb6XW4MjdwBnxLw+ofF3HRcD2D2AlxeH5yDXpgsjdBWmFBcVY3S2jr0DTiEKN/wCFpu3ERReQUM1TW4+VcXfFxQ0AQMDvmFiPQcJb5PTkHi+Qs4cEqGo2fS0dndCxrFlVX4OvEkvvjxOCrMDSISQRMQgM3pgtXhFPd0lV3OxOmsKyICdByd3T04xkVVNFhw994cCPDwSIyMjQtyGhVms4hIt61fPA/wcz+WnjF3Alw8DygKvXYHbvf0IlmhgDy/QCQdCeviQuZUAL04kX/1UyK++TkJB2XJ+JMLIWd0DHMugEqNMrysrh6GmlocP3ceOlMlhkfHRA7MuYCByXoPDD0vucOnU2HlR0IOe/oHRBJSuU4EswoCjYjelOqeGhENpVaHhIyzounQcPNSjU87g/qWVvF83zYIAty+IdGI1GVGXCpQ4Te9ARnKXHx5/AQqLU3CWUNbu5g7kpomypOaFdmQ7WMLoPKjClCo1Dh54SJSMhVIy85BbXMLRnhUKNzUGU+cPYdsjRYpiixc4tVBzcsz9AgCXF7vQ3OAOiJlO139PBfG7k4IJ5Qb9Ka0RiUZ2PPQkua+JAKcfJIvzGhEZxwAOZ7aIzwPrLunrE/z3zLN90Brh9zu8vCmMsY3DIozDCYcHJTIlNTNHdelAorLTPG1lmbYuUrfCA/nsB+D/uDA679/fBSBWstVaPTGIxIBXX22EH151UVdqQn1V1sF6ppagoIAX6mpBhpD+YUSY9Uz0s/ygQFWXtPA1MXGjzUGo4Fv1HCoggRNkcGoLykz7fvdVMP0HBIB/xf+Bi8VajXQRja5AAAAAElFTkSuQmCC"},73:function(e,t){e.exports="data:image/png;base64,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"},74:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAAHvElEQVR42o1Xa3MTVRgOzDgKjl9U1PFfqDgy47/QEZzRn6D4AQWkNJcWCm2apGku2yQUKAoI1iKglPullIvITZFbC4zKTWpLu7vZTZvs7vF537ObbEIZycyZ3dmc816e93kvJxAOhwOzrVAoFGgJh+dgPfdlc3Pg89VNgfWRSGCwI/re7WS6bSqTO65ncqNYI3g/cieZbt3T3rGwLRzhvXSGzpIMkvU0PbMqpmcEB5tCwcDKYDCQW7P2zbOxxFf3U9lhNZMb1zK5MpaN5biL3ssw5N/73dkh7F2GM2/QWZJBskI+2U81wLdh7opgc6CrtfWly/Fkq5HNj1eUgjCzeaE/ZWnuk/bQXpwZw9kQZLxIsmDE3PAsRjyhHM+5ZPnA+vb3Ae+NcrYg4J2A5xU8LfJYdz2HQl7Vd6VgwxDL3SvobDGTu9q/rn3RCoQkDNmNRjQiMHc5Nh6Nxj61lUKl6Cpm4Xj3Ka15ju/8TGaElkg5WkqR/ysFR83mWYalFMpHorElJDvkGlFnAFsUkrBj4yc4QIodTclbnjDX03roq8qzwti9V5j79gu9sFFoXWlHi3U7eAot3UOIkBECshevDDazLg8FD445pLx/ffsiS9lQUYlUgJIFJLOeoDqPPQMo9mpXRlQePBT0cxxHVO4/ENNnfhFG/y5Hz/XSGTLChuyZHevaF1I4Im52MDlWBYNzQJb5gOt2UUJtEaSlYycca+KxKN8cEXoenqWUmufu4m8bNgunXBaVv++K6Uu/CVvXhfezJicdvbBJqCnFKuLsZDp3MxppmdcEnWQEDAg9R6S7FE+2lAHTVBYESqSEOXjAYQFjY8KxbFGGcK07W2V7lQPYa+z+iZWZP+8X6rooo1X8druwTVNYExN0DuHLi6l0T4V0XIwnV38NnVQnAsuaV1Oev470meJ8VvK2Gks65ZFRKLaE2hEX0xcusQLyVCUj4DUvKFKjCTEDrwl6fdM3QK+H9+i9QMW2xfS58wLymEduvbCha0JpXfsKkZKr1tlY11eUu2QheaWCzeb+QxLCR2MsqHL3Hn0X+patwvxpUBh7fpZr1x5AXhTWv+MyEyAHBBTmoSN8vnTytDRWZhDrIF2nOxNfLG1qCgTaUF5Rvc7AKkfFn1zZ3LQqHT8prMeTojxyS3oPMuqAlowz9h0Qxt5BYR49wYqmz1+UnvZswLNblG+McOgMhEVzyUuySQeKlPMwpQwHiYR72qPvwKrHbp7bXs4zEh0JDoHaHqsSkAUBemY/FJqDEilCQk2kPUXCNkwmpRrv9mcPh8ElsLZ5bduCwJ1kpk2nyiVJ5XipRaln/PCjKF+9DhhPSaUNqSg9vclc0SjdiBNArrh9pws/zsFICoteS1+unEBBDHcmPg4gP49Doe0K5jiR8mL/Lo49kYt+M1eu8nfNVwGrnt67D09TRDRWWBoa5jPF777nUPp7hde8qJyPpXsSAXwccaGXVioSWsp9MoBgnbn8uyAzOJ/dLCDvi1u/k54Og2idzHQ2hKC3DYPTlhDRGysooYCFurCLDBitM4CgRdwIPvacCouqCWtKZYF6bx9VOFHcso2JR4YVd/RzOWZUEAqnUuGsKX6zHSj0S2TqjWADDDKgLgS1psPxJNhJAVXD4radbBjFl7LD3HdQWOMTwi5NM8yEmtrZxbyRIfuDs8U8eEQiU+NPNQR3u7OxJ0noizEJ5RxG/rOHngd5EC6J0Px2hcNUHr1FZVvoG7dwuDj+W3dIr5GWDT2kSsKhzsRiSsO369LQIyLBjcpWOnRUGAO7ZZHx0HGNMw8elg3Irfs2oKdf+c+/5P60RLIhA4A2y1CRhq94hehUtRDRJlKOikcVzvsRJ7gSeghRuiG+DPf1myDtqKycCIsGr72U1RuyhnSQrgep7Ek0pGopXlYtxTILnJk/rknmA1auanjXCHovC9yya5dKTFLiAnVBrpjgCtcNt2e4CPBM4SvFn3EpdpvRAlg1qck5AM2o25m+cLHa4SjP7ZkZWaDAcsoAvW8rG1f555EMA7hgDh7kVCX20//FPuzb/G2NfNlqMxpPt655mWaQaju+EE8GuR0TIQm+/EaHFLNw9HpqQBR3Ki6lE8Mg3ZAwDxwW3h6aA4j1lCFESPPocbkHHEJIHJLpteNz8a6vuR2H0I55/MZwEGtpmQfrRqoDidvBjO8HZJvtknWeJhx90xb5DcJKp8+K6V8vyP/wjVCpW719TGqku2XwTJC71hGJPF8dSPwjGcaldzE2lUEUHsk4M5IZh+NI9dzfjFIyxpRm/vmgYbHn7kjmVLKF0vZ1699aGfSNZP6hdKUcSpe4QylinrP8uas9WVLFbN88wrnFzRtKncPR2AfL5TxYG0pnG8tdI2bqxvJas3JmU+5rt97/Dp01pPISZH64PFi7Gzz1YhJ2LyYIx3sQdmWWi4k968WkdkWru5hMZnKXaRImmaFnuJh490K+I4CY8zFANiNtHvmvZlr9JaUuPN7VDM+HOLsq2tLywjNdzfxGhHyXU0oXZc2aBSgcS/9JKXQjnjQaqhu9G7KbPsaeY1RkcOZVOrsa8p75ctpoSMS9nq+AoKWomDTDoX6/NtwZXzKWUmLFTH4AigfQ1aJDnfGP8N+rtIf2rnDH7sj/XM//A9YbO+2tFAWVAAAAAElFTkSuQmCC"},75:function(e,t){e.exports="data:image/png;base64,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"},81:function(e,t,n){e.exports=n(442)},86:function(e,t,n){},90:function(e,t,n){},91:function(e,t,n){},92:function(e,t){e.exports="data:image/png;base64,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"},93:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAAFfklEQVR42qWXWWicVRiG/39mUim4NRq88MZWXIpLe+FS6lYKtZsW0UrRUmyllUIXpQiN3hXBC1sxdyom6q2lVRGhUqvFClURUVFUsu+ZmD2TTDKTycTn/fudcPzNJJMaeDOTnHO+7z3ffoLm5uagFFpaWpJ8LmloaAgaGxuD3t7epePj49unpqbeLhQKn4EvwQVwjv+dYm1fOp2u0t76+vqgqampAhmp+XTMqxwB0XcUr8pmsydQ8jPK0oYe0G3f+8AgGGDPn+x9t7+//8HW1taIODKSiyWQ0MGurq4bEKbbjoEZUATTYApMgglDrnDpp2j7hPzk5ORJyN9qJBLlEoiUDw4ObkNIhydQ6JHQ4eHhF1jfgLlXg7v5vn5oaGj3xMTE++xpjZ0ZyWQy+7Fo4Cw6H4GENnLgcExIu/6HRa7XugjOBcno7Oy8EjI7ccVvOstnJIP4OG4kwlIEopuj6JAdlElnuFUtiq/Tmt1ApkwiTJ+hIWF+TmiP9nZ0dChgj/my+LtGJPyYcAHnzL5VfuRAXgfGxsZe1rrWLCOCcuAHMO7agazs1CUWM7KkyYtiwm0OdUuL7KJTLiFAt/VvWQ4SdiYpZbjkCbOEAjhHYN7hLiWWS8QEU7/jfM73Ov3PlAfOrEZoQbi9Zu6UvnOhaic/n89/3dbWFq1FBQNGd7IwbinWiTWuRkjolLe3t1+BKZ8nJV8FRyH4ylxgrVp7RkdHDxIDyxwJXQQZARb4wSxcxCpbpTtiy6E3HTuYHnI+crGB8v2xrFgQEHrLBa0XYxtdvcjlcp9HMcDtr4LZr8Ysze2v8fI11MGBgYFtZqFiGcq1J0+wvWRyQnNnILOj6yfb8zc/VQGp8RR/9Mr8sDppfgtjUR1QcFZBdjN4FGwsAa1tAverDMcKT5Si6HvNKmmGorZbjGrFRqwx9d65Uk4H5a/FIF71nBv6+voesdKt/nEq4NcX1lByKq9+jvoW4OB9NJjHwCawuQS0tgU8jLkTMRKRO3t6em5ReVZ1Bd+KwFfW1bKq7UYgjPWF7ZYhZQchMVDtVc7AlXB0VJpy9YwzInDeCpAI3OUT8LJg72KzgMx6ww9Cj8C1rLeBFkfgrOeC9XEXWPSmRkZGdpCih8EBcLAEDqiXsHePmlI8DswFy9E1rHoDLioIP+JLvyKT4rCrVBBqKvqfQRjaVLXGglA6zyot9lhEFl0Jjqeh0N3dXcXhleA2cHsJaG0lZr7R0vlfWaCeg4WOWhqOkYYvilEVVvjLikMbplsaL0RE9UPms1FDpgRGLcLTuOHZeCFSbUDXBQvoIQrRTa4U17rgIeCe8eIgCkKEHVlsEHK792KlOOQi95j5p2lI56NSLH+x8IAKkRZg+AeNpILDUUuVEKxSiateh+iHoE6jVwnUsf4BqMGyy72OGHVVKu0ZV8656K6oGWl0lmlYPO2l0DFzQcqZ73LghhNL5Z2uV3DJX+iOumRKG1IWnTcrMGxoEMOn3UjtDSTlwO1VO0+Zhe/V9OxGM9J9nbk5FZ8H99nkop1Z0vJJu00YL88LjGSz8YPyNVZpC2bd407nf4ZS+Qlfn/AHSU0ymCv0htKkd9PAS9toZHMTkWSprugizu8E3seSpfiacyy3m4pEjdfbReY7zLbFxqiSY7lLNW69VgOHnXXKT2tSduRKPkwcCQ0U9uqZTS2E/ah+Tmdcp64GKsEysIIYWqsGhKJvrNDMntObQCNZXPmCTzOErkbg2di0U7CUVeHpstdTxpRO+1OTCDNNbXCZFFc+7+PUjdQyO758HJN+apNTxh6iae9xOmBVUBYbhvQ5sug5pdrlPk79B0aFUsleyVUUG/WOT8D39jS/CH7XJ2tH2LNCe60hJRd6nv8Dwj5T3q96iTAAAAAASUVORK5CYII="}},[[81,1,2]]]); -//# sourceMappingURL=main.8ace1835.chunk.js.map \ No newline at end of file +(window.webpackJsonpwebhole=window.webpackJsonpwebhole||[]).push([[0],{131:function(e,t){},150:function(e,t,n){},426:function(e,t,n){},428:function(e,t,n){},429:function(e,t,n){},438:function(e,t,n){},439:function(e,t,n){},440:function(e,t,n){},441:function(e,t,n){},442:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(10),i=n.n(r),s=(n(86),n(1)),l=n(2),c=n(4),u=n(3),h=n(6),d=n(5),p=n(22),m=n(9),f=n(23),g=n.n(f),b=function(){function e(){Object(s.a)(this,e),this.names={},this.current_h=Math.random()}return Object(l.a)(e,[{key:"get",value:function(e){return"\u6d1e\u4e3b"===(e=e.toLowerCase())?["hsl(0,0%,97%)","hsl(0,0%,16%)"]:(this.names[e]||(this.current_h+=.618033988749895,this.current_h%=1,this.names[e]=["hsl(".concat(360*this.current_h,", 50%, 90%)"),"hsl(".concat(360*this.current_h,", 60%, 20%)")]),this.names[e])}}]),e}(),v=/(^|[^\d\u20e3\ufe0e\ufe0f])(#\d{1,7})(?![\d\u20e3\ufe0e\ufe0f])/g,E=/((?:https?:\/\/)?thuhole\.com\/?#(?:#|%23)(\d{1,7}))(?!\d|\u20e3|\ufe0e|\ufe0f)/g,_=/(^|[^A-Za-z])((?:(?:Angry|Baby|Crazy|Diligent|Excited|Fat|Greedy|Hungry|Interesting|Jolly|Kind|Little|Magic|Na\xefve|Old|PKU|Quiet|Rich|Superman|Tough|Undefined|Valuable|Wifeless|Xiangbuchulai|Young|Zombie)\s)?(?:Alice|Bob|Carol|Dave|Eve|Francis|Grace|Hans|Isabella|Jason|Kate|Louis|Margaret|Nathan|Olivia|Paul|Queen|Richard|Susan|Thomas|Uma|Vivian|Winnie|Xander|Yasmine|Zach)|You Win(?: \d+)?|\u6d1e\u4e3b)(?![A-Za-z])/gi,w=/(^|[^.@a-zA-Z0-9_])((?:https?:\/\/)?(?:(?:[\w-]+\.)+[a-zA-Z]{2,3}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d{1,5})?(?:\/[\w~!@#$%^&*()\-_=+[\]{};:,./?|]*)?)(?![a-zA-Z0-9])/gi;function A(e,t){return e=[[null,e]],t.forEach(function(t){var n=Object(m.a)(t,2),a=n[0],o=n[1];e=[].concat.apply([],e.map(function(e){var t=Object(m.a)(e,2),n=t[0],r=t[1];return n?[e]:r.split(o).map(function(e){return o.test(e)?[a,e]:[null,e]}).filter(function(e){var t=Object(m.a)(e,2),n=t[0],a=t[1];return null!==n||a})}))}),e}var k=n(66),y=n.n(k),O=n(67),j=n.n(O),C=n(68),N=n.n(C),x=(n(90),n(91),n(69)),S=n.n(x),I=n(70),D=n.n(I),U=n(71),R=n.n(U),H=n(72),T=n.n(H),L=n(73),Q=n.n(L),M=n(74),P=n.n(M),G=(n(92),n(93),n(75)),X=n.n(G);function F(e){if(!e.ok)throw Error("\u7f51\u7edc\u9519\u8bef ".concat(e.status," ").concat(e.statusText));return e.text().then(function(e){try{return JSON.parse(e)}catch(t){throw console.error("json parse error"),console.trace(t),console.log(e),new SyntaxError("JSON Parse Error "+e.substr(0,50))}})}function V(){return"&PKUHelperAPI=3.0&jsapiver="+encodeURIComponent("Travis200708112842-"+2*Math.floor(+new Date/72e5))}var W=n(35),B="pkuhelper_login_popup_anchor";function K(e){return e<10?"0"+e:""+e}function Y(e){return"".concat(e.getMonth()+1,"-").concat(K(e.getDate())," ").concat(e.getHours(),":").concat(K(e.getMinutes()),":").concat(K(e.getSeconds()))}var z=N()(j.a);function q(e){var t=new Date(1e3*e.stamp);return o.a.createElement("span",{className:"time-str"},o.a.createElement(y.a,{date:t,formatter:z,title:t.toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1})}),"\xa0",Y(t))}function Z(e){return o.a.createElement("p",{className:"centered-line title-line aux-margin"},o.a.createElement("span",{className:"black-outline"},e.text))}S.a,D.a,R.a,T.a,Q.a,P.a,X.a;var J=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={loading_status:"idle",recaptcha_verified:!1},n.username_ref=o.a.createRef(),n.password_ref=o.a.createRef(),n.input_token_ref=o.a.createRef(),n.popup_anchor=document.getElementById(B),n.popup_anchor||(n.popup_anchor=document.createElement("div"),n.popup_anchor.id=B,document.body.appendChild(n.popup_anchor)),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"do_sendcode",value:function(e){var t=this;this.state.recaptcha_verified?"loading"!==this.state.loading_status&&this.setState({loading_status:"loading"},function(){fetch("//thuhole.com/api_xmcp/login/send_code?user="+encodeURIComponent(t.username_ref.current.value)+"&code_type="+encodeURIComponent(e)+"&recaptcha_token="+localStorage.recaptcha+V(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({excluded_scopes:[]})}).then(F).then(function(e){if(console.log(e),!e.success)throw new Error(JSON.stringify(e));alert(e.msg),t.setState({loading_status:"done"})}).catch(function(e){console.error(e),alert("\u53d1\u9001\u5931\u8d25\n"+e),t.setState({loading_status:"done"})})}):alert("reCAPTCHA\u98ce\u63a7\u7cfb\u7edf\u6b63\u5728\u8bc4\u4f30\u60a8\u7684\u6d4f\u89c8\u5668\u5b89\u5168\u72b6\u6001\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002")}},{key:"do_login",value:function(e){var t=this;"loading"!==this.state.loading_status&&this.setState({loading_status:"loading"},function(){fetch("//thuhole.com/api_xmcp/login/login?user="+encodeURIComponent(t.username_ref.current.value)+"&valid_code="+encodeURIComponent(t.password_ref.current.value)+V(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({excluded_scopes:[]})}).then(F).then(function(n){if(0!==n.code){if(n.msg)throw new Error(n.msg);throw new Error(JSON.stringify(n))}e(n.user_token),alert("\u767b\u5f55\u6210\u529f"),t.setState({loading_status:"done"}),t.props.on_close()}).catch(function(e){console.error(e),alert("\u767b\u5f55\u5931\u8d25\n"+e),t.setState({loading_status:"done"})})})}},{key:"do_input_token",value:function(e){var t=this;if("loading"!==this.state.loading_status){var n=this.input_token_ref.current.value;this.setState({loading_status:"loading"},function(){fetch("//thuhole.com/api_xmcp/hole/system_msg?user_token="+encodeURIComponent(n)+V()).then(function(e){return e.json()}).then(function(a){if(a.error)throw new Error(a.error);if(0===a.result.length)throw new Error("result check failed");t.setState({loading_status:"done"}),e(n),t.props.on_close()}).catch(function(e){alert("Token\u68c0\u9a8c\u5931\u8d25\n"+e),t.setState({loading_status:"done"}),console.error(e)})})}}},{key:"render",value:function(){var e=this;return i.a.createPortal(o.a.createElement(W.b,{reCaptchaKey:"6Leq0a0ZAAAAAHEStocsqtJfKEs9APB0LdgzTNfZ",useRecaptchaNet:!0},o.a.createElement(W.a,{onVerify:function(t){e.setState({recaptcha_verified:!0}),localStorage.recaptcha=t}}),o.a.createElement("div",null,o.a.createElement("div",{className:"thuhole-login-popup-shadow"}),o.a.createElement("div",{className:"thuhole-login-popup"},o.a.createElement("p",null,o.a.createElement("b",null,"\u63a5\u6536\u9a8c\u8bc1\u7801\u6765\u767b\u5f55 T\u5927\u6811\u6d1e")),o.a.createElement("p",null,o.a.createElement("label",null,"\u3000\u90ae\u7bb1\xa0",o.a.createElement("input",{ref:this.username_ref,type:"email",autoFocus:!0,defaultValue:"@mails.tsinghua.edu.cn"})),o.a.createElement("span",{className:"thuhole-login-type"},o.a.createElement("a",{onClick:function(t){return e.do_sendcode("mail")}},"\xa0\u53d1\u9001\u90ae\u4ef6\xa0"))),o.a.createElement("p",null,o.a.createElement("label",null,"\u9a8c\u8bc1\u7801\xa0",o.a.createElement("input",{ref:this.password_ref,type:"tel"})),o.a.createElement("button",{type:"button",disabled:"loading"===this.state.loading_status,onClick:function(t){return e.do_login(e.props.token_callback)}},"\u767b\u5f55")),o.a.createElement("hr",null),o.a.createElement("p",null,o.a.createElement("b",null,"\u4ece\u5176\u4ed6\u8bbe\u5907\u5bfc\u5165\u767b\u5f55\u72b6\u6001")),o.a.createElement("p",null,o.a.createElement("input",{ref:this.input_token_ref,placeholder:"User Token"}),o.a.createElement("button",{type:"button",disabled:"loading"===this.state.loading_status,onClick:function(t){return e.do_input_token(e.props.token_callback)}},"\u5bfc\u5165")),o.a.createElement("hr",null),o.a.createElement("p",{style:{fontSize:11}},"This site is protected by reCAPTCHA and the Google ",o.a.createElement("a",{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",o.a.createElement("a",{href:"https://policies.google.com/terms"},"Terms of Service")," apply."),o.a.createElement("p",null,o.a.createElement("button",{onClick:this.props.on_close},"\u53d6\u6d88"))))),this.popup_anchor)}}]),t}(a.Component),$=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={popup_show:!1},n.on_popup_bound=n.on_popup.bind(Object(h.a)(n)),n.on_close_bound=n.on_close.bind(Object(h.a)(n)),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"on_popup",value:function(){this.setState({popup_show:!0})}},{key:"on_close",value:function(){this.setState({popup_show:!1})}},{key:"render",value:function(){return o.a.createElement(o.a.Fragment,null,this.props.children(this.on_popup_bound),this.state.popup_show&&o.a.createElement(J,{token_callback:this.props.token_callback,on_close:this.on_close_bound}))}}]),t}(a.Component),ee="hole_cache_db",te=1,ne=function(){function e(){var t=this;Object(s.a)(this,e),this.db=null,this.added_items_since_maintenance=0,this.encrypt=this.encrypt.bind(this),this.decrypt=this.decrypt.bind(this);var n=indexedDB.open(ee,te);n.onerror=console.error.bind(console),n.onupgradeneeded=function(e){console.log("comment cache db upgrade"),e.target.result.createObjectStore("comment",{keyPath:"pid"}).createIndex("last_access","last_access",{unique:!1})},n.onsuccess=function(e){console.log("comment cache db loaded"),t.db=e.target.result,setTimeout(t.maintenance.bind(t),1)}}return Object(l.a)(e,[{key:"encrypt",value:function(e,t){for(var n=JSON.stringify(t),a="",o=0,r=(42^e)%128;o1e3?(console.log("comment cache db maintenance",a),t.index("last_access").openKeyCursor().onsuccess=function(e){var n=e.target.result;n&&(t.delete(n.primaryKey),--a>1e3&&n.continue())}):console.log("comment cache db no need to maintenance",a),e.added_items_since_maintenance=0},n.onerror=console.error.bind(console)}}},{key:"clear",value:function(){this.db&&(indexedDB.deleteDatabase(ee),console.log("delete comment cache db"))}}]),e}();function ae(){return window.hole_cache||(window.hole_cache=new ne),window.hole_cache}function oe(e){return V()+(e?"&user_token="+e:"")}var re={load_replies:function(e,t,n,a){return e=parseInt(e),fetch(ge+"/api.php?action=getcomment&pid="+e+oe(t)).then(F).then(function(t){if(0!==t.code)throw t.msg?new Error(t.msg):new Error(JSON.stringify(t));return ae().delete(e).then(function(){ae().put(e,a,t)}),t.data=t.data.sort(function(e,t){return parseInt(e.cid,10)-parseInt(t.cid,10)}).map(function(e){return e._display_color=n.get(e.name),e.variant={},e}),t})},load_replies_with_cache:function(e,t,n,a){return e=parseInt(e),ae().get(e,a).then(function(o){return o?(o.data=o.data.sort(function(e,t){return parseInt(e.cid,10)-parseInt(t.cid,10)}).map(function(e){return e._display_color=n.get(e.name),e.variant={},e}),o):re.load_replies(e,t,n,a)})},set_attention:function(e,t,n){var a=new URLSearchParams;return a.append("user_token",n),a.append("pid",e),a.append("switch",t?"1":"0"),fetch(ge+"/api.php?action=attention"+oe(n),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a}).then(F).then(function(t){if(ae().delete(e),0!==t.code&&(!t.msg||"\u5df2\u7ecf\u5173\u6ce8\u8fc7\u4e86"!==t.msg))throw t.msg&&alert(t.msg),new Error(JSON.stringify(t));return t})},report:function(e,t,n){var a=new URLSearchParams;return a.append("user_token",n),a.append("pid",e),a.append("reason",t),fetch(ge+"/api.php?action=report"+oe(n),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a}).then(F).then(function(e){if(0!==e.code)throw e.msg&&alert(e.msg),new Error(JSON.stringify(e));return e})},get_list:function(e,t){return fetch(ge+"/api.php?action=getlist&p="+e+oe(t)).then(F).then(function(e){if(0!==e.code)throw new Error(JSON.stringify(e));return e})},get_search:function(e,t,n){return fetch(ge+"/api.php?action=search&pagesize=50&page="+e+"&keywords="+encodeURIComponent(t)+oe(n)).then(F).then(function(e){if(0!==e.code){if(e.msg)throw new Error(e.msg);throw new Error(JSON.stringify(e))}return e})},get_single:function(e,t){return fetch(ge+"/api.php?action=getone&pid="+e+oe(t)).then(F).then(function(e){if(0!==e.code)throw e.msg?new Error(e.msg):new Error(JSON.stringify(e));return e})},get_attention:function(e){return fetch(ge+"/api.php?action=getattention"+oe(e)).then(F).then(function(e){if(0!==e.code){if(e.msg)throw new Error(e.msg);throw new Error(JSON.stringify(e))}return e})}},ie=n(36),se=n.n(ie),le=(n(150),n(76)),ce=n.n(le),ue=n(77),he=n.n(ue),de=n(37),pe=n.n(de),me=(n(425),n(426),n(427),new ce.a({html:!1,linkify:!1,breaks:!0,inline:!0,highlight:function(e,t){if(t&&pe.a.getLanguage(t))try{return'
'+pe.a.highlight(t,e,!0).value+"
"}catch(n){}return'
'+me.utils.escapeHtml(e)+"
"}}).use(he.a,{throwOnError:!1,errorColor:"#aa0000"})),fe=function(e){return me.render(e)},ge="//thuhole.com/services/thuhole";function be(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ve(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"g";return e?new RegExp("(".concat(e.split(t).filter(function(e){return!!e}).map(be).join("|"),")"),n):/^$/g}function Ee(e){return o.a.createElement("span",{className:"colored-span",style:{"--coloredspan-bgcolor-light":e.colors[0],"--coloredspan-bgcolor-dark":e.colors[1]}},e.children)}function _e(e){return/^https?:\/\//.test(e)?e:"http://"+e}a.PureComponent;var we=function(e){function t(){return Object(s.a)(this,t),Object(c.a)(this,Object(u.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){var e=this.props,t=[{shouldProcessNode:function(e){return"img"===e.name},processNode:function(e,t,n){return o.a.createElement("div",{key:n},"[\u56fe\u7247]")}},{shouldProcessNode:function(e){return/^h[123456]$/.test(e.name)},processNode:function(e,t,n){var a=+e.name[1];a<3&&(a=3);var r="h".concat(a);return o.a.createElement(r,{key:n},t)}},{shouldProcessNode:function(e){return"a"===e.name},processNode:function(e,t,n){return o.a.createElement("a",{href:_e(e.attribs.href),target:"_blank",rel:"noopenner noreferrer",className:"ext-link",key:n},t,o.a.createElement("span",{className:"icon icon-new-tab"}))}},{shouldProcessNode:function(e){return"text"===e.type&&(!e.parent||!e.parent.attribs||"application/x-tex"!=e.parent.attribs.encoding)},processNode:function(t,n,a){var r=A(t.data,[["url_pid",E],["url",w],["pid",v],["nickname",_]]);return o.a.createElement(o.a.Fragment,{key:a},r.map(function(t,n){var a=Object(m.a)(t,2),r=a[0],i=a[1];return o.a.createElement("span",{key:n},"url_pid"===r?o.a.createElement("span",{className:"url-pid-link",title:i},"/##"):"url"===r?o.a.createElement("a",{href:_e(i),className:"ext-link",target:"_blank",rel:"noopener noreferrer"},i,o.a.createElement("span",{className:"icon icon-new-tab"})):"pid"===r?o.a.createElement("a",{href:"#"+i,onClick:function(t){t.preventDefault(),e.show_pid(i.substring(1))}},i):"nickname"===r?o.a.createElement(Ee,{colors:e.color_picker.get(i)},i):"search"===r?o.a.createElement("span",{className:"search-query-highlight"},i):i)}))}},{shouldProcessNode:function(){return!0},processNode:new se.a.ProcessNodeDefinitions(o.a).processDefaultNode}],n=new se.a.Parser;if(e.author&&e.text.match(/^(?:#+ |>|```|\t|\s*-|\s*\d+\.)/)){var a=fe(e.text);return o.a.createElement(o.a.Fragment,null,e.author,n.parseWithInstructions(a,function(e){return"script"!==e.type},t)||"")}var r=e.text;e.author&&(r=e.author+" "+r);var i=fe(r);return n.parseWithInstructions(i,function(e){return"script"!==e.type},t)||null}}]),t}(a.Component);window.TEXTAREA_BACKUP={};var Ae=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={text:""},n.on_change_bound=n.on_change.bind(Object(h.a)(n)),n.on_keydown_bound=n.on_keydown.bind(Object(h.a)(n)),n.clear=n.clear.bind(Object(h.a)(n)),n.area_ref=o.a.createRef(),n.change_callback=e.on_change||function(){},n.submit_callback=e.on_submit||function(){},n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){var e=this;this.setState({text:window.TEXTAREA_BACKUP[this.props.id]||""},function(){e.change_callback(e.state.text)})}},{key:"componentWillUnmount",value:function(){window.TEXTAREA_BACKUP[this.props.id]=this.state.text,this.change_callback(this.state.text)}},{key:"on_change",value:function(e){this.setState({text:e.target.value}),this.change_callback(e.target.value)}},{key:"on_keydown",value:function(e){"Enter"===e.key&&e.ctrlKey&&!e.altKey&&(e.preventDefault(),this.submit_callback())}},{key:"clear",value:function(){this.setState({text:""})}},{key:"set",value:function(e){this.change_callback(e),this.setState({text:e})}},{key:"get",value:function(){return this.state.text}},{key:"focus",value:function(){this.area_ref.current.focus()}},{key:"render",value:function(){return o.a.createElement("textarea",{ref:this.area_ref,onChange:this.on_change_bound,value:this.state.text,onKeyDown:this.on_keydown_bound})}}]),t}(a.Component),ke=null;function ye(e){var t=/iPhone|iPad|iPod/i.test(window.navigator.userAgent);return window.matchMedia("(display-mode: standalone)").matches||window.navigator.standalone?null:t?navigator.standalone?null:o.a.createElement("div",{className:"box promotion-bar"},o.a.createElement("span",{className:"icon icon-about"}),"\xa0 \u7528 Safari \u628a\u6811\u6d1e ",o.a.createElement("b",null,"\u6dfb\u52a0\u5230\u4e3b\u5c4f\u5e55")," \u66f4\u597d\u7528"):ke?o.a.createElement("div",{className:"box promotion-bar"},o.a.createElement("span",{className:"icon icon-about"}),"\xa0 \u628a\u7f51\u9875\u7248\u6811\u6d1e ",o.a.createElement("b",null,o.a.createElement("a",{onClick:function(){ke&&ke.prompt()}},"\u5b89\u88c5\u5230\u684c\u9762"))," \u66f4\u597d\u7528"):null}window.addEventListener("beforeinstallprompt",function(e){console.log("pwa: received before install prompt"),ke=e});var Oe=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={moved:!0,init_y:0,init_x:0},n.on_begin_bound=n.on_begin.bind(Object(h.a)(n)),n.on_move_bound=n.on_move.bind(Object(h.a)(n)),n.on_end_bound=n.on_end.bind(Object(h.a)(n)),n.MOVE_THRESHOLD=3,n.last_fire=0,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"on_begin",value:function(e){this.setState({moved:!1,init_y:(e.touches?e.touches[0]:e).screenY,init_x:(e.touches?e.touches[0]:e).screenX})}},{key:"on_move",value:function(e){this.state.moved||Math.abs((e.touches?e.touches[0]:e).screenY-this.state.init_y)+Math.abs((e.touches?e.touches[0]:e).screenX-this.state.init_x)>this.MOVE_THRESHOLD&&this.setState({moved:!0})}},{key:"on_end",value:function(e){this.state.moved||this.do_callback(e),this.setState({moved:!0})}},{key:"do_callback",value:function(e){this.last_fire+100>+new Date||(this.last_fire=+new Date,this.props.callback(e))}},{key:"render",value:function(){return o.a.createElement("div",{onTouchStart:this.on_begin_bound,onMouseDown:this.on_begin_bound,onTouchMove:this.on_move_bound,onMouseMove:this.on_move_bound,onClick:this.on_end_bound},this.props.children)}}]),t}(a.PureComponent);n(428);function je(e,t,n,a){a=a||!1,e.addEventListener?e.addEventListener(t,n,a):e.attachEvent&&e.attachEvent("on".concat(t),function(t){n.call(e,t||window.event)})}function Ce(e,t,n,a){a=a||!1,e.removeEventListener?e.removeEventListener(t,n,a):e.detachEvent&&e.detachEvent("on".concat(t),n)}var Ne=function(e){if(!(e instanceof HTMLElement))return document.documentElement;for(var t="absolute"===e.style.position,n=/(scroll|auto)/,a=e;a;){if(!a.parentNode)return e.ownerDocument||document.documentElement;var o=window.getComputedStyle(a),r=o.position,i=o.overflow,s=o["overflow-x"],l=o["overflow-y"];if("static"===r&&t)a=a.parentNode;else{if(n.test(i)&&n.test(s)&&n.test(l))return a;a=a.parentNode}}return e.ownerDocument||e.documentElement||document.documentElement};var xe=0,Se=0,Ie="data-lazyload-listened",De=[],Ue=[],Re=!1;try{var He=Object.defineProperty({},"passive",{get:function(){Re=!0}});window.addEventListener("test",null,He)}catch(Ut){}var Te,Le=!!Re&&{capture:!1,passive:!0},Qe=function(e){var t=i.a.findDOMNode(e);if(t instanceof HTMLElement){var n=Ne(t);(e.props.overflow&&n!==t.ownerDocument&&n!==document&&n!==document.documentElement?function(e,t){var n,a,o=i.a.findDOMNode(e);try{var r=t.getBoundingClientRect();n=r.top,a=r.height}catch(Ut){n=xe,a=Se}var s,l,c=window.innerHeight||document.documentElement.clientHeight,u=Math.max(n,0),h=Math.min(c,n+a)-u;try{var d=o.getBoundingClientRect();s=d.top,l=d.height}catch(Ut){s=xe,l=Se}var p=s-u,m=Array.isArray(e.props.offset)?e.props.offset:[e.props.offset,e.props.offset];return p-m[0]<=h&&p+l+m[1]>=0}(e,n):function(e){var t,n,a=i.a.findDOMNode(e);if(!(a.offsetWidth||a.offsetHeight||a.getClientRects().length))return!1;try{var o=a.getBoundingClientRect();t=o.top,n=o.height}catch(Ut){t=xe,n=Se}var r=window.innerHeight||document.documentElement.clientHeight,s=Array.isArray(e.props.offset)?e.props.offset:[e.props.offset,e.props.offset];return t-s[0]<=r&&t+n+s[1]>=0}(e))?e.state.visible&&!e.state.hidden||(e.props.once&&Ue.push(e),e.setState({visible:!0,hidden:!1})):e.props.once||(e.props.unmountIfInvisible?!0===e.visible&&e.setState({visible:!1}):e.props.hiddenIfInvisible&&!1===e.state.hidden&&e.setState({hidden:!0}))}},Me=function(){for(var e=0;e=0?a=setTimeout(l,t-c):(a=null,n||(s=e.apply(r,o),a||(r=null,o=null)))};return function(){r=this,o=arguments,i=+new Date;var c=n&&!a;return a||(a=setTimeout(l,t)),c&&(s=e.apply(r,o),r=null,o=null),s}}(Me,"number"===typeof this.props.debounce?this.props.debounce:300),Te="debounce"):void 0!==this.props.throttle?(Pe=function(e,t,n){var a,o;return t||(t=250),function(){var r=n||this,i=+new Date,s=arguments;a&&iat&&(r=r*at/e,e=at,i=!0),r>at&&(e=e*at/r,r=at,i=!0),r*e>ot){var s=Math.sqrt(r*e/ot);r/=s,e/=s,i=!0}console.log("chosen img size",e,r);var l=document.createElement("canvas"),c=l.getContext("2d");l.width=e,l.height=r,c.drawImage(o,0,0,e,r);for(var u,h,d=.1,p=.9;p-d>=.03;)u=(p+d)/2,h=l.toDataURL("image/jpeg",u),console.log(d,p,"trying quality",u,"size",h.length),h.length<=rt?d=u:p=u;d>=.101?(console.log("chosen img quality",u),t({img:a(h),quality:u,width:Math.round(e),height:Math.round(r),compressed:i})):n("\u56fe\u7247\u8fc7\u5927\uff0c\u65e0\u6cd5\u4e0a\u4f20")},o.src=e}(e)})},o.readAsDataURL(e)})}},{key:"on_img_change",value:function(){var e=this;this.img_ref.current&&this.img_ref.current.files.length?this.setState({img_tip:"\uff08\u6b63\u5728\u5904\u7406\u56fe\u7247\u2026\u2026\uff09"},function(){e.proc_img(e.img_ref.current.files[0]).then(function(t){e.setState({img_tip:"\uff08".concat(t.compressed?"\u538b\u7f29\u5230":"\u5c3a\u5bf8"," ").concat(t.width,"*").concat(t.height," / ")+"\u8d28\u91cf ".concat(Math.floor(100*t.quality),"% / ").concat(Math.floor(t.img.length/(4/3)/1e3),"KB\uff09")})}).catch(function(t){e.setState({img_tip:"\u56fe\u7247\u65e0\u6548\uff1a".concat(t)})})}):this.setState({img_tip:null})}},{key:"on_submit",value:function(e){var t=this;e&&e.preventDefault(),"loading"!==this.state.loading_status&&(this.img_ref.current.files.length?(this.setState({loading_status:"processing"}),this.proc_img(this.img_ref.current.files[0]).then(function(e){t.setState({loading_status:"loading"}),t.do_post(t.state.text,e.img)}).catch(function(e){alert(e)})):(this.setState({loading_status:"loading"}),this.do_post(this.state.text,null)))}},{key:"toggle_preview",value:function(){this.setState({preview:!this.state.preview})}},{key:"render",value:function(){var e=this;return o.a.createElement("form",{onSubmit:this.on_submit.bind(this),className:"post-form box"},o.a.createElement("div",{className:"post-form-bar"},o.a.createElement("label",null,"\u56fe\u7247",o.a.createElement("input",{ref:this.img_ref,type:"file",accept:"image/*",disabled:"done"!==this.state.loading_status,onChange:this.on_img_change_bound})),this.state.preview?o.a.createElement("button",{type:"button",onClick:function(){e.toggle_preview()}},o.a.createElement("span",{className:"icon icon-eye-blocked"}),"\xa0\u7f16\u8f91"):o.a.createElement("button",{type:"button",onClick:function(){e.toggle_preview()}},o.a.createElement("span",{className:"icon icon-eye"}),"\xa0\u9884\u89c8"),"done"!==this.state.loading_status?o.a.createElement("button",{disabled:"disabled"},o.a.createElement("span",{className:"icon icon-loading"}),"\xa0","processing"===this.state.loading_status?"\u5904\u7406":"\u4e0a\u4f20"):o.a.createElement("button",{type:"submit"},o.a.createElement("span",{className:"icon icon-send"}),"\xa0\u53d1\u8868")),!!this.state.img_tip&&o.a.createElement("p",{className:"post-form-img-tip"},o.a.createElement("a",{onClick:function(){e.img_ref.current.value="",e.on_img_change()}},"\u5220\u9664\u56fe\u7247"),this.state.img_tip),this.state.preview?o.a.createElement("div",{className:"post-preview"},o.a.createElement(we,{text:this.state.text,color_picker:this.color_picker,show_pid:function(){}})):o.a.createElement(Ae,{ref:this.area_ref,id:"new_post",on_change:this.on_change_bound,on_submit:this.on_submit.bind(this)}),o.a.createElement("p",null,o.a.createElement("small",null,"\u8bf7\u9075\u5b88",o.a.createElement("a",{href:"https://thuhole.com/policy.html",target:"_blank"},"\u6811\u6d1e\u7ba1\u7406\u89c4\u8303\uff08\u8bd5\u884c\uff09"),"\uff0c\u6587\u660e\u53d1\u8a00")))}}]),t}(a.Component),ht={a:!0,audio:!0},dt=[],pt=["\u6027\u76f8\u5173","\u653f\u6cbb\u76f8\u5173","\u6027\u8bdd\u9898","\u653f\u6cbb\u8bdd\u9898","\u6298\u53e0","NSFW","\u5237\u5c4f","\u771f\u5b9e\u6027\u53ef\u7591","\u7528\u6237\u4e3e\u62a5\u8f83\u591a","\u4e3e\u62a5\u8f83\u591a","\u91cd\u590d\u5185\u5bb9"];window.LATEST_POST_ID=parseInt(localStorage._LATEST_POST_ID,10)||0;function mt(e,t){return function(n){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=new b,i="\u6811\u6d1e #"+n;e(i,o.a.createElement("div",{className:"box box-tip"},"\u6b63\u5728\u52a0\u8f7d #",n),a?"replace":"push"),re.get_single(n,t).then(function(e){return e.data.variant={},new Promise(function(a,o){re.load_replies_with_cache(n,t,r,parseInt(e.data.reply)).then(function(t){a([e,t])}).catch(o)})}).then(function(n){var a=Object(m.a)(n,2),s=a[0],l=a[1];e(i,o.a.createElement(bt,{key:+new Date,info:s.data,replies:l.data,attention:l.attention,token:t,show_sidebar:e,color_picker:r,deletion_detect:"on"===localStorage.DELETION_DETECT}),"replace")}).catch(function(a){console.error(a),e(i,o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement("a",{onClick:function(){return mt(e,t)(n,!0)}},"\u91cd\u65b0\u52a0\u8f7d")),o.a.createElement("p",null,""+a)),"replace")})}}var ft=function(e){function t(e){return Object(s.a)(this,t),Object(c.a)(this,Object(u.a)(t).call(this,e))}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){var e=this,t=this.props.info.text,n=t.indexOf("]"),a=t.substr(0,n+1),r=t.substr(n+2);return o.a.createElement("div",{className:"flow-reply box",style:this.props.info._display_color?{"--box-bgcolor-light":this.props.info._display_color[0],"--box-bgcolor-dark":this.props.info._display_color[1]}:null},o.a.createElement("div",{className:"box-header"},o.a.createElement("code",{className:"box-id"},"#",this.props.info.cid),!!this.props.do_filter_name&&o.a.createElement("span",{className:"reply-header-badge clickable",onClick:function(){e.props.do_filter_name(e.props.info.name)}},o.a.createElement("span",{className:"icon icon-locate"})),"\xa0",null!==this.props.info.tag&&o.a.createElement("span",{className:"box-header-tag"},this.props.info.tag),o.a.createElement(q,{stamp:this.props.info.timestamp})),o.a.createElement("div",{className:"box-content"},o.a.createElement(we,{author:a,text:r,color_picker:this.props.color_picker,show_pid:this.props.show_pid})))}}]),t}(a.PureComponent),gt=function(e){function t(e){return Object(s.a)(this,t),Object(c.a)(this,Object(u.a)(t).call(this,e))}return Object(d.a)(t,e),Object(l.a)(t,[{key:"copy_link",value:function(e){e.preventDefault(),g()("".concat(e.target.href).concat(this.props.info.tag?" \u3010"+this.props.info.tag+"\u3011":"","\n")+"".concat(this.props.info.text).concat("image"===this.props.info.type?" [\u56fe\u7247]":"audio"===this.props.info.type?" [\u8bed\u97f3]":"","\n")+"\uff08".concat(Y(new Date(1e3*this.props.info.timestamp))," ").concat(this.props.info.likenum,"\u5173\u6ce8 ").concat(this.props.info.reply,"\u56de\u590d\uff09\n")+this.props.replies.map(function(e){return(e.tag?"\u3010"+e.tag+"\u3011":"")+e.text}).join("\n"))}},{key:"render",value:function(){var e=this,t=this.props;return o.a.createElement("div",{className:"flow-item"+(t.is_quote?" flow-item-quote":"")},!!t.is_quote&&o.a.createElement("div",{className:"quote-tip black-outline"},o.a.createElement("div",null,o.a.createElement("span",{className:"icon icon-quote"})),o.a.createElement("div",null,o.a.createElement("small",null,"\u63d0\u5230"))),o.a.createElement("div",{className:"box"},!!window.LATEST_POST_ID&&parseInt(t.info.pid,10)>window.LATEST_POST_ID&&o.a.createElement("div",{className:"flow-item-dot"}),o.a.createElement("div",{className:"box-header"},!!this.props.do_filter_name&&o.a.createElement("span",{className:"reply-header-badge clickable",onClick:function(){e.props.do_filter_name("\u6d1e\u4e3b")}},o.a.createElement("span",{className:"icon icon-locate"})),!!parseInt(t.info.likenum,10)&&o.a.createElement("span",{className:"box-header-badge"},t.info.likenum,"\xa0",o.a.createElement("span",{className:"icon icon-"+(t.attention?"star-ok":"star")})),!!parseInt(t.info.reply,10)&&o.a.createElement("span",{className:"box-header-badge"},t.info.reply,"\xa0",o.a.createElement("span",{className:"icon icon-reply"})),o.a.createElement("code",{className:"box-id"},o.a.createElement("a",{href:"##"+t.info.pid,onClick:this.copy_link.bind(this)},"#",t.info.pid)),"\xa0",null!==t.info.tag&&"\u6298\u53e0"!==t.info.tag&&o.a.createElement("span",{className:"box-header-tag"},t.info.tag),o.a.createElement(q,{stamp:t.info.timestamp})),o.a.createElement("div",{className:"box-content"},o.a.createElement(we,{text:t.fold?"_\u5355\u51fb\u4ee5\u67e5\u770b\u6811\u6d1e_":t.info.text,color_picker:t.color_picker,show_pid:t.show_pid}),"image"===t.info.type&&!t.fold&&o.a.createElement("p",{className:"img"},t.img_clickable?o.a.createElement("a",{className:"no-underline",href:"//img.thuhole.com/"+t.info.url,target:"_blank"},o.a.createElement("img",{src:"//img.thuhole.com/"+t.info.url})):o.a.createElement("img",{src:"//img.thuhole.com/"+t.info.url}))),!(!t.attention||!t.info.variant.latest_reply)&&o.a.createElement("p",{className:"box-footer"},"\u6700\u65b0\u56de\u590d ",o.a.createElement(q,{stamp:t.info.variant.latest_reply}))))}}]),t}(a.PureComponent),bt=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={attention:e.attention,info:e.info,replies:e.replies,loading_status:"done",error_msg:null,filter_name:null,rev:!1},n.color_picker=e.color_picker,n.syncState=e.sync_state||function(){},n.reply_ref=o.a.createRef(),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"set_variant",value:function(e,t){this.setState(function(n){return e?{replies:n.replies.map(function(n){return n.cid===e?Object.assign({},n,{variant:Object.assign({},n.variant,t)}):n})}:{info:Object.assign({},n.info,{variant:Object.assign({},n.info.variant,t)})}},function(){this.syncState({info:this.state.info,replies:this.state.replies})})}},{key:"load_replies",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.setState({loading_status:"loading",error_msg:null}),re.load_replies(this.state.info.pid,this.props.token,this.color_picker,null).then(function(n){e.setState(function(e,a){return{replies:n.data,info:t?Object.assign({},e.info,{reply:""+n.data.length}):e.info,attention:!!n.attention,loading_status:"done",error_msg:null}},function(){e.syncState({replies:e.state.replies,attention:e.state.attention,info:e.state.info}),e.state.replies.length&&e.set_variant(null,{latest_reply:Math.max.apply(null,e.state.replies.map(function(e){return parseInt(e.timestamp)}))})})}).catch(function(t){console.error(t),e.setState({replies:[],loading_status:"done",error_msg:""+t})})}},{key:"toggle_attention",value:function(){var e=this;this.setState({loading_status:"loading"});var t=!this.state.attention;re.set_attention(this.state.info.pid,t,this.props.token).then(function(n){e.setState({loading_status:"done",attention:t}),e.syncState({attention:t})}).catch(function(t){e.setState({loading_status:"done"}),alert("\u8bbe\u7f6e\u5173\u6ce8\u5931\u8d25"),console.error(t)})}},{key:"report",value:function(){var e=prompt("\u4e3e\u62a5 #".concat(this.state.info.pid," \u7684\u7406\u7531\uff1a"));null!==e&&re.report(this.state.info.pid,e,this.props.token).then(function(e){alert("\u4e3e\u62a5\u6210\u529f")}).catch(function(e){alert("\u4e3e\u62a5\u5931\u8d25"),console.error(e)})}},{key:"set_filter_name",value:function(e){this.setState(function(t){return{filter_name:e===t.filter_name?null:e}})}},{key:"toggle_rev",value:function(){this.setState(function(e){return{rev:!e.rev}})}},{key:"show_reply_bar",value:function(e,t){if(this.reply_ref.current&&!t.target.closest("a, .clickable")){var n=this.reply_ref.current.get();if(/^\s*(?:Re (?:|\u6d1e\u4e3b|(?:[A-Z][a-z]+ )?(?:[A-Z][a-z]+)|You Win(?: \d+)?):)?\s*$/.test(n)){var a="Re "+e+": ";a===this.reply_ref.current.get()?this.reply_ref.current.set(""):this.reply_ref.current.set(a)}}}},{key:"render",value:function(){var e=this;if("loading"===this.state.loading_status)return o.a.createElement("p",{className:"box box-tip"},"\u52a0\u8f7d\u4e2d\u2026\u2026");var t=mt(this.props.show_sidebar,this.props.token),n=this.state.filter_name?this.state.replies.filter(function(t){return t.name===e.state.filter_name}):this.state.replies.slice();this.state.rev&&n.reverse();var a=(this.state.rev?"y-":"n-")+(this.state.filter_name||"null"),r=Object(p.a)({},"\u6d1e\u4e3b",1);n.forEach(function(e){void 0===r[e.name]&&(r[e.name]=0),r[e.name]++});var i=this.state.filter_name&&"\u6d1e\u4e3b"!==this.state.filter_name?null:o.a.createElement(Oe,{callback:function(t){e.show_reply_bar("",t)}},o.a.createElement(gt,{info:this.state.info,attention:this.state.attention,img_clickable:!0,fold:!1,color_picker:this.color_picker,show_pid:t,replies:this.state.replies,set_variant:function(t){e.set_variant(null,t)},do_filter_name:r["\u6d1e\u4e3b"]>1?this.set_filter_name.bind(this):null}));return o.a.createElement("div",{className:"flow-item-row sidebar-flow-item"},o.a.createElement("div",{className:"box box-tip"},!!this.props.token&&o.a.createElement("span",null,o.a.createElement("a",{onClick:this.report.bind(this)},o.a.createElement("span",{className:"icon icon-flag"}),o.a.createElement("label",null,"\u4e3e\u62a5")),"\xa0\xa0"),o.a.createElement("a",{onClick:this.load_replies.bind(this)},o.a.createElement("span",{className:"icon icon-refresh"}),o.a.createElement("label",null,"\u5237\u65b0")),(this.state.replies.length>=1||this.state.rev)&&o.a.createElement("span",null,"\xa0\xa0",o.a.createElement("a",{onClick:this.toggle_rev.bind(this)},o.a.createElement("span",{className:"icon icon-order-rev"}),o.a.createElement("label",null,this.state.rev?"\u8fd8\u539f":"\u9006\u5e8f"))),!!this.props.token&&o.a.createElement("span",null,"\xa0\xa0",o.a.createElement("a",{onClick:function(){e.toggle_attention()}},this.state.attention?o.a.createElement("span",null,o.a.createElement("span",{className:"icon icon-star-ok"}),o.a.createElement("label",null,"\u5df2\u5173\u6ce8")):o.a.createElement("span",null,o.a.createElement("span",{className:"icon icon-star"}),o.a.createElement("label",null,"\u672a\u5173\u6ce8"))))),!!this.state.filter_name&&o.a.createElement("div",{className:"box box-tip flow-item filter-name-bar"},o.a.createElement("p",null,o.a.createElement("span",{style:{float:"left"}},o.a.createElement("a",{onClick:function(){e.set_filter_name(null)}},"\u8fd8\u539f")),o.a.createElement("span",{className:"icon icon-locate"}),"\xa0\u5f53\u524d\u53ea\u770b\xa0",o.a.createElement(Ee,{colors:this.color_picker.get(this.state.filter_name)},this.state.filter_name))),!this.state.rev&&i,!!this.state.error_msg&&o.a.createElement("div",{className:"box box-tip flow-item"},o.a.createElement("p",null,"\u56de\u590d\u52a0\u8f7d\u5931\u8d25"),o.a.createElement("p",null,this.state.error_msg)),this.props.deletion_detect&&parseInt(this.state.info.reply)>this.state.replies.length&&!!this.state.replies.length&&o.a.createElement("div",{className:"box box-tip flow-item box-danger"},parseInt(this.state.info.reply)-this.state.replies.length," \u6761\u56de\u590d\u88ab\u5220\u9664"),n.map(function(n){return o.a.createElement(Xe,{key:n.cid+a,offset:1500,height:"5em",overflow:!0,once:!0},o.a.createElement(Oe,{callback:function(t){e.show_reply_bar(n.name,t)}},o.a.createElement(ft,{info:n,color_picker:e.color_picker,show_pid:t,set_variant:function(t){e.set_variant(n.cid,t)},do_filter_name:r[n.name]>1?e.set_filter_name.bind(e):null})))}),this.state.rev&&i,this.props.token?o.a.createElement(ct,{pid:this.state.info.pid,token:this.props.token,area_ref:this.reply_ref,on_complete:this.load_replies.bind(this)}):o.a.createElement("div",{className:"box box-tip flow-item"},"\u767b\u5f55\u540e\u53ef\u4ee5\u56de\u590d\u6811\u6d1e"))}}]),t}(a.PureComponent),vt=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={replies:[],reply_status:"done",reply_error:null,info:Object.assign({},e.info,{variant:{}}),attention:null!==e.attention_override&&e.attention_override},n.color_picker=new b,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){parseInt(this.state.info.reply,10)&&this.load_replies(null,!1)}},{key:"load_replies",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];console.log("fetching reply",this.state.info.pid),this.setState({reply_status:"loading",reply_error:null}),re.load_replies_with_cache(this.state.info.pid,this.props.token,this.color_picker,parseInt(this.state.info.reply)).then(function(a){t.setState(function(e,t){return{replies:a.data,info:Object.assign({},e.info,{reply:n?""+a.data.length:e.info.reply,variant:a.data.length?{latest_reply:Math.max.apply(null,a.data.map(function(e){return parseInt(e.timestamp)}))}:{}}),attention:!!a.attention,reply_status:"done",reply_error:null}},e)}).catch(function(n){console.error(n),t.setState({replies:[],reply_status:"failed",reply_error:""+n},e)})}},{key:"show_sidebar",value:function(){this.props.show_sidebar("\u6811\u6d1e #"+this.state.info.pid,o.a.createElement(bt,{key:+new Date,info:this.state.info,replies:this.state.replies,attention:this.state.attention,sync_state:this.setState.bind(this),token:this.props.token,show_sidebar:this.props.show_sidebar,color_picker:this.color_picker,deletion_detect:this.props.deletion_detect}))}},{key:"render",value:function(){var e=this,t=mt(this.props.show_sidebar,this.props.token,this.state.info.pid),n=[["url_pid",E],["url",w],["pid",v],["nickname",_]];this.props.search_param&&n.push(["search",ve(this.props.search_param," ","gi")]);var a=A(this.state.info.text,n),r=null;if(!this.props.is_quote){var i=!0,s=!1,l=void 0;try{for(var c,u=a[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value,d=Object(m.a)(h,2),p=d[0],f=d[1];if(f=f.length>0?f.substring(1):f,"pid"===p&&-1===dt.indexOf(f)&&parseInt(f)-1&&("\u70ed\u699c"===this.props.search_param||!this.props.search_param)&&window.config.fold,b=o.a.createElement("div",{className:"flow-item-row flow-item-row-with-prompt"+(this.props.is_quote?" flow-item-row-quote":""),onClick:function(t){ht[t.target.tagName.toLowerCase()]||e.show_sidebar()}},o.a.createElement(gt,{parts:a,info:this.state.info,attention:this.state.attention,img_clickable:!1,is_quote:this.props.is_quote,color_picker:this.color_picker,show_pid:t,replies:this.state.replies,fold:g}),!g&&o.a.createElement("div",{className:"flow-reply-row"},"loading"===this.state.reply_status&&o.a.createElement("div",{className:"box box-tip"},"\u52a0\u8f7d\u4e2d"),"failed"===this.state.reply_status&&o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement("a",{onClick:function(){e.load_replies()}},"\u91cd\u65b0\u52a0\u8f7d\u8bc4\u8bba")),o.a.createElement("p",null,this.state.reply_error)),this.state.replies.slice(0,10).map(function(n){return o.a.createElement(ft,{key:n.cid,info:n,color_picker:e.color_picker,show_pid:t})}),this.state.replies.length>10&&o.a.createElement("div",{className:"box box-tip"},"\u8fd8\u6709 ",this.state.replies.length-10," \u6761")));return!g&&r?o.a.createElement("div",null,b,o.a.createElement(Et,{pid:r,show_sidebar:this.props.show_sidebar,token:this.props.token,deletion_detect:this.props.deletion_detect})):b}}]),t}(a.PureComponent),Et=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={loading_status:"empty",error_msg:null,info:null},n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){this.load()}},{key:"load",value:function(){var e=this;this.setState({loading_status:"loading"},function(){re.get_single(e.props.pid,e.props.token).then(function(t){e.setState({loading_status:"done",info:t.data})}).catch(function(t){-1!==(""+t).indexOf("\u6ca1\u6709\u8fd9\u6761\u6811\u6d1e")?e.setState({loading_status:"empty"}):e.setState({loading_status:"error",error_msg:""+t})})})}},{key:"render",value:function(){return"empty"===this.state.loading_status?null:"loading"===this.state.loading_status?o.a.createElement("div",{className:"aux-margin"},o.a.createElement("div",{className:"box box-tip"},o.a.createElement("span",{className:"icon icon-loading"}),"\u63d0\u5230\u4e86 #",this.props.pid)):"error"===this.state.loading_status?o.a.createElement("div",{className:"aux-margin"},o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement("a",{onClick:this.load.bind(this)},"\u91cd\u65b0\u52a0\u8f7d")),o.a.createElement("p",null,this.state.error_msg))):o.a.createElement(vt,{info:this.state.info,show_sidebar:this.props.show_sidebar,token:this.props.token,is_quote:!0,deletion_detect:this.props.deletion_detect})}}]),t}(a.PureComponent);function _t(e){return o.a.createElement(it.Consumer,null,function(t){var n=t.value;return o.a.createElement("div",{className:"flow-chunk"},!!e.title&&o.a.createElement(Z,{text:e.title}),e.list.map(function(t,a){return o.a.createElement(Xe,{key:t.pid,offset:1500,height:"15em",hiddenIfInvisible:!0},o.a.createElement("div",null,!!(e.deletion_detect&&"list"===e.mode&&a&&e.list[a-1].pid-t.pid>1)&&o.a.createElement("div",{className:"flow-item-row"},o.a.createElement("div",{className:"box box-tip flow-item box-danger"},e.list[a-1].pid-t.pid-1," \u6761\u88ab\u5220\u9664")),o.a.createElement(vt,{info:t,show_sidebar:e.show_sidebar,token:n,attention_override:"attention_finished"===e.mode||null,deletion_detect:e.deletion_detect,search_param:e.search_param})))}))})}var wt=function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={mode:e.mode,search_param:e.search_text,loaded_pages:0,chunks:{title:"",data:[]},loading_status:"done",error_msg:null},n.on_scroll_bound=n.on_scroll.bind(Object(h.a)(n)),window.LATEST_POST_ID=parseInt(localStorage._LATEST_POST_ID,10)||0,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"load_page",value:function(e){var t=this,n=function(e){console.error(e),t.setState(function(t,n){return{loaded_pages:t.loaded_pages-1,loading_status:"failed",error_msg:""+e}})};if(e>this.state.loaded_pages+1)throw new Error("bad page");if(e===this.state.loaded_pages+1){if(console.log("fetching page",e),"list"===this.state.mode)re.get_list(e,this.props.token).then(function(n){if(1===e&&n.data.length){var a=-1;n.data.forEach(function(e){parseInt(e.pid,10)>a&&(a=parseInt(e.pid,10))}),localStorage._LATEST_POST_ID=""+a}t.setState(function(e,t){return{chunks:{title:"News Feed",data:e.chunks.data.concat(n.data.filter(function(t){return 0===e.chunks.data.length||!e.chunks.data.slice(-100).some(function(e){return e.pid===t.pid})}))},loading_status:"done"}})}).catch(n);else if("search"===this.state.mode)re.get_search(e,this.state.search_param,this.props.token).then(function(e){var n=0===e.data.length;t.setState(function(a,o){return{chunks:{title:'Result for "'+t.state.search_param+'"',data:a.chunks.data.concat(e.data.filter(function(e){return 0===a.chunks.data.length||!a.chunks.data.slice(-100).some(function(t){return t.pid===e.pid})}))},mode:n?"search_finished":"search",loading_status:"done"}})}).catch(n);else if("single"===this.state.mode){var a=parseInt(this.state.search_param.substr(1),10);re.get_single(a,this.props.token).then(function(e){t.setState({chunks:{title:"PID = "+a,data:[e.data]},mode:"single_finished",loading_status:"done"})}).catch(n)}else{if("attention"!==this.state.mode)return void console.log("nothing to load");re.get_attention(this.props.token).then(function(e){t.setState({chunks:{title:"Attention List",data:e.data},mode:"attention_finished",loading_status:"done"})}).catch(n)}this.setState(function(e,t){return{loaded_pages:e.loaded_pages+1,loading_status:"loading",error_msg:null}})}}},{key:"on_scroll",value:function(e){e.target===document&&(document.body.scrollHeight-window.scrollY-window.innerHeight2&&o.a.createElement("a",{className:"no-underline",onClick:this.do_back_bound},"\xa0",o.a.createElement("span",{className:"icon icon-back"}),"\xa0"),t))}}]),t}(a.PureComponent),jt=n(80),Ct=n.n(jt),Nt=(n(441),function(e){function t(e){var n;return Object(s.a)(this,t),(n=Object(c.a)(this,Object(u.a)(t).call(this,e))).state={level:0,fired:!1},n.callback=e.callback,n.esc_interval=null,n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"do_fire",value:function(){var e=this;this.esc_interval&&(clearInterval(this.esc_interval),this.esc_interval=null),this.setState({level:1,fired:!0}),this.callback(),window.setTimeout(function(){e.setState({level:0,fired:!1})},300)}},{key:"componentDidMount",value:function(){var e=this;window.config.pressure&&(Ct.a.set(document.body,{change:function(t){e.state.fired||(t>=.999?e.do_fire():e.setState({level:t}))},end:function(){e.setState({level:0,fired:!1})}},{polyfill:!1,only:"touch",preventSelect:!1}),document.addEventListener("keydown",function(t){t.repeat||"Escape"!==t.key||(e.esc_interval&&clearInterval(e.esc_interval),e.setState({level:.2},function(){e.esc_interval=setInterval(function(){var t=e.state.level+.1;t>=.999?e.do_fire():e.setState({level:t})},30)}))}),document.addEventListener("keyup",function(t){"Escape"===t.key&&(e.esc_interval&&(clearInterval(e.esc_interval),e.esc_interval=null),e.setState({level:0}))}))}},{key:"render",value:function(){var e=25*(this.state.level-.4)-500;return o.a.createElement("div",{className:"pressure-box"+(this.state.fired?" pressure-box-fired":"")+(this.state.level<=1e-4?" pressure-box-empty":""),style:{left:e,right:e,top:e,bottom:e}})}}]),t}(a.Component));function xt(e){return o.a.createElement("div",{id:"global-hint-container",style:{display:"none"}})}var St=function(e){function t(e){var n;return Object(s.a)(this,t),n=Object(c.a)(this,Object(u.a)(t).call(this,e)),Ye(),function(e){function t(){(void 0===e?window.matchMedia("(prefers-color-scheme: dark)").matches:e)?document.body.classList.add("root-dark-mode"):document.body.classList.remove("root-dark-mode")}t(),window.matchMedia("(prefers-color-scheme: dark)").addListener(function(){t()})}({default:void 0,light:!1,dark:!0}[window.config.color_scheme]),n.state={sidebar_stack:[[null,null]],mode:"list",search_text:null,flow_render_key:+new Date,token:localStorage.TOKEN||null},n.show_sidebar_bound=n.show_sidebar.bind(Object(h.a)(n)),n.set_mode_bound=n.set_mode.bind(Object(h.a)(n)),n.on_pressure_bound=n.on_pressure.bind(Object(h.a)(n)),n.inthu_flag=-1!==window[atob("ZG9jdW1lbnQ")][atob("Y29va2ll")].indexOf(atob("dGh1X2lwX2ZsYWc9eWVz")),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"on_pressure",value:function(){this.state.sidebar_stack.length>1?this.show_sidebar(null,null,"clear"):this.set_mode("list",null)}},{key:"show_sidebar",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"push";this.setState(function(a){var o=a.sidebar_stack.slice();if("push"===n)o.length>10&&o.splice(1,1),o=o.concat([[e,t]]);else if("pop"===n){if(1===o.length)return;o.pop()}else if("replace"===n)o.pop(),o=o.concat([[e,t]]);else{if("clear"!==n)throw new Error("bad show_sidebar mode");o=[[null,null]]}return{sidebar_stack:o}})}},{key:"set_mode",value:function(e,t){this.setState({mode:e,search_text:t,flow_render_key:+new Date})}},{key:"render",value:function(){var e=this;return o.a.createElement(it.Provider,{value:{value:this.state.token,set_value:function(t){localStorage.TOKEN=t||"",e.setState({token:t})}}},o.a.createElement(Nt,{callback:this.on_pressure_bound}),o.a.createElement("div",{className:"bg-img",style:qe()}),o.a.createElement(yt,{show_sidebar:this.show_sidebar_bound,set_mode:this.set_mode_bound}),o.a.createElement(it.Consumer,null,function(t){return o.a.createElement("div",{className:"left-container"},o.a.createElement(xt,{token:t.value}),!t.value&&o.a.createElement("div",{className:"flow-item-row aux-margin"},o.a.createElement("div",{className:"box box-tip"},o.a.createElement("p",null,o.a.createElement($,{token_callback:t.set_value},function(e){return o.a.createElement("a",{onClick:e},o.a.createElement("span",{className:"icon icon-login"}),"\xa0\u767b\u5f55\u5230 T\u5927\u6811\u6d1e")})))),e.inthu_flag||t.value?o.a.createElement(wt,{key:e.state.flow_render_key,show_sidebar:e.show_sidebar_bound,mode:e.state.mode,search_text:e.state.search_text,token:t.value}):o.a.createElement(Z,{text:"\u8bf7\u767b\u5f55\u540e\u67e5\u770b\u5185\u5bb9"}),o.a.createElement("br",null))}),o.a.createElement(Ot,{show_sidebar:this.show_sidebar_bound,stack:this.state.sidebar_stack}))}}],[{key:"is_darkmode",value:function(){return"dark"===window.config.color_scheme||"light"!==window.config.color_scheme&&window.matchMedia("(prefers-color-scheme: dark)").matches}}]),t}(a.Component),It=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function Dt(e){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var t=e.installing;t.onstatechange=function(){"installed"===t.state&&(navigator.serviceWorker.controller?console.log("New content is available; please refresh."):console.log("Content is cached for offline use."))}}}).catch(function(e){console.error("Error during service worker registration:",e)})}i.a.render(o.a.createElement(St,null),document.getElementById("root")),"serviceWorker"in navigator&&window.addEventListener("load",function(){var e="".concat(".","/service-worker.js");It?(function(e){fetch(e).then(function(t){404===t.status||-1===t.headers.get("content-type").indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):Dt(e)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://goo.gl/SC7cgQ")})):Dt(e)})},69:function(e,t){e.exports="data:image/png;base64,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"},70:function(e,t){e.exports="data:image/png;base64,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"},71:function(e,t){e.exports="data:image/png;base64,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"},72:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFdklEQVR42sVW+VNTVxS+f4Od9oeW0RmlU8dOcRx3BEHbqiio3dtfamds+0N1bGe62emirYpSLRYDguAWJQihLZBAEkgKgbCHgIBAXbBTtgSykhAQEL/ecyWtwwMHx9DemS/vvXvv+c73zj3n5DEAjHBodJz9MD7BvuP3KVbb0xqV1p6lzENzS9u7Y3zOVWNittXPMmvMWmaNjZgeW8OZY91i1pSbzSqcg6y01Lj7V7UOap3Bma9WhyiKtEyh0bGsQg0L+P3n5talDNZ5LpWZCwqYqqYxJk9TggK1Bkpza7pWrWNdsZHM/uKymZ1Pgvb07ohiel0Jy7VcO1ug0iCfc+WbW7fUa0vYrUw5u6G8IhXglR1l/qR45tu/l9WeTo5XGqvxS3k1tPmF+t6Y8MXOVYui+3ZEb+ROHoq+HVEb3WtCo23bIhZrCwoNuZyHuKpTU474v/2M+dOSmDdDJhVgzUxn1oQDcd7w59C5+00oqxqgsLTBnHAIQ8vnoy9uPbiDWYH2kk1dwmFkWdqRU2nG9V2vw8e5rScOx/ZnX5YK6Dvw6Z6+VzYMepY8hT8++ZALMONKfQuqkxLhWf88rNvCZy2A54KwqTp1UnCQgPZ9H8Cz5ElYX93gsR38/COpgO3r5bata+FYHYrKve8jp7EDuW23USRLQveKhXDERc5agCMuAt0rF6JQdkpw5DS1o3LPbsFti1nLIxQplx7BljVyO3fSExUG/YYVyFMVIa/lOvLfewcdyxbAvTNq1gJobzu3Ue16G3nNnCNfDUP0cvRELwX5IF9SAbERchtftO+MRsOKUKjXhUG9JRJlSxegm4fUvn32OUB7ycYYNh/qzRFQh4cJTuK23Y+kVED/1nA5BxycwMZxbWUoml4IQdemVXBujwStPQpc3KZr8yo0hYWglXMRJ3FPrksF2F57Sc4BK4f9jZfhfmuzgPPNTWLO9oggG7IN8BDnAzxSAaWL5sk58C+emMS8x8S0PFIBjQf3yznwH0EqwAfIOTAThqZgpjXf7CAV4PAMyjkwFXa3R1xHx+9i4h4wzn/o6r8zKtb6XW4MjdwBnxLw+ofF3HRcD2D2AlxeH5yDXpgsjdBWmFBcVY3S2jr0DTiEKN/wCFpu3ERReQUM1TW4+VcXfFxQ0AQMDvmFiPQcJb5PTkHi+Qs4cEqGo2fS0dndCxrFlVX4OvEkvvjxOCrMDSISQRMQgM3pgtXhFPd0lV3OxOmsKyICdByd3T04xkVVNFhw994cCPDwSIyMjQtyGhVms4hIt61fPA/wcz+WnjF3Alw8DygKvXYHbvf0IlmhgDy/QCQdCeviQuZUAL04kX/1UyK++TkJB2XJ+JMLIWd0DHMugEqNMrysrh6GmlocP3ceOlMlhkfHRA7MuYCByXoPDD0vucOnU2HlR0IOe/oHRBJSuU4EswoCjYjelOqeGhENpVaHhIyzounQcPNSjU87g/qWVvF83zYIAty+IdGI1GVGXCpQ4Te9ARnKXHx5/AQqLU3CWUNbu5g7kpomypOaFdmQ7WMLoPKjClCo1Dh54SJSMhVIy85BbXMLRnhUKNzUGU+cPYdsjRYpiixc4tVBzcsz9AgCXF7vQ3OAOiJlO139PBfG7k4IJ5Qb9Ka0RiUZ2PPQkua+JAKcfJIvzGhEZxwAOZ7aIzwPrLunrE/z3zLN90Brh9zu8vCmMsY3DIozDCYcHJTIlNTNHdelAorLTPG1lmbYuUrfCA/nsB+D/uDA679/fBSBWstVaPTGIxIBXX22EH151UVdqQn1V1sF6ppagoIAX6mpBhpD+YUSY9Uz0s/ygQFWXtPA1MXGjzUGo4Fv1HCoggRNkcGoLykz7fvdVMP0HBIB/xf+Bi8VajXQRja5AAAAAElFTkSuQmCC"},73:function(e,t){e.exports="data:image/png;base64,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"},74:function(e,t){e.exports="data:image/png;base64,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"},75:function(e,t){e.exports="data:image/png;base64,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"},81:function(e,t,n){e.exports=n(442)},86:function(e,t,n){},90:function(e,t,n){},91:function(e,t,n){},92:function(e,t){e.exports="data:image/png;base64,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"},93:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAAFfklEQVR42qWXWWicVRiG/39mUim4NRq88MZWXIpLe+FS6lYKtZsW0UrRUmyllUIXpQiN3hXBC1sxdyom6q2lVRGhUqvFClURUVFUsu+ZmD2TTDKTycTn/fudcPzNJJMaeDOTnHO+7z3ffoLm5uagFFpaWpJ8LmloaAgaGxuD3t7epePj49unpqbeLhQKn4EvwQVwjv+dYm1fOp2u0t76+vqgqampAhmp+XTMqxwB0XcUr8pmsydQ8jPK0oYe0G3f+8AgGGDPn+x9t7+//8HW1taIODKSiyWQ0MGurq4bEKbbjoEZUATTYApMgglDrnDpp2j7hPzk5ORJyN9qJBLlEoiUDw4ObkNIhydQ6JHQ4eHhF1jfgLlXg7v5vn5oaGj3xMTE++xpjZ0ZyWQy+7Fo4Cw6H4GENnLgcExIu/6HRa7XugjOBcno7Oy8EjI7ccVvOstnJIP4OG4kwlIEopuj6JAdlElnuFUtiq/Tmt1ApkwiTJ+hIWF+TmiP9nZ0dChgj/my+LtGJPyYcAHnzL5VfuRAXgfGxsZe1rrWLCOCcuAHMO7agazs1CUWM7KkyYtiwm0OdUuL7KJTLiFAt/VvWQ4SdiYpZbjkCbOEAjhHYN7hLiWWS8QEU7/jfM73Ov3PlAfOrEZoQbi9Zu6UvnOhaic/n89/3dbWFq1FBQNGd7IwbinWiTWuRkjolLe3t1+BKZ8nJV8FRyH4ylxgrVp7RkdHDxIDyxwJXQQZARb4wSxcxCpbpTtiy6E3HTuYHnI+crGB8v2xrFgQEHrLBa0XYxtdvcjlcp9HMcDtr4LZr8Ysze2v8fI11MGBgYFtZqFiGcq1J0+wvWRyQnNnILOj6yfb8zc/VQGp8RR/9Mr8sDppfgtjUR1QcFZBdjN4FGwsAa1tAverDMcKT5Si6HvNKmmGorZbjGrFRqwx9d65Uk4H5a/FIF71nBv6+voesdKt/nEq4NcX1lByKq9+jvoW4OB9NJjHwCawuQS0tgU8jLkTMRKRO3t6em5ReVZ1Bd+KwFfW1bKq7UYgjPWF7ZYhZQchMVDtVc7AlXB0VJpy9YwzInDeCpAI3OUT8LJg72KzgMx6ww9Cj8C1rLeBFkfgrOeC9XEXWPSmRkZGdpCih8EBcLAEDqiXsHePmlI8DswFy9E1rHoDLioIP+JLvyKT4rCrVBBqKvqfQRjaVLXGglA6zyot9lhEFl0Jjqeh0N3dXcXhleA2cHsJaG0lZr7R0vlfWaCeg4WOWhqOkYYvilEVVvjLikMbplsaL0RE9UPms1FDpgRGLcLTuOHZeCFSbUDXBQvoIQrRTa4U17rgIeCe8eIgCkKEHVlsEHK792KlOOQi95j5p2lI56NSLH+x8IAKkRZg+AeNpILDUUuVEKxSiateh+iHoE6jVwnUsf4BqMGyy72OGHVVKu0ZV8656K6oGWl0lmlYPO2l0DFzQcqZ73LghhNL5Z2uV3DJX+iOumRKG1IWnTcrMGxoEMOn3UjtDSTlwO1VO0+Zhe/V9OxGM9J9nbk5FZ8H99nkop1Z0vJJu00YL88LjGSz8YPyNVZpC2bd407nf4ZS+Qlfn/AHSU0ymCv0htKkd9PAS9toZHMTkWSprugizu8E3seSpfiacyy3m4pEjdfbReY7zLbFxqiSY7lLNW69VgOHnXXKT2tSduRKPkwcCQ0U9uqZTS2E/ah+Tmdcp64GKsEysIIYWqsGhKJvrNDMntObQCNZXPmCTzOErkbg2di0U7CUVeHpstdTxpRO+1OTCDNNbXCZFFc+7+PUjdQyO758HJN+apNTxh6iae9xOmBVUBYbhvQ5sug5pdrlPk79B0aFUsleyVUUG/WOT8D39jS/CH7XJ2tH2LNCe60hJRd6nv8Dwj5T3q96iTAAAAAASUVORK5CYII="}},[[81,1,2]]]); +//# sourceMappingURL=main.82b47677.chunk.js.map \ No newline at end of file diff --git a/static/js/main.8ace1835.chunk.js.map b/static/js/main.82b47677.chunk.js.map similarity index 99% rename from static/js/main.8ace1835.chunk.js.map rename to static/js/main.82b47677.chunk.js.map index e644cdf..db6e426 100644 --- a/static/js/main.8ace1835.chunk.js.map +++ b/static/js/main.82b47677.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["color_picker.js","text_splitter.js","infrastructure/functions.js","infrastructure/widgets.js","cache.js","flows_api.js","Markdown.js","Common.js","react-lazyload/src/utils/event.js","react-lazyload/src/utils/scrollParent.js","react-lazyload/src/index.jsx","react-lazyload/src/utils/debounce.js","react-lazyload/src/utils/throttle.js","AudioWidget.js","Message.js","Config.js","UserAction.js","Flows.js","Title.js","Sidebar.js","PressureHelper.js","App.js","registerServiceWorker.js","index.js","infrastructure/appicon/hole.png","infrastructure/appicon/imasugu.png","infrastructure/appicon/imasugu_rev.png","infrastructure/appicon/syllabus.png","infrastructure/appicon/score.png","infrastructure/appicon/course_survey.png","infrastructure/appicon/homepage.png","infrastructure/appicon/dropdown.png","infrastructure/appicon/dropdown_rev.png"],"names":["ColorPicker","this","names","current_h","Math","random","name","toLowerCase","PID_RE","URL_PID_RE","NICKNAME_RE","URL_RE","split_text","txt","rules","forEach","rule","regex","concat","apply","map","part","content","split","seg","test","filter","get_json","res","ok","Error","status","statusText","text","then","t","JSON","parse","e","console","error","trace","log","SyntaxError","substr","API_VERSION_PARAM","encodeURIComponent","floor","Date","LOGIN_POPUP_ANCHOR_ID","pad2","x","format_time","time","getMonth","getDate","getHours","getMinutes","getSeconds","chinese_format","buildFormatter","chineseStrings","Time","props","stamp","className","date","formatter","title","toLocaleString","timeZone","hour12","TitleLine","appicon_hole","appicon_imasugu","appicon_imasugu_rev","appicon_syllabus","appicon_score","appicon_course_survey","appicon_homepage","LoginPopupSelf","state","loading_status","recaptcha_verified","username_ref","React","createRef","password_ref","input_token_ref","popup_anchor","document","getElementById","createElement","id","body","appendChild","type","setState","fetch","THUHOLE_API_ROOT","current","value","localStorage","method","headers","stringify","excluded_scopes","json","success","alert","msg","catch","set_token","code","user_token","on_close","token","result","length","ReactDOM","createPortal","reCaptchaKey","useRecaptchaNet","onVerify","ref","autoFocus","defaultValue","onClick","do_sendcode","disabled","do_login","token_callback","placeholder","do_input_token","style","fontSize","href","Component","LoginPopup","popup_show","on_popup_bound","on_popup","bind","on_close_bound","children","HOLE_CACHE_DB_NAME","CACHE_DB_VER","Cache","db","added_items_since_maintenance","encrypt","decrypt","open_req","indexedDB","open","onerror","onupgradeneeded","event","target","createObjectStore","keyPath","createIndex","unique","onsuccess","setTimeout","maintenance","pid","data","s","o","i","key","new_key","charCodeAt","String","fromCharCode","c","target_version","parseInt","Promise","resolve","reject","store","transaction","objectStore","get_req","get","data_str","version","last_access","put","delete","warn","req","count_req","count","index","openKeyCursor","cur","primaryKey","continue","deleteDatabase","cache","window","hole_cache","token_param","API","load_replies","color_picker","cache_version","API_BASE","sort","a","b","cid","info","_display_color","variant","load_replies_with_cache","set_attention","attention","URLSearchParams","append","report","reason","get_list","page","get_search","keyword","get_single","get_attention","md","MarkdownIt","html","linkify","breaks","inline","highlight","str","lang","hljs","getLanguage","__","utils","escapeHtml","use","MarkdownItKaTeX","render","escape_regex","string","replace","build_highlight_re","option","RegExp","join","ColoredSpan","colors","normalize_url","url","PureComponent","HighlightedMarkdown","processInstructions","shouldProcessNode","node","processNode","currentLevel","HeadingTag","attribs","rel","parent","splitted","Fragment","idx","p","preventDefault","show_pid","substring","HtmlToReact","ProcessNodeDefinitions","processDefaultNode","parser","Parser","author","match","renderedMarkdown","renderMd","parseWithInstructions","rawMd","TEXTAREA_BACKUP","SafeTextarea","on_change_bound","on_change","on_keydown_bound","on_keydown","clear","area_ref","change_callback","submit_callback","on_submit","ctrlKey","altKey","focus","onChange","onKeyDown","pwa_prompt_event","PromotionBar","is_ios","navigator","userAgent","matchMedia","matches","standalone","prompt","addEventListener","ClickHandler","moved","init_y","init_x","on_begin_bound","on_begin","on_move_bound","on_move","on_end_bound","on_end","MOVE_THRESHOLD","last_fire","touches","screenY","screenX","abs","do_callback","callback","onTouchStart","onMouseDown","onTouchMove","onMouseMove","on","el","eventName","opts","attachEvent","call","off","removeEventListener","detachEvent","HTMLElement","documentElement","excludeStaticParent","position","overflowRegex","parentNode","ownerDocument","getComputedStyle","overflow","overflowX","overflowY","defaultBoundingClientRect","LISTEN_FLAG","listeners","pending","passiveEventSupported","Object","defineProperty","delayType","passiveEvent","capture","passive","checkVisible","component","ReactDom","findDOMNode","scrollParent","parentTop","parentHeight","getBoundingClientRect","top","height","windowInnerHeight","innerHeight","clientHeight","intersectionTop","max","intersectionHeight","min","offsetTop","offsets","Array","isArray","offset","checkOverflowVisible","elementHeight","offsetWidth","offsetHeight","getClientRects","checkNormalVisible","visible","hidden","once","push","unmountIfInvisible","hiddenIfInvisible","lazyLoadHandler","listener","indexOf","splice","finalLazyLoadHandler","LazyLoad","scrollport","scrollContainer","querySelector","needResetFinalLazyLoadHandler","undefined","debounce","func","wait","immediate","timeout","args","context","timestamp","later","last","arguments","callNow","throttle","fn","threshhold","scope","deferTimer","now","clearTimeout","getAttribute","listenerCount","setAttribute","scroll","resize","removeAttribute","visibility","defaultProps","audio_cache","MessageViewer","load","err","BUILTIN_IMGS","DEFAULT_CONFIG","background_img","background_color","pressure","easter_egg","color_scheme","fold","load_config","loaded_config","config","assign","keys","save_config","bgimg_style","img","color","background","backgroundImage","encodeURI","backgroundColor","backgroundSize","ConfigBackground","save_changes","img_select","on_select","on_change_img","on_change_color","ConfigColorScheme","ConfigSwitch","switch","val","checked","description","ConfigUI","save_changes_bound","chg","confirm","location","reload","reset_settings","MAX_IMG_DIAM","MAX_IMG_PX","MAX_IMG_FILESIZE","TokenCtx","createContext","set_value","InfoSidebar","show_sidebar","serviceWorker","getRegistrations","registrations","registration","unregister","process","LoginForm","copy","Consumer","copy_token","do_popup","ReplyForm","preview","global_keypress_handler_bound","global_keypress_handler","tagName","on_complete","onSubmit","toggle_preview","PostForm","img_tip","img_ref","on_img_change_bound","on_img_change","file","return_url","reader","FileReader","onload","fixOrientation","fixed_dataurl","image","Image","width","compressed","rate","sqrt","canvas","ctx","getContext","drawImage","quality","new_url","quality_l","quality_r","toDataURL","round","src","on_got_img","readAsDataURL","files","proc_img","d","do_post","accept","CLICKABLE_TAGS","audio","QUOTE_BLACKLIST","FOLD_TAGS","LATEST_POST_ID","load_single_meta","title_elem","single","reply","replies","deletion_detect","Reply","replyContent","splitIdx","replyText","do_filter_name","tag","FlowItem","likenum","r","is_quote","copy_link","img_clickable","latest_reply","FlowSidebar","error_msg","filter_name","rev","syncState","sync_state","reply_ref","prev","update_count","set_variant","next_attention","prevState","closest","should_text","set","replies_to_show","slice","reverse","view_mode_key","replies_cnt","main_thread_elem","show_reply_bar","set_filter_name","toggle_rev","toggle_attention","float","FlowItemRow","reply_status","reply_error","attention_override","hl_rules","search_param","parts","quote_id","mode","needFold","FlowItemQuote","FlowChunk","list","ind","Flow","search_text","loaded_pages","chunks","on_scroll_bound","on_scroll","failed","max_id","some","finished","scrollHeight","scrollY","load_page","should_deletion_detect","flag_re","ControlBar","set_mode","on_keypress_bound","on_keypress","do_refresh_bound","do_refresh","do_attention_bound","do_attention","hash","decodeURIComponent","lastIndexOf","flag_res","exec","startsWith","scrollTo","onKeyPress","Title","Sidebar","sidebar_ref","do_close_bound","do_close","do_back_bound","do_back","nextProps","stack","scrollTop","cur_title","cur_content","onTouchEnd","click","PressureHelper","level","fired","esc_interval","clearInterval","Pressure","change","force","do_fire","end","polyfill","only","preventSelect","repeat","THRESHOLD","setInterval","new_level","pad","left","right","bottom","DeprecatedAlert","display","App","override","update_color_scheme","classList","add","remove","addListener","listen_darkmode","default","light","dark","sidebar_stack","flow_render_key","show_sidebar_bound","set_mode_bound","on_pressure_bound","on_pressure","inthu_flag","atob","ns","pop","Provider","isLocalhost","Boolean","hostname","registerValidSW","swUrl","register","onupdatefound","installingWorker","installing","onstatechange","controller","response","ready","checkValidServiceWorker","module","exports"],"mappings":"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","file":"static/js/main.8ace1835.chunk.js","sourcesContent":["// https://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/\n\nconst golden_ratio_conjugate=0.618033988749895;\n\nexport class ColorPicker {\n constructor() {\n this.names={};\n this.current_h=Math.random();\n }\n\n get(name) {\n name=name.toLowerCase();\n if(name==='洞主')\n return ['hsl(0,0%,97%)','hsl(0,0%,16%)'];\n\n if(!this.names[name]) {\n this.current_h+=golden_ratio_conjugate;\n this.current_h%=1;\n this.names[name]=[\n `hsl(${this.current_h*360}, 50%, 90%)`,\n `hsl(${this.current_h*360}, 60%, 20%)`,\n ];\n }\n return this.names[name];\n }\n}","// regexp should match the WHOLE segmented part\n// export const PID_RE=/(^|[^\\d\\u20e3\\ufe0e\\ufe0f])([2-9]\\d{4,5}|1\\d{4,6})(?![\\d\\u20e3\\ufe0e\\ufe0f])/g;\nexport const PID_RE=/(^|[^\\d\\u20e3\\ufe0e\\ufe0f])(#\\d{1,7})(?![\\d\\u20e3\\ufe0e\\ufe0f])/g;\n// TODO: fix this re\n// export const URL_PID_RE=/((?:https?:\\/\\/)?thuhole\\.com\\/?#(?:#|%23)([2-9]\\d{4,5}|1\\d{4,6}))(?!\\d|\\u20e3|\\ufe0e|\\ufe0f)/g;\nexport const URL_PID_RE=/((?:https?:\\/\\/)?thuhole\\.com\\/?#(?:#|%23)(\\d{1,7}))(?!\\d|\\u20e3|\\ufe0e|\\ufe0f)/g;\nexport const NICKNAME_RE=/(^|[^A-Za-z])((?:(?:Angry|Baby|Crazy|Diligent|Excited|Fat|Greedy|Hungry|Interesting|Jolly|Kind|Little|Magic|Naïve|Old|PKU|Quiet|Rich|Superman|Tough|Undefined|Valuable|Wifeless|Xiangbuchulai|Young|Zombie)\\s)?(?:Alice|Bob|Carol|Dave|Eve|Francis|Grace|Hans|Isabella|Jason|Kate|Louis|Margaret|Nathan|Olivia|Paul|Queen|Richard|Susan|Thomas|Uma|Vivian|Winnie|Xander|Yasmine|Zach)|You Win(?: \\d+)?|洞主)(?![A-Za-z])/gi;\nexport const URL_RE=/(^|[^.@a-zA-Z0-9_])((?:https?:\\/\\/)?(?:(?:[\\w-]+\\.)+[a-zA-Z]{2,3}|\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})(?::\\d{1,5})?(?:\\/[\\w~!@#$%^&*()\\-_=+[\\]{};:,./?|]*)?)(?![a-zA-Z0-9])/gi;\n\nexport function split_text(txt,rules) {\n // rules: [['name',/regex/],...]\n // return: [['name','part'],[null,'part'],...]\n\n txt=[[null,txt]];\n rules.forEach((rule)=>{\n let [name,regex]=rule;\n txt=[].concat.apply([],txt.map((part)=>{\n let [rule,content]=part;\n if(rule) // already tagged by previous rules\n return [part];\n else {\n return content\n .split(regex)\n .map((seg)=>(\n regex.test(seg) ? [name,seg] : [null,seg]\n ))\n .filter(([name,seg])=>(\n name!==null || seg\n ));\n }\n }));\n });\n return txt;\n}\n","export function get_json(res) {\n if(!res.ok) throw Error(`网络错误 ${res.status} ${res.statusText}`);\n return (\n res\n .text()\n .then((t)=>{\n try {\n return JSON.parse(t);\n } catch(e) {\n console.error('json parse error');\n console.trace(e);\n console.log(t);\n throw new SyntaxError('JSON Parse Error '+t.substr(0,50));\n }\n })\n );\n}\n\nexport function listen_darkmode(override) { // override: true/false/undefined\n function update_color_scheme() {\n if(override===undefined ? window.matchMedia('(prefers-color-scheme: dark)').matches : override)\n document.body.classList.add('root-dark-mode');\n else\n document.body.classList.remove('root-dark-mode');\n }\n\n update_color_scheme();\n window.matchMedia('(prefers-color-scheme: dark)').addListener(()=>{\n update_color_scheme();\n });\n}\n\nexport function API_VERSION_PARAM() {\n return '&PKUHelperAPI=3.0&jsapiver='+encodeURIComponent((process.env.REACT_APP_BUILD_INFO||'null')+'-'+(Math.floor(+new Date()/7200000)*2));\n}","import React, {Component, PureComponent} from 'react';\nimport ReactDOM from 'react-dom';\n\nimport TimeAgo from 'react-timeago';\nimport chineseStrings from 'react-timeago/lib/language-strings/zh-CN';\nimport buildFormatter from 'react-timeago/lib/formatters/buildFormatter';\n\nimport './global.css';\nimport './widgets.css';\n\nimport appicon_hole from './appicon/hole.png';\nimport appicon_imasugu from './appicon/imasugu.png';\nimport appicon_imasugu_rev from './appicon/imasugu_rev.png';\nimport appicon_syllabus from './appicon/syllabus.png';\nimport appicon_score from './appicon/score.png';\nimport appicon_course_survey from './appicon/course_survey.png';\nimport appicon_dropdown from './appicon/dropdown.png';\nimport appicon_dropdown_rev from './appicon/dropdown_rev.png';\nimport appicon_homepage from './appicon/homepage.png';\nimport {THUHOLE_API_ROOT} from './const';\nimport {get_json, API_VERSION_PARAM} from './functions';\n\nimport {\n GoogleReCaptchaProvider,\n GoogleReCaptcha\n} from 'react-google-recaptcha-v3';\n\nconst LOGIN_POPUP_ANCHOR_ID='pkuhelper_login_popup_anchor';\n\nfunction pad2(x) {\n return x<10 ? '0'+x : ''+x;\n}\nexport function format_time(time) {\n return `${time.getMonth()+1}-${pad2(time.getDate())} ${time.getHours()}:${pad2(time.getMinutes())}:${pad2(time.getSeconds())}`;\n}\nconst chinese_format=buildFormatter(chineseStrings);\nexport function Time(props) {\n const time=new Date(props.stamp*1000);\n return (\n \n \n  \n {format_time(time)}\n \n );\n}\n\nexport function TitleLine(props) {\n return (\n

\n {props.text}\n

\n )\n}\n\nexport function GlobalTitle(props) {\n return (\n
\n
\n

{props.text}

\n
\n
\n );\n}\n\nconst FALLBACK_APPS={\n // id, text, url, icon_normal, icon_hover, new_tab\n bar: [\n ['hole', '树洞', '/hole', appicon_hole, null, false],\n ['imasugu', '教室', '/spare_classroom', appicon_imasugu, appicon_imasugu_rev, false],\n ['syllabus', '课表', '/syllabus', appicon_syllabus, null, false],\n ['score', '成绩', '/my_score', appicon_score, null, false],\n ],\n dropdown: [\n ['course_survey', '课程测评', 'https://courses.pinzhixiaoyuan.com/', appicon_course_survey, null, true],\n ['homepage', '客户端', '/', appicon_homepage, null, true],\n ],\n fix: {},\n};\n// const SWITCHER_DATA_VER='switcher_2';\n// const SWITCHER_DATA_URL=THUHOLE_API_ROOT+'web_static/appswitcher_items.json';\n\n// export class AppSwitcher extends Component {\n// constructor(props) {\n// super(props);\n// this.state={\n// apps: this.get_apps_from_localstorage(),\n// }\n// }\n//\n// get_apps_from_localstorage() {\n// let ret=FALLBACK_APPS;\n// if(localStorage['APPSWITCHER_ITEMS'])\n// try {\n// let content=JSON.parse(localStorage['APPSWITCHER_ITEMS'])[SWITCHER_DATA_VER];\n// if(!content || !content.bar)\n// throw new Error('content is empty');\n//\n// ret=content;\n// } catch(e) {\n// console.error('load appswitcher items from localstorage failed');\n// console.trace(e);\n// }\n//\n// return ret;\n// }\n//\n// check_fix() {\n// if(this.state.apps && this.state.apps.fix && this.state.apps.fix[this.props.appid])\n// setTimeout(()=>{\n// window.HOTFIX_CONTEXT={\n// build_info: process.env.REACT_APP_BUILD_INFO || '---',\n// build_env: process.env.NODE_ENV,\n// };\n// eval(this.state.apps.fix[this.props.appid]);\n// },1); // make it async so failures won't be critical\n// }\n//\n// componentDidMount() {\n// this.check_fix();\n// setTimeout(()=>{\n// fetch(SWITCHER_DATA_URL)\n// .then((res)=>{\n// if(!res.ok) throw Error(`网络错误 ${res.status} ${res.statusText}`);\n// return res.text();\n// })\n// .then((txt)=>{\n// if(txt!==localStorage['APPSWITCHER_ITEMS']) {\n// console.log('loaded new appswitcher items',txt);\n// localStorage['APPSWITCHER_ITEMS']=txt;\n//\n// this.setState({\n// apps: this.get_apps_from_localstorage(),\n// });\n// } else {\n// console.log('appswitcher items unchanged');\n// }\n// })\n// .catch((e)=>{\n// console.error('loading appswitcher items failed');\n// console.trace(e);\n// });\n// },500);\n// }\n//\n// componentDidUpdate(prevProps, prevState) {\n// if(this.state.apps!==prevState.apps)\n// this.check_fix();\n// }\n//\n// render() {\n// let cur_id=this.props.appid;\n//\n// function app_elem([id,title,url,icon_normal,icon_hover,new_tab],no_class=false,ref=null) {\n// return (\n// \n// {!!icon_normal && [\n// ,\n// \n// ]}\n// {title}\n// \n// );\n// }\n//\n// let dropdown_cur_app=null;\n// this.state.apps.dropdown.forEach((app)=>{\n// if(app[0]===cur_id)\n// dropdown_cur_app=app;\n// });\n//\n// //console.log(JSON.stringify(this.state.apps));\n//\n// return (\n//
\n// PKUHelper\n// {this.state.apps.bar.map((app)=>\n// app_elem(app)\n// )}\n// {!!this.state.apps.dropdown.length &&\n//
\n//

\n// {!!dropdown_cur_app ?\n// app_elem((()=>{\n// let [id,title,_url,icon_normal,icon_hover,_new_tab]=dropdown_cur_app;\n// return [id,title+'▾',null,icon_normal,icon_hover,false];\n// })(),true) :\n// app_elem(['-placeholder-elem','更多▾',null,appicon_dropdown,appicon_dropdown_rev,false],true)\n// }\n//

\n// {this.state.apps.dropdown.map((app)=>{\n// let ref=React.createRef();\n// return (\n//

{\n// if(!e.target.closest('a') && ref.current)\n// ref.current.click();\n// }}>\n// {app_elem(app,true,ref)}\n//

\n// );\n// })}\n//
\n// }\n// 网页版\n//
\n// );\n// }\n// }\n\nclass LoginPopupSelf extends Component {\n constructor(props) {\n super(props);\n this.state={\n loading_status: 'idle',\n recaptcha_verified: false\n // excluded_scopes: [],\n };\n this.username_ref=React.createRef();\n this.password_ref=React.createRef();\n this.input_token_ref=React.createRef();\n\n this.popup_anchor=document.getElementById(LOGIN_POPUP_ANCHOR_ID);\n if(!this.popup_anchor) {\n this.popup_anchor=document.createElement('div');\n this.popup_anchor.id=LOGIN_POPUP_ANCHOR_ID;\n document.body.appendChild(this.popup_anchor);\n }\n }\n\n do_sendcode(type) {\n if(!this.state.recaptcha_verified) {\n alert(\"reCAPTCHA风控系统正在评估您的浏览器安全状态,请稍后重试。\")\n return\n }\n if(this.state.loading_status==='loading')\n return;\n\n this.setState({\n loading_status: 'loading',\n },()=>{\n fetch(\n THUHOLE_API_ROOT+'api_xmcp/login/send_code'\n +'?user='+encodeURIComponent(this.username_ref.current.value)\n +'&code_type='+encodeURIComponent(type)\n +\"&recaptcha_token=\"+localStorage[\"recaptcha\"]\n +API_VERSION_PARAM(), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n excluded_scopes: [],\n }),\n }\n )\n .then(get_json)\n .then((json)=>{\n console.log(json);\n if(!json.success)\n throw new Error(JSON.stringify(json));\n\n alert(json.msg);\n this.setState({\n loading_status: 'done',\n });\n })\n .catch((e)=>{\n console.error(e);\n alert('发送失败\\n'+e);\n this.setState({\n loading_status: 'done',\n });\n });\n\n });\n }\n\n do_login(set_token) {\n if(this.state.loading_status==='loading')\n return;\n\n this.setState({\n loading_status: 'loading',\n },()=>{\n fetch(\n THUHOLE_API_ROOT+'api_xmcp/login/login'\n +'?user='+encodeURIComponent(this.username_ref.current.value)\n +'&valid_code='+encodeURIComponent(this.password_ref.current.value)\n +API_VERSION_PARAM(), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n excluded_scopes: [],\n }),\n }\n )\n .then(get_json)\n .then((json)=>{\n if(json.code!==0) {\n if(json.msg) throw new Error(json.msg);\n throw new Error(JSON.stringify(json));\n }\n\n set_token(json.user_token);\n alert(`登录成功`);\n this.setState({\n loading_status: 'done',\n });\n this.props.on_close();\n })\n .catch((e)=>{\n console.error(e);\n alert('登录失败\\n'+e);\n this.setState({\n loading_status: 'done',\n });\n });\n });\n }\n\n do_input_token(set_token) {\n if(this.state.loading_status==='loading')\n return;\n\n let token=this.input_token_ref.current.value;\n this.setState({\n loading_status: 'loading',\n },()=>{\n fetch(THUHOLE_API_ROOT+'api_xmcp/hole/system_msg?user_token='+encodeURIComponent(token)+API_VERSION_PARAM())\n .then((res)=>res.json())\n .then((json)=>{\n if(json.error)\n throw new Error(json.error);\n if(json.result.length===0)\n throw new Error('result check failed');\n this.setState({\n loading_status: 'done',\n });\n set_token(token);\n this.props.on_close();\n })\n .catch((e)=>{\n alert('Token检验失败\\n'+e);\n this.setState({\n loading_status: 'done',\n });\n console.error(e);\n });\n });\n }\n\n // perm_alert() {\n // alert('如果你不需要 PKU Helper 的某项功能,可以取消相应权限。\\n其中【状态信息】包括你的网费、校园卡余额等。\\n该设置应用到你的【所有】设备,取消后如需再次启用相应功能需要重新登录。');\n // }\n\n render() {\n // let PERM_SCOPES=[\n // ['score','成绩查询'],\n // ['syllabus','课表查询'],\n // ['my_info','状态信息'],\n // ];\n\n return ReactDOM.createPortal(\n \n {\n this.setState({\n recaptcha_verified: true,\n });\n localStorage[\"recaptcha\"] = token\n }} />\n
\n
\n
\n

\n 接收验证码来登录 T大树洞\n

\n

\n \n \n {/*this.do_sendcode('sms')}>*/}\n {/*  短信 */}\n {/**/}\n {/*/*/}\n this.do_sendcode('mail')}>\n  发送邮件 \n \n \n

\n

\n \n \n

\n
\n

\n 从其他设备导入登录状态\n

\n

\n \n \n

\n
\n

\n This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.\n

\n

\n \n

\n
\n
\n ,\n this.popup_anchor,\n );\n }\n}\n\nexport class LoginPopup extends Component {\n constructor(props) {\n super(props);\n this.state={\n popup_show: false,\n };\n this.on_popup_bound=this.on_popup.bind(this);\n this.on_close_bound=this.on_close.bind(this);\n }\n\n on_popup() {\n this.setState({\n popup_show: true,\n });\n }\n on_close() {\n this.setState({\n popup_show: false,\n });\n }\n\n render() {\n return (\n <>\n {this.props.children(this.on_popup_bound)}\n {this.state.popup_show &&\n \n }\n \n );\n }\n}","const HOLE_CACHE_DB_NAME='hole_cache_db';\nconst CACHE_DB_VER=1;\nconst MAINTENANCE_STEP=150;\nconst MAINTENANCE_COUNT=1000;\n\nconst ENC_KEY=42;\n\nclass Cache {\n constructor() {\n this.db=null;\n this.added_items_since_maintenance=0;\n this.encrypt=this.encrypt.bind(this);\n this.decrypt=this.decrypt.bind(this);\n const open_req=indexedDB.open(HOLE_CACHE_DB_NAME,CACHE_DB_VER);\n open_req.onerror=console.error.bind(console);\n open_req.onupgradeneeded=(event)=>{\n console.log('comment cache db upgrade');\n const db=event.target.result;\n const store=db.createObjectStore('comment',{\n keyPath: 'pid',\n });\n store.createIndex('last_access','last_access',{unique: false});\n };\n open_req.onsuccess=(event)=>{\n console.log('comment cache db loaded');\n this.db=event.target.result;\n setTimeout(this.maintenance.bind(this),1);\n };\n }\n\n // use window.hole_cache.encrypt() only after cache is loaded!\n encrypt(pid,data) {\n let s=JSON.stringify(data);\n let o='';\n for(let i=0,key=(ENC_KEY^pid)%128;i{\n if(!this.db)\n return resolve(null);\n const tx=this.db.transaction(['comment'],'readwrite');\n const store=tx.objectStore('comment');\n const get_req=store.get(pid);\n get_req.onsuccess=()=>{\n let res=get_req.result;\n if(!res || !res.data_str) {\n //console.log('comment cache miss '+pid);\n resolve(null);\n } else if(target_version===res.version) { // hit\n console.log('comment cache hit',pid);\n res.last_access=(+new Date());\n store.put(res);\n let data=this.decrypt(pid,res.data_str);\n resolve(data); // obj or null\n } else { // expired\n console.log('comment cache expired',pid,': ver',res.version,'target',target_version);\n store.delete(pid);\n resolve(null);\n }\n };\n get_req.onerror=(e)=>{\n console.warn('comment cache indexeddb open failed');\n console.error(e);\n resolve(null);\n };\n });\n }\n\n put(pid,target_version,data) {\n pid=parseInt(pid);\n return new Promise((resolve,reject)=>{\n if(!this.db)\n return resolve();\n const tx=this.db.transaction(['comment'],'readwrite');\n const store=tx.objectStore('comment');\n store.put({\n pid: pid,\n version: target_version,\n data_str: this.encrypt(pid,data),\n last_access: +new Date(),\n });\n if(++this.added_items_since_maintenance===MAINTENANCE_STEP)\n setTimeout(this.maintenance.bind(this),1);\n });\n }\n\n delete(pid) {\n pid=parseInt(pid);\n return new Promise((resolve,reject)=>{\n if(!this.db)\n return resolve();\n const tx=this.db.transaction(['comment'],'readwrite');\n const store=tx.objectStore('comment');\n let req=store.delete(pid);\n //console.log('comment cache delete',pid);\n req.onerror=()=>{\n console.warn('comment cache delete failed ',pid);\n return resolve();\n };\n req.onsuccess=()=>resolve();\n });\n }\n\n maintenance() {\n if(!this.db)\n return;\n const tx=this.db.transaction(['comment'],'readwrite');\n const store=tx.objectStore('comment');\n let count_req=store.count();\n count_req.onsuccess=()=>{\n let count=count_req.result;\n if(count>MAINTENANCE_COUNT) {\n console.log('comment cache db maintenance',count);\n store.index('last_access').openKeyCursor().onsuccess=(e)=>{\n let cur=e.target.result;\n if(cur) {\n //console.log('maintenance: delete',cur);\n store.delete(cur.primaryKey);\n if(--count>MAINTENANCE_COUNT)\n cur.continue();\n }\n };\n } else {\n console.log('comment cache db no need to maintenance',count);\n }\n this.added_items_since_maintenance=0;\n };\n count_req.onerror=console.error.bind(console);\n }\n\n clear() {\n if(!this.db)\n return;\n indexedDB.deleteDatabase(HOLE_CACHE_DB_NAME);\n console.log('delete comment cache db');\n }\n};\n\nexport function cache() {\n if(!window.hole_cache)\n window.hole_cache=new Cache();\n return window.hole_cache;\n}","import {get_json, API_VERSION_PARAM} from './infrastructure/functions';\nimport {THUHOLE_API_ROOT} from './infrastructure/const';\nimport {API_BASE} from './Common';\nimport {cache} from './cache';\n\nexport {THUHOLE_API_ROOT, API_VERSION_PARAM};\n\nexport function token_param(token) {\n return API_VERSION_PARAM()+(token ? ('&user_token='+token) : '');\n}\n\nexport {get_json};\n\nconst SEARCH_PAGESIZE=50;\n\nexport const API={\n load_replies: (pid,token,color_picker,cache_version)=>{\n pid=parseInt(pid);\n return fetch(\n API_BASE+'/api.php?action=getcomment'+\n '&pid='+pid+\n token_param(token)\n )\n .then(get_json)\n .then((json)=>{\n if(json.code!==0) {\n if(json.msg) throw new Error(json.msg);\n else throw new Error(JSON.stringify(json));\n }\n\n cache().delete(pid).then(()=>{\n cache().put(pid,cache_version,json);\n });\n\n // also change load_replies_with_cache!\n json.data=json.data\n .sort((a,b)=>{\n return parseInt(a.cid,10)-parseInt(b.cid,10);\n })\n .map((info)=>{\n info._display_color=color_picker.get(info.name);\n info.variant={};\n return info;\n });\n\n return json;\n });\n },\n\n load_replies_with_cache: (pid,token,color_picker,cache_version)=> {\n pid=parseInt(pid);\n return cache().get(pid,cache_version)\n .then((json)=>{\n if(json) {\n // also change load_replies!\n json.data=json.data\n .sort((a,b)=>{\n return parseInt(a.cid,10)-parseInt(b.cid,10);\n })\n .map((info)=>{\n info._display_color=color_picker.get(info.name);\n info.variant={};\n return info;\n });\n\n return json;\n }\n else\n return API.load_replies(pid,token,color_picker,cache_version);\n });\n },\n\n set_attention: (pid,attention,token)=>{\n let data=new URLSearchParams();\n data.append('user_token',token);\n data.append('pid',pid);\n data.append('switch',attention ? '1' : '0');\n return fetch(API_BASE+'/api.php?action=attention'+token_param(token), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: data,\n })\n .then(get_json)\n .then((json)=>{\n cache().delete(pid);\n if(json.code!==0) {\n if(json.msg && json.msg==='已经关注过了') {}\n else {\n if(json.msg) alert(json.msg);\n throw new Error(JSON.stringify(json));\n }\n }\n return json;\n });\n },\n\n report: (pid,reason,token)=>{\n let data=new URLSearchParams();\n data.append('user_token',token);\n data.append('pid',pid);\n data.append('reason',reason);\n return fetch(API_BASE+'/api.php?action=report'+token_param(token), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: data,\n })\n .then(get_json)\n .then((json)=>{\n if(json.code!==0) {\n if(json.msg) alert(json.msg);\n throw new Error(JSON.stringify(json));\n }\n return json;\n });\n },\n\n get_list: (page,token)=>{\n return fetch(\n API_BASE+'/api.php?action=getlist'+\n '&p='+page+\n token_param(token)\n )\n .then(get_json)\n .then((json)=>{\n if(json.code!==0)\n throw new Error(JSON.stringify(json));\n return json;\n });\n },\n\n get_search: (page,keyword,token)=>{\n return fetch(\n API_BASE+'/api.php?action=search'+\n '&pagesize='+SEARCH_PAGESIZE+\n '&page='+page+\n '&keywords='+encodeURIComponent(keyword)+\n token_param(token)\n )\n .then(get_json)\n .then((json)=>{\n if(json.code!==0) {\n if(json.msg) throw new Error(json.msg);\n throw new Error(JSON.stringify(json));\n }\n return json;\n });\n },\n\n get_single: (pid,token)=>{\n return fetch(\n API_BASE+'/api.php?action=getone'+\n '&pid='+pid+\n token_param(token)\n )\n .then(get_json)\n .then((json)=>{\n if(json.code!==0) {\n if(json.msg) throw new Error(json.msg);\n else throw new Error(JSON.stringify(json));\n }\n return json;\n });\n },\n\n get_attention: (token)=>{\n return fetch(\n API_BASE+'/api.php?action=getattention'+\n token_param(token)\n )\n .then(get_json)\n .then((json)=>{\n if(json.code!==0) {\n if(json.msg) throw new Error(json.msg);\n throw new Error(JSON.stringify(json));\n }\n return json;\n });\n },\n};","import MarkdownIt from 'markdown-it'\nimport MarkdownItKaTeX from 'markdown-it-katex'\nimport hljs from 'highlight.js'\nimport 'highlight.js/styles/atom-one-dark.css'\nimport './Markdown.css'\n\nimport 'katex/dist/katex.min.css'\n\nlet md = new MarkdownIt({\n html: false,\n linkify: false,\n breaks: true,\n inline: true,\n highlight (str, lang) {\n if (lang && hljs.getLanguage(lang)) {\n try {\n return '
' +\n               hljs.highlight(lang, str, true).value +\n               '
';\n } catch (__) {}\n }\n return '
' + md.utils.escapeHtml(str) + '
';\n }\n}).use(MarkdownItKaTeX, {\n \"throwOnError\" : false,\n \"errorColor\" : \"#aa0000\"\n})\n\nexport default (text) => md.render(text)","import React, {Component, PureComponent} from 'react';\nimport {format_time,Time,TitleLine} from './infrastructure/widgets';\nimport {THUHOLE_API_ROOT} from './flows_api';\n\nimport HtmlToReact from 'html-to-react'\n\nimport './Common.css';\nimport { URL_PID_RE, URL_RE, PID_RE, NICKNAME_RE, split_text } from './text_splitter';\n\nimport renderMd from './Markdown'\n\nexport {format_time,Time,TitleLine};\n\nexport const API_BASE=THUHOLE_API_ROOT+'services/thuhole';\n\n// https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\nfunction escape_regex(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\nexport function build_highlight_re(txt,split,option='g') {\n return txt ? new RegExp(`(${txt.split(split).filter((x)=>!!x).map(escape_regex).join('|')})`,option) : /^$/g;\n}\n\nexport function ColoredSpan(props) {\n return (\n {props.children}\n )\n}\n\n\nfunction normalize_url(url) {\n return /^https?:\\/\\//.test(url) ? url : 'http://'+url;\n}\n\nexport class HighlightedText extends PureComponent {\n render() {\n return (\n
\n                {this.props.parts.map((part,idx)=>{\n                    let [rule,p]=part;\n                    return (\n                        {\n                            rule==='url_pid' ? /## :\n                            rule==='url' ? {p} :\n                            rule==='pid' ? {e.preventDefault(); this.props.show_pid(p.substring(1));}}>{p} :\n                            rule==='nickname' ? {p} :\n                            rule==='search' ? {p} :\n                            p\n                        }\n                    );\n                })}\n            
\n )\n }\n}\n\n// props: text, show_pid, color_picker\nexport class HighlightedMarkdown extends Component {\n render() {\n const props = this.props\n const processDefs = new HtmlToReact.ProcessNodeDefinitions(React)\n const processInstructions = [\n {\n shouldProcessNode: (node) => node.name === 'img', // disable images\n processNode (node, children, index) {\n return (
[图片]
)\n }\n },\n {\n shouldProcessNode: (node) => (/^h[123456]$/.test(node.name)),\n processNode (node, children, index) {\n let currentLevel = +(node.name[1])\n if (currentLevel < 3) currentLevel = 3;\n const HeadingTag = `h${currentLevel}`\n return (\n {children}\n )\n }\n },\n {\n shouldProcessNode: (node) => node.name === 'a',\n processNode (node, children, index) {\n return (\n \n {children}\n \n \n )\n }\n },\n {\n shouldProcessNode (node) {\n return node.type === 'text' && (!node.parent || !node.parent.attribs || node.parent.attribs['encoding'] != \"application/x-tex\") // pid, nickname, search\n },\n processNode (node, children, index) {\n const originalText = node.data\n const splitted = split_text(originalText, [\n ['url_pid', URL_PID_RE],\n ['url',URL_RE],\n ['pid',PID_RE],\n ['nickname',NICKNAME_RE],\n ])\n\n return (\n \n {splitted.map(([rule, p], idx) => {\n return (\n {\n rule==='url_pid' ? /## :\n rule==='url' ? \n {p}\n \n :\n rule==='pid' ? {e.preventDefault(); props.show_pid(p.substring(1));}}>{p} :\n rule==='nickname' ? {p} :\n rule==='search' ? {p} :\n p}\n )\n })}\n \n )\n }\n },\n {\n shouldProcessNode: () => true,\n processNode: processDefs.processDefaultNode\n }\n ]\n const parser = new HtmlToReact.Parser()\n if (props.author && props.text.match(/^(?:#+ |>|```|\\t|\\s*-|\\s*\\d+\\.)/)) {\n const renderedMarkdown = renderMd(props.text)\n return (\n <>\n {props.author}\n {parser.parseWithInstructions(renderedMarkdown, node => node.type !== 'script', processInstructions) || ''}\n \n )\n } else {\n let rawMd = props.text\n if (props.author) rawMd = props.author + ' ' + rawMd\n const renderedMarkdown = renderMd(rawMd)\n return (parser.parseWithInstructions(renderedMarkdown, node => node.type !== 'script', processInstructions) || null)\n }\n }\n}\n\nwindow.TEXTAREA_BACKUP={};\n\nexport class SafeTextarea extends Component {\n constructor(props) {\n super(props);\n this.state={\n text: '',\n };\n this.on_change_bound=this.on_change.bind(this);\n this.on_keydown_bound=this.on_keydown.bind(this);\n this.clear=this.clear.bind(this);\n this.area_ref=React.createRef();\n this.change_callback=props.on_change||(()=>{});\n this.submit_callback=props.on_submit||(()=>{});\n }\n\n componentDidMount() {\n this.setState({\n text: window.TEXTAREA_BACKUP[this.props.id]||''\n },()=>{\n this.change_callback(this.state.text);\n });\n }\n\n componentWillUnmount() {\n window.TEXTAREA_BACKUP[this.props.id]=this.state.text;\n this.change_callback(this.state.text);\n }\n\n on_change(event) {\n this.setState({\n text: event.target.value,\n });\n this.change_callback(event.target.value);\n }\n on_keydown(event) {\n if(event.key==='Enter' && event.ctrlKey && !event.altKey) {\n event.preventDefault();\n this.submit_callback();\n }\n }\n\n clear() {\n this.setState({\n text: '',\n });\n }\n set(text) {\n this.change_callback(text);\n this.setState({\n text: text,\n });\n }\n get() {\n return this.state.text;\n }\n focus() {\n this.area_ref.current.focus();\n }\n\n render() {\n return (\n