diff options
author | Marvin Borner | 2021-05-16 13:38:55 +0200 |
---|---|---|
committer | Marvin Borner | 2021-05-16 13:38:55 +0200 |
commit | a98ea0907ff4731a5d9fe8f5aa1168b8e70fd884 (patch) | |
tree | c84ad149828a3ea92cc31be64801ae718cd17c8f | |
parent | dfa6d36a6edd5ad5190acf3401bad43480f8bcc0 (diff) |
Added heatmap
-rw-r--r-- | assets/css/main.css | 26 | ||||
-rwxr-xr-x | assets/js/main.js | 358 | ||||
-rwxr-xr-x | assets/php/getData.php | 6 | ||||
-rw-r--r-- | example.json | 3151 | ||||
-rwxr-xr-x | index.html | 16 |
5 files changed, 3393 insertions, 164 deletions
diff --git a/assets/css/main.css b/assets/css/main.css index 360f254..afb61a1 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -4,20 +4,18 @@ * @copyright Marvin Borner 2019 */ -html, body { +html, +body { padding: 8px; - color: #ffffff; + color: #fff; background-color: #141414; font-family: "Varela Round", sans-serif !important; text-rendering: optimizeLegibility !important; } -canvas { - margin: 8px auto 0; - width: 100%; -} - -.loading, .stats { +.loading, +.stats, +.input { display: none; } @@ -29,14 +27,6 @@ canvas { padding: 8px; margin-top: 8px; border: 1px solid white; -} - -.heatMap { - border-collapse: collapse; -} - -.heatMap td { - width: 2vw; - height: 2vw; - border: 1px solid white; + max-width: 800px; + margin: 8px auto; } diff --git a/assets/js/main.js b/assets/js/main.js index 52b450c..77dc22e 100755 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -10,27 +10,51 @@ const loading = document.querySelector("#loading"); const stats = document.querySelector("#stats"); const toggle = document.querySelector("#toggle"); -cookie.addEventListener("keyup", (e) => { - if (e.key === "Enter") { - const request = new XMLHttpRequest(); - request.onreadystatechange = () => { - if (request.readyState === 4 && request.status === 200) { - loading.style.display = "none"; - stats.style.display = "block"; - analyze(request.responseText); - } else if (request.readyState === 4 && request.status !== 200) - alert("Cookie is not valid!"); - }; - request.open("POST", "assets/php/getData.php", true); - request.setRequestHeader( - "Content-Type", - "application/x-www-form-urlencoded" - ); - request.send("cookie=" + cookie.value); - loading.style.display = "block"; - cookieWrap.style.display = "none"; - } -}); +function cookies() { + cookieWrap.style.display = "block"; + cookie.addEventListener("keyup", (e) => { + if (e.key === "Enter") { + const request = new XMLHttpRequest(); + request.onreadystatechange = () => { + if (request.readyState === 4 && request.status === 200) { + loading.style.display = "none"; + stats.style.display = "block"; + analyze(request.responseText); + } else if (request.readyState === 4 && request.status !== 200) { + alert("Cookie is not valid!"); + } + }; + request.open("POST", "assets/php/getData.php", true); + request.setRequestHeader( + "Content-Type", + "application/x-www-form-urlencoded" + ); + request.send("cookie=" + cookie.value); + loading.style.display = "block"; + cookieWrap.style.display = "none"; + } + }); +} + +function tryDemo() { + const request = new XMLHttpRequest(); + request.onreadystatechange = () => { + if (request.readyState === 4 && request.status === 200) { + cookieWrap.style.display = "none"; + loading.style.display = "none"; + stats.style.display = "block"; + alert( + "Warning! You're using the example.json data. This is only for demonstration purposes and does NOT represent your real data!" + ); + analyze(request.responseText); + } else if (request.readyState === 4 && request.status !== 200) { + console.log("Couldn't find demo, enabling cookie input"); + cookies(); + } + }; + request.open("GET", "example.json", true); + request.send(); +} function analyze(data) { const filtered = {}; @@ -54,25 +78,12 @@ function analyze(data) { obj.count++; }); - setSizes(); drawTotalSpent(filtered); drawTimeline(filtered); drawTopTitles(filtered); + drawHeatmap(filtered); toggle.onclick = () => drawTopTitles(filtered); - - console.log(filtered); -} - -function setSizes() { - const elements = document.getElementsByTagName("canvas"); - for (const elem of elements) { - elem.setAttribute( - "width", - document.querySelector(".stats div").offsetWidth - ); - elem.setAttribute("height", window.innerHeight / 2 + 200); - } } function drawTotalSpent(data) { @@ -80,10 +91,10 @@ function drawTotalSpent(data) { .map((key) => data[key].duration) .reduce((a, b) => a + b); document.querySelector("#totalSpent").innerHTML = ` - Days: ${Math.floor(totalHours / 24)}; - Hours: ${Math.floor(totalHours)}; - Minutes: ${Math.round(totalHours * 60)}; - Seconds: ${Math.round(totalHours * 60 * 60)}`; + ${Math.floor(totalHours / 24)} days or + ${Math.floor(totalHours)} hours or + ${Math.round(totalHours * 60)} minutes or + ${Math.round(totalHours * 60 * 60)} seconds!`; } function drawTimeline(data) { @@ -97,118 +108,201 @@ function drawTimeline(data) { ); const ctx = document.getElementById("hourChart"); - new Chart(ctx, { - type: "line", - data: { - labels: [...Array(24).keys()], - datasets: [ - { - data: occurrence, - borderColor: "#e50914", - }, - ], + const chart = new ApexCharts(ctx, { + chart: { + type: "line", + foreColor: "#fff", + background: "#141414", }, - options: { - responsive: false, - maintainAspectRatio: true, - legend: { - display: false, - }, - scales: { - xAxes: [ - { - gridLines: { - color: "#424242", - }, - }, - ], - yAxes: [ - { - gridLines: { - color: "#424242", - }, - }, - ], + theme: { + mode: "dark", + }, + series: [ + { + name: "Title count at hour", + data: occurrence, }, + ], + stroke: { + curve: "smooth", + }, + dataLabels: { + enabled: false, + }, + xaxis: { + categories: [...Array(24).keys()], }, }); - - console.log(occurrence); + chart.render(); } let previous; - +let limited = false; function drawTopTitles(data) { - // Toggle layout - toggle.setAttribute( - "data-current", - toggle.getAttribute("data-current") === "bar" ? "pie" : "bar" - ); + limited = !limited; + toggle.innerText = limited ? "View all" : "View less"; + Array.prototype.limit = function () { + if (limited) return this.slice(0, 20); + return this; + }; + if (previous) previous.destroy(); const ctx = document.getElementById("topChart"); - previous = new Chart(ctx, { - type: toggle.getAttribute("data-current"), - data: { - labels: Object.keys(data).sort( - (a, b) => data[b].duration - data[a].duration - ), - datasets: [ - { - data: Object.keys(data) - .map((key) => +data[key].duration.toFixed(2)) - .sort((a, b) => b - a), - borderColor: "#424242", - backgroundColor: Array.from( - { length: Object.keys(data).length }, - () => - "#" + - ( - "00000" + - ((Math.random() * (1 << 24)) | 0).toString(16) - ).slice(-6) - ), - }, - ], + previous = new ApexCharts(ctx, { + chart: { + type: "bar", + foreColor: "#fff", + background: "#141414", + }, + theme: { + mode: "dark", + }, + series: [ + { + name: "Time in hours", + data: Object.keys(data) + .map((key) => +data[key].duration.toFixed(2)) + .sort((a, b) => b - a) + .limit(), + }, + ], + dataLabels: { + enabled: false, + }, + xaxis: { + categories: Object.keys(data) + .sort((a, b) => data[b].duration - data[a].duration) + .limit(), }, - options: { - responsive: false, - maintainAspectRatio: true, - animation: { - animateScale: true, - animateRotate: true, + plotOptions: { + bar: { + horizontal: false, }, - legend: { - display: false, + donut: { + customScale: 0.4, }, - scales: { - xAxes: [ - { - gridLines: { - display: - toggle.getAttribute("data-current") === "bar", - color: "#424242", + }, + }); + previous.render(); +} + +// TODO: There may be a bug in the first week in January +function drawHeatmap(data) { + Date.prototype.getWeek = function () { + var d = new Date( + Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()) + ); + d.setUTCDate(d.getUTCDate() - d.getUTCDay()); + var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)); + return Math.ceil(((d - yearStart) / 86400000 + 1) / 7); + }; + + const currentYear = new Date().getFullYear(); + const currentWeek = new Date().getWeek(); + + const days = [[], [], [], [], [], [], []]; + Object.keys(data).forEach((elem) => { + data[elem].dates.forEach((date) => { + if (date.getFullYear() != currentYear) return; + + const day = date.getDay(); + const week = date.getWeek(); + + if (week > currentWeek) return; + + if (!days[day][week]) days[day][week] = 0; + days[day][week]++; + }); + }); + + for (let i = 0; i < days.length; i++) { + for (let j = 0; j < days[i].length; j++) { + if (!days[i][j]) days[i][j] = 0; + } + } + + const ctx = document.getElementById("heatMap"); + const chart = new ApexCharts(ctx, { + chart: { + type: "heatmap", + foreColor: "#fff", + background: "#141414", + }, + theme: { + mode: "dark", + }, + series: [ + { + name: "Saturday", + data: days[6], + }, + { + name: "Friday", + data: days[5], + }, + { + name: "Thursday", + data: days[4], + }, + { + name: "Wednesday", + data: days[3], + }, + { + name: "Tuesday", + data: days[2], + }, + { + name: "Monday", + data: days[1], + }, + { + name: "Sunday", + data: days[0], + }, + ], + plotOptions: { + heatmap: { + colorScale: { + ranges: [ + { + from: 0, + to: 5, + color: "#00a100", + name: "low", }, - ticks: { - display: - toggle.getAttribute("data-current") === "bar", + { + from: 6, + to: 10, + color: "#128fd9", + name: "medium", }, - }, - ], - yAxes: [ - { - gridLines: { - display: - toggle.getAttribute("data-current") === "bar", - color: "#424242", + { + from: 10, + to: 20, + color: "#ffb200", + name: "high", }, - ticks: { - display: - toggle.getAttribute("data-current") === "bar", + { + from: 21, + to: 100, + color: "#ff5100", + name: "very high", }, - }, - ], + { + from: 101, + to: 1000, + color: "#e50914", + name: "wtf", + }, + ], + }, }, }, }); + chart.render(); } + +Apex.colors = ["#e50914"]; +tryDemo(); diff --git a/assets/php/getData.php b/assets/php/getData.php index c392fc5..a236d49 100755 --- a/assets/php/getData.php +++ b/assets/php/getData.php @@ -6,14 +6,8 @@ * @copyright Marvin Borner 2018 */ -$debug = true; $cookie = $_POST['cookie']; -if ($debug) { - print_r(file_get_contents("../../debug.json")); - die(); -} - if (!isset($cookie)) { http_response_code(404); die(); diff --git a/example.json b/example.json new file mode 100644 index 0000000..b0db335 --- /dev/null +++ b/example.json @@ -0,0 +1,3151 @@ +[ + [ + { + "duration": 1182, + "date": 1621162627042, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1187, + "date": 1621112475579, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1231, + "date": 1621111678979, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1235, + "date": 1621111226965, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1265, + "date": 1621099622915, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1278, + "date": 1621098787302, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1170, + "date": 1621098068950, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1152, + "date": 1621097336480, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1202, + "date": 1621028805836, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1175, + "date": 1621028046277, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1232, + "date": 1621027205619, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1139, + "date": 1621026456091, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1255, + "date": 1621025641643, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1244, + "date": 1621024819502, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1276, + "date": 1621023938980, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1276, + "date": 1621023115240, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1197, + "date": 1621022329342, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1230, + "date": 1621021879278, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1283, + "date": 1621007974423, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1181, + "date": 1621007153260, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1151, + "date": 1620982992961, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1179, + "date": 1620982230482, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1198, + "date": 1620981443098, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1214, + "date": 1620980664337, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1248, + "date": 1620979901701, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1240, + "date": 1620946506271, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1187, + "date": 1620945337671, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1256, + "date": 1620944549492, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1262, + "date": 1620936199348, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1263, + "date": 1620935368783, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1284, + "date": 1620934617525, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1188, + "date": 1620933848709, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1276, + "date": 1620916459097, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1283, + "date": 1620915679038, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1264, + "date": 1620915623727, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1287, + "date": 1620912551401, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1251, + "date": 1620909886722, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1171, + "date": 1620909128221, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1277, + "date": 1620908289233, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1261, + "date": 1620907281731, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1276, + "date": 1620906454550, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1283, + "date": 1620859539970, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1288, + "date": 1620857310129, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1152, + "date": 1620856561279, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1286, + "date": 1620855439756, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1215, + "date": 1620854500904, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1253, + "date": 1620852511565, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1275, + "date": 1620851675529, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1286, + "date": 1620850841750, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1228, + "date": 1620811940416, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1229, + "date": 1620774720250, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1282, + "date": 1620774515393, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1244, + "date": 1620752879384, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1177, + "date": 1620752119991, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1232, + "date": 1620751700210, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1280, + "date": 1620748964664, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1265, + "date": 1620748141949, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1190, + "date": 1620747361520, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1283, + "date": 1620747137793, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1288, + "date": 1620726476745, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1202, + "date": 1620725682141, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1204, + "date": 1620724040475, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1185, + "date": 1620723224974, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1285, + "date": 1620687479434, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1288, + "date": 1620686305454, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1184, + "date": 1620685511028, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1270, + "date": 1620653987276, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1242, + "date": 1620652763518, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1253, + "date": 1620651383041, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1285, + "date": 1620650174054, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1261, + "date": 1620589807053, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1284, + "date": 1620588977568, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1231, + "date": 1620588187032, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1199, + "date": 1620582243679, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1289, + "date": 1620580519329, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1282, + "date": 1620578947426, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1290, + "date": 1620577900663, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1220, + "date": 1620577810837, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1205, + "date": 1620566825600, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1259, + "date": 1620565928976, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1152, + "date": 1620565488828, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1290, + "date": 1620556878635, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1292, + "date": 1620422877754, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1232, + "date": 1620421998064, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1172, + "date": 1620410709333, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1287, + "date": 1620409789760, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1250, + "date": 1620408407143, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1286, + "date": 1620407474314, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1211, + "date": 1620406639767, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1209, + "date": 1620405842302, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1277, + "date": 1620404978803, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1207, + "date": 1620404152030, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1258, + "date": 1620396298623, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1285, + "date": 1620394778611, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1229, + "date": 1620393542600, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1260, + "date": 1620310591532, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1279, + "date": 1620306192538, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1126, + "date": 1620305105833, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1217, + "date": 1620289356543, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1279, + "date": 1620289324485, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1170, + "date": 1620285718757, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1188, + "date": 1620284937741, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1153, + "date": 1620248653942, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1254, + "date": 1620247785845, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1171, + "date": 1620246422385, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1175, + "date": 1620245982050, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1266, + "date": 1620210678294, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1275, + "date": 1620209825448, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1224, + "date": 1620207341350, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1281, + "date": 1620206349449, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1292, + "date": 1620205832779, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1274, + "date": 1620168902307, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1112, + "date": 1620168634972, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1292, + "date": 1620148756932, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1208, + "date": 1620147918886, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1220, + "date": 1620147112325, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1230, + "date": 1620146278444, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1273, + "date": 1620145441855, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1275, + "date": 1620143855581, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1253, + "date": 1620143031057, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1290, + "date": 1620142123565, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1284, + "date": 1620141236596, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1276, + "date": 1620140393998, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1260, + "date": 1620140091880, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1277, + "date": 1620124062760, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1258, + "date": 1620123239467, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1206, + "date": 1620122440815, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1267, + "date": 1620121753756, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1254, + "date": 1620118124747, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1197, + "date": 1620080836892, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1278, + "date": 1620079994553, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1271, + "date": 1620079144445, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1269, + "date": 1620052067867, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1303, + "date": 1620051764128, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1205, + "date": 1620037669357, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1185, + "date": 1620036936319, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1309, + "date": 1620034072219, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1200, + "date": 1619996401962, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1298, + "date": 1619995555640, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1202, + "date": 1619994764087, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1315, + "date": 1619993950012, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1236, + "date": 1619993138390, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1166, + "date": 1619976278454, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1206, + "date": 1619975622911, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1269, + "date": 1619909566100, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1257, + "date": 1619908736445, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1206, + "date": 1619907949879, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1235, + "date": 1619907144567, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1235, + "date": 1619906913555, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 2562, + "date": 1619906788421, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2404, + "date": 1619906754046, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3139, + "date": 1619906636132, + "seriesTitle": "Magic for Noobs" + }, + { + "duration": 1318, + "date": 1619822105126, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1263, + "date": 1619821275762, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1368, + "date": 1619821153279, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1311, + "date": 1619818400074, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1311, + "date": 1619817321275, + "seriesTitle": "How I Wrote Your Code" + } + ], + [ + { + "duration": 1384, + "date": 1619795562411, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1190, + "date": 1619794709234, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1224, + "date": 1619793910512, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1189, + "date": 1619793074730, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1140, + "date": 1619792247218, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1209, + "date": 1619791485855, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1288, + "date": 1619791317689, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1173, + "date": 1619777055429, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1202, + "date": 1619775490316, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1264, + "date": 1619737881472, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1168, + "date": 1619737545743, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1204, + "date": 1619736225452, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1190, + "date": 1619735473648, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1155, + "date": 1619734758778, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1244, + "date": 1619714738634, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1214, + "date": 1619713939540, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1259, + "date": 1619713912038, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1150, + "date": 1619702559474, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1149, + "date": 1619701776116, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1128, + "date": 1619691740490, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1135, + "date": 1619690918776, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1220, + "date": 1619651203634, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1265, + "date": 1619649890366, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1233, + "date": 1619649106834, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1298, + "date": 1619648272459, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1205, + "date": 1619647431925, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1145, + "date": 1619646685072, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1231, + "date": 1619645709365, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1264, + "date": 1619644622046, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1239, + "date": 1619625689596, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1214, + "date": 1619624606173, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1228, + "date": 1619623679161, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1129, + "date": 1619622940516, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1258, + "date": 1619622139405, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1163, + "date": 1619618338977, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1274, + "date": 1619617462841, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1219, + "date": 1619616656848, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1185, + "date": 1619614772879, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1284, + "date": 1619613872691, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1135, + "date": 1619613130196, + "seriesTitle": "Wizards of Dos" + } + ], + [ + { + "duration": 1129, + "date": 1619612215349, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1179, + "date": 1619611445789, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1272, + "date": 1619611199543, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1137, + "date": 1619569503848, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1247, + "date": 1619568667852, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1221, + "date": 1619567868802, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1274, + "date": 1619566987313, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1239, + "date": 1619565099165, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1170, + "date": 1619564318368, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1151, + "date": 1619563595789, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1197, + "date": 1619562749452, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1181, + "date": 1619561926621, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1147, + "date": 1619560828600, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 2384, + "date": 1619535010184, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2440, + "date": 1619534597829, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3635, + "date": 1619392416453, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3365, + "date": 1619392364284, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3563, + "date": 1619307300615, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3225, + "date": 1619299796031, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3535, + "date": 1619296308905, + "seriesTitle": "CS Crowd" + } + ], + [ + { + "duration": 3267, + "date": 1619293158307, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3591, + "date": 1619281036971, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3579, + "date": 1619276544766, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3305, + "date": 1619273169892, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3515, + "date": 1619269156063, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3579, + "date": 1619268513994, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3343, + "date": 1619220510484, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3766, + "date": 1619214023533, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3313, + "date": 1619209258122, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3239, + "date": 1619208372293, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3473, + "date": 1619196820897, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3469, + "date": 1619192675509, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3453, + "date": 1619189117330, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3621, + "date": 1619129449864, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3063, + "date": 1619126452136, + "seriesTitle": "CS Crowd" + }, + { + "duration": 4506, + "date": 1619117691582, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3331, + "date": 1619106406004, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3623, + "date": 1619102917734, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3541, + "date": 1619099397577, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3363, + "date": 1619095423222, + "seriesTitle": "CS Crowd" + } + ], + [ + { + "duration": 3305, + "date": 1619092113999, + "seriesTitle": "CS Crowd" + }, + { + "duration": 5297, + "date": 1619086867698, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3597, + "date": 1619048399924, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3327, + "date": 1619043306306, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3547, + "date": 1619020991157, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3337, + "date": 1619017177754, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3601, + "date": 1619016850349, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3829, + "date": 1618961908464, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3133, + "date": 1618956505142, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3073, + "date": 1618934033338, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3447, + "date": 1618919785457, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3399, + "date": 1618876583759, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3523, + "date": 1618873135738, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3553, + "date": 1618850205485, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3515, + "date": 1618849407088, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3377, + "date": 1618790145699, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3489, + "date": 1618784648680, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3431, + "date": 1618779750316, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3473, + "date": 1618776380399, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3559, + "date": 1618773981682, + "seriesTitle": "CS Crowd" + } + ], + [ + { + "duration": 3559, + "date": 1618762480471, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3585, + "date": 1618757885281, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3331, + "date": 1618698398045, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3299, + "date": 1618694744930, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3443, + "date": 1618694419216, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3455, + "date": 1618678746998, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3405, + "date": 1618656129084, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3337, + "date": 1618612013618, + "seriesTitle": "CS Crowd" + }, + { + "duration": 3573, + "date": 1618611458071, + "seriesTitle": "CS Crowd" + }, + { + "duration": 1311, + "date": 1618565526996, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 2522, + "date": 1618504918381, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2582, + "date": 1618404128194, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 1329, + "date": 1618386125162, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1399, + "date": 1618386101866, + "seriesTitle": "1337 f0r n00b5" + }, + { + "duration": 1439, + "date": 1618386083750, + "seriesTitle": "1337 f0r n00b5" + }, + { + "duration": 1479, + "date": 1618386030532, + "seriesTitle": "1337 f0r n00b5" + }, + { + "duration": 1419, + "date": 1618386027821, + "seriesTitle": "1337 f0r n00b5" + }, + { + "duration": 2594, + "date": 1618328894659, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2506, + "date": 1618328328492, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2530, + "date": 1618315964897, + "seriesTitle": "OSDev for Beginners" + } + ], + [ + { + "duration": 2480, + "date": 1618240734908, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2352, + "date": 1618231464176, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2402, + "date": 1618229057933, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2488, + "date": 1618228574072, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2592, + "date": 1618180724909, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3572, + "date": 1618175354900, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 2996, + "date": 1618172154778, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 3280, + "date": 1618168675159, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 3188, + "date": 1618155327491, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 3070, + "date": 1618152000136, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 2936, + "date": 1618151127959, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 3046, + "date": 1618142523630, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 3078, + "date": 1618096661702, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 3176, + "date": 1618092866310, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 3106, + "date": 1618089752399, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 2986, + "date": 1618089703192, + "seriesTitle": "DIY Phone in 3 steps" + }, + { + "duration": 2362, + "date": 1618007274877, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2582, + "date": 1617922198071, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2538, + "date": 1617921688663, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3216, + "date": 1617917452420, + "seriesTitle": "Vegan Lifestyle" + } + ], + [ + { + "duration": 2670, + "date": 1617916810902, + "seriesTitle": "Vegan Lifestyle" + }, + { + "duration": 2942, + "date": 1617910770346, + "seriesTitle": "Vegan Lifestyle" + }, + { + "duration": 3300, + "date": 1617896534631, + "seriesTitle": "Vegan Lifestyle" + }, + { + "duration": 3096, + "date": 1617892819921, + "seriesTitle": "Vegan Lifestyle" + }, + { + "duration": 3356, + "date": 1617887541158, + "seriesTitle": "Vegan Lifestyle" + }, + { + "duration": 2510, + "date": 1617839267790, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3308, + "date": 1617831151043, + "seriesTitle": "Vegan Lifestyle" + }, + { + "duration": 3458, + "date": 1617827442193, + "seriesTitle": "Vegan Lifestyle" + }, + { + "duration": 1311, + "date": 1617729989635, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1312, + "date": 1617728063808, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1313, + "date": 1617728022025, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1310, + "date": 1617727854806, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2464, + "date": 1617720679556, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2564, + "date": 1617717139791, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2350, + "date": 1617717096409, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 1307, + "date": 1617668910710, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1309, + "date": 1617668901805, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 3846, + "date": 1617666662773, + "seriesTitle": "Parry Hotter" + } + ], + [ + { + "duration": 3063, + "date": 1617625437372, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 2342, + "date": 1617579133517, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2554, + "date": 1617492643902, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2590, + "date": 1617492634117, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3494, + "date": 1617407093572, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3327, + "date": 1617377441416, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3692, + "date": 1617320975392, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3496, + "date": 1617300015445, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3588, + "date": 1617284822701, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3618, + "date": 1617281579301, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3654, + "date": 1617268963898, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3333, + "date": 1617268860521, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3526, + "date": 1617233008182, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3464, + "date": 1617224693991, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3540, + "date": 1617221913705, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3504, + "date": 1617206810904, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3417, + "date": 1617203255459, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3654, + "date": 1617199047243, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3730, + "date": 1617195283741, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3245, + "date": 1617192491545, + "seriesTitle": "Parry Hotter" + } + ], + [ + { + "duration": 3484, + "date": 1617183550968, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3253, + "date": 1617180498084, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3476, + "date": 1617142630887, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3826, + "date": 1617123199008, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3702, + "date": 1617094610220, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3393, + "date": 1617056398641, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3321, + "date": 1617056247079, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3355, + "date": 1617035721546, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3834, + "date": 1617032002390, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3674, + "date": 1617026319838, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3401, + "date": 1617023299470, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3331, + "date": 1616951532587, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3005, + "date": 1616881931384, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3245, + "date": 1616795447744, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3630, + "date": 1616793771185, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3462, + "date": 1616769811843, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3439, + "date": 1616754522967, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 3716, + "date": 1616712666687, + "seriesTitle": "Parry Hotter" + }, + { + "duration": 1311, + "date": 1616684419141, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1311, + "date": 1616683287991, + "seriesTitle": "How I Wrote Your Code" + } + ], + [ + { + "duration": 1114, + "date": 1616596467949, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 1187, + "date": 1616595308506, + "seriesTitle": "Wizards of Dos" + }, + { + "duration": 2404, + "date": 1616595283881, + "seriesTitle": "WHY?" + }, + { + "duration": 1309, + "date": 1616521523767, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1313, + "date": 1616433143596, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1311, + "date": 1616339759208, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1309, + "date": 1616338311350, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1315, + "date": 1616283663323, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1319, + "date": 1616282211040, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 3372, + "date": 1616190001742, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2682, + "date": 1616175535192, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2574, + "date": 1615987780472, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2780, + "date": 1615913583512, + "seriesTitle": "5D Chess" + }, + { + "duration": 3558, + "date": 1615913571481, + "seriesTitle": "5D Chess" + }, + { + "duration": 3618, + "date": 1615913551559, + "seriesTitle": "5D Chess" + }, + { + "duration": 2380, + "date": 1615886842021, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2586, + "date": 1615824652568, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2532, + "date": 1615824070342, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2594, + "date": 1615823834890, + "seriesTitle": "OSDev for Beginners" + } + ], + [ + { + "duration": 2506, + "date": 1615720414037, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2618, + "date": 1615675858275, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2662, + "date": 1615675392217, + "seriesTitle": "How to Walk" + }, + { + "duration": 1367, + "date": 1615541048014, + "seriesTitle": "1337 f0r n00b5" + }, + { + "duration": 3596, + "date": 1615500986760, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3332, + "date": 1615499056739, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3234, + "date": 1615495156960, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3326, + "date": 1615480417987, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3332, + "date": 1615476681108, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3510, + "date": 1615472559145, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3592, + "date": 1615468878094, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3098, + "date": 1615467451606, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 2892, + "date": 1615410560062, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 3230, + "date": 1615404784980, + "seriesTitle": "Cooking for Noobs" + }, + { + "duration": 2482, + "date": 1615393543199, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3352, + "date": 1615388286199, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2622, + "date": 1615388223751, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2696, + "date": 1615372632024, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2942, + "date": 1615369926244, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2684, + "date": 1615329811966, + "seriesTitle": "I Can't C#" + } + ], + [ + { + "duration": 2632, + "date": 1615328465158, + "seriesTitle": "I Can't C#" + }, + { + "duration": 3154, + "date": 1615221960383, + "seriesTitle": "I Can't C#" + }, + { + "duration": 3106, + "date": 1615219038436, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2542, + "date": 1614989241548, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2918, + "date": 1614896366392, + "seriesTitle": "I Can't C#" + }, + { + "duration": 2444, + "date": 1614896101998, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2434, + "date": 1614895246361, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2562, + "date": 1614895242734, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 1447, + "date": 1614871651362, + "seriesTitle": "1337 f0r n00b5" + }, + { + "duration": 1321, + "date": 1614871631474, + "seriesTitle": "1337 f0r n00b5" + }, + { + "duration": 2560, + "date": 1614869757238, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2592, + "date": 1614867159570, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2574, + "date": 1614814796097, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2540, + "date": 1614783990322, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2410, + "date": 1614727829997, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2592, + "date": 1614725306853, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2450, + "date": 1614725281911, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2408, + "date": 1614700957022, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2416, + "date": 1614700790435, + "seriesTitle": "OSDev for Beginners" + } + ], + [ + { + "duration": 3299, + "date": 1614633373180, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3405, + "date": 1614630089262, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3349, + "date": 1614626789376, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3341, + "date": 1614626646165, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3287, + "date": 1614615309121, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3259, + "date": 1614603072405, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3081, + "date": 1614560633178, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3031, + "date": 1614557703777, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3021, + "date": 1614553876673, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3499, + "date": 1614550487120, + "seriesTitle": "history of the entire world" + }, + { + "duration": 3044, + "date": 1614469579604, + "seriesTitle": "Women in Black" + }, + { + "duration": 2792, + "date": 1614465064126, + "seriesTitle": "Women in Black" + }, + { + "duration": 3190, + "date": 1614460040012, + "seriesTitle": "Women in Black" + }, + { + "duration": 3020, + "date": 1614388560447, + "seriesTitle": "Women in Black" + }, + { + "duration": 2996, + "date": 1614387563053, + "seriesTitle": "Women in Black" + }, + { + "duration": 2576, + "date": 1614352073696, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2492, + "date": 1614295991269, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3040, + "date": 1614292903711, + "seriesTitle": "Women in Black" + }, + { + "duration": 2536, + "date": 1614262337833, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2484, + "date": 1614210122024, + "seriesTitle": "OSDev for Beginners" + } + ], + [ + { + "duration": 2468, + "date": 1614207683377, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2584, + "date": 1614180975633, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2400, + "date": 1614177605258, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2612, + "date": 1614120418841, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2436, + "date": 1614093832127, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2502, + "date": 1614092750914, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 1317, + "date": 1614035821085, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2614, + "date": 1614032619554, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2556, + "date": 1614012286289, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2550, + "date": 1613953485929, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2622, + "date": 1613919982621, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2516, + "date": 1613919858916, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3009, + "date": 1613664179015, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2809, + "date": 1613662496958, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2573, + "date": 1613604541393, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2947, + "date": 1613601625078, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2567, + "date": 1613599137714, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2647, + "date": 1613576238004, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2697, + "date": 1613574623083, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2731, + "date": 1613559038107, + "seriesTitle": "Guide to the Space" + } + ], + [ + { + "duration": 2883, + "date": 1613518334171, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2887, + "date": 1613515542502, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2745, + "date": 1613515488563, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2701, + "date": 1613515476190, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2685, + "date": 1613515408339, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 1313, + "date": 1613472785489, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2685, + "date": 1613439291756, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2685, + "date": 1613436695862, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2685, + "date": 1613432034875, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2685, + "date": 1613431660600, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2685, + "date": 1613403054353, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2697, + "date": 1613351398007, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2685, + "date": 1613345003521, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2735, + "date": 1613344550874, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2719, + "date": 1613262925101, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2683, + "date": 1613244890379, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2749, + "date": 1613169881585, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2683, + "date": 1613139360658, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 1313, + "date": 1613129238993, + "seriesTitle": "Why JS sucks" + } + ], + [ + { + "duration": 2771, + "date": 1613126481068, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 1312, + "date": 1613084838598, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1314, + "date": 1613084722679, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2743, + "date": 1612975012607, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2677, + "date": 1612912943950, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2695, + "date": 1612833278101, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2713, + "date": 1612831015870, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2727, + "date": 1612798908232, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 2811, + "date": 1612798839754, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 1311, + "date": 1612659720108, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1315, + "date": 1612658434773, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 1307, + "date": 1612658425334, + "seriesTitle": "How I Wrote Your Code" + }, + { + "duration": 2797, + "date": 1612657600530, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 3013, + "date": 1612573739372, + "seriesTitle": "Guide to the Space" + }, + { + "duration": 1353, + "date": 1612539912136, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1301, + "date": 1612523210794, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2981, + "date": 1612482833770, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2981, + "date": 1612480035345, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 3103, + "date": 1612313752099, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 3089, + "date": 1612313631792, + "seriesTitle": "Tar Shrek" + } + ], + [ + { + "duration": 2823, + "date": 1612295330187, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2783, + "date": 1612294625767, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2755, + "date": 1612277688475, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2703, + "date": 1612274659476, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2905, + "date": 1612272042494, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2871, + "date": 1612262600267, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 3039, + "date": 1612226460809, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2965, + "date": 1612221875158, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2707, + "date": 1612219342169, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2837, + "date": 1611958820998, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2739, + "date": 1611956273229, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 1312, + "date": 1611934679646, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2915, + "date": 1611931792147, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2526, + "date": 1611915934566, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 1312, + "date": 1611880962017, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1312, + "date": 1611880835995, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2963, + "date": 1611876786094, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2811, + "date": 1611873934534, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 3069, + "date": 1611871348425, + "seriesTitle": "Tar Shrek" + }, + { + "duration": 2464, + "date": 1611847860729, + "seriesTitle": "OSDev for Beginners" + } + ], + [ + { + "duration": 2488, + "date": 1611703226424, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2588, + "date": 1611686230435, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2786, + "date": 1611686221838, + "seriesTitle": "How to Fly" + }, + { + "duration": 2540, + "date": 1611678991985, + "seriesTitle": "I like trains" + }, + { + "duration": 2226, + "date": 1611676915029, + "seriesTitle": "I like trains" + }, + { + "duration": 2488, + "date": 1611674473740, + "seriesTitle": "I like trains" + }, + { + "duration": 2390, + "date": 1611654350889, + "seriesTitle": "I like trains" + }, + { + "duration": 1315, + "date": 1611617415051, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 2801, + "date": 1611615843719, + "seriesTitle": "I like trains" + }, + { + "duration": 2707, + "date": 1611597820887, + "seriesTitle": "I like trains" + }, + { + "duration": 2663, + "date": 1611591004500, + "seriesTitle": "I like trains" + }, + { + "duration": 2781, + "date": 1611588064538, + "seriesTitle": "I like trains" + }, + { + "duration": 2412, + "date": 1611534361940, + "seriesTitle": "I like trains" + }, + { + "duration": 3057, + "date": 1611530296192, + "seriesTitle": "I like trains" + }, + { + "duration": 2480, + "date": 1611509858337, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 3232, + "date": 1611358041988, + "seriesTitle": "Fun With Flags" + }, + { + "duration": 3018, + "date": 1611355181796, + "seriesTitle": "Fun With Flags" + }, + { + "duration": 2822, + "date": 1611353207012, + "seriesTitle": "Fun With Flags" + }, + { + "duration": 3118, + "date": 1611338158602, + "seriesTitle": "Fun With Flags" + }, + { + "duration": 2884, + "date": 1611335425215, + "seriesTitle": "Fun With Flags" + } + ], + [ + { + "duration": 3222, + "date": 1611326140945, + "seriesTitle": "Fun With Flags" + }, + { + "duration": 1317, + "date": 1611308035661, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1611269321743, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 2596, + "date": 1611267608895, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2524, + "date": 1611265846185, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 1312, + "date": 1611248168791, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2496, + "date": 1611245626980, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 1313, + "date": 1611186058893, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2484, + "date": 1611183656893, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2494, + "date": 1611181864383, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2474, + "date": 1611160632412, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2524, + "date": 1611157783623, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2594, + "date": 1611156665587, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 2486, + "date": 1611099067680, + "seriesTitle": "OSDev for Beginners" + }, + { + "duration": 1315, + "date": 1611097813212, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1313, + "date": 1611071980211, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1326, + "date": 1611070693498, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1326, + "date": 1611069387254, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1327, + "date": 1611047794110, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1323, + "date": 1611010228609, + "seriesTitle": "Why JS sucks" + } + ], + [ + { + "duration": 1315, + "date": 1610961869859, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1333, + "date": 1610927380874, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1315, + "date": 1610904642217, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1315, + "date": 1610846241855, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1610845034904, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 3480, + "date": 1610844202789, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 4360, + "date": 1610757679042, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 3654, + "date": 1610753637049, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 3436, + "date": 1610752643946, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 3680, + "date": 1610744577595, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 3672, + "date": 1610741731999, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 3424, + "date": 1610733233852, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 3702, + "date": 1610729115591, + "seriesTitle": "Purpose of Life" + }, + { + "duration": 1326, + "date": 1610704031781, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1317, + "date": 1610616951061, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1315, + "date": 1610529907922, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1329, + "date": 1610474420241, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1329, + "date": 1610444733229, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2242, + "date": 1610381234589, + "seriesTitle": "Tar Wars" + } + ], + [ + { + "duration": 2238, + "date": 1610378403600, + "seriesTitle": "Tar Wars" + }, + { + "duration": 1333, + "date": 1610360043161, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1329, + "date": 1610360024095, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2652, + "date": 1610313691187, + "seriesTitle": "Chanandler Bong" + }, + { + "duration": 2888, + "date": 1610310850663, + "seriesTitle": "Chanandler Bong" + }, + { + "duration": 2564, + "date": 1610310644004, + "seriesTitle": "Chanandler Bong" + }, + { + "duration": 3190, + "date": 1610299951664, + "seriesTitle": "Chanandler Bong" + }, + { + "duration": 2888, + "date": 1610297115593, + "seriesTitle": "Chanandler Bong" + }, + { + "duration": 1321, + "date": 1610154536732, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1315, + "date": 1610153529710, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1319, + "date": 1610148328873, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1321, + "date": 1610147025734, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1610120587542, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1319, + "date": 1610119203013, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1610117898292, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1315, + "date": 1610102168863, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1610067997158, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1319, + "date": 1610066693212, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1319, + "date": 1610063993544, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1610062698943, + "seriesTitle": "The Sitting Sitcom" + } + ], + [ + { + "duration": 1319, + "date": 1610061356289, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1610060052735, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1319, + "date": 1610059234518, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1349, + "date": 1610038763137, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1610017443274, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1319, + "date": 1609984520790, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1315, + "date": 1609983213834, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1319, + "date": 1609981911433, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1317, + "date": 1609980608381, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1328, + "date": 1609842900734, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1321, + "date": 1609842873202, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1327, + "date": 1609804413364, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 2248, + "date": 1609802204853, + "seriesTitle": "Tar Wars" + }, + { + "duration": 2132, + "date": 1609800237821, + "seriesTitle": "Tar Wars" + }, + { + "duration": 2290, + "date": 1609800164767, + "seriesTitle": "Tar Wars" + }, + { + "duration": 1293, + "date": 1609798870422, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1429, + "date": 1609797457393, + "seriesTitle": "The Sitting Sitcom" + }, + { + "duration": 1329, + "date": 1609777505255, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1326, + "date": 1609777488770, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1329, + "date": 1609634045202, + "seriesTitle": "Why JS sucks" + } + ], + [ + { + "duration": 1328, + "date": 1609633101424, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1328, + "date": 1609603575646, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1328, + "date": 1609545071043, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1328, + "date": 1609544002221, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1327, + "date": 1609542575203, + "seriesTitle": "Why JS sucks" + }, + { + "duration": 1328, + "date": 1609541313252, + "seriesTitle": "Why JS sucks" + } + ] +] @@ -22,7 +22,7 @@ </head> <body> - <div id="cookie_wrap"> + <div class="input" id="cookie_wrap"> <label for="cookie">Enter your cookie:</label> <input class="cookie" @@ -40,21 +40,21 @@ <h2>Netflix Statistics</h2> <div>Total watch time: <span id="totalSpent"></span></div> <div> - <canvas id="hourChart"></canvas> + <p>Title count per hour:</p> + <div class="chart" id="hourChart"></div> </div> <div> <p>Most watched titles:</p> - <button data-current="bar" id="toggle">Toggle</button> - <canvas id="topChart"></canvas> + <button id="toggle">View all</button> + <div class="chart" id="topChart"></div> </div> <div> - <p>Overview of the year:</p> - <div id="information"></div> - <table class="heatMap" id="heatMap"></table> + <p>Title count per day this year:</p> + <div class="chart" id="heatMap"></div> </div> </div> - <script src="assets/js/chart.js"></script> + <script src="https://cdn.jsdelivr.net/npm/apexcharts"></script> <script src="assets/js/main.js"></script> </body> </html> |