xChar
·2 months ago

写在前面:

我实在想不明白一个点名表为什么要用密码保护,让用户输入名单不就行了,不建议看本篇,太降智了,参见:本地点名表,基于HTML,可作为APK安装

这是什么

这是一个托管在Cloudflare Workers的云端点名表,对于某些职位非常有用。点名表显示了当前时间,点击一个名字后会将它划除并置底,同时也有全选、取消全选和切换主题

登录页:

image

点名表页:

9c9b7facdd8878704b8903a53e83bb27

50efb0a23afd3324791ef2e390f4dce7

为什么要做这个奇怪的项目?

因为笔者发现市面上大多数TODO软件都无法实现类似点名表的效果,一怒之下便拜师AI,历经20天做出这坨史(代码确实是依托
但是能用,后面的计划是解耦合(比如将HTML使用KV变量存储)

正式开始

  1. 创建Cloudflare Workers并粘贴代码,GIthub仓库为:https://github.com/afoim/name_cf_workers

  2. 添加环境变量

  • NAMES为名单,一行一个
  • PASSWORD为你设置的密码
  • TOTP_SECRET为你设置的TOTP密钥,可以通过以下Python代码生成
import pyotp
import qrcode

def generate_totp(secret, account_name, issuer_name):
    # 生成一个TOTP对象
    totp = pyotp.TOTP(secret)
    
    # 打印当前的TOTP值
    print(f"当前 TOTP:{totp.now()}")

    # 生成适合二维码扫描的URI (适用于Google Authenticator等)
    uri = totp.provisioning_uri(name=account_name, issuer_name=issuer_name)
    print(f"TOTP URI: {uri}")

    # 生成二维码
    img = qrcode.make(uri)
    img.show()  # 显示二维码

if __name__ == "__main__":
    # 自定义名称、账号和密钥
    account_name = input("请输入账号名称: ")
    issuer_name = input("请输入应用名称: ")

    # 生成一个随机密钥,或者你可以使用自己预定义的密钥
    secret = pyotp.random_base32()
    print(f"密钥: {secret}")

    generate_totp(secret, account_name, issuer_name)

image

Loading comments...