mirror of
				https://codeberg.org/ashley/poke
				synced 2025-07-17 16:52:11 +00:00 
			
		
		
		
	ADD PLAYLISTS FINNALLY WOO
This commit is contained in:
		
							parent
							
								
									7f8ba71b25
								
							
						
					
					
						commit
						dd567eb778
					
				
							
								
								
									
										239
									
								
								html/playlist.ejs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								html/playlist.ejs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,239 @@ | ||||
|  <!-- | ||||
|     This Source Code Form is subject to the terms of the GNU General Public License: | ||||
| 
 | ||||
|     Copyright (C) 2021-2023 POKETUBE (https://codeberg.org/Ashley/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><html style="background:#000000"> | ||||
| <head> | ||||
|     <title>Poke | Playlist </title> | ||||
|      <link href=/css/yt-ukraine.svg?v=6 rel=icon> | ||||
|     <link rel="manifest" href="/manifest.json"> | ||||
|     <meta content=website property=og:type> | ||||
|       <meta name="viewport" content="width=device-1200px, initial-scale=1.0, shrink-to-fit=yes, viewport-fit=cover"> | ||||
|     <meta content="Poke - <%- p.title %> " property=og:title> | ||||
|     <meta content="<%- p.description %>" property=twitter:description> | ||||
|     <meta content="<%- mediaproxy %>/proxy?url=<%- p.playlistThumbnail %>" property="og:image"  /> | ||||
|       <meta content=summary_large_image name=twitter:card> | ||||
|     <link href=/css/app-cdn.min.css rel=stylesheet> | ||||
|     <link href=/css/app.main.css?v=8 rel=stylesheet> | ||||
|     <link href="/css/watch.main.css?v=56" rel=stylesheet> | ||||
|     <link href=https://p.poketube.fun/https://site-assets.fontawesome.com/releases/v6.1.1/css/all.css rel=stylesheet> | ||||
| <style> | ||||
|    a.class:hover { | ||||
|     font-weight:bold | ||||
| } | ||||
|   summary{ | ||||
|     color:gray; | ||||
| } | ||||
| summary:hove | ||||
|     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; | ||||
| } | ||||
| a{ | ||||
| border-radius:13px | ||||
| } | ||||
|      | ||||
| .video-list > p { | ||||
| font-family:Ubuntu | ||||
| } | ||||
| .closebtn:hover { | ||||
|   color: black; | ||||
| } | ||||
| 
 | ||||
| .playlist-video > .info > .title { | ||||
|     border-radius:0em | ||||
| } | ||||
| 
 | ||||
|   </style> | ||||
|  </head> | ||||
|   | ||||
| <body> | ||||
|      | ||||
|      <nav> | ||||
|       <div class="left"><a class="class" href="/143" style=font-family:Inter,sans-serif;color:#fff> <img style="transform: scale(1.3);padding-left:0.9em;width: 8.5em;display: block;margin-left: auto;margin-right: auto;" src="/css/logo.svg?v=5">         </a>             </div>                                     | ||||
|       <div class="middle"> | ||||
|       <div class="search"> | ||||
|          | ||||
|         <form action="/search"> | ||||
|    <input class="search-bar" autocomplete="on" id="fname" name="query" placeholder="" style="color:#fff;font-family:Inter,sans-serif;border-radius: 8px;" data-ddg-inputtype="identities.firstName"> | ||||
|    | ||||
| 
 | ||||
|           <button class="btn btn-success" type="submit"><i class="fa-light fa-search"></i></button> | ||||
|          | ||||
|         </form> | ||||
|    | ||||
|       </div> | ||||
|   | ||||
|       </div> | ||||
|       <div class="right"> | ||||
|       <a href="/privacy" style="text-decoration: none;" title="Privacy Policy"> | ||||
|           <i style="display: block;margin-left: auto;margin-right: auto;" class="fa-light fa-shield"></i> | ||||
|         </a> | ||||
|         | ||||
|          | ||||
|       </div> | ||||
|     </nav> | ||||
| <div class="playlist-page" style="margin-left: auto;margin-right: auto;width: 56em;"> | ||||
| <div class="playlist-info" style="max-height: 26em;border-radius: 1em;"> | ||||
|             <% if (!p.mixId) { %>   | ||||
| 
 | ||||
| 		<div class="thumbnail" style="background-image: url('<%- mediaproxy %>/proxy?url=<%- p.playlistThumbnail %>sqp=-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCLG7gzsIdtlp7ugZJH8YaAHX5bIw&days_since_epoch=19755')"> | ||||
| 		</div>	  <% } %> | ||||
| 
 | ||||
| 		<p class="title"><%- p.title %> </p> | ||||
|           <% if (!p.mixId) { %>   | ||||
| 		<span class="info"><%- p.videoCount %> videos • <%- p?.viewCount?.toLocaleString() %> views  • by <%- p.author %> </span> | ||||
| 	  <% } %> | ||||
| 
 | ||||
|       <span class="description"><%- p.description %></span> | ||||
| 		<div class="channel-info"> | ||||
| 		  | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<div class="video-list playlist-video-list"> | ||||
| 		     <% p.videos.forEach(x => { %> | ||||
|    | ||||
|     <div class="playlist-video"> | ||||
|       <a href="/watch?v=<%- x.videoId %>" class="index"> | ||||
|            <%- x.index + 1 %> | ||||
|        </a> | ||||
|  				<a href="/watch?v=<%- x.videoId %>" class="thumbnail" | ||||
| 				   style="background-image: url('<%- mediaproxy %>/proxy?url=https://vid.puffyan.us/vi/<%- x.videoId %>/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLBibY6d4Dg0K69NC-0b7NFsD7AH1w')"> | ||||
|  				</a> | ||||
| 				<div class="info"> | ||||
| 					<a href="/watch?v=<%- x.videoId %>" class="title max-lines-2"> | ||||
|         <%- x.title %> | ||||
|           </a> | ||||
| 					<div> | ||||
| 						<a href="/channel?id=<%- x.authorId %>"><%- x.author %></a> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 
 | ||||
|              <% }) %> | ||||
|  	 | ||||
|   | ||||
| </div> | ||||
|   | ||||
| 
 | ||||
| </div> | ||||
| </div> | ||||
|        | ||||
| <script src="/css/custom-css.js"> </script> | ||||
|   | ||||
| </body> | ||||
| </html> | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ashley ////
						Ashley ////