随机 Git 提交信息,但是 Cloudflare Workers
/ 2 min read
你可能已经使用过这个神奇的站点,What The Commit。它能帮我们随机生成 Git commit message,省去了头疼的「我他妈到底写了什么」思考时间。
用到 Git 上,我们可以这么用:
git commit -m $(curl -s http://whatthecommit.com/index.txt)
感觉这个网站很有意思的,于是我打算自己抄实现一个。
网站是开源的,地址是:ngerakines/commitment,既然有源数据就很好办了,在这里我使用 Cloudflare Workers 简单实现一下逻辑(好久没写 CFW 脚本了,还望各位大佬轻点喷):
import HTML from './index.html'
const default_names = [ "Ali", "Andy", "April", "Brannon", "Chris", ...]
const commit_messages = [ "¯\\_(ツ)_/¯", "\"Get that shit outta my master.\"", "#GrammarNazi", "$(init 0)", "$(rm -rvf .)", "(c) Microsoft 1988", "--help", ...]
export default { async fetch(request) { const url = new URL(request.url); var commit_message = commit_messages[Math.floor(Math.random() * commit_messages.length)] .replace(/XNAMEX/g, default_names[Math.floor(Math.random() * default_names.length)]) .replace(/XUPPERNAMEX/g, default_names[Math.floor(Math.random() * default_names.length)].toUpperCase()) .replace(/XLOWERNAMEX/g, default_names[Math.floor(Math.random() * default_names.length)].toLowerCase());
switch (url.pathname) { case '/': case '/index.html': case '/index.php': var OutputHTML = HTML.replace(/%message%/g, commit_message); return new Response(OutputHTML, { status: 200, headers: { 'Content-Type': 'text/html;charset=UTF-8', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET', 'Access-Control-Allow-Headers': 'Origin,X-Requested-With,Content-Type,Accept', } });
case '/index.txt': return new Response(commit_message, { status: 200, headers: { 'Content-Type': 'text/plain;charset=UTF-8', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET', 'Access-Control-Allow-Headers': 'Origin,X-Requested-With,Content-Type,Accept', } });
case '/robots.txt': return new Response( `User-agent: *Disallow: /`, { status: 200, headers: { 'Content-Type': 'text/plain;charset=UTF-8', } });
default: return new Response(`not found`, { status: 404, headers: { 'Content-Type': 'text/plain;charset=UTF-8', } }); } }}
可以看到我们的核心代码非常简单,至于部署么大家肯定都知道怎么做。那么这篇文章,结束?
如果你想使用我的实例,不妨来用用:
git commit -m $(curl -s https://wtc.wolfyang.fan/index.txt)# 有概率触发 WAF,请求量大了可能中断服务,建议自行部署
人机验证:请刷新页面以加载评论区