67 lines
3.0 KiB
Plaintext
Executable File
67 lines
3.0 KiB
Plaintext
Executable File
extends includes/layout
|
|
|
|
include includes/video-list-item
|
|
include includes/subscribe-button
|
|
include includes/toasts
|
|
|
|
block head
|
|
title= `${data.author} - EirTube`
|
|
+toast_js()
|
|
script(type="module" src=getStaticURL("html", "/static/js/channel.js"))
|
|
- if (settings.dearrow > 0 && settings.dearrow_preload == 0)
|
|
script const dearrow_thumbnail_instance = "!{settings.dearrow_thumbnail_instance}"
|
|
script(video-class="channel-video" src=getStaticURL("html", "/static/js/dearrow-load.js"))
|
|
|
|
block content
|
|
main.channel-page
|
|
- const banner = data.authorBanners.slice(-1)[0]
|
|
if banner
|
|
.banner
|
|
img(src=banner.url width=banner.width height=banner.height alt="").banner-image
|
|
|
|
.channel-data
|
|
.info
|
|
- const thumbnail = data.authorThumbnails.slice(-1)[0]
|
|
if thumbnail
|
|
.logo
|
|
img(src=thumbnail.url width=thumbnail.width height=thumbnail.height alt="").thumbnail-image
|
|
.about
|
|
h1.name= data.author
|
|
if data.autoGenerated
|
|
label.autogenerated Auto-generated by YouTube
|
|
.about-inner
|
|
i= data.second__subCountText
|
|
i= data.videoCountText
|
|
i= data.second__totalViewText
|
|
i= `Joined ${new Date(data.joined * 1000).toLocaleDateString('en-us', { year:"numeric", month:"short", day:"numeric"}) }`
|
|
+subscribe_button(data.authorId, subscribed, `/channel/${data.authorId}`).subscribe-button.base-border-look
|
|
.description!= data.descriptionHtml
|
|
|
|
.channel-tabs
|
|
.channel-tabs-header
|
|
each tab in data.tabs
|
|
- const parsedName = (tab == "home" ? "" : tab)
|
|
a(href=`/channel/${data.authorId}/${parsedName}` class={ selected: (parsedName == subpage || (parsedName == "" && !subpage)), header: true })= (tab == "home" ? "latest" : tab)
|
|
.channel-tabs-inner
|
|
if !subpage || (["latest", "videos", "shorts", "streams", "playlists"]).includes(subpage)
|
|
if data.latestVideos.length > 0 && subpage
|
|
.video-sort-header
|
|
.video-sort-padding
|
|
- const sortModes = (subpage == "playlists" ? ["newest", "last_added"] : ["newest", "oldest", "popular"])
|
|
each s in sortModes
|
|
a(href=`/channel/${data.authorId}/${subpage || "videos"}?sort_by=${s}` class={ "selected": url.searchParams.get("sort_by") == s || (!url.searchParams.get("sort_by") && s == sortModes[0]), "video-sort-mode": true })= s.replace("_", " ")
|
|
.videos
|
|
each video in data.latestVideos
|
|
+video_list_item("channel-video", video, { settings: settings })
|
|
if data.continuation
|
|
.continuation-btn.base-border-look
|
|
a(href=`/channel/${data.authorId}/${subpage}?continuation=${data.continuation}${url.searchParams.get("sort_by") ? `&sort_by=${url.searchParams.get("sort_by")}` : ""}`) More results
|
|
else if data.latestVideos.length == 0
|
|
.no-videos No results
|
|
else
|
|
p TODO
|
|
|
|
#toast-container
|
|
each toast in toasts
|
|
+toast(toast.color, toast.icon, toast.text)
|