Files
offline-db/templates/season.html
google-labs-jules[bot] 6f811d2028 ✨ FEATURE: Implemented User Account, Watch History, and Watchlist System (#14)
This major update transforms the platform into a personalized anime experience.

Key Changes:
- Database: Added 'users', 'watch_history', and 'watchlists' tables with appropriate relationships and indices.
- Backend: Created 'blueprints/user.py' for authentication (Register/Login/Logout) and User Data API (History/Watchlist).
- Security: Implemented password hashing using werkzeug.security and enabled Flask sessions.
- Frontend Architecture: Refactored all templates to use a new 'base.html' for global navigation and consistent styling.
- UI/UX: Added 'Continue Watching' and 'My Watchlist' sections to the home page.
- Tracking: Integrated real-time watch progress tracking in the video player.

This moves the platform from a static database to a dynamic, user-centric streaming site.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-01-16 07:45:49 +00:00

42 lines
2.2 KiB
HTML

{% extends "base.html" %}
{% block title %}{{ season.title() }} {{ year }} Anime - Anime Platform{% endblock %}
{% block content %}
<div class="flex justify-between items-center mb-6">
<h2 class="text-3xl font-bold">{{ season.title() }} {{ year }} <span class="text-gray-500 text-xl font-normal">({{ anime_list|length }} animes)</span></h2>
<div class="bg-gray-800 px-4 py-2 rounded-lg border border-gray-700">
<span class="text-green-500 font-bold">{{ in_db_count }}</span> / {{ anime_list|length }} in Database
</div>
</div>
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-6">
{% for anime in anime_list %}
<div class="anime-card bg-gray-800 rounded-lg overflow-hidden shadow-lg border {% if anime.in_db %}border-green-600{% else %}border-gray-700{% endif %} flex flex-col">
<div class="relative">
<img src="{{ anime.image }}" alt="{{ anime.title }}" class="w-full h-64 object-cover">
{% if anime.in_db %}
<div class="absolute top-2 left-2 bg-green-600 text-white text-[10px] font-bold px-1.5 py-0.5 rounded shadow uppercase">
In DB
</div>
{% endif %}
<div class="absolute top-2 right-2 bg-blue-600 text-white text-xs font-bold px-2 py-1 rounded shadow">
{{ anime.type }}
</div>
</div>
<div class="p-4 flex-grow flex flex-col justify-between">
<div>
<h3 class="font-bold text-lg leading-tight mb-2 line-clamp-2" title="{{ anime.title }}">{{ anime.title }}</h3>
</div>
<div class="flex items-center justify-between mt-auto">
<span class="text-yellow-500 font-bold text-sm">⭐ {{ anime.score or 'N/A' }}</span>
<a href="/player?mal_id={{ anime.mal_id }}" class="bg-blue-600 hover:bg-blue-700 text-white text-xs font-bold px-4 py-2 rounded transition">
Watch
</a>
</div>
</div>
</div>
{% endfor %}
</div>
{% endblock %}