小狼阳帆

WolfYangFan Blog

你好,我是小狼阳帆,很高兴认识你!
email
misskey

隨機 Git 提交資訊,但 Cloudflare Workers

你可能已经使用过这个神奇的站点,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.993686.xyz/index.txt)
# 有概率觸發 WAF,請求量大了可能中斷服務,建議自行部署
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。