embedder/app/views/gifv.ejs
2023-12-11 12:06:42 -05:00

122 lines
4.8 KiB
Text

<%
function extension(str){
let file = str.split('/').pop();
return [file.substr(0,file.lastIndexOf('.')),file.substr(file.lastIndexOf('.'),file.length).toLowerCase()]
}
const videoExtensions = ['.mp4', '.mov', '.avi', '.flv', '.mkv', '.wmv', '.webm'];
%>
<!DOCTYPE html>
<html>
<head>
<% if (extension(url)[1] == ".gif") { %>
<meta name="twitter:card" content="summary_large_image">
<link rel="alternate" type="application/json+oembed" href="<%= host %>/uploads/oembed-<%= extension(url)[0]+extension(url)[1] %>.json"></link>
<meta property="og:title" content="<%= extension(url)[0] %>.gif"></meta>
<meta property="og:description" content="Click to view the GIF"></meta>
<meta property="og:site_name" content="embedder"></meta>
<meta property="og:type" content="article"></meta>
<meta property="og:image" content="<%= host %>/uploads/720p-<%= extension(url)[0] %>.gif"></meta>
<meta property="og:image:width" content="<%= width %>"></meta>
<meta property="og:image:height" content="<%= height %>"></meta>
<meta property="og:image:type" content="image/gif"></meta>
<meta property="og:url" content="<%= host %>/uploads/720p-<%= extension(url)[0] %>.gif"></meta>
<% } else if (videoExtensions.includes(extension(url)[1])) { %>
<meta name="twitter:card" content="player">
<link rel="alternate" type="application/json+oembed" href="<%= host %>/uploads/oembed-<%= extension(url)[0]+extension(url)[1] %>.json"></link>
<meta property="og:title" content="<%= extension(url)[0]+extension(url)[1] %>"></meta>
<meta property="og:description" content="Click to view the GIFv"></meta>
<meta property="og:site_name" content="embedder"></meta>
<meta property="og:type" content="article"></meta>
<meta property="og:video" content="<%= host %>/uploads/720p-<%= extension(url)[0]+extension(url)[1] %>"></meta>
<meta property="og:video:width" content="<%= width %>"></meta>
<meta property="og:video:height" content="<%= height %>"></meta>
<meta property="og:video:type" content="video/mp4"></meta>
<meta property="og:url" content="<%= host %>/uploads/720p-<%= extension(url)[0]+extension(url)[1] %>.mp4"></meta>
<% } else { %>
<meta name="twitter:card" content="summary_large_image">
<link rel="alternate" type="application/json+oembed" href="<%= host %>/uploads/oembed-<%= extension(url)[0]+extension(url)[1] %>.json"></link>
<meta property="og:title" content="<%= extension(url)[0] + extension(url)[1] %>"></meta>
<meta property="og:description" content="Click to view the image"></meta>
<meta property="og:site_name" content="embedder"></meta>
<meta property="og:type" content="article"></meta>
<meta property="og:image" content="<%= host %>/uploads/<%= extension(url)[0] + extension(url)[1] %>"></meta>
<meta property="og:image:width" content="<%= width %>"></meta>
<meta property="og:image:height" content="<%= height %>"></meta>
<meta property="og:image:type" content="image/<%= extension(url)[1].split('.').join("") %>"></meta>
<meta property="og:url" content="<%= host %>/uploads/<%= extension(url)[0] + extension(url)[1] %>"></meta>
<% } %>
</head>
<style>
body {
background-color: #121212; /* Dark background */
color: #e0e0e0; /* Light text color for contrast */
font-family: Arial, sans-serif; /* A modern, readable font */
margin: 0;
padding: 20px;
}
a {
color: #bb86fc; /* A lighter shade for links */
}
.container {
max-width: 800px; /* Limit the width of the content */
margin: auto;
padding: 20px;
background-color: #1e1e1e; /* Slightly lighter than body background */
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); /* Adding a subtle shadow for depth */
}
.header {
font-size: 24px;
margin-bottom: 10px;
}
p {
line-height: 1.6; /* Improve readability */
}
footer {
text-align: center;
padding: 20px;
background-color: #1e1e1e; /* Dark background for the footer */
color: #e0e0e0; /* Light text color for contrast */
position: absolute;
bottom: 0;
width: 100%;
}
footer p {
margin: 0;
}
footer a {
color: #bb86fc; /* Light shade for links, adjust as needed */
text-decoration: none;
}
footer a:hover {
text-decoration: underline; /* Adds an underline on hover for better user experience */
}
@media (prefers-color-scheme: light) {
}
</style>
<body>
<% if (videoExtensions.includes(extension(url)[1])) { %>
<video class="image" width="100%" controls autoplay loop muted><source src="/uploads/720p-<%= extension(url)[0]+extension(url)[1] %>"></video>
<% } else { %>
<img src="/uploads/<%= extension(url)[0] + extension(url)[1] %>" class="image" width="100%">
<% } %>
<footer>
<p>Powered by <a href="https://github.com/waveringana/embedder">Embedder</a> created by <a href="https://github.com/waveringana">WaveringAna</a></p>
</footer>
</body>
</html>