【20251112】視聴履歴+クイズPointVer

できること

New【オプションページのクイズを正解するとポイントが溜まり、そのポイントで制限時間を伸ばせる】

・視聴履歴を残せる

・複数のURLを制限対象に登録できる

・URLごとに制限時間を決められる

・制限時間を後から変更できる

・同じサイトを複数のタブで開いていた場合、カウントが倍加するのを防げる

・日付が変わったらリセットする

Free ICON

FlatIcon【https://www.flaticon.com/free-icon/timer_1407089

Directory Structure

ytlimiter
|---manifest.json
|---background.js
|---chart.js
|---icon128.png
|---popup.html
|---popup.css
|---popup.js
|---option.html
|---option.js
|---option.css

|---quiz.html
|---quiz.js
|---quiz.css
|---quizform.html
|---quizform.js
|---quizform.css

ストレージの中身

{
  "site": [
    { "url": "https://www.youtube.com/", "limit": 2700 },
    { "url": "https://x.com/", "limit": 1800 }
  ],
  "watchData": {
    "https://www.youtube.com/": {
      "date": "2025-11-10",
      "seconds": 1230,
      "history": { "2025-11-07": 1000, "2025-11-08": 1200, "2025-11-09": 800 }
    },
    "https://x.com/": {
      "date": "2025-11-07",
      "seconds": 600,
      "history": { "2025-11-07": 900, "2025-11-08": 1400, "2025-11-09": 1300 }
    }
  },
  "quiz": [
    {
      "question": "Javascriptで非同期処理を行う構文は?",
      "choices": ["async/await", "callback", "if/else", "Object.keys"],
      "answer": "async/await"
    },
    {
      "question": "xxxxxxxxxxxx",
      "choices": ["x", "xx", "xxx", "xxxx"],
      "answer": "xx"
    }
  ],
  "point": 0,
  "answerHistory": [
    {
      "question": "Javascriptで非同期処理を行う構文は?",
      "choices": ["async/await", "callback", "if/else", "Object.keys"],
      "selected": "async/await",
      "correct": "async/await",
      "result": "正解",
      "date": "2025/11/12 10:36:34"
    }
  ]
}

manifest.json

BACK