mirror of
https://codeberg.org/ashley/poke.git
synced 2024-11-22 23:57:50 +01:00
345 lines
13 KiB
Text
345 lines
13 KiB
Text
<!--
|
|
This Source Code Form is subject to the terms of the GNU General Public License:
|
|
|
|
Copyright (C) 2021-2022 POKETUBE (https://github.com/iamashley0/poketube)
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see https://www.gnu.org/licenses/.
|
|
-->
|
|
<!DOCTYPE html>
|
|
|
|
|
|
<% if (e === false) { %> <!-- if ?e=false,dont show up the meta tags -->
|
|
|
|
<% } %>
|
|
<% if (!e) { %>
|
|
<meta content="<%=video.Title%>" name=title>
|
|
<meta content="<%=color%>" name="theme-color">
|
|
<meta content=player name=twitter:card>
|
|
<meta content="<%=video.Channel.Name%>" name=twitter:author>
|
|
<meta content=@youtube name=twitter:site>
|
|
<meta content="https://poketube.fun/watch?v=<%=video.id%>" name=twitter:url>
|
|
<meta content="<%=video.Title%>" name=twitter:title>
|
|
<meta content="https://i.ytimg.com/vi/<%=video.id%>/maxresdefault.jpg" name=twitter:image>
|
|
<meta content="https://www.youtube.com/embed/<%=video.id%>" name=twitter:player>
|
|
<meta content=1280 name=twitter:player:width>
|
|
<meta content=720 name=twitter:player:height>
|
|
<link href="https://poketube.fun/watch?v=<%=video.id%>" itemprop=url>
|
|
<link href="http://www.youtube.com/channel/<%=video.Channel.id%>" itemprop=url>
|
|
<% } %> <!-- close the } -->
|
|
<link href=/css/yt-ukraine.svg?v=6 rel=icon>
|
|
<title> <%=video.Title%> - PokeTube</title>
|
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@500&display=swap" rel=stylesheet>
|
|
<link href=/css/app-cdn.min.css rel=stylesheet>
|
|
<link href=/css/app.main.css rel=stylesheet>
|
|
<link href="/css/watch.main.css?v=56" rel=stylesheet>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@900&family=Sigmar+One&display=swap" rel=stylesheet>
|
|
<link href=https://site-assets.fontawesome.com/releases/v6.1.1/css/all.css rel=stylesheet>
|
|
<style>
|
|
a.class:hover {
|
|
text-decoration:underline;
|
|
font-weight:bold
|
|
}
|
|
summary{
|
|
color:gray;
|
|
}
|
|
summary:hover{
|
|
color:white;
|
|
}
|
|
</style>
|
|
<!-- WIGGLE WIGGLE WIGGLE -->
|
|
<style>
|
|
body{
|
|
overflow-x: hidden; /* Hide horizontal scrollbar */
|
|
color:#111111
|
|
}
|
|
|
|
.animated {
|
|
-webkit-animation-duration: 10s;
|
|
animation-duration: 10s;
|
|
-webkit-animation-fill-mode: both;
|
|
animation-fill-mode: both;
|
|
animation-iteration-count: infinite;
|
|
-moz-animation-iteration-count: infinite;
|
|
-webkit-animation-iteration-count: infinite;
|
|
-o-animation-iteration-count: infinite;
|
|
}
|
|
|
|
@-webkit-keyframes wiggle {
|
|
0% { -webkit-transform: skewX(9deg); }
|
|
10% { -webkit-transform: skewX(-8deg); }
|
|
20% { -webkit-transform: skewX(7deg); }
|
|
30% { -webkit-transform: skewX(-6deg); }
|
|
40% { -webkit-transform: skewX(5deg); }
|
|
50% { -webkit-transform: skewX(-4deg); }
|
|
60% { -webkit-transform: skewX(3deg); }
|
|
70% { -webkit-transform: skewX(-2deg); }
|
|
80% { -webkit-transform: skewX(1deg); }
|
|
90% { -webkit-transform: skewX(0deg); }
|
|
100% { -webkit-transform: skewX(0deg); }
|
|
}
|
|
|
|
@keyframes wiggle {
|
|
0% { transform: skewX(9deg); }
|
|
10% { transform: skewX(-8deg); }
|
|
20% { transform: skewX(7deg); }
|
|
30% { transform: skewX(-6deg); }
|
|
40% { transform: skewX(5deg); }
|
|
50% { transform: skewX(-4deg); }
|
|
60% { transform: skewX(3deg); }
|
|
70% { transform: skewX(-2deg); }
|
|
80% { transform: skewX(1deg); }
|
|
90% { transform: skewX(0deg); }
|
|
100% { transform: skewX(0deg); }
|
|
}
|
|
|
|
.wiggle {
|
|
-webkit-animation-name: wiggle;
|
|
animation-name: wiggle;
|
|
-webkit-animation-timing-function: ease-in;
|
|
animation-timing-function: ease-in;
|
|
}
|
|
|
|
.animated.wiggle {
|
|
-webkit-animation-duration: 0.75s;
|
|
animation-duration: 0.75s;
|
|
}
|
|
|
|
:root {
|
|
--text-primary: #fff;
|
|
--text-secondary: #fff;
|
|
--text-link: #3ea6ff;
|
|
|
|
--app-background: #111111;
|
|
--context-menu-background: #333;
|
|
--border-color: #444;
|
|
--item-hover-background: #373737;
|
|
--item-active-background: #383838;
|
|
|
|
--top-bar-background: #202020;
|
|
--guide-background: #212121;
|
|
|
|
--thumbnail-background: #252525;
|
|
|
|
--channel-info-background: #181818;
|
|
--channel-contents-background: #0f0f0f;
|
|
}
|
|
.alert {
|
|
padding: 20px;
|
|
background-color: #f44336;
|
|
color: white;
|
|
opacity: 1;
|
|
transition: opacity 0.6s;
|
|
margin-bottom: 15px;
|
|
}
|
|
|
|
.alert.success {background-color: #04AA6D;}
|
|
.alert.info {background-color: #2196F3;}
|
|
.alert.warning {background-color: #ff9800;}
|
|
|
|
.closebtn {
|
|
margin-left: 15px;
|
|
color: white;
|
|
font-weight: bold;
|
|
float: right;
|
|
font-size: 22px;
|
|
line-height: 20px;
|
|
cursor: pointer;
|
|
transition: 0.3s;
|
|
}
|
|
|
|
.closebtn:hover {
|
|
color: black;
|
|
}
|
|
</style>
|
|
<body>
|
|
<div class="app">
|
|
<nav>
|
|
<div class=left><a class="class" href="/143" style=font-family:Inter,sans-serif;color:#fff> <img style="width: 6em;display: block;margin-left: auto;margin-right: auto;" src="/css/logo.svg?v=5"> <a href="/domains"><i style="display: block;margin-left: auto;margin-right: auto;" class="fas fa-server"></i> </a></div>
|
|
<div class=middle>
|
|
<form action=/search><input class=search-bar autocomplete="on" id=fname name=query style="color:#fff;font-family:Inter,sans-serif;"> <button class="btn btn-success" type=submit><i class="fas fa-search"></i></button></form>
|
|
</div>
|
|
<div class=right><a href="/privacy"><i class="fas fa-shield"></i></a><a href="/video/upload?from="><i class="fas fa-video"></i></a> <a href="https://github.com/iamashley0/poketube/"><i class="fab fa-git-alt"></i></a><a href="https://github.com/iamashley0/poketube/issues"><i class="fas fa-bug"></i></a></a></div>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<div class="watch-page">
|
|
|
|
|
|
<div class="primary">
|
|
|
|
<div class="video-player-container">
|
|
<video class="player" style="border-radius: 16px;" autoplay controls src="<%=url%>" poster="https://i.ytimg.com/vi/<%=video.id%>/sddefault.jpg?v=607ddcd4">
|
|
</video>
|
|
</div><br>
|
|
<div class="video-info">
|
|
<div class="video-title" style="font-family:Inter,sans-serif;font-weight:900;white-space:yes;"><%=video.Title%></div>
|
|
<p class="video-sub-info description">
|
|
<span><%=engagement.viewCount.toLocaleString()%> views - Uploaded on <%=date%> ^^
|
|
</span> <br><br> <%-String(video.Description).replace(/\n/g, " <br> ")%></center>
|
|
</p>
|
|
<div class="video-info-buttons">
|
|
<div>
|
|
<i class="fas fa-thumbs-up"></i>
|
|
<%=engagement.likes.toLocaleString()%>
|
|
</div>
|
|
<div>
|
|
<i class="fas fa-thumbs-down"></i> <%=engagement.dislikes.toLocaleString()%>
|
|
</div>
|
|
<div>
|
|
|
|
<a style="color:#fff" href="/api/video/download?v=<%=video.id%>">
|
|
<i class="fas fa-download"></i>
|
|
Download
|
|
</a>
|
|
|
|
|
|
<a style="color:#fff" href="/old/watch?v=<%=video.id%>">
|
|
<i class="fas fa-history"></i>
|
|
Watch in old UI
|
|
</a>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div class="channel-info__bordered" name="chnl">
|
|
<a href="/channel?id=<%=video.Channel.id%>" class="avatar">
|
|
<img src=" <%= k.Video.Channel.Avatar[1].$t %>">
|
|
</a>
|
|
<div class="name">
|
|
<a href="/channel?id=<%=video.Channel.id%>" > <%=video.Channel.Name%></a>
|
|
</div>
|
|
<div class="subscriber-count">
|
|
<%= k.Video.Channel.subscriberCount %>
|
|
</div>
|
|
<button class="subscribe-button" ><a style="color:#fff" href="https://www.youtube.com/channel/<%=video.Channel.id%>?view_as=subscriber?sub_confirmation=1">Suscribe</a></button>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="recommended-list" style="background-color:#1c1c1c;border-radius:25px;margin: 10px;">
|
|
|
|
|
|
<% if (optout) { %>
|
|
|
|
<% } %>
|
|
<% if (!optout) { %>
|
|
<!-- this allows us to see how much poketube users watched this video,we dont collect your ip or any of your personal information while making this. we dont collect or share your personal information as we said on our privacy policy:https://poketube.fun/privacy
|
|
|
|
this process does not use cookies,and it does not collect any information whatsoever execpt how many users watched this spesific video
|
|
|
|
we use something called matomo to do this,and since ip adreses are collected by def on matomo,we closed that on our instance. no infromation is collected from you.
|
|
|
|
we dont collect or share your personal infromation,period.
|
|
|
|
if you want to change the url - see config in server.js
|
|
-->
|
|
<img src="<%=t%>t/rep.gif?video_id=<%=video.id%>" style="width: 0;visibility: hidden;">
|
|
<% } %>
|
|
<div style="font-family:Inter,sans-serif;font-weight:900;white-space:yes;" align="center">
|
|
|
|
<a href="https://youtube.com/watch?v=<%=video.id%>">Open On YouTube</a> • <a href="/privacy">Privacy</a> • <a href="https://github.com/iamashley0/poketube/">Git</a>
|
|
</div>
|
|
|
|
<% if (optout) { %>
|
|
|
|
<% } %>
|
|
|
|
<% if (!optout) { %>
|
|
|
|
<div style="font-family:Inter,sans-serif;font-weight:900;white-space:yes;" align="center">
|
|
|
|
<a href="/watch?v=<%=video.id%>&t=f">
|
|
Opt out of Stats </a> (<a href="https://t.poketube.fun" style="color:#fff">More info</a>)
|
|
|
|
</div>
|
|
<% } %>
|
|
|
|
<% if (lyrics && !r) { %>
|
|
|
|
<% if (optout) { %>
|
|
Ayo u are lucy! this music video has lyrics! wanna see em? <a href="/watch?v=<%=video.id%>&r=f&t=f">Click this!</a>
|
|
|
|
<% } %>
|
|
<% if (!optout) { %>
|
|
Ayo u are lucy! this music video has lyrics! wanna see em? <a href="/watch?v=<%=video.id%>&r=f">Click this!</a>
|
|
|
|
<% } %>
|
|
|
|
<% } %>
|
|
<% if (!r) { %>
|
|
<p style="font-family:Inter,sans-serif;font-weight:900;white-space:yes;" align="center">
|
|
you migth also watch these... (ig?)
|
|
</p>
|
|
<% k.Video.Recommendations.Video.forEach(x => { %>
|
|
<div class="video">
|
|
<% if (!optout) { %>
|
|
|
|
<a href="/watch?v=<%= x.id %>" class="thumbnail" style="background-image: url('https://i.ytimg.com/vi/<%= x.id %>/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBy_x4UUHLNDZtJtH0PXeQGoRFTgw');border-radius: 7.5px;" > <span class="video-length"><%=x.duration %></span>
|
|
<% } %>
|
|
<% if (optout) { %>
|
|
|
|
<a href="/watch?v=<%= x.id %>&t=f" class="thumbnail" style="background-image: url('https://i.ytimg.com/vi/<%= x.id %>/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBy_x4UUHLNDZtJtH0PXeQGoRFTgw');border-radius: 7.5px;" > <span class="video-length"><%=x.duration %></span>
|
|
<% } %>
|
|
</a>
|
|
<div class="info">
|
|
|
|
<% if (!optout) { %>
|
|
<a href="/watch?v=<%= x.id %>" class="title max-lines-2"><%= x.Title %></a>
|
|
<% } %>
|
|
<% if (optout) { %>
|
|
<a href="/watch?v=<%= x.id %>&t=f" class="title max-lines-2"><%= x.Title %></a>
|
|
<% } %>
|
|
<div>
|
|
<a class="max-lines-2" href="/channel?id=<%= x.Channel.id %>"><%=x.Channel.Name %></a>
|
|
<div>
|
|
<%= x.uploadedAt %> </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<% }) %>
|
|
<% } %>
|
|
|
|
|
|
|
|
<% if (lyrics) { %>
|
|
<% if (r === "f") { %>
|
|
|
|
<a href="/watch?v=<%=video.id%>">See the Recommended videos instead</a>
|
|
<a href="https://github.com/iamashley0/poketube/issues">Report wrong lyrics!</a>
|
|
<div align="center">
|
|
<h1 style="color:#fff;font-family: 'Inter', sans-serif;font-weight: bold;white-space:yes;font-size:45;"> Lyrics
|
|
</h1>
|
|
<p>
|
|
See how our lyrics search works:<a href="https://github.com/iamashley0/poketube/blob/main/src/lyrics.js">Here</a>
|
|
</p>
|
|
<p style="color: white;">
|
|
<p style=color:#fff>
|
|
<%-lyrics%>
|
|
</p>
|
|
<% } %>
|
|
|
|
<% } %> </details>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|
|
</body>
|