Skip to content

Instantly share code, notes, and snippets.

@RedL0tus RedL0tus/index.html

Last active Jul 20, 2020
Embed
What would you like to do?
gf.v2bv.net
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>嘿嘿嘿嘿嘿嘿</title>
<meta name="description" content="SaltedFish Network Status" />
<link href="https://fonts.googleapis.com/css?family=Inconsolata:400,700&amp;subset=latin-ext,vietnamese"rel="stylesheet" />
<style>
*{margin:0;padding:0}*,*:before,*:after{box-sizing:inherit}html{min-height:100%;box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-size:62.5%}body{font-family:'Inconsolata', monospace;font-weight:400;-webkit-font-smoothing:antialiased}article,aside,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}h1,h2,h3,h4,h5,h6{font-weight:400;color:#163541}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}img{max-width:100%;font-style:italic;vertical-align:middle;border:0}svg:not(:root){overflow:hidden}svg{pointer-events:none;max-height:100%}a{background-color:transparent;text-decoration:none;color:#0067FB}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}i,em{font-weight:italic}figure{margin:0}hr{margin-top:2.5rem;margin-bottom:2.5rem;width:100%;height:1px;border:0;background:#EFF1F3}pre{overflow:auto}.u-container{max-width:62rem;margin-right:auto;margin-left:auto;padding-top:10rem;padding-right:1rem;padding-left:1rem}.u-separate{margin-right:.45rem;margin-left:.25rem;color:#5C6E74}.c-page__header{margin-bottom:10rem}.c-page__header h1{margin-bottom:2.5rem;line-height:1.5;font-size:2.4rem;color:#163541}.c-page__header p{line-height:1;font-size:1.8rem}.c-page__footer{margin-bottom:10rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.c-page__footer p{line-height:1.5;font-size:1.8rem;color:#5C6E74}.c-article{margin-bottom:10rem}.c-article__header{margin-bottom:5rem}@media screen and (min-width: 45rem){.c-article__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline}}.c-article__title{line-height:1.5;font-size:3.2rem;color:#163541}.c-article__time{line-height:1.5;font-size:1.8rem;color:#5C6E74}.c-article__main{margin-bottom:5rem;line-height:1.5;font-size:1.8rem;color:#5C6E74}.c-article__main>*{margin-bottom:1.8rem}.c-article__main h2{line-height:1.5;font-size:2.4rem}.c-article__main h3{line-height:1.5;font-size:2rem}.c-article__main h4{line-height:1.6;font-size:1.8rem}.c-article__main h5{line-height:1.5;font-size:1.8rem}.c-article__main strong{color:#163541;font-weight:400}.c-article__main blockquote{margin-left:0;margin-right:0;padding-left:1.8rem;border-left:1px solid #EFF1F3}.c-article__main ul,.c-article__main ol{margin-left:2.1rem}.c-tag{margin-right:1rem;position:relative;white-space:nowrap;line-height:1.5;font-size:1.8rem;color:#163541}.c-tag:before{color:#869395;content:'#\\2009'}.c-archives{margin-bottom:10rem}.c-archives__year{margin-bottom:2.5rem;line-height:1.5;font-size:3.2rem}.c-archives__list{margin-bottom:2.5rem;list-style:none}.c-archives__item{padding-top:2.5rem;padding-bottom:2.5rem;border-top:1px solid #EFF1F3}@media screen and (min-width: 45rem){.c-archives__item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}}.c-archives__item h3{line-height:1.5;font-size:1.8rem}.c-archives__item p{line-height:1.5;font-size:1.8rem;color:#515862}pre,code{font-family:'Inconsolata', monospace;font-size:1.4rem;line-height:1.5}.highlight{border-radius:4px;background:#FDFDFD;border:1px solid #E8E8EB;color:#93a1a1}.highlight .gutter{padding:1.2rem;border-right:1px solid #E8E8EB}.highlight .code{padding:1.2rem}span.lineno{padding:1rem;border-right:1px solid #E8E8EB}.highlight .c{color:#586e75}.highlight .err{color:#93a1a1}.highlight .g{color:#93a1a1}.highlight .k{color:#859900}.highlight .l{color:#93a1a1}.highlight .n{color:#93a1a1}.highlight .o{color:#859900}.highlight .x{color:#cb4b16}.highlight .p{color:#93a1a1}.highlight .cm{color:#586e75}.highlight .cp{color:#859900}.highlight .c1{color:#586e75}.highlight .cs{color:#859900}.highlight .gd{color:#2aa198}.highlight .ge{color:#93a1a1;font-style:italic}.highlight .gr{color:#dc322f}.highlight .gh{color:#cb4b16}.highlight .gi{color:#859900}.highlight .go{color:#93a1a1}.highlight .gp{color:#93a1a1}.highlight .gs{color:#93a1a1;font-weight:bold}.highlight .gu{color:#cb4b16}.highlight .gt{color:#93a1a1}.highlight .kc{color:#cb4b16}.highlight .kd{color:#268bd2}.highlight .kn{color:#859900}.highlight .kp{color:#859900}.highlight .kr{color:#268bd2}.highlight .kt{color:#dc322f}.highlight .ld{color:#93a1a1}.highlight .m{color:#2aa198}.highlight .s{color:#2aa198}.highlight .na{color:#93a1a1}.highlight .nb{color:#B58900}.highlight .nc{color:#268bd2}.highlight .no{color:#cb4b16}.highlight .nd{color:#268bd2}.highlight .ni{color:#cb4b16}.highlight .ne{color:#cb4b16}.highlight .nf{color:#268bd2}.highlight .nl{color:#93a1a1}.highlight .nn{color:#93a1a1}.highlight .nx{color:#93a1a1}.highlight .py{color:#93a1a1}.highlight .nt{color:#268bd2}.highlight .nv{color:#268bd2}.highlight .ow{color:#859900}.highlight .w{color:#93a1a1}.highlight .mf{color:#2aa198}.highlight .mh{color:#2aa198}.highlight .mi{color:#2aa198}.highlight .mo{color:#2aa198}.highlight .sb{color:#586e75}.highlight .sc{color:#2aa198}.highlight .sd{color:#93a1a1}.highlight .s2{color:#2aa198}.highlight .se{color:#cb4b16}.highlight .sh{color:#93a1a1}.highlight .si{color:#2aa198}.highlight .sx{color:#2aa198}.highlight .sr{color:#dc322f}.highlight .s1{color:#2aa198}.highlight .ss{color:#2aa198}.highlight .bp{color:#268bd2}.highlight .vc{color:#268bd2}.highlight .vg{color:#268bd2}.highlight .vi{color:#268bd2}.highlight .il{color:#2aa198}
</style>
<style>
.status-table {
width: 100%;
}
.dot-green:before {
color: #28c940;
content: '\\25CF';
font-size: 1em;
}
.dot-yellow:before {
color: #fdc720;
content: '\\25CF';
font-size: 1em;
}
.dot-red:before {
color: #ff4d51;
content: '\\25CF';
font-size: 1em;
}
</style>
<script type="text/javascript">
"use script";
const baseInterval = 2000;
const minInterval = 10;
const startThreshold = 0.8;
var contentIncrementLiteral_1 = "最";
var contentIncrementLiteral_2 = "棒";
var contentIncrement_1 = "";
var contentIncrement_2 = "";
var contentTemplate = "我女朋友最%Inc1%棒棒%Inc2%%Inc2%啦~~~";
var interval = 10;
var started = false;
var paused = false;
function togglePause() {
paused = !paused;
console.log(`>>> Easteregg paused: ${paused}`);
}
// From Stack Overflow: https://stackoverflow.com/a/8028584
function getScrollPercentage() {
const h = document.documentElement,
b = document.body,
st = 'scrollTop',
sh = 'scrollHeight';
return (h[st]||b[st]) / ((h[sh]||b[sh]) - h.clientHeight);
}
function getNewInterval(percentage) {
newInterval = Math.ceil((1.0 - percentage) * baseInterval);
if (newInterval < minInterval) {
newInterval = minInterval;
}
return newInterval;
}
function onWindowScroll() {
if (paused) {
return;
}
const percentage = getScrollPercentage();
if (percentage > startThreshold) {
if (! started) {
started = true;
console.log(">>> Started");
}
} else if (started) {
started = false;
console.log(">>> Stopped");
return;
}
newInterval = getNewInterval(percentage);
if (Math.abs(newInterval - interval) > 10) {
interval = newInterval;
console.log(`>>> Interval updated to ${interval}`);
}
}
async function contentUpdateLoop() {
while(true) {
await new Promise(r => setTimeout(r, interval));
if (started && ! paused) {
contentIncrement_1 += contentIncrementLiteral_1;
contentIncrement_2 += contentIncrementLiteral_2;
content = contentTemplate.replaceAll("%Inc1%", contentIncrement_1);
content = content.replaceAll("%Inc2%", contentIncrement_2);
document.getElementById("footer_note").innerHTML = content;
console.log(`>>> Content updated to ${content}`);
}
}
}
document.addEventListener('DOMContentLoaded', function() {
window.addEventListener("scroll", onWindowScroll);
interval = getNewInterval(getScrollPercentage());
console.log(`>>> Current interval: ${interval}`);
contentUpdateLoop();
});
</script>
</head>
<body>
<div class="u-container">
<div class="c-page">
<article class="c-article">
<header class="c-page__header" id="page_header">
<h1>嘿嘿嘿嘿嘿</h1>
</header>
<div class="c-article__main">
<p>
我有一个超可爱的女朋友,不知道你们有没有见过。
<br \>
<del>(此处没有照片,我自己好好藏着都来不及,怎么会给你们看!)</del>
<br \>
她现在很好,我只是想告诉你们我有一个超棒的女朋友!
<br \>
</p>
<hr />
<br \>
<br \>
<p>
<b>(本段写于 2020-06-01)</b>
<br />
第一次相遇是是参加社团活动的时候。这位小可爱所在的音乐剧社团跟我参加的错开了半个小时,而两边的教室只隔了一堵墙,于是她就过来串门了。当时我和另外几个同学在忙社团需要做的东西,只是有一句没一句得聊了几次。但是某次之后她的社团时间做了调整,于是除了最后去看了她的演出就没怎么接触了。那次演出结束之后虽然见到了她但是也不知道说什么。这一中断就是半年<del>中间仅有的一次交谈是她说我头发比一个女同学还长了(是真的)</del><br \>
<br \>
后来真的开始有接触是去年下半年的事情了,因为我跟她报了三门一样的课。真的接触下来发现她真的是一个很优秀很可爱的人。上课的时候非常认真,成绩也是顶尖。虽然那时候就开始有点喜欢她了,但是我也胆子比较小不敢说什么。说来惭愧,最后得到联系方式还是因为某次她有一项作业需要别人帮忙。起先只是聊点有得没的,后来不知道怎么着打起了电话。发现了我跟她有不少共同的爱好和相似的地方,最神奇的是很多时候真的能很准得猜到对方在想什么。<br \>
<br \>
那几个月相处下来的过程中出现过各种各样的情况,有过开心的时候也有过矛盾。最后的结果就是发现我真的喜欢上了她。但是因为我的一些问题,表白则是后面又拖了好几个月,那之后我们就成了男女朋友关系。向自己喜欢的人表白并被接纳真的是一件很让人开心的事情。只是人算不如天算,今年这场疫情真的打乱了很多原本的计划。<br \>
<br \>
这几个月下来虽然见面的次数并不算多,但是每次都是特别开心,平时也一直保持着联系。就只能盼望着现在的这些幺蛾子们早点退散。<br \>
<br \>
真的有好多想跟她一起做的事情!<br \>
<ul>
<li>一起逛街挑礼物!</li>
<li>一起出去吃(好吃的)日料!</li>
<li>一起去德云社!<del>(这个画风不太对)</del></li>
<li>一起吃热干面!</li>
<li>还有好多好多!</li>
</ul>
<br />
不只是这些,能跟我的小可爱在一起就是最开心的事情~<br />
<br />
前两天我们见到了面,经历了在一起的第 100 天,今天又是在一起的第一个儿童节。我们一定要这样一直好好得过下去!<br />
<br />
祝我的小朋友儿童节快乐!
<hr />
<br />
<b>(本段写于 2020-06-10)</b>
<br />
前两天在 SJM 的最后一个学期结束了,毕业典礼的时候见到了我女朋友,一如既往得好康(尖叫)。这也意味着在 SJM 的四年正式结束了,虽然这意味着我能摆脱掉宗教课之类的烦人的东西,但是同时也意味着不能这么容易得见到她了。这件事情我们从一开始就明白,也没有办法避免。但主要的问题是我们都没料到这次 COVID-19 疫情,真的是打乱了很多原本的计划;不过不知道算不算是因祸得福的一个好处是我会在 Fresno 待到更晚,也算是增加了多见面的可能。真想每时每刻都跟她在一起。<br />
<br />
世事难料,谁都无法知道之后会发生什么。我能做的就只有在现在的情况下多陪陪她,同时也尽可能得多享受和她在一起的时间。就算只是打个电话、玩个游戏、在群里放闪(把自己的快乐建立在逼别人恰柠檬的前提之上)(甚至还要收钱)(x)都是小小的幸福。<br />
<br />
不管啥情况咱就尽所能得好好过,再难的事情也总会有个尽头的。最多就是这一两年麻烦一点,又算不上什么。<br />
<br />
另外再小声说一句:这段时间你还是要好好学习的,毕竟考试还是很重要的。复习压力大的时候就找我,有什么问题的话也都可以找我。我永远支持你!<del>大傲娇!</del><br />
<br />
<hr />
<br />
<b>(本段写于 2020-06-19)</b>
<br />
四个月啦!因为有你在噩梦都不算是噩梦了呢。这两天能看到你为了接下来的考试而努力准备,每天沉迷学习。我又高兴又有些心疼,学习之余也不要忘了好好休息好好吃饭呀,也要多陪陪我嘛,感觉就跟空巢老父亲一样的(不是<br />
<br />
不管怎么样我就要你一直好好的,不管最后结果如何,对得起咱的努力就好,不需要给自己太大的压力的。而且你真的超棒的呀!<br />
<br />
咱要一直好下去!<br />
<br />
<hr />
<br />
<b>(本段写于 2020-07-19)</b>
<br />
咱在一起都五个月了诶,感觉时间过得好快。2020 这起奇奇怪怪的五个月里面咱遇到的事情也不少了,不也都过来了,还有什么好怕的。<br />
<br />
不过咱在一起也才五个月,感觉根本不够。这五个月里面咱一起聊天一起皮真的很高兴,只要有你在做什么都是快乐的。<br />
<br />
咱俩以后还有无数个五个月呢,最爱你了。<br />
<br />
<hr />
<br />
<p>未完待续...</p>
</p>
</div>
<footer class="c-page__footer" id="page_footer" onClick="togglePause()">
<hr />
<p id="footer_note">我女朋友最棒棒啦~</p>
<hr />
<br />
<p>
&copy; RedL0tus
2020 | SaltedFish Network
</p>
<br />
<p>
Follow me on:
<a rel="me" href="https://s.brined.fish/@KayMW">Mastodon</a>
&
<a href="https://github.com/RedL0tus">Github</a>
<span class="u-separate"/>
Subscribe: <a href="https://v2bv.net/feed.xml">RSS</a>
<br />
Blog: <a href="https://v2bv.net">v2bv.net</a>
</p>
</footer>
</article>
</div>
</div>
</body>
</html>
const link = "https://gist.githubusercontent.com/RedL0tus/31428a6f0f6e48e8e9722be2252fc30d/raw/index.html";
async function getPage(source) {
return await fetch(source);
};
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
/**
* Respond to the request
* @param {Request} request
*/
async function handleRequest(request) {
let page = await getPage(link);
return new Response(await page.text(), {status: 200, headers: { 'Content-Type': 'text/html;charset=UTF-8'}})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.