整合小程序、管理端与后端的最新本地改动,补齐用户管理与首页入口相关能力;提交前已完成敏感信息扫描,并移除本地 gitea 远程 URL 中的明文凭证,避免隐私信息进入远程仓库。 Made-with: Cursor
60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
下载 16 型 MBTI 占位头像(DiceBear notionists,见 https://www.dicebear.com/licenses/ )。
|
||
|
||
说明:网传「药水姐 / 紫大姐 / 大宝剑」等对应的 3D 小人多为 16personalities 或同人版权素材,
|
||
未获授权不宜批量爬取用于商用小程序;本脚本仅拉取开源生成器产物作占位,可后续在管理端替换为自有素材 URL。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
import urllib.request
|
||
from pathlib import Path
|
||
|
||
ROOT = Path(__file__).resolve().parents[1]
|
||
OUT = ROOT / "static" / "mbti-avatars-dicebear"
|
||
|
||
# 与社区常见梗名对应,便于文件夹内辨认(文件名仍用四字母类型)
|
||
MBTI_ORDER = [
|
||
("INTJ", "紫老头"),
|
||
("INTP", "药水姐"),
|
||
("ENTJ", "大姐头"),
|
||
("ENTP", "骨折眉毛"),
|
||
("INFJ", "绿老头"),
|
||
("INFP", "小蝴蝶"),
|
||
("ENFJ", "大宝剑"),
|
||
("ENFP", "快乐小狗"),
|
||
("ISTJ", "蓝老头"),
|
||
("ISFJ", "小护士"),
|
||
("ESTJ", "尺子姐"),
|
||
("ESFJ", "雨伞哥"),
|
||
("ISTP", "电钻哥"),
|
||
("ISFP", "小画家"),
|
||
("ESTP", "墨镜哥"),
|
||
("ESFP", "沙锤姐"),
|
||
]
|
||
|
||
BASE = "https://api.dicebear.com/7.x/notionists/svg"
|
||
|
||
|
||
def main() -> None:
|
||
OUT.mkdir(parents=True, exist_ok=True)
|
||
readme = OUT / "README.txt"
|
||
lines = [
|
||
"DiceBear 7.x notionists — 占位头像,可商用(以 dicebear.com 许可证为准)。",
|
||
"替换为「药水姐」等 3D 风素材时请使用自有版权或已授权图床 URL,在管理端 MBTI 头像库粘贴保存。",
|
||
"",
|
||
]
|
||
for code, nick in MBTI_ORDER:
|
||
url = f"{BASE}?seed={code}"
|
||
dest = OUT / f"{code}.svg"
|
||
urllib.request.urlretrieve(url, dest)
|
||
lines.append(f"{code}.svg — {nick}")
|
||
print(f"ok {dest.name}")
|
||
readme.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
||
print(f"done -> {OUT}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|