+ watch in retro theme ;3

merge-requests/6/head
Dominique Liberda 2023-01-18 03:53:06 +01:00
parent 793229856a
commit fe32ddf036
17 changed files with 559 additions and 2 deletions

View File

@ -0,0 +1,5 @@
<h1>{{.subscribe}}</h1>
{{.err}}
{{start _videos}}
<a href='/watch?v={{.id}}'><img src='http://i.ytimg.com/vi/{{.id}}/mqdefault.jpg'><br>{{.title}}</a><br>
{{end _videos}}

View File

@ -0,0 +1,4 @@
<a href='/watch?v=${.id}'>
<img src='https://i.ytimg.com/vi/${.id}/mqdefault.jpg'><br>${.title}
</a> | ${.runtime} seconds | ${.views} views<br>
Uploaded by <a href='/channel/${.channel_id}'>${.channel}</a><br>

View File

@ -0,0 +1,4 @@
<form action='/results'>
<input name='search_query' type='text' value='{{.query_nice}}'>
<input type='submit' value='Search'>
</form>

View File

@ -0,0 +1,2 @@
<a href='./'>&lt;--- back to main</a><br><h1>Your favourites</h1>
{{.fav}}

View File

@ -0,0 +1 @@
{{.feed}}

View File

@ -0,0 +1,4 @@
<h1>All user's favourites:</h1>
<div style='display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));'>
{{.favourites}}
</div>

View File

@ -0,0 +1,9 @@
<h1>Log in...</h1>
<form method='post'>
<label for='login'>Login:</label>
<input type='text' name='login'><br>
<label for='password'>Password:</label>
<input type='password' name='password'><br>
<input type='submit' value='Login'>
</form>
{{.reason}}

View File

@ -0,0 +1 @@
{{.playlist}}

View File

@ -0,0 +1,10 @@
<h1>Register</h1>
<form method='post'>
<label for='login'>Login:</label>
<input type='text' name='login'><br>
<label for='password'>Password:</label>
<input type='password' name='password'><br>
<input type='submit' value='Register'>
</form>
(please make sure that you're connecting over SSL)<br>
{{.reason}}

View File

@ -0,0 +1,8 @@
{{start _results}}
<a href='/watch?v={{.id}}'>
<img src='https://i.ytimg.com/vi/{{.id}}/mqdefault.jpg'><br>{{.title}}</a>
| {{.runtime}} seconds | {{.views}} views<br>
Uploaded by <a href='/channel/{{.channel_id}}'>{{.channel}}</a><br>
{{end _results}}

View File

@ -0,0 +1,2 @@
<a href='./'>&lt;--- back to main</a><br><h1>Channels you subscribe to</h1>
{{.subscribe}}

View File

@ -0,0 +1,455 @@
<!DOCTYPE html>
<html lang="en" data-cast-api-enabled="true">
<head>
<meta charset="utf-8">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="stylesheet" type="text/css" href="//f.sakamoto.pl/banner-styles.css" />
<link rel="stylesheet" type="text/css" href="//f.sakamoto.pl/iconochive.css" />
<link id="css-2941347046" class="www-core" rel="stylesheet" href="//f.sakamoto.pl/www-core.css" data-loaded="true">
<style class="html5-viewport-sheet" disabled="true">
@-o-viewport { width: device-width; }
@-moz-viewport { width: device-width; }
@-ms-viewport { width: device-width; }
@-webkit-viewport { width: device-width; }
@viewport { width: device-width; }
</style>
</head>
<body dir="ltr" class=" ltr site-center-aligned site-as-giant-card appbar-hidden not-exp-new-metadata-style hitchhiker-enabled guide-enabled guide-collapsed sidebar-expanded delayed-frame-styles-not-in " id="body">
{{@header}}
<div id="page-container">
<div id="page" class=" watch clearfix">
<div id="guide" class="yt-scrollbar">
<div id="appbar-guide-menu" class="appbar-menu appbar-guide-menu-layout appbar-guide-clickable-ancestor">
<div id="guide-container">
<div class="guide-module-content guide-module-loading">
<p class="yt-spinner">
<img class="yt-spinner-img" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Loading icon" title="">
<span class="yt-spinner-message">
Loading…
</span>
</p>
</div>
</div>
</div>
</div>
<div id="alerts" class="content-alignment"></div>
<div id="header"></div>
<div id="player" class=" watch-small watch-non-stage-mode">
<!--
<div id="playlist" class="playlist"></div>
<div id="player-unavailable" class="hid player-width player-height player-unavailable">
<img class="icon meh" src=s://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" data-icon="//web.archive.org/web/20140331181149/http://s.ytimg.com/yts/img/meh7-vflGevej7.png" alt="">
<div class="content">
<h1 id="unavailable-message" class="message">
This video is unavailable.
</h1>
<div id="unavailable-submessage" class="submessage"></div>
</div>
</div>
<div id="player-api" class="player-width player-height off-screen-target player-api"></div>
<script>if (window.ytcsi) {window.ytcsi.tick("bf", null, '');}</script>
<div id="html5-template" class="html5-video-player" style="display: none;" tabindex="-1">
<div id="html5-player-messages" style="display:none">
<!--
<div id="YTP_STILL_THERE">Are you still there? If so, please click the button below to continue watching the playlist.</div>
<div id="YTP_DISMISS">OK</div>
<div id="HTML5_DEFAULT_FALLBACK">This video is currently unavailable.</div>
<div id="HTML5_NO_AVAILABLE_FORMATS_FALLBACK">Your browser does not currently recognize any of the video formats available.<br><a href="/html5">Click here to visit our frequently asked questions about HTML5 video.</a></div>
<div id="FLASH_FALLBACK">The Adobe Flash Player is required for video playback. <br> <a href="http://get.adobe.com/flashplayer/">Get the latest Flash Player</a></div>
<div id="DEVICE_FALLBACK">Sorry, this video is not available on this device.</div>
<div id="LEARN_MORE"><div class="error-help-link"><a href="http://support.google.com/youtube/?p=player_error1" target="_blank">Learn more</a></div></div>
<div id="YTP_RESET">Reset</div>
<div id="YTP_VIDEOS">{"case1": "1 video", "case0": "No videos", "other": "# videos"}</div>
<div id="YTP_BUTTON_STOP">Stop live playback</div>
<div id="YTP_BUTTON_LIKE">Like</div>
<div id="YTP_BUTTON_DISLIKE">Dislike</div>
<div id="YTP_BUTTON_SHARE">Share</div>
<div id="YTP_BUTTON_INFO">More info</div>
<div id="HTML5_VOLUME_SETTING">volume</div>
<div id="HTML5_VOLUME_MUTED">muted</div>
<div id="HTML5_VOLUME_MUTE">mute</div>
<div id="HTML5_VOLUME_UNMUTE">unmute</div>
<div id="HTML5_CONTROL_TOGGLE">toggle</div>
<div id="YTP_QUALITY_HIGHRES">2160p <sup>4K</sup></div>
<div id="YTP_QUALITY_HD1440">1440p <sup>HD</sup></div>
<div id="YTP_QUALITY_HD1080">1080p <sup>HD</sup></div>
<div id="YTP_QUALITY_HD720">720p <sup>HD</sup></div>
<div id="YTP_QUALITY_LARGE">480p</div>
<div id="YTP_QUALITY_MEDIUM">360p</div>
<div id="YTP_QUALITY_SMALL">240p</div>
<div id="YTP_QUALITY_TINY">144p</div>
<div id="YTP_QUALITY_AUTO">Auto</div>
<div id="YTP_QUALITY_AUTO_WITH_QUALITY">Auto ($video_quality)</div>
<div id="YTP_SAMPLE_SUBTITLES">Captions look like this</div>
<div id="YTP_CONTEXT_MENU_LINK">About the HTML5 player</div>
<div id="YTP_AD_RESUME_MESSAGE">Your video will resume after the following ad.</div>
<div id="HTML5_SUBS_ASR">automatic captions</div>
<div id="VISIT_ADVERTISERS_SITE">Visit advertiser's site</div>
<div id="YTP_TRANSLATE_CAPTIONS">Translate Captions</div>
<div id="YTP_SUBTITLES_FONT_FAMILY">Font family</div>
<div id="YTP_SUBTITLES_FONT_COLOR">Font color</div>
<div id="YTP_SUBTITLES_FONT_SIZE">Font size</div>
<div id="YTP_SUBTITLES_BACKGROUND_COLOR">Background color</div>
<div id="YTP_SUBTITLES_BACKGROUND_OPACITY">Background opacity</div>
<div id="YTP_SUBTITLES_WINDOW_COLOR">Window color</div>
<div id="YTP_SUBTITLES_WINDOW_OPACITY">Window opacity</div>
<div id="YTP_SUBTITLES_CHAR_EDGE_STYLE">Character edge style</div>
<div id="YTP_SUBTITLES_TEXT_OPACITY">Text opacity</div>
<div id="YTP_SUBTITLES_FONT_FAMILY_MONO_SERIF">Monospaced Serif</div>
<div id="YTP_SUBTITLES_FONT_FAMILY_PROP_SERIF">Proportional Serif</div>
<div id="YTP_SUBTITLES_FONT_FAMILY_MONO_SANS">Monospaced Sans-Serif</div>
<div id="YTP_SUBTITLES_FONT_FAMILY_PROP_SANS">Proportional Sans-Serif</div>
<div id="YTP_SUBTITLES_FONT_FAMILY_CASUAL">Casual</div>
<div id="YTP_SUBTITLES_FONT_FAMILY_CURSIVE">Cursive</div>
<div id="YTP_SUBTITLES_FONT_FAMILY_SMALL_CAPS">Small Capitals</div>
<div id="YTP_SUBTITLES_CHAR_EDGE_STYLE_NONE">None</div>
<div id="YTP_SUBTITLES_CHAR_EDGE_STYLE_DROP_SHADOW">Drop Shadow</div>
<div id="YTP_SUBTITLES_CHAR_EDGE_STYLE_RAISED">Raised</div>
<div id="YTP_SUBTITLES_CHAR_EDGE_STYLE_DEPRESSED">Depressed</div>
<div id="YTP_SUBTITLES_CHAR_EDGE_STYLE_UNIFORM">Uniform</div>
<div id="YTP_SUBTITLES_COLOR_WHITE">White</div>
<div id="YTP_SUBTITLES_COLOR_YELLOW">Yellow</div>
<div id="YTP_SUBTITLES_COLOR_GREEN">Green</div>
<div id="YTP_SUBTITLES_COLOR_CYAN">Cyan</div>
<div id="YTP_SUBTITLES_COLOR_BLUE">Blue</div>
<div id="YTP_SUBTITLES_COLOR_MAGENTA">Magenta</div>
<div id="YTP_SUBTITLES_COLOR_RED">Red</div>
<div id="YTP_SUBTITLES_COLOR_BLACK">Black</div>
<div id="YTP_SUBTITLES_TRANSLATE_DIALOG_TITLE">Translate…</div>
<div id="FRESCA_STARTING_SOON_MESSAGE">Starting soon…</div>
<div id="FRESCA_COMPLETE_MESSAGE">Thanks for watching!</div>
<div id="FRESCA_STAND_BY_MESSAGE">Please stand by.</div>
<div id="YPC_CLICKWRAP_HEADER">Would you like to start this rental?</div>
<div id="YPC_CLICKWRAP_BUTTON">Start rental period</div>
<div id="ERROR_CAST_SESSION_DEVICE_MISMATCHED">The device in the cast session doesn't match the requested one.</div>
<div id="ERROR_CAST_SESSION_VIDEO_MISMATCHED">The video in the cast session doesn't match the requested one.</div>
<div id="ERROR_CAST_TOKEN_EXPIRED">Cast session was expired. Please refresh.</div>
<div id="ERROR_CAST_TOKEN_FAILED">Cast session not available. Please refresh or try again later.</div>
<div id="ERROR_CAST_TOKEN_MALFORMED">Invalid cast session. Please refresh or try again later.</div>
<div id="ERROR_GEO_FAILURE">This video isn't available in your country.</div>
<div id="ERROR_INVALID_DRM_MESSAGE">The DRM system specific message is invalid.</div>
<div id="ERROR_RENTAL_EXPIRED">This video's rental has expired.</div>
<div id="ERROR_RETRYABLE_ERROR">There was a temporary server error. Please try again later.</div>
<div id="ERROR_SERVER_ERROR">There was an internal server error. Please try again later.</div>
<div id="ERROR_STREAMING_NOT_ALLOWED">Playback not allowed because this video is pinned on another device.</div>
<div id="ERROR_UNSUPPORTED_DEVICE">Playback isn't supported on this device.</div>
<div id="ERROR_VIDEO_FORBIDDEN">Access to this video is forbidden.</div>
<div id="REMOTE_CONNECTED_STATUS">Playing on <span class="ytp-mdx-receiver"></span>
</div>
<div id="REMOTE_CONNECTING_STATUS">Connecting to <span class="ytp-mdx-receiver"></span>
</div>
<div id="REMOTE_ERROR_STATUS">Error on <span class="ytp-mdx-receiver"></span>
</div>
<div id="REMOTE_PLAYER_ERROR">This video is not available for remote playback.</div>
<div id="REMOTE_PLAY_NOW">Play Now</div>
<div id="REMOTE_TV_QUEUE">TV Queue</div>
<div id="REMOTE_PLAYER_RECONNECT_TIME">Please check your Internet connection. Retrying in __formatted_time__…</div>
<div id="REMOTE_PLAYER_RECONNECT_BUTTON">Reconnect</div>
<div id="YTP_THREED_WARNING_DIALOG_TITLE">No HTML5 3D hardware detected</div>
<div id="YTP_THREED_WARNING_DIALOG_MESSAGE">Get <a href="//support.google.com/youtube/bin/answer.py?answer=1229982&amp;hl=en">help setting up HTML5 3D</a>, or change 3D viewing modes.</div>
<div id="YTP_THREED_WARNING_DIALOG_CHANGE_MODE">Change 3D viewing mode</div>
- ->
</div>
</div>
<div id="playlist-tray" class="playlist-tray"></div>
<div class="clear"></div>-->
<style>
#movie_player {
width: 640px !important;
height: 390px !important;
}
</style>
{{@player}}
</div>
<div id="content" class=" content-alignment yt-card "> <div id="watch7-container" class=" watch-non-stage-mode ">
<div id="watch7-main-container">
<div id="watch7-main" class="clearfix">
<div id="watch7-content" class="watch-content" itemscope itemid="" itemtype="http://schema.org/VideoObject">
<div class="yt-uix-button-panel">
<div id="watch7-headline" class="clearfix yt-uix-expander yt-uix-expander-collapsed">
<h1 id="watch-headline-title" class="yt">
<span id="eow-title" class="watch-title yt-uix-expander-head" dir="ltr" title="TITLE">
{{.title}}
</span>
</h1>
</div>
<div id="watch7-user-header" class="spf-link">
<!-- avatar kanału, nie ma w haruhi-dl -j -->
<a href="/channel/{{.channel_id}}" class="yt-user-photo yt-uix-sessionlink"> <span class="video-thumb yt-thumb yt-thumb-48 g-hovercard">
<span class="yt-thumb-square">
<span class="yt-thumb-clip">
<img alt="RickAstleyVEVO" src="http://web.archive.org/web/20140331181149im_/https://yt3.ggpht.com/-CGlBu6kDEi8/AAAAAAAAAAI/AAAAAAAAAAA/Pi679mvyyyU/s88-c-k-no/photo.jpg" width="48" height="48">
<span class="vertical-align"></span>
</span>
</span>
</span>
</a>
<!-- /avatar -->
<a href="/channel/{{.channel_id}}" class="g-hovercard yt-uix-sessionlink yt-user-name " dir="ltr" data-name="watch">
{{.uploader}}
</a><span class="yt-user-separator">&middot;</span><!-- liczba filmów, nie ma w haruhi-dl -j --><a class="yt-uix-sessionlink yt-user-videos" href="/channel/{{.channel_id}}">
N videos
</a><!-- /filmy -->
<br>
<span id="watch7-subscription-container"><span class=" yt-uix-button-subscription-container"><button onclick=";return false;" aria-busy="false" aria-live="polite" type="button" class="yt-uix-subscription-button yt-can-buffer yt-uix-button yt-uix-button-subscribe-branded yt-uix-button-size-default yt-uix-button-has-icon" aria-role="button" data-style-type="branded" data-href="https://accounts.google.com/ServiceLogin?hl=en&amp;continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26continue_action%3DQUFFLUhqa3lPV1d5aTNwR3RsY05QUXBubU1jODN2cWVId3xBQ3Jtc0tsYjRQaE5abVRoVWY4VTdNS0Q4dVhncnM3a2hoMkJ6SFZ2YkVjTU0xakhoU2pPblJHTGpzMTRKdUpPS215c1YyZVBtTHYtRmtmei1xWDBYVE1FRTZsNmhNNEphODZBa19idURuQ3ZvRXRRa21FYmY0elBIOHJjWldoTEFpN08yekl0TmVaT1diTThuQngtdlAxQkE1VVJSNHlQYVZmUWxIWlB1WEx0Z183TFlrMktWeEpwZTVueTBSNVlfVjNFMFlWTUV3SEQ%253D%26feature%3Dsubscribe%26hl%3Den%26next%3D%252Fchannel%252FUC38IQsAvIsxxjztdMZQtwHA&amp;passive=true&amp;service=youtube&amp;uilel=3" role="button"><span class="yt-uix-button-icon-wrapper"><img class="yt-uix-button-icon yt-uix-button-icon-subscribe" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="" title=""></span><span class="yt-uix-button-content"><span class="subscribe-label" aria-label="Subscribe">Subscribe</span><span class="subscribed-label" aria-label="Unsubscribe">Subscribed</span><span class="unsubscribe-label" aria-label="Unsubscribe">Unsubscribe</span> </span></button><span class="yt-subscription-button-subscriber-count-branded-horizontal" title="SUB_COUNT">SUB_COUNT</span> <span class="yt-subscription-button-disabled-mask" title=""></span>
</span></span><div id="watch7-views-info"><span class="watch-view-count">{{.view_count}} views</span>
<div class="video-extras-sparkbars">
<div class="video-extras-sparkbar-likes" style="width: 94.0075917929%"></div>
<div class="video-extras-sparkbar-dislikes" style="width: 5.99240820712%"></div>
</div>
<span class="video-extras-likes-dislikes">
<img class="icon-watch-stats-like" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Like">
<span class="likes-count">{{.like_count}}</span>
&nbsp;&nbsp;&nbsp;
<img class="icon-watch-stats-dislike" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Dislike">
<span class="dislikes-count">DOWNDOOTS</span>
</span>
</div></div>
<div id="watch7-action-buttons" class="clearfix">
<!--
<div id="watch7-secondary-actions" class="yt-uix-button-group" data-button-toggle-group="required">
<span>
<button onclick=";return false;" title="" type="button" class="action-panel-trigger yt-uix-button-toggled yt-uix-button yt-uix-button-text yt-uix-button-size-default yt-uix-tooltip" data-button-toggle="true" data-trigger-for="action-panel-details" role="button"><span class="yt-uix-button-content">About </span></button>
</span>
<span>
<button onclick=";return false;" title="" type="button" class="action-panel-trigger yt-uix-button yt-uix-button-text yt-uix-button-size-default yt-uix-tooltip" data-button-toggle="true" data-trigger-for="action-panel-share" role="button"><span class="yt-uix-button-content">Share </span></button>
</span>
<span class="yt-uix-clickcard">
<button onclick=";return false;" title="" type="button" class="action-panel-trigger yt-uix-clickcard-target yt-uix-button yt-uix-button-text yt-uix-button-size-default yt-uix-tooltip" data-orientation="vertical" data-position="bottomleft" data-trigger-for="action-panel-none" data-button-toggle="true" data-upsell="playlist" role="button"><span class="yt-uix-button-content">Add to </span></button>
<div class="watch7-hovercard yt-uix-clickcard-content">
<h3 class="watch7-hovercard-header">Sign in to BashTube</h3>
<div class="watch7-hovercard-message">
Sign in with your BashTube Account (BashTube) to add <span class="yt-user-name g-hovercard" dir="ltr">UPLOADER</span>'s video to your playlist.
</div>
<ul class="watch7-hovercard-icon-strip clearfix">
<li class="watch7-hovercard-icon">
<div class="watch7-hovercard-youtube-icon"></div>
</li>
<li class="watch7-hovercard-icon">
<div class="watch7-hovercard-gplus-icon"></div>
</li>
<li class="watch7-hovercard-icon">
<div class="watch7-hovercard-gmail-icon"></div>
</li>
<li class="watch7-hovercard-icon">
<div class="watch7-hovercard-picasa-icon"></div>
</li>
<li class="watch7-hovercard-icon">
<div class="watch7-hovercard-chrome-icon"></div>
</li>
</ul>
<div class="watch7-hovercard-account-line">
<a href="http://web.archive.org/web/20140331181149/https://accounts.google.com/ServiceLogin?hl=en&amp;continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26feature%3D__FEATURE__%26hl%3Den%26next%3D%252Fwatch%253Fv%253DdQw4w9WgXcQ&amp;passive=true&amp;service=youtube&amp;uilel=3" class="yt-uix-button yt-uix-sessionlink yt-uix-button-primary yt-uix-button-size-default"><span class="yt-uix-button-content">Sign in </span></a>
</div>
</div>
</span>
<span>
<button onclick=";return false;" title="Statistics" type="button" class="action-panel-trigger yt-uix-button yt-uix-button-text yt-uix-button-size-default yt-uix-button-has-icon yt-uix-tooltip yt-uix-button-empty" data-button-toggle="true" data-trigger-for="action-panel-stats" role="button"><span class="yt-uix-button-icon-wrapper"><img class="yt-uix-button-icon yt-uix-button-icon-action-panel-stats" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Statistics" title=""></span></button>
</span>
<span>
<button onclick=";return false;" title="Report" type="button" class="action-panel-trigger yt-uix-button yt-uix-button-text yt-uix-button-size-default yt-uix-button-has-icon yt-uix-tooltip yt-uix-button-empty" data-button-toggle="true" data-trigger-for="action-panel-report" role="button"><span class="yt-uix-button-icon-wrapper"><img class="yt-uix-button-icon yt-uix-button-icon-action-panel-report" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Report" title=""></span></button>
</span>
</div>-->
</div>
<div id="watch7-action-panels" class="yt-uix-button-panel">
<div id="action-panel-details" class="action-panel-content ">
<div id="watch-description" class="yt-uix-expander yt-uix-expander-collapsed yt-uix-button-panel">
<div id="watch-description-content">
<div id="watch-description-clip">
<p id="watch-uploader-info">
<strong>Uploaded on {{.upload_date}}</strong>
</p>
<div id="watch-description-text">
<p id="eow-description">{{.description}}</p>
</div>
<div id="watch-description-extras">
<ul class="watch-extras-section">
<li>
<h4 class="title">
Category
</h4>
<div class="content">
<p id="eow-category">
<a href="" class="yt-uix-sessionlink">CATEGORY</a>
</p>
</div>
</li>
<li>
<!-- not available in haruhi-dl -j -->
<h4 class="title">License</h4>
<div class="content">
<p id="eow-reuse">
Standard YouTube License
</p>
</div>
</li>
</ul>
</div>
</div>
<ul id="watch-description-extra-info">
<li class="">
<span class="metadata-info">
<span class="metadata-info-title">
Artist<br/>
</span>
<a href="" class=" yt-uix-sessionlink">
ARTIST
</a>
</span>
</li>
</ul>
</div>
<div id="watch-description-toggle" class="yt-uix-expander-head yt-uix-button-panel">
<div id="watch-description-expand" class="expand">
<button onclick=";return false;" type="button" class="metadata-inline yt-uix-button yt-uix-button-text yt-uix-button-size-default" role="button"><span class="yt-uix-button-content">Show more </span></button>
</div>
<div id="watch-description-collapse" class="collapse">
<button onclick=";return false;" type="button" class="metadata-inline yt-uix-button yt-uix-button-text yt-uix-button-size-default" role="button"><span class="yt-uix-button-content">Show less </span></button>
</div>
</div>
</div>
</div>
<div id="action-panel-share" class="action-panel-content hid">
<div id="watch-actions-share-loading">
<div class="action-panel-loading">
<p class="yt-spinner">
<img class="yt-spinner-img" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Loading icon" title="">
<span class="yt-spinner-message">
Loading…
</span>
</p>
</div>
</div>
<div id="watch-actions-share-panel"></div>
</div>
<div id="action-panel-addto" class="action-panel-content hid">
<div class="action-panel-loading">
<p class="yt-spinner">
<img class="yt-spinner-img" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Loading icon" title="">
<span class="yt-spinner-message">
Loading…
</span>
</p>
</div>
</div>
<div id="action-panel-stats" class="action-panel-content hid">
<div class="action-panel-loading">
<p class="yt-spinner">
<img class="yt-spinner-img" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Loading icon" title="">
<span class="yt-spinner-message">
Loading…
</span>
</p>
</div>
</div>
<div id="action-panel-report" class="action-panel-content hid">
<div class="action-panel-loading">
<p class="yt-spinner">
<img class="yt-spinner-img" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Loading icon" title="">
<span class="yt-spinner-message">
Loading…
</span>
</p>
</div>
</div>
<div id="action-panel-login" class="action-panel-content hid">
<div class="action-panel-login">
<a href="http://web.archive.org/web/20140331181149/https://accounts.google.com/ServiceLogin?hl=en&amp;continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26feature%3D__FEATURE__%26hl%3Den%26next%3D%252Fwatch%253Fv%253DdQw4w9WgXcQ&amp;passive=true&amp;service=youtube&amp;uilel=3" class="yt-uix-button yt-uix-sessionlink yt-uix-button-default yt-uix-button-size-default"><span class="yt-uix-button-content">Sign in </span></a>
</div>
</div>
<div id="action-panel-ratings-disabled" class="action-panel-content hid">
<div id="watch-actions-ratings-disabled" class="watch-actions-panel">
<em>Ratings have been disabled for this video.</em>
</div>
</div>
<div id="action-panel-rental-required" class="action-panel-content hid">
<div id="watch-actions-rental-required" class="watch-actions-panel">
<strong>Rating is available when the video has been rented.</strong>
</div>
</div>
<div id="action-panel-error" class="action-panel-content hid">
<div class="action-panel-error">
This feature is not available right now. Please try again later.
</div>
</div>
<div id="watch7-action-panel-footer">
<hr class="yt-horizontal-rule ">
</div>
</div>
</div>
<div id="watch-discussion">
<div class="comments-iframe-container">
<div class="comments"></div>
<!--<div id="distiller-spinner" class="action-panel-loading">
<p class="yt-spinner">
<img class="yt-spinner-img" src="https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif" alt="Loading icon" title="">
<span class="yt-spinner-message">
Comments go here…
</span>
</p>
</div>-->
<script src='/js/watch.js'></script>
</div>
</div>
</div>
{{start ?playlist}}
TODO
<h1>Playlist</h1>
<script type='text/javascript'>
window.addEventListener('DOMContentLoaded', (event) => {
var video = document.querySelector('video');
video.addEventListener('ended', function() {
window.location = 'watch?v={{.next}}&playlist={{.playlist_id}}';
});
});
</script>
{{start _playlist}}
<a href='watch?v={{.id}}&playlist={{.playlist_id}}'><img src='//i.ytimg.com/vi/{{.id}}/mqdefault.jpg'><br>{{.title}}</a><br>
{{end _playlist}}
{{end ?playlist}}
<div id="watch7-sidebar" class="watch-sidebar">
<div id="watch7-sidebar-contents" class="watch-sidebar-gutter ">
<div id="watch7-sidebar-discussion"></div>
<div class="watch-sidebar-section">
<div class="watch-sidebar-body">
<ul id="watch-related" class="video-list">
{{start _recommended}}
<div><a href='/watch?v={{.id}}'><img src='https://i.ytimg.com/vi/{{.id}}/default.jpg'>{{.title}}</a></div>
{{end _recommended}}
<div id="watch-more-related" class="hid">
<li id="watch-more-related-loading">
Loading more suggestions…
</li>
</div>
<button onclick=";return false;" type="button" class=" yt-uix-button yt-uix-button-default yt-uix-button-size-default" id="watch-more-related-button" data-button-action="yt.www.watch.related.loadMore" role="button"><span class="yt-uix-button-content">Load more suggestions </span></button>
</ul>
</div> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
yt.setConfig({
'IS_UNAVAILABLE_PAGE': false,
'ENABLE_AUTO_LARGE': true });
yt.setMsg('FLASH_UPGRADE', "\u003cdiv class=\"yt-alert yt-alert-default yt-alert-error yt-alert-player\"\u003e \u003cdiv class=\"yt-alert-s://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif\" class=\"icon master-sprite\" alt=\"Alert icon\"\u003e\n \u003c\/div\u003e\n\u003cdiv class=\"yt-alert-buttons\"\u003e\u003c\/div\u003e\u003cdiv class=\"yt-alert-content\" role=\"alert\"\u003e \u003cspan class=\"yt-alert-vertical-trick\"\u003e\u003c\/span\u003e\n \u003cdiv class=\"yt-alert-message\"\u003e\n You need to upgrade your Adobe Flash Player to watch this video. \u003cbr\u003e \u003ca href=\"http:\/\/get.adobe.com\/flashplayer\/\"\u003eDownload it from Adobe.\u003c\/a\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e");
yt.setMsg('PLAYER_FALLBACK', "The Adobe Flash Player or an HTML5 supported browser is required for video playback. \u003cbr\u003e \u003ca href=\"http:\/\/get.adobe.com\/flashplayer\/\"\u003eGet the latest Flash Player\u003c\/a\u003e \u003cbr\u003e \u003ca href=\"\/html5\"\u003eLearn more about upgrading to an HTML5 browser\u003c\/a\u003e");
yt.setMsg('QUICKTIME_FALLBACK', "The Adobe Flash Player or QuickTime is required for video playback. \u003cbr\u003e \u003ca href=\"http:\/\/get.adobe.com\/flashplayer\/\"\u003eGet the latest Flash Player\u003c\/a\u003e \u003cbr\u003e \u003ca href=\"http:\/\/www.apple.com\/quicktime\/download\/\"\u003eGet the latest version of QuickTime\u003c\/a\u003e");
yt.setMsg({
'LOADING': "Loading…" });
</script>
</body>
</html>

View File

@ -0,0 +1,49 @@
<div><br>
<h2>{{.title}}</h2>
<div>
<div>
Uploaded by <b><a href='/channel/{{.channel_id}}'>{{.uploader}}</a></b> on <b>{{.upload_date}}</b>
</div>
<div>
<b>{{.view_count}}</b> views<br>
<b>{{.like_count}}</b> likes<br>
{{start ?fav}}<a href='fav.shs?v={{.id}}' target='_blank'>Add to favourites</a><br>{{end ?fav}}
{{start ?unfav}}<a href='unfav.shs?v={{.id}}' target='_blank'>Remove from favourites</a><br>{{end ?unfav}}
{{start ?sub}}<a href='subscribe.shs?id={{.channel_id}}' target='_blank'>Subscribe to {{.uploader}}!</a><br>{{end ?sub}}
{{start ?unsub}}<a href='unsubscribe.shs?id={{.channel_id}}' target='_blank'>Unsubscribe from {{.uploader}}!</a><br>{{end ?unsub}}
{{start ?login}}<b><a href='/login.shs?r={{.r}}'>Log in</a> to add this video to your favourites and/or subscribe to this channel!</b><br>{{end ?login}}
<br><br>
</div>
</div>
<pre><i>Description</i>:<br>{{.description}}</pre>
</div>
<h1>Recommended</h1>
<div style='display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));'>
{{start _recommended}}
<div><a href='/watch?v={{.id}}'><img src='https://i.ytimg.com/vi/{{.id}}/mqdefault.jpg'>{{.title}}</a></div>
{{end _recommended}}
</div><h1>Comments</h1>
<div class='comments'></div>
<script src='/js/watch.js'></script>
{{start ?playlist}}
<h1>Playlist</h1>
<script type='text/javascript'>
window.addEventListener('DOMContentLoaded', (event) => {
var video = document.querySelector('video');
video.addEventListener('ended', function() {
window.location = 'watch?v={{.next}}&playlist={{.playlist_id}}';
});
});
</script>
{{start _playlist}}
<a href='watch?v={{.id}}&playlist={{.playlist_id}}'><img src='//i.ytimg.com/vi/{{.id}}/mqdefault.jpg'><br>{{.title}}</a><br>
{{end _playlist}}
{{end ?playlist}}

View File

@ -0,0 +1,2 @@
<div><br>
{{.error}}

View File

@ -226,8 +226,9 @@ if [[ "${get_data[v]}" ]]; then
strings[comments_list]='An error ocurred during fetching comments.'
fi
source "${cfg[namespace]}/templates/header.shs"
echo "$player_render"
# source "${cfg[namespace]}/templates/header.shs"
# echo "$player_render"
strings[@player]="meow$player_render"
render strings "${cfg[namespace]}/templates/themes/${cfg[template]}/watch.html"
else
source templates/head.sh