237 lines
10 KiB
HTML
237 lines
10 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link href="./src/styles/index.css" rel="stylesheet" />
|
|
<title>Inicio</title>
|
|
</head>
|
|
|
|
<body class="min-h-screen bg-gray-100">
|
|
<p class="mb-6 bg-yellow-400">
|
|
Work in progress - API 0.1.0 / Harvester 0.1.0 / Views 0.1.0
|
|
<a class="text-blue-800" href="mailto:hola@pedroperez.dev"
|
|
>Have you found any bugs or is it not working with a specific tv
|
|
show?</a
|
|
>
|
|
</p>
|
|
|
|
<div class="flex w-full flex-col items-center">
|
|
<h1 class="mb-6 text-3xl font-bold">Breaking Bad</h1>
|
|
|
|
<div class="mb-6 rounded-lg bg-white p-6 shadow-md">
|
|
<div class="mb-4 text-center">
|
|
<span class="text-gray-600">IMDb ID:</span>
|
|
<span class="font-semibold text-gray-800">0903747</span>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-2 gap-8">
|
|
<ul class="space-y-2">
|
|
<li>
|
|
<span class="text-gray-600">Title:</span>
|
|
<span class="font-semibold text-gray-800">Breaking Bad</span>
|
|
</li>
|
|
<li>
|
|
<span class="text-gray-600">Runtime:</span>
|
|
<span class="font-semibold text-gray-800">49 min</span>
|
|
</li>
|
|
<li>
|
|
<span class="text-gray-600">Seasons:</span>
|
|
<span class="font-semibold text-gray-800">5</span>
|
|
</li>
|
|
</ul>
|
|
|
|
<ul class="space-y-2">
|
|
<li>
|
|
<span class="text-gray-600">Total votes:</span>
|
|
<span class="font-semibold text-gray-800">1970456</span>
|
|
</li>
|
|
<li>
|
|
<span class="text-gray-600">Average rating:</span>
|
|
<span class="font-semibold text-gray-800">8.95</span>
|
|
</li>
|
|
<li>
|
|
<span class="text-gray-600">Median rating:</span>
|
|
<span class="font-semibold text-gray-800">8.85</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-6 w-2/3">
|
|
<h2 class="mb-6 text-center text-2xl font-bold">Seasons overall</h2>
|
|
<canvas id="seasons"></canvas>
|
|
</div>
|
|
|
|
<div class="mb-6 w-2/3">
|
|
<div x-data="{ selectedSeasonNumber: 1}">
|
|
<h2 class="mb-6 text-center text-2xl font-bold">
|
|
Season <span x-text="selectedSeasonNumber"></span>
|
|
</h2>
|
|
<canvas id="episodes"></canvas>
|
|
<div class="mt-4 flex items-center justify-center space-x-2">
|
|
<button
|
|
x-on:click="selectedSeasonNumber = 1; loadSeason(1)"
|
|
class="rounded-md border-2 border-black px-4 py-2 font-semibold text-black hover:bg-black hover:text-white"
|
|
:class="selectedSeasonNumber === 1 ? 'bg-black text-white' : 'text-black'"
|
|
>
|
|
S1
|
|
</button>
|
|
<button
|
|
x-on:click="selectedSeasonNumber = 2; loadSeason(2)"
|
|
class="rounded-md border-2 border-black px-4 py-2 font-semibold text-black hover:bg-black hover:text-white"
|
|
:class="selectedSeasonNumber === 2 ? 'bg-black text-white' : 'text-black'"
|
|
>
|
|
S2
|
|
</button>
|
|
<button
|
|
x-on:click="selectedSeasonNumber = 3; loadSeason(3)"
|
|
class="rounded-md border-2 border-black px-4 py-2 font-semibold text-black hover:bg-black hover:text-white"
|
|
:class="selectedSeasonNumber === 3 ? 'bg-black text-white' : 'text-black'"
|
|
>
|
|
S3
|
|
</button>
|
|
<button
|
|
x-on:click="selectedSeasonNumber = 4; loadSeason(4)"
|
|
class="rounded-md border-2 border-black px-4 py-2 font-semibold text-black hover:bg-black hover:text-white"
|
|
:class="selectedSeasonNumber === 4 ? 'bg-black text-white' : 'text-black'"
|
|
>
|
|
S4
|
|
</button>
|
|
<button
|
|
x-on:click="selectedSeasonNumber = 5; loadSeason(5)"
|
|
class="rounded-md border-2 border-black px-4 py-2 font-semibold text-black hover:bg-black hover:text-white"
|
|
:class="selectedSeasonNumber === 5 ? 'bg-black text-white' : 'text-black'"
|
|
>
|
|
S5
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<footer class="bg-gray-200" aria-label="Site Footer">
|
|
<ul class="mt-12 flex justify-center gap-6 p-12">
|
|
<li>
|
|
<a
|
|
class="text-gray-700 transition hover:text-gray-700/75"
|
|
href="https://www.instagram.com/zepyrshut/"
|
|
rel="noreferrer"
|
|
target="_blank"
|
|
>
|
|
<span class="sr-only">Instagram</span>
|
|
<svg
|
|
class="h-6 w-6"
|
|
aria-hidden="true"
|
|
fill="currentColor"
|
|
viewBox="0 0 24 24"
|
|
>
|
|
<path
|
|
fill-rule="evenodd"
|
|
d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z"
|
|
clip-rule="evenodd"
|
|
/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a
|
|
class="text-gray-700 transition hover:text-gray-700/75"
|
|
href="https://github.com/zepyrshut"
|
|
rel="noreferrer"
|
|
target="_blank"
|
|
>
|
|
<span class="sr-only">GitHub</span>
|
|
<svg
|
|
class="h-6 w-6"
|
|
aria-hidden="true"
|
|
fill="currentColor"
|
|
viewBox="0 0 24 24"
|
|
>
|
|
<path
|
|
fill-rule="evenodd"
|
|
d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"
|
|
clip-rule="evenodd"
|
|
/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a
|
|
class="text-gray-700 transition hover:text-gray-700/75"
|
|
href="https://pedroperez.dev/"
|
|
rel="noreferrer"
|
|
target="_blank"
|
|
>
|
|
<span class="sr-only">Website</span>
|
|
<svg
|
|
class="h-6 w-6"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke-width="1.5"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418"
|
|
/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a
|
|
class="text-gray-700 transition hover:text-gray-700/75"
|
|
href="https://github.com/zepyrshut/rating-orama"
|
|
rel="noreferrer"
|
|
target="_blank"
|
|
>
|
|
<span class="sr-only">Source</span>
|
|
<svg
|
|
class="h-6 w-6"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke-width="1.5"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
d="M17.25 6.75L22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3l-4.5 16.5"
|
|
/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</footer>
|
|
|
|
<script src="./src/main.js" type="module"></script>
|
|
<script
|
|
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.2.1/chart.umd.js"
|
|
integrity="sha512-vCUbejtS+HcWYtDHRF2T5B0BKwVG/CLeuew5uT2AiX4SJ2Wff52+kfgONvtdATqkqQMC9Ye5K+Td0OTaz+P7cw=="
|
|
crossorigin="anonymous"
|
|
referrerpolicy="no-referrer"
|
|
></script>
|
|
<script type="module">
|
|
import { initCharts, loadSpecificSeason } from "./src/components/charts.js";
|
|
import { data } from "./src/data/breaking-bad.js";
|
|
|
|
const tvShowParsed = data;
|
|
|
|
function loadSeason(season) {
|
|
const currentScrollY = window.scrollY;
|
|
loadSpecificSeason(tvShowParsed, season);
|
|
window.scrollTo(0, currentScrollY);
|
|
}
|
|
|
|
window.loadSeason = loadSeason;
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
initCharts(tvShowParsed);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|