Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pets/youmu--ai-generated/pet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"id": "youmu--ai-generated",
"displayName": "魂魄妖梦",
"description": "魂魄妖梦主题的 Gemini AI 生成风格 Codex chibi 宠物,银发、绿色制服、佩刀与半灵相伴。",
"spriteVersionNumber": 2,
"spritesheetPath": "spritesheet.webp"
}
Binary file added pets/youmu--ai-generated/spritesheet.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions pets/youmu--ai-generated/submission.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"slug": "youmu--ai-generated",
"pet_slug": "youmu",
"author_slug": "ai-generated",
"name": "魂魄妖梦",
"author": "AI 生成(Gemini)",
"primary_category": "Game Characters",
"canonical_key": "touhou-project/konpaku-youmu",
"tags": [
"touhou-project",
"youmu-konpaku",
"ai-generated",
"chibi",
"sword",
"ghost"
],
"source_type": "ai-generated",
"source_url": "https://gemini.google.com/app/c70f532f3f96cf0b",
"license": "CC BY 4.0",
"description": "基于用户提供且获 CC BY 4.0 再分发授权的 Gemini AI 生成参考图制作的魂魄妖梦 Codex 宠物;保留银发、绿色制服、佩刀与半灵特征。",
Comment on lines +18 to +20

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

file='pets/youmu--ai-generated/submission.json'

echo '--- file excerpt ---'
cat -n "$file" | sed -n '1,80p'

echo
echo '--- source_url reachability ---'
url=$(python3 - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('pets/youmu--ai-generated/submission.json').read_text())
print(data.get('source_url',''))
PY
)

python3 - <<'PY' "$url"
import sys, urllib.request, urllib.error
url = sys.argv[1]
req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0"})
try:
    with urllib.request.urlopen(req, timeout=20) as resp:
        print("status:", resp.status)
        print("final_url:", resp.geturl())
        print("content_type:", resp.headers.get_content_type())
        body = resp.read(5000)
        print("body_prefix:", body.decode("utf-8", "replace")[:1000])
except Exception as e:
    print(type(e).__name__ + ":", e)
PY

Repository: legeling/awesome-codex-pet

Length of output: 1285


🌐 Web query:

site:gemini.google.com/app/c70f532f3f96cf0b Gemini app session login page

💡 Result:

The URL points to the Gemini web app, and the page shows a Login / Sign in prompt for Gemini. The Gemini app homepage also lists Login in its navigation. [1][2]

If you want, I can help verify whether that exact session ID URL is still valid or what it redirects to.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

url='https://gemini.google.com/app/c70f532f3f96cf0b'

echo '--- headers ---'
curl -k -L -sS -D - -o /tmp/gemini_body.txt "$url" | sed -n '1,40p'

echo
echo '--- body prefix ---'
python3 - <<'PY'
from pathlib import Path
data = Path('/tmp/gemini_body.txt').read_bytes()
text = data.decode('utf-8', 'replace')
print(text[:2000])
PY

Repository: legeling/awesome-codex-pet

Length of output: 8774


提供可公开审阅的来源与授权证明。 source_url 目前只会打开 Gemini 登录页,无法支撑第 20 行所述的 CC BY 4.0 再分发授权;请改成无需登录的公开分享链接,或补充可审计的授权证明。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pets/youmu--ai-generated/submission.json` around lines 18 - 20, 更新
submission.json 中的 source_url,使其指向无需登录即可公开审阅、且能验证 CC BY 4.0
再分发授权的来源;若无法提供公开分享链接,则补充可审计的授权证明,并确保 description 中的授权声明与该证据一致。

"preview_image": "../../assets/previews/youmu--ai-generated/gifs/idle.gif",
"codex_install": {
"pet_json": "pet.json",
"spritesheet": "spritesheet.webp"
}
}