diff options
| author | Bobby <[email protected]> | 2025-03-10 21:22:04 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-03-10 21:22:04 +0530 |
| commit | f5ef9d42ebe7b2be932b35db7c5d801e9cfeb2c1 (patch) | |
| tree | ed065e5e65500fe8f804cb4ac003caa3623817b5 /templates | |
| parent | a9c4481356e54317584a4f92d7329364f8ad99e3 (diff) | |
| download | thatcomputerscientist-f5ef9d42ebe7b2be932b35db7c5d801e9cfeb2c1.tar.xz thatcomputerscientist-f5ef9d42ebe7b2be932b35db7c5d801e9cfeb2c1.zip | |
refactor code; add genre colors; rename video player class
Diffstat (limited to 'templates')
63 files changed, 317 insertions, 274 deletions
diff --git a/templates/400.html b/templates/400.html index e45508f8..e45508f8 100755..100644 --- a/templates/400.html +++ b/templates/400.html diff --git a/templates/403.html b/templates/403.html index 9e0e766e..9e0e766e 100755..100644 --- a/templates/403.html +++ b/templates/403.html diff --git a/templates/404.html b/templates/404.html index ae858be7..ae858be7 100755..100644 --- a/templates/404.html +++ b/templates/404.html diff --git a/templates/500.html b/templates/500.html index 5cfdd6ca..5cfdd6ca 100755..100644 --- a/templates/500.html +++ b/templates/500.html diff --git a/templates/blog/account.html b/templates/blog/account.html index 968433e4..968433e4 100755..100644 --- a/templates/blog/account.html +++ b/templates/blog/account.html diff --git a/templates/blog/activity.html b/templates/blog/activity.html index e47dd537..e47dd537 100755..100644 --- a/templates/blog/activity.html +++ b/templates/blog/activity.html diff --git a/templates/blog/anidata.html b/templates/blog/anidata.html index 78e7106c..78e7106c 100755..100644 --- a/templates/blog/anidata.html +++ b/templates/blog/anidata.html diff --git a/templates/blog/anilist.html b/templates/blog/anilist.html index 7e60a48b..7e60a48b 100755..100644 --- a/templates/blog/anilist.html +++ b/templates/blog/anilist.html diff --git a/templates/blog/archives.html b/templates/blog/archives.html index 6c3420a4..6c3420a4 100755..100644 --- a/templates/blog/archives.html +++ b/templates/blog/archives.html diff --git a/templates/blog/articles.html b/templates/blog/articles.html index 79a90732..79a90732 100755..100644 --- a/templates/blog/articles.html +++ b/templates/blog/articles.html diff --git a/templates/blog/categories.html b/templates/blog/categories.html index aa1eeff6..aa1eeff6 100755..100644 --- a/templates/blog/categories.html +++ b/templates/blog/categories.html diff --git a/templates/blog/home.html b/templates/blog/home.html index 683afcbe..683afcbe 100755..100644 --- a/templates/blog/home.html +++ b/templates/blog/home.html diff --git a/templates/blog/partials/base.html b/templates/blog/partials/base.html index 6f7affb7..6f7affb7 100755..100644 --- a/templates/blog/partials/base.html +++ b/templates/blog/partials/base.html diff --git a/templates/blog/partials/mathjax.html b/templates/blog/partials/mathjax.html index dd1944d4..dd1944d4 100755..100644 --- a/templates/blog/partials/mathjax.html +++ b/templates/blog/partials/mathjax.html diff --git a/templates/blog/partials/post_list.html b/templates/blog/partials/post_list.html index 96a76a19..96a76a19 100755..100644 --- a/templates/blog/partials/post_list.html +++ b/templates/blog/partials/post_list.html diff --git a/templates/blog/partials/search/comment_list.html b/templates/blog/partials/search/comment_list.html index d539c6b7..d539c6b7 100755..100644 --- a/templates/blog/partials/search/comment_list.html +++ b/templates/blog/partials/search/comment_list.html diff --git a/templates/blog/partials/search/post_list.html b/templates/blog/partials/search/post_list.html index 81afb03e..81afb03e 100755..100644 --- a/templates/blog/partials/search/post_list.html +++ b/templates/blog/partials/search/post_list.html diff --git a/templates/blog/partials/search/user_list.html b/templates/blog/partials/search/user_list.html index 3d9ab865..3d9ab865 100755..100644 --- a/templates/blog/partials/search/user_list.html +++ b/templates/blog/partials/search/user_list.html diff --git a/templates/blog/partials/sidebar.html b/templates/blog/partials/sidebar.html index 83f7628f..83f7628f 100755..100644 --- a/templates/blog/partials/sidebar.html +++ b/templates/blog/partials/sidebar.html diff --git a/templates/blog/post.html b/templates/blog/post.html index 7043f387..7043f387 100755..100644 --- a/templates/blog/post.html +++ b/templates/blog/post.html diff --git a/templates/blog/register.html b/templates/blog/register.html index 2f05874a..2f05874a 100755..100644 --- a/templates/blog/register.html +++ b/templates/blog/register.html diff --git a/templates/blog/resetpass.html b/templates/blog/resetpass.html index 81c68c56..81c68c56 100755..100644 --- a/templates/blog/resetpass.html +++ b/templates/blog/resetpass.html diff --git a/templates/blog/resetpass_input.html b/templates/blog/resetpass_input.html index 939eab9d..939eab9d 100755..100644 --- a/templates/blog/resetpass_input.html +++ b/templates/blog/resetpass_input.html diff --git a/templates/blog/search.html b/templates/blog/search.html index fcf98c99..fcf98c99 100755..100644 --- a/templates/blog/search.html +++ b/templates/blog/search.html diff --git a/templates/blog/site_policy.html b/templates/blog/site_policy.html index 683e2c07..683e2c07 100755..100644 --- a/templates/blog/site_policy.html +++ b/templates/blog/site_policy.html diff --git a/templates/blog/socialify.html b/templates/blog/socialify.html index f48eba25..f48eba25 100755..100644 --- a/templates/blog/socialify.html +++ b/templates/blog/socialify.html diff --git a/templates/blog/tagged.html b/templates/blog/tagged.html index 192ef2ee..192ef2ee 100755..100644 --- a/templates/blog/tagged.html +++ b/templates/blog/tagged.html diff --git a/templates/blog/tags.html b/templates/blog/tags.html index 96743843..96743843 100755..100644 --- a/templates/blog/tags.html +++ b/templates/blog/tags.html diff --git a/templates/blog_admin/comments.html b/templates/blog_admin/comments.html index 95ae1d96..95ae1d96 100755..100644 --- a/templates/blog_admin/comments.html +++ b/templates/blog_admin/comments.html diff --git a/templates/blog_admin/edit_post.html b/templates/blog_admin/edit_post.html index 6ce7af18..6ce7af18 100755..100644 --- a/templates/blog_admin/edit_post.html +++ b/templates/blog_admin/edit_post.html diff --git a/templates/blog_admin/new_post.html b/templates/blog_admin/new_post.html index c2e911b6..c2e911b6 100755..100644 --- a/templates/blog_admin/new_post.html +++ b/templates/blog_admin/new_post.html diff --git a/templates/blog_admin/partials/category_topbar.html b/templates/blog_admin/partials/category_topbar.html index a52b2bb3..a52b2bb3 100755..100644 --- a/templates/blog_admin/partials/category_topbar.html +++ b/templates/blog_admin/partials/category_topbar.html diff --git a/templates/blog_admin/partials/posts_topbar.html b/templates/blog_admin/partials/posts_topbar.html index b9bad541..b9bad541 100755..100644 --- a/templates/blog_admin/partials/posts_topbar.html +++ b/templates/blog_admin/partials/posts_topbar.html diff --git a/templates/blog_admin/partials/tags_topbar.html b/templates/blog_admin/partials/tags_topbar.html index c4a49ccf..c4a49ccf 100755..100644 --- a/templates/blog_admin/partials/tags_topbar.html +++ b/templates/blog_admin/partials/tags_topbar.html diff --git a/templates/blog_admin/partials/users_topbar.html b/templates/blog_admin/partials/users_topbar.html index a0be6122..a0be6122 100755..100644 --- a/templates/blog_admin/partials/users_topbar.html +++ b/templates/blog_admin/partials/users_topbar.html diff --git a/templates/blog_admin/posts.html b/templates/blog_admin/posts.html index 3e6fad17..3e6fad17 100755..100644 --- a/templates/blog_admin/posts.html +++ b/templates/blog_admin/posts.html diff --git a/templates/dev_status/home.html b/templates/dev_status/home.html index 2b4eaba0..2b4eaba0 100755..100644 --- a/templates/dev_status/home.html +++ b/templates/dev_status/home.html diff --git a/templates/dev_status/repo.html b/templates/dev_status/repo.html index 23230a12..23230a12 100755..100644 --- a/templates/dev_status/repo.html +++ b/templates/dev_status/repo.html diff --git a/templates/en/core/home.html b/templates/en/core/home.html index 5ecb7a2e..5ecb7a2e 100755..100644 --- a/templates/en/core/home.html +++ b/templates/en/core/home.html diff --git a/templates/en/pagoda/home.html b/templates/en/pagoda/home.html index 3a4d7dc9..3a4d7dc9 100755..100644 --- a/templates/en/pagoda/home.html +++ b/templates/en/pagoda/home.html diff --git a/templates/en/pagoda/site_dashboard.html b/templates/en/pagoda/site_dashboard.html index ff8c24d0..ff8c24d0 100755..100644 --- a/templates/en/pagoda/site_dashboard.html +++ b/templates/en/pagoda/site_dashboard.html diff --git a/templates/en/pagoda/site_verification.html b/templates/en/pagoda/site_verification.html index 3944859c..3944859c 100755..100644 --- a/templates/en/pagoda/site_verification.html +++ b/templates/en/pagoda/site_verification.html diff --git a/templates/ja/core/home.html b/templates/ja/core/home.html index 3cd42785..3cd42785 100755..100644 --- a/templates/ja/core/home.html +++ b/templates/ja/core/home.html diff --git a/templates/ja/pagoda/home.html b/templates/ja/pagoda/home.html index f64a1a14..f64a1a14 100755..100644 --- a/templates/ja/pagoda/home.html +++ b/templates/ja/pagoda/home.html diff --git a/templates/ja/pagoda/site_verification.html b/templates/ja/pagoda/site_verification.html index 0e1a3b5a..0e1a3b5a 100755..100644 --- a/templates/ja/pagoda/site_verification.html +++ b/templates/ja/pagoda/site_verification.html diff --git a/templates/partials/_anime_footer.html b/templates/partials/_anime_footer.html index 2ec4b1d1..2ec4b1d1 100755..100644 --- a/templates/partials/_anime_footer.html +++ b/templates/partials/_anime_footer.html diff --git a/templates/partials/_anime_list.html b/templates/partials/_anime_list.html index 1ce3f578..1ce3f578 100755..100644 --- a/templates/partials/_anime_list.html +++ b/templates/partials/_anime_list.html diff --git a/templates/partials/_footer.html b/templates/partials/_footer.html index 73dc174c..73dc174c 100755..100644 --- a/templates/partials/_footer.html +++ b/templates/partials/_footer.html diff --git a/templates/partials/_header.html b/templates/partials/_header.html index 13e2ab6d..13e2ab6d 100755..100644 --- a/templates/partials/_header.html +++ b/templates/partials/_header.html diff --git a/templates/partials/_left_sidebar.html b/templates/partials/_left_sidebar.html index 878fb399..804b80ad 100755..100644 --- a/templates/partials/_left_sidebar.html +++ b/templates/partials/_left_sidebar.html @@ -54,7 +54,14 @@ <div class="navigation-links"> <div class="navigation-title-container"> - <h1 class="navigation-title">{% if request.LANGUAGE_CODE == 'ja' %}ナビゲーション{% else %}Navigation{% endif %}</h1> + {% comment %} {% if request.LANGUAGE_CODE == 'ja' %} + <img src="{% static 'images/core/messages/texts/navigation_ja.png' %}" alt="ナビゲーション" class="navigation-title" /> + {% else %} + <img src="{% static 'images/core/messages/texts/navigation_en.gif' %}" alt="Navigation" class="navigation-title" /> + {% endif %} {% endcomment %} + <h1 class="navigation-title"> + {% if request.LANGUAGE_CODE == 'ja' %}ナビゲーション{% else %}Navigation{% endif %} + </h1> </div> <div class="navigation-items-container"> <div class="navigation-item"> diff --git a/templates/partials/_right_sidebar.html b/templates/partials/_right_sidebar.html index 1c9375cd..1c9375cd 100755..100644 --- a/templates/partials/_right_sidebar.html +++ b/templates/partials/_right_sidebar.html diff --git a/templates/partials/_weblog_list.html b/templates/partials/_weblog_list.html index a9b33462..a9b33462 100755..100644 --- a/templates/partials/_weblog_list.html +++ b/templates/partials/_weblog_list.html diff --git a/templates/shared/administration/manage_storage_buckets_bucket.html b/templates/shared/administration/manage_storage_buckets_bucket.html index 0c6f9268..0c6f9268 100755..100644 --- a/templates/shared/administration/manage_storage_buckets_bucket.html +++ b/templates/shared/administration/manage_storage_buckets_bucket.html diff --git a/templates/shared/administration/manage_storage_buckets_home.html b/templates/shared/administration/manage_storage_buckets_home.html index ceffea44..ceffea44 100755..100644 --- a/templates/shared/administration/manage_storage_buckets_home.html +++ b/templates/shared/administration/manage_storage_buckets_home.html diff --git a/templates/shared/anime/anime.html b/templates/shared/anime/anime.html index 8cacd20a..ddfd2c25 100755..100644 --- a/templates/shared/anime/anime.html +++ b/templates/shared/anime/anime.html @@ -2,306 +2,301 @@ {% load static %} {% block head %} -<link rel="stylesheet" href="{% static 'css/anime/anime.css' %}"> -<link rel="stylesheet" href="{% static 'css/anime/single_anime.css' %}"> -<link rel="stylesheet" href="{% static 'css/anime/video_player.css' %}"> -{% endblock head %} + <link rel="stylesheet" href="{% static 'css/anime/anime.css' %}" /> + <link rel="stylesheet" href="{% static 'css/anime/single_anime.css' %}" /> + <link rel="stylesheet" href="{% static 'css/anime/video_player.css' %}" /> +{% endblock %} {% block content %} -<div class="anime-single"> + <div class="anime-single"> <div class="player-area"> - <div class="video-container"> - <div class="win98-player"> - <div class="win98-title-bar"> - <div class="title-bar-text">{{ anime.title.english|default:anime.title.romaji }}</div> + <div class="video-container"> + <div class="shifoo-video-player"> + <div class="shifoo-video-player-title-bar"> + <div class="title-bar-text">{{ anime.title.english|default:anime.title.romaji }}</div> + </div> + <div class="shifoo-video-player-content"> + {% if user.is_authenticated %} + <div class="retro-buffer"> + <img src="{% static 'images/core/gifs/buffering.gif' %}" alt="Loading..." /> + </div> + <video id="video-player"></video> + <div id="custom-subtitles" class="custom-subtitles"></div> + {% else %} + <div id="video-player" class="unauth-video"> + <div class="unauth-warning"> + <div class="warning-icon"> + <svg viewBox="0 0 32 32"> + <path d="M16,2 L2,28 L30,28 L16,2 Z M16,6 L27,26 L5,26 L16,6 Z" fill="#ffdd00" /> + <path d="M16,11 L16,20 M16,22 L16,24" stroke="#ffdd00" stroke-width="3" stroke-linecap="round" /> + </svg> + </div> + <div class="warning-message"> + <div class="warning-title">Authentication Required</div> + <div class="warning-text">No undeserving lackeys allowed among these parts of the internet. Either register or login to access this content.</div> + </div> + </div> + </div> + {% endif %} + <div class="episode-title">Episode {{ anime.current_episode.number }}. {{ anime.current_episode.title }}</div> + <div class="shifoo-video-player-controls"> + <div class="seek-control"> + <span class="time-current">00:00</span> + <div class="seek-slider-container"> + <input type="range" class="seek-slider" min="0" max="100" value="0" /> + <div class="seek-track"> + <div class="seek-fill"></div> + <div class="seek-buffer"></div> + </div> + <div class="seek-thumb"></div> </div> - <div class="win98-player-content"> - {% if user.is_authenticated %} - <div class="retro-buffer"> - <img src="{% static 'images/core/gifs/buffering.gif' %}" alt="Loading..."> + <span class="time-total">00:00</span> + </div> + <div class="controls-and-volume"> + <div class="control-buttons"> + <button class="shifoo-video-player-btn" id="playBtn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> + <path fill-rule="evenodd" d="M4.5 5.653c0-1.427 1.529-2.33 2.779-1.643l11.54 6.347c1.295.712 1.295 2.573 0 3.286L7.28 19.99c-1.25.687-2.779-.217-2.779-1.643V5.653Z" clip-rule="evenodd" /> + </svg> + </button> + <button class="shifoo-video-player-btn" id="pauseBtn"> + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="shifoo-video-player-icon"> + <path fill-rule="evenodd" d="M6.75 5.25a.75.75 0 0 1 .75-.75H9a.75.75 0 0 1 .75.75v13.5a.75.75 0 0 1-.75.75H7.5a.75.75 0 0 1-.75-.75V5.25Zm7.5 0A.75.75 0 0 1 15 4.5h1.5a.75.75 0 0 1 .75.75v13.5a.75.75 0 0 1-.75.75H15a.75.75 0 0 1-.75-.75V5.25Z" clip-rule="evenodd" /> + </svg> + </button> + <button class="shifoo-video-player-btn" id="stopBtn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> + <path fill-rule="evenodd" d="M4.5 7.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-9Z" clip-rule="evenodd" /> + </svg> + </button> + <button class="shifoo-video-player-btn" id="seekBackBtn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> + <path d="M9.195 18.44c1.25.714 2.805-.189 2.805-1.629v-2.34l6.945 3.968c1.25.715 2.805-.188 2.805-1.628V8.69c0-1.44-1.555-2.343-2.805-1.628L12 11.029v-2.34c0-1.44-1.555-2.343-2.805-1.628l-7.108 4.061c-1.26.72-1.26 2.536 0 3.256l7.108 4.061Z" /> + </svg> + </button> + <button class="shifoo-video-player-btn" id="seekForwardBtn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> + <path d="M5.055 7.06C3.805 6.347 2.25 7.25 2.25 8.69v8.122c0 1.44 1.555 2.343 2.805 1.628L12 14.471v2.34c0 1.44 1.555 2.343 2.805 1.628l7.108-4.061c1.26-.72 1.26-2.536 0-3.256l-7.108-4.061C13.555 6.346 12 7.249 12 8.689v2.34L5.055 7.061Z" /> + </svg> + </button> + <button class="shifoo-video-player-btn" id="fullscreenBtn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15" /> + </svg> + </button> + <div class="quality-control"> + <button class="shifoo-video-player-btn quality-btn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" /> + <path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" /> + </svg> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" /> + </svg>Auto + </button> + <div class="quality-menu"> + <!-- Populated by JS --> </div> - <video id="video-player"></video> - <div id="custom-subtitles" class="custom-subtitles"></div> - {% else %} - <div id="video-player" class="unauth-video"> - <div class="unauth-warning"> - <div class="warning-icon"> - <svg viewBox="0 0 32 32"> - <path d="M16,2 L2,28 L30,28 L16,2 Z M16,6 L27,26 L5,26 L16,6 Z" fill="#ffdd00"/> - <path d="M16,11 L16,20 M16,22 L16,24" stroke="#ffdd00" stroke-width="3" stroke-linecap="round"/> - </svg> - </div> - <div class="warning-message"> - <div class="warning-title">Authentication Required</div> - <div class="warning-text">No undeserving lackeys allowed among these parts of the internet. Either register or login to access this content.</div> - </div> - </div> + </div> + <div class="sub-dub-control"> + <button class="shifoo-video-player-btn sub-dub-btn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" /> + </svg> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" d="M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 1 1 6 0v8.25a3 3 0 0 1-3 3Z" /> + </svg> + {% if request.COOKIES.anime_dub == 'True' %} + Dub + {% else %} + Sub + {% endif %} + </button> + <div class="sub-dub-menu"> + <button onclick="javascript:document.cookie='anime_dub=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/';location.reload();">Sub</button> + <button onclick="javascript:document.cookie='anime_dub=True;path=/';location.reload();">Dub</button> </div> - {% endif %} - <div class="episode-title">Episode {{ anime.current_episode.number }}. {{ anime.current_episode.title }}</div> - <div class="win98-controls"> - <div class="seek-control"> - <span class="time-current">00:00</span> - <div class="seek-slider-container"> - <input type="range" class="seek-slider" min="0" max="100" value="0"> - <div class="seek-track"> - <div class="seek-fill"></div> - <div class="seek-buffer"></div> - </div> - <div class="seek-thumb"></div> - </div> - <span class="time-total">00:00</span> + </div> + </div> + <div class="volume-control"> + <button class="shifoo-video-player-btn" id="muteBtn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" d="M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" /> + </svg> + </button> + <div class="volume-slider-container"> + <input type="range" class="volume-slider" min="0" max="100" value="100" /> + <div class="volume-track"> + <div class="volume-fill"></div> </div> - <div class="controls-and-volume"> - <div class="control-buttons"> - <button class="win98-btn" id="playBtn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> - <path fill-rule="evenodd" d="M4.5 5.653c0-1.427 1.529-2.33 2.779-1.643l11.54 6.347c1.295.712 1.295 2.573 0 3.286L7.28 19.99c-1.25.687-2.779-.217-2.779-1.643V5.653Z" clip-rule="evenodd" /> - </svg> - - </button> - <button class="win98-btn" id="pauseBtn"> - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="win98-icon"> - <path fill-rule="evenodd" d="M6.75 5.25a.75.75 0 0 1 .75-.75H9a.75.75 0 0 1 .75.75v13.5a.75.75 0 0 1-.75.75H7.5a.75.75 0 0 1-.75-.75V5.25Zm7.5 0A.75.75 0 0 1 15 4.5h1.5a.75.75 0 0 1 .75.75v13.5a.75.75 0 0 1-.75.75H15a.75.75 0 0 1-.75-.75V5.25Z" clip-rule="evenodd" /> - </svg> - </button> - <button class="win98-btn" id="stopBtn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> - <path fill-rule="evenodd" d="M4.5 7.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-9Z" clip-rule="evenodd" /> - </svg> - </button> - <button class="win98-btn" id="seekBackBtn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> - <path d="M9.195 18.44c1.25.714 2.805-.189 2.805-1.629v-2.34l6.945 3.968c1.25.715 2.805-.188 2.805-1.628V8.69c0-1.44-1.555-2.343-2.805-1.628L12 11.029v-2.34c0-1.44-1.555-2.343-2.805-1.628l-7.108 4.061c-1.26.72-1.26 2.536 0 3.256l7.108 4.061Z" /> - </svg> - </button> - <button class="win98-btn" id="seekForwardBtn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> - <path d="M5.055 7.06C3.805 6.347 2.25 7.25 2.25 8.69v8.122c0 1.44 1.555 2.343 2.805 1.628L12 14.471v2.34c0 1.44 1.555 2.343 2.805 1.628l7.108-4.061c1.26-.72 1.26-2.536 0-3.256l-7.108-4.061C13.555 6.346 12 7.249 12 8.689v2.34L5.055 7.061Z" /> - </svg> - </button> - <button class="win98-btn" id="fullscreenBtn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> - <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15" /> - </svg> - </button> - <div class="quality-control"> - <button class="win98-btn quality-btn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> - <path stroke-linecap="round" stroke-linejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" /> - <path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" /> - </svg> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> - <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" /> - </svg> - Auto - </button> - <div class="quality-menu"> - <!-- Populated by JS --> - </div> - </div> - <div class="sub-dub-control"> - <button class="win98-btn sub-dub-btn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> - <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" /> - </svg> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> - <path stroke-linecap="round" stroke-linejoin="round" d="M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 1 1 6 0v8.25a3 3 0 0 1-3 3Z" /> - </svg> - {% if request.COOKIES.anime_dub == 'True' %} - Dub - {% else %} - Sub - {% endif %} - </button> - <div class="sub-dub-menu"> - <button onclick="javascript:document.cookie='anime_dub=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/';location.reload();">Sub</button> - <button onclick="javascript:document.cookie='anime_dub=True;path=/';location.reload();">Dub</button> - </div> - </div> - </div> - <div class="volume-control"> - <button class="win98-btn" id="muteBtn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"> - <path stroke-linecap="round" stroke-linejoin="round" d="M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" /> - </svg> - </button> - <div class="volume-slider-container"> - <input type="range" class="volume-slider" min="0" max="100" value="100"> - <div class="volume-track"> - <div class="volume-fill"></div> - </div> - <div class="volume-thumb"></div> - </div> - {% if streaming_data.data.tracks %} - <div class="caption-control"> - <button class="win98-btn" id="ccBtn"> - <svg class="win98-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> - <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" /> - </svg> - English - </button> - <div class="caption-menu"> - <!-- Populated by JS --> - </div> - </div> - {% endif %} + <div class="volume-thumb"></div> + </div> + {% if streaming_data.data.tracks %} + <div class="caption-control"> + <button class="shifoo-video-player-btn" id="ccBtn"> + <svg class="shifoo-video-player-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" /> + </svg>English + </button> + <div class="caption-menu"> + <!-- Populated by JS --> </div> </div> - </div> + {% endif %} </div> </div> + </div> + </div> </div> + </div> </div> <!-- Anime Details Section --> <div class="anime-details"> - <div class="details-grid"> - <div class="info-section"> - <img src="{{ anime.image }}" alt="{{ anime.title.english }}" class="anime-poster"> - <div class="info-list"> - <div class="info-item"> - <span class="label">Status:</span> - <span>{{ anime.status }}</span> - </div> - <div class="info-item"> - <span class="label">Type:</span> - <span>{{ anime.type }}</span> - </div> - <div class="info-item"> - <span class="label">Episodes:</span> - <span>{{ anime.totalEpisodes }}</span> - </div> - {% if anime.duration %} - <div class="info-item"> - <span class="label">Duration:</span> - <span>{{ anime.duration }} min</span> - </div> - {% endif %} - {% if anime.rating %} - <div class="info-item"> - <span class="label">Rating:</span> - <span>★ {{ anime.rating }}%</span> - </div> - {% endif %} - <div class="info-item"> - <span class="label">Studios:</span> - <span>{{ anime.studios|join:", " }}</span> - </div> - </div> + <div class="details-grid"> + <div class="info-section"> + <img src="{{ anime.image }}" alt="{{ anime.title.english }}" class="anime-poster" /> + <div class="info-list"> + <div class="info-item"> + <span class="label">Status:</span> + <span>{{ anime.status }}</span> </div> - - <div class="content-section"> - <div class="episodes-list"> - <div class="episodes-header"> - <h3>Episodes</h3> - <span>{{ anime.totalEpisodes }} Total</span> - </div> - <div class="episodes-scroll" id="episodeList"> - {% for episode in anime.episodes %} - <a href="{% url "anime:anime" anime.id episode.number %}" class="episode-item {% if episode.number == anime.current_episode.number %}active{% endif %}" {% if episode.number == anime.current_episode.number %}id="currentEpisode"{% endif %}> - <div class="episode-preview"> - <img src="{{ episode.image }}" alt="Episode {{ episode.number }}"> - </div> - <div class="episode-text"> - <span class="ep-number">{{ episode.number }}.</span> - <span class="ep-title">{{ episode.title }}</span> - </div> - </a> - {% endfor %} - </div> - </div> - <div class="synopsis"> - <h1 class="anime-title" style="color: {{ anime.color|default:'#8d8dff' }}"> - {{ anime.title.english|default:anime.title.romaji }} - </h1> - <p>{{ anime.description|safe }}</p> - <div class="genres-list"> - <span class="genres-label">Genres:</span> - {% for genre in anime.genres %} - <a href="{% url 'anime:search' %}?genre={{ genre }}" class="genre-link">{{ genre }}</a> - {% endfor %} - </div> - </div> + <div class="info-item"> + <span class="label">Type:</span> + <span>{{ anime.type }}</span> + </div> + <div class="info-item"> + <span class="label">Episodes:</span> + <span>{{ anime.totalEpisodes }}</span> </div> + {% if anime.duration %} + <div class="info-item"> + <span class="label">Duration:</span> + <span>{{ anime.duration }} min</span> + </div> + {% endif %} + {% if anime.rating %} + <div class="info-item"> + <span class="label">Rating:</span> + <span>★ {{ anime.rating }}%</span> + </div> + {% endif %} + <div class="info-item"> + <span class="label">Studios:</span> + <span>{{ anime.studios|join:', ' }}</span> + </div> + </div> </div> - <!-- Characters Section --> - <div class="characters-section"> - <h3>Characters</h3> - <div class="characters-grid"> - {% for character in anime.characters %} - <div class="character-card"> - <div class="character-image"> - <img src="{{ character.image }}" alt="{{ character.name.full }}"> - </div> - <div class="character-info"> - <span class="character-name">{{ character.name.full }}</span> - <span class="character-role">{{ character.role }}</span> - </div> - </div> - {% endfor %} + <div class="content-section"> + <div class="episodes-list"> + <div class="episodes-header"> + <h3>Episodes</h3> + <span>{{ anime.totalEpisodes }} Total</span> + </div> + <div class="episodes-scroll" id="episodeList"> + {% for episode in anime.episodes %} + <a href="{% url 'anime:anime' anime.id episode.number %}" class="episode-item {% if episode.number == anime.current_episode.number %}active{% endif %}" id="{% if episode.number == anime.current_episode.number %}currentEpisode{% endif %}"> + <div class="episode-preview"> + <img src="{{ episode.image }}" alt="Episode {{ episode.number }}" /> + </div> + <div class="episode-text"> + <span class="ep-number">{{ episode.number }}.</span> + <span class="ep-title">{{ episode.title }}</span> + </div> + </a> + {% endfor %} + </div> + </div> + <div class="synopsis"> + <h1 class="anime-title" style="color: {{ anime.color|default:'#8d8dff' }}">{{ anime.title.english|default:anime.title.romaji }}</h1> + <p>{{ anime.description|safe }}</p> + <div class="genres-list"> + <span class="genres-label">Genres:</span> + {% for genre in anime.genres %} + <a href="{% url 'anime:search' %}?genre={{ genre }}" class="genre-link">{{ genre }}</a> + {% endfor %} </div> + </div> </div> + </div> - <!-- Recommendations Section --> - <div class="recommendations-section"> - {% include 'partials/_anime_list.html' with anime_list=anime.relations title="Related Anime" %} - </div> - <div class="recommendations-section"> - {% include 'partials/_anime_list.html' with anime_list=anime.recommendations title="Recommended Anime" %} + <!-- Characters Section --> + <div class="characters-section"> + <h3>Characters</h3> + <div class="characters-grid"> + {% for character in anime.characters %} + <div class="character-card"> + <div class="character-image"> + <img src="{{ character.image }}" alt="{{ character.name.full }}" /> + </div> + <div class="character-info"> + <span class="character-name">{{ character.name.full }}</span> + <span class="character-role">{{ character.role }}</span> + </div> + </div> + {% endfor %} </div> + </div> + + <!-- Recommendations Section --> + <div class="recommendations-section"> + {% include 'partials/_anime_list.html' with anime_list=anime.relations title='Related Anime' %} + </div> + <div class="recommendations-section"> + {% include 'partials/_anime_list.html' with anime_list=anime.recommendations title='Recommended Anime' %} + </div> </div> -</div> -{% endblock content %} + </div> +{% endblock %} {% block scripts %} -{% if user.is_authenticated %} -<script src="{% static 'js/libs/hls.js' %}"></script> -<script src="{% static 'js/libs/videoPlayer.js' %}"></script> -{{ streaming_data.data.tracks|json_script:"tracks-data" }} -<script> - document.addEventListener('DOMContentLoaded', () => { - const videoStreamingURL = `/services/stream/anime/?url=${encodeURIComponent('{{ streaming_data.data.sources.url }}')}`; - var tracks = []; + {% if user.is_authenticated %} + <script src="{% static 'js/libs/hls.js' %}"></script> + <script src="{% static 'js/libs/videoPlayer.js' %}"></script> + {{ streaming_data.data.tracks|json_script:'tracks-data' }} + <script> + document.addEventListener('DOMContentLoaded', () => { + const videoStreamingURL = `/services/stream/anime/?url=${encodeURIComponent('{{ streaming_data.data.sources.url }}')}` + var tracks = [] try { - tracks = JSON.parse(document.getElementById('tracks-data').textContent) - .filter(track => track.kind === 'captions') - .map(track => ({ - ...track, - file: `/services/stream/anime/?url=${encodeURIComponent(track.file)}` - })); + tracks = JSON.parse(document.getElementById('tracks-data').textContent) + .filter((track) => track.kind === 'captions') + .map((track) => ({ + ...track, + file: `/services/stream/anime/?url=${encodeURIComponent(track.file)}` + })) } catch (error) {} - + if (tracks.length === 0) { - try { - document.querySelector('.caption-control').style.display = 'none'; - } catch (error) {} + try { + document.querySelector('.caption-control').style.display = 'none' + } catch (error) {} } - - let player; + + let player if (videoStreamingURL !== '/services/stream/anime/?url=') { - player = new VideoPlayer({ - source: { - url: videoStreamingURL, - type: 'hls', - tracks: tracks - } - }); + player = new VideoPlayer({ + source: { + url: videoStreamingURL, + type: 'hls', + tracks: tracks + } + }) } else { - player = new VideoPlayer({ - source: { - url: '', - type: 'video', - tracks: tracks - } - }); + player = new VideoPlayer({ + source: { + url: '', + type: 'video', + tracks: tracks + } + }) } - - const currentEpisode = document.getElementById('currentEpisode'); + + const currentEpisode = document.getElementById('currentEpisode') if (currentEpisode) { - const episodeList = document.getElementById('episodeList'); - episodeList.scrollTop = currentEpisode.offsetTop - episodeList.offsetTop - 10; + const episodeList = document.getElementById('episodeList') + episodeList.scrollTop = currentEpisode.offsetTop - episodeList.offsetTop - 10 } - }); -</script> -{% endif %} -{% endblock scripts %} + }) + </script> + {% endif %} +{% endblock %} diff --git a/templates/shared/anime/home.html b/templates/shared/anime/home.html index 17741ed7..17741ed7 100755..100644 --- a/templates/shared/anime/home.html +++ b/templates/shared/anime/home.html diff --git a/templates/shared/anime/search.html b/templates/shared/anime/search.html index 7bd7ffcf..7bd7ffcf 100755..100644 --- a/templates/shared/anime/search.html +++ b/templates/shared/anime/search.html diff --git a/templates/shared/core/base.html b/templates/shared/core/base.html index a91d4800..1e4ffdfa 100755..100644 --- a/templates/shared/core/base.html +++ b/templates/shared/core/base.html @@ -14,7 +14,9 @@ <meta property="og:image" content="{{ request.meta.image }}" /> <meta property="og:url" content="{{ request.meta.url }}" /> <meta property="robots" content="{{ request.meta.robots }}" /> - {% block title %}{% endblock title %} + {% block title %} + + {% endblock %} <link rel="apple-touch-icon" sizes="180x180" href="{% static 'images/favicons/apple-touch-icon.png' %}" /> <link rel="icon" type="image/png" sizes="32x32" href="{% static 'images/favicons/favicon-32x32.png' %}" /> <link rel="icon" type="image/png" sizes="16x16" href="{% static 'images/favicons/favicon-16x16.png' %}" /> @@ -28,11 +30,12 @@ <video autoplay muted loop id="video-background" preload="auto"> <source src="{% static 'videos/background_.mp4' %}" type="video/mp4" /> </video> + <img src="{% static 'images/core/img/pngegg.png' %}" id="spaceship" /> <div id="video-overlay"></div> <div id="body-wrapper"> {% include 'partials/_header.html' %} <div id="content-wrapper"> - <div id="left-sidebar" {% if user.is_authenticated %}style="border-top-left-radius: 0px;"{% endif %}> + <div id="left-sidebar" style="{% if user.is_authenticated %}border-top-left-radius: 0px;{% endif %}"> {% include 'partials/_left_sidebar.html' %} </div> <div id="main-content"> @@ -51,10 +54,48 @@ <div id="scanlines"></div> </body> {% block scripts %} - + {% endblock %} <script src="{% static 'js/libs/pamphlet.js' %}"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/MotionPathPlugin.min.js"></script> <script type="text/javascript"> - new Pamphlet(); + new Pamphlet() + const animationPlayed = sessionStorage.getItem('animationPlayed') + document.addEventListener('DOMContentLoaded', function () { + // Move all calculations inside the DOMContentLoaded event + const spaceship = document.getElementById('spaceship') + const leftSidebar = document.getElementById('left-sidebar') + const sidebarRect = leftSidebar.getBoundingClientRect() + const sidebarLeft = sidebarRect.left + const sidebarTop = sidebarRect.top + const initialX = Math.min(200, sidebarLeft - 100) + + if (animationPlayed) { + // Set final position of spaceship + gsap.set(spaceship, { x: sidebarLeft + 100, y: -200, rotation: -10 }) + return + } + + gsap.registerPlugin(MotionPathPlugin) + + gsap.to(spaceship, { + duration: 120, + motionPath: { + path: [ + { x: initialX, y: -50 }, + { x: sidebarLeft, y: -100 }, + { x: sidebarLeft + 100, y: -200 } + ], + curviness: 1.5 + }, + ease: 'power2.inOut', + rotation: -10, + onComplete: () => { + // Set animation played flag + sessionStorage.setItem('animationPlayed', true) + } + }) + }) </script> </html> diff --git a/templates/shared/journals/single.html b/templates/shared/journals/single.html index 045c33df..045c33df 100755..100644 --- a/templates/shared/journals/single.html +++ b/templates/shared/journals/single.html diff --git a/templates/shared/my/journals.html b/templates/shared/my/journals.html index 846d9cad..846d9cad 100755..100644 --- a/templates/shared/my/journals.html +++ b/templates/shared/my/journals.html diff --git a/templates/userpages/home.html b/templates/userpages/home.html index 68a13b2c..68a13b2c 100755..100644 --- a/templates/userpages/home.html +++ b/templates/userpages/home.html diff --git a/templates/userpages/partials/base.html b/templates/userpages/partials/base.html index d6dd452a..d6dd452a 100755..100644 --- a/templates/userpages/partials/base.html +++ b/templates/userpages/partials/base.html diff --git a/templates/userpages/partials/navbar.html b/templates/userpages/partials/navbar.html index e69de29b..e69de29b 100755..100644 --- a/templates/userpages/partials/navbar.html +++ b/templates/userpages/partials/navbar.html |
