【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"
}
]
}