mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Moved embed.html to handlebars-file, and fixed toast-wordbreaks
This commit is contained in:
@@ -1389,6 +1389,7 @@ margin:-1px;
|
||||
}
|
||||
|
||||
.toast {
|
||||
word-break: normal;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Embedded Zoff</title>
|
||||
<meta name="author" content="Nicolas 'Nixo' Almagro Tonne & Kasper 'KasperRT' Rynning-Tønnesen"/>
|
||||
<meta name="description" content="The Shared (free) YouTube radio. Being built around the YouTube search and video API it enables the creation of collaborative and shared live playlists, with billions of videos and songs to choose from, all for free and without registration. Enjoy!"/>
|
||||
<meta charset="UTF-8"/>
|
||||
<link type="text/css" rel="stylesheet" href="/assets/css/materialize.min.css" />
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
|
||||
<script type="text/javascript" src="/assets/dist/lib/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="/assets/css/embed.css" />
|
||||
<script src="/assets/dist/embed.min.js"></script>
|
||||
</head>
|
||||
<body class="noselect">
|
||||
<div id="locked_channel" class="modal">
|
||||
<div class="modal-content">
|
||||
<h5>Locked Channel</h5>
|
||||
<p>This channel has a password, and can't be accessed in embedded mode.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
</div>
|
||||
</div>
|
||||
<div id="song-title"></div>
|
||||
<div id="container" style="display:inline-flex;">
|
||||
<div id="player-container">
|
||||
<div id="player"></div>
|
||||
<div id="zoffbutton" title="Visit the channel!"></div>
|
||||
<div id="controls" class="noselect">
|
||||
<div id="playpause">
|
||||
<i id="play" class="material-icons hide">play_arrow</i>
|
||||
<i id="pause" class="material-icons">pause</i>
|
||||
</div>
|
||||
<div id="duration">00:00 / 00:00</div>
|
||||
<div id="volume-button">
|
||||
<i id="v-mute" class="mdi-av-volume-off"></i>
|
||||
<i id="v-low" class="mdi-av-volume-mute"></i>
|
||||
<i id="v-medium" class="mdi-av-volume-down"></i>
|
||||
<i id="v-full" class="mdi-av-volume-up"></i>
|
||||
</div>
|
||||
<div id="volume"></div>
|
||||
<div id="viewers"></div>
|
||||
<div id="bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="playlist">
|
||||
<div id="wrapper">
|
||||
<div id="preloader" class="progress channel_preloader">
|
||||
<div class="indeterminate"></div>
|
||||
</div>
|
||||
<div id="list-song-html">
|
||||
<div id="list-song" class="card left-align list-song waves-effect waves-light playlist-element">
|
||||
<div class="clickable vote-container" title="Vote!">
|
||||
<a class="clickable center-align votebg">
|
||||
<span class="lazy card-image cardbg list-image" style="background-image:url('/assets/images/loading.png');">
|
||||
</span>
|
||||
<span class="card-duration">
|
||||
01:00
|
||||
</span>
|
||||
</a>
|
||||
<span class="card-content">
|
||||
<span class="flow-text truncate list-title"></span>
|
||||
<span class="vote-span">
|
||||
<span class="list-votes"></span>
|
||||
<span class="highlighted vote-text"> votes</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pageButtons" class="hide">
|
||||
<span class="first_page_hide btn-flat disabled">
|
||||
<i class="material-icons">first_page</i>
|
||||
</span>
|
||||
<a class="first_page waves-effect waves-light btn-flat">
|
||||
<i class="material-icons">first_page</i>
|
||||
</a>
|
||||
<span class="prev_page_hide btn-flat disabled">
|
||||
<i class="material-icons">navigate_before</i> prev
|
||||
</span>
|
||||
<a class="prev_page waves-effect waves-light btn-flat">
|
||||
<i class="material-icons">navigate_before</i> prev
|
||||
</a>
|
||||
<span id="pageNumber">1</span>
|
||||
<a class="next_page waves-effect waves-light btn-flat">
|
||||
next <i class="material-icons">navigate_next</i>
|
||||
</a>
|
||||
<span class="next_page_hide btn-flat disabled">
|
||||
next <i class="material-icons">navigate_next</i>
|
||||
</span>
|
||||
<a class="last_page waves-effect waves-light btn-flat">
|
||||
<i class="material-icons">last_page</i>
|
||||
</a>
|
||||
<span class="last_page_hide btn-flat disabled">
|
||||
<i class="material-icons">last_page</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -463,7 +463,7 @@ var Frontpage = {
|
||||
|
||||
if(!localStorage.ok_cookie){
|
||||
before_toast();
|
||||
Materialize.toast("We're using cookies to enhance your experience! <a class='waves-effect waves-light btn light-green' href='#' id='cookieok' style='cursor:pointer;pointer-events:all;'> ok</a>", 10000);
|
||||
Materialize.toast("We're using cookies to enhance your experience! <a class='waves-effect waves-light btn light-green' href='#' id='cookieok' style='cursor:pointer;pointer-events:all;margin-left:10px;'> ok</a>", 10000);
|
||||
}
|
||||
|
||||
var pad = 0;
|
||||
|
||||
@@ -491,7 +491,8 @@ $(document).on("click", "#playpause-overlay", function(){
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '#cookieok', function() {
|
||||
$(document).on('click', '#cookieok', function(e) {
|
||||
e.preventDefault();
|
||||
$(this).fadeOut(function(){
|
||||
$(this).remove();
|
||||
localStorage.ok_cookie = true;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://zoff.me/assets/css/style.css" title="Default" />
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.slim.js"></script>
|
||||
<script type="text/javascript" src="/assets/admin/{{{where_get}}}/js/main.js"></script>
|
||||
<style>
|
||||
.preloader-wrapper {
|
||||
|
||||
85
server/public/layouts/client/embed.handlebars
Normal file
85
server/public/layouts/client/embed.handlebars
Normal file
@@ -0,0 +1,85 @@
|
||||
<div id="locked_channel" class="modal">
|
||||
<div class="modal-content">
|
||||
<h5>Locked Channel</h5>
|
||||
<p>This channel has a password, and can't be accessed in embedded mode.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
</div>
|
||||
</div>
|
||||
<div id="song-title"></div>
|
||||
<div id="container" style="display:inline-flex;">
|
||||
<div id="player-container">
|
||||
<div id="player"></div>
|
||||
<div id="zoffbutton" title="Visit the channel!"></div>
|
||||
<div id="controls" class="noselect">
|
||||
<div id="playpause">
|
||||
<i id="play" class="material-icons hide">play_arrow</i>
|
||||
<i id="pause" class="material-icons">pause</i>
|
||||
</div>
|
||||
<div id="duration">00:00 / 00:00</div>
|
||||
<div id="volume-button">
|
||||
<i id="v-mute" class="mdi-av-volume-off"></i>
|
||||
<i id="v-low" class="mdi-av-volume-mute"></i>
|
||||
<i id="v-medium" class="mdi-av-volume-down"></i>
|
||||
<i id="v-full" class="mdi-av-volume-up"></i>
|
||||
</div>
|
||||
<div id="volume"></div>
|
||||
<div id="viewers"></div>
|
||||
<div id="bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="playlist">
|
||||
<div id="wrapper">
|
||||
<div id="preloader" class="progress channel_preloader">
|
||||
<div class="indeterminate"></div>
|
||||
</div>
|
||||
<div id="list-song-html">
|
||||
<div id="list-song" class="card left-align list-song waves-effect waves-light playlist-element">
|
||||
<div class="clickable vote-container" title="Vote!">
|
||||
<a class="clickable center-align votebg">
|
||||
<span class="lazy card-image cardbg list-image" style="background-image:url('/assets/images/loading.png');">
|
||||
</span>
|
||||
<span class="card-duration">
|
||||
01:00
|
||||
</span>
|
||||
</a>
|
||||
<span class="card-content">
|
||||
<span class="flow-text truncate list-title"></span>
|
||||
<span class="vote-span">
|
||||
<span class="list-votes"></span>
|
||||
<span class="highlighted vote-text"> votes</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pageButtons" class="hide">
|
||||
<span class="first_page_hide btn-flat disabled">
|
||||
<i class="material-icons">first_page</i>
|
||||
</span>
|
||||
<a class="first_page waves-effect waves-light btn-flat">
|
||||
<i class="material-icons">first_page</i>
|
||||
</a>
|
||||
<span class="prev_page_hide btn-flat disabled">
|
||||
<i class="material-icons">navigate_before</i> prev
|
||||
</span>
|
||||
<a class="prev_page waves-effect waves-light btn-flat">
|
||||
<i class="material-icons">navigate_before</i> prev
|
||||
</a>
|
||||
<span id="pageNumber">1</span>
|
||||
<a class="next_page waves-effect waves-light btn-flat">
|
||||
next <i class="material-icons">navigate_next</i>
|
||||
</a>
|
||||
<span class="next_page_hide btn-flat disabled">
|
||||
next <i class="material-icons">navigate_next</i>
|
||||
</span>
|
||||
<a class="last_page waves-effect waves-light btn-flat">
|
||||
<i class="material-icons">last_page</i>
|
||||
</a>
|
||||
<span class="last_page_hide btn-flat disabled">
|
||||
<i class="material-icons">last_page</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -23,59 +23,67 @@
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="fb:app_id" content="1581693815380949" />
|
||||
<link rel="manifest" href="/assets/manifest.json">
|
||||
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.min.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<link type="text/css" rel="stylesheet" href="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.css" />
|
||||
{{#if embed}}
|
||||
{{else}}
|
||||
<link type="text/css" rel="stylesheet" href="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.css" />
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.css">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicon-32x32.png">
|
||||
<link rel="icon" id="favicon" type="image/png" sizes="16x16" href="/assets/images/favicon-16x16.png">
|
||||
<link rel="mask-icon" href="/assets/images/safari-pinned-tab.svg" color="#2d2d2d">
|
||||
{{/if}}
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/style.css" title="Default" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicon-32x32.png">
|
||||
<link rel="icon" id="favicon" type="image/png" sizes="16x16" href="/assets/images/favicon-16x16.png">
|
||||
<link rel="mask-icon" href="/assets/images/safari-pinned-tab.svg" color="#2d2d2d">
|
||||
<script type="text/javascript">
|
||||
if(window.location.hostname != "localhost") {
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{{ analytics }}}', 'auto');
|
||||
} else {
|
||||
function ga() {
|
||||
console.log(arguments);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/{{stylesheet}}" title="Default" />
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.slim.js"></script>
|
||||
<script type="text/javascript" src="/assets/dist/lib/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js"></script>
|
||||
<script type="text/javascript" src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.ui.position.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/color-thief/2.0.1/color-thief.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/sha256.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
|
||||
<script type="text/javascript" src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"></script>
|
||||
{{#if embed}}
|
||||
{{else}}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.js"></script>
|
||||
<script type="text/javascript" src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js"></script>
|
||||
<script type="text/javascript" src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.ui.position.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
if(window.location.hostname != "localhost") {
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{{ analytics }}}', 'auto');
|
||||
} else {
|
||||
function ga() {
|
||||
console.log(arguments);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/color-thief/2.0.1/color-thief.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/sha256.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
|
||||
{{/if}}
|
||||
<script async type="text/javascript" src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"></script>
|
||||
<script type="text/javascript" src="/assets/dist/{{javascript_file}}"></script>
|
||||
</head>
|
||||
<body class="noselect">
|
||||
{{{body}}}
|
||||
<div class="tap-target" data-activates="castButton">
|
||||
<div class="tap-target-content">
|
||||
<h5>Chromecast</h5>
|
||||
<p>This site supports chromecasting!</p>
|
||||
{{#if embed}}
|
||||
{{else}}
|
||||
<div class="tap-target" data-activates="castButton">
|
||||
<div class="tap-target-content">
|
||||
<h5>Chromecast</h5>
|
||||
<p>This site supports chromecasting!</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tap-target-join" data-activates="chan">
|
||||
<div class="tap-target-content">
|
||||
<div class="tap-target-join" data-activates="chan">
|
||||
<div class="tap-target-content">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{> contact}}
|
||||
{{> donate}}
|
||||
{{> footer}}
|
||||
<textarea class="copy_video_id" style="display:none;"></textarea>
|
||||
{{> contact}}
|
||||
{{> donate}}
|
||||
{{> footer}}
|
||||
<textarea class="copy_video_id" style="display:none;"></textarea>
|
||||
{{/if}}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -60,6 +60,8 @@ router.route('/api/apply/:id').get(function(req,res) {
|
||||
activated: true,
|
||||
token: result[0].token,
|
||||
correct: true,
|
||||
stylesheet: "style.css",
|
||||
embed: false,
|
||||
}
|
||||
res.render('layouts/client/token', data);
|
||||
});
|
||||
@@ -73,6 +75,8 @@ router.route('/api/apply/:id').get(function(req,res) {
|
||||
activated: false,
|
||||
token:"",
|
||||
correct: false,
|
||||
stylesheet: "style.css",
|
||||
embed: false,
|
||||
}
|
||||
res.render('layouts/client/token', data);
|
||||
}
|
||||
@@ -89,6 +93,8 @@ router.route('/api/apply').get(function(req, res, next) {
|
||||
activated: false,
|
||||
id: "",
|
||||
correct: false,
|
||||
stylesheet: "style.css",
|
||||
embed: false,
|
||||
}
|
||||
res.render('layouts/client/token', data);
|
||||
});
|
||||
@@ -106,7 +112,9 @@ function root(req, res, next) {
|
||||
year: year,
|
||||
javascript_file: "remote.min.js",
|
||||
captcha: res.recaptcha,
|
||||
analytics: analytics
|
||||
analytics: analytics,
|
||||
stylesheet: "style.css",
|
||||
embed: false,
|
||||
}
|
||||
res.render('layouts/client/remote', data);
|
||||
} else if(subdomain[0] == "www") {
|
||||
@@ -116,7 +124,9 @@ function root(req, res, next) {
|
||||
year: year,
|
||||
javascript_file: "main.min.js",
|
||||
captcha: res.recaptcha,
|
||||
analytics: analytics
|
||||
analytics: analytics,
|
||||
stylesheet: "style.css",
|
||||
embed: false,
|
||||
}
|
||||
res.render('layouts/client/frontpage', data);
|
||||
}
|
||||
@@ -139,14 +149,25 @@ function channel(req, res, next) {
|
||||
year: year,
|
||||
javascript_file: "remote.min.js",
|
||||
captcha: res.recaptcha,
|
||||
analytics: analytics
|
||||
analytics: analytics,
|
||||
stylesheet: "style.css",
|
||||
embed: false,
|
||||
}
|
||||
res.render('layouts/client/remote', data);
|
||||
} else if(subdomain.length >= 2 && subdomain[0] == "www") {
|
||||
res.redirect("https://zoff.me");
|
||||
} else {
|
||||
if(req.params.channel_name == "_embed") {
|
||||
res.sendFile(path.join(pathThumbnails, '/public/assets/html/embed.html'));
|
||||
//res.sendFile(path.join(pathThumbnails, '/public/assets/html/embed.html'));
|
||||
var data = {
|
||||
year: year,
|
||||
javascript_file: "embed.min.js",
|
||||
captcha: res.recaptcha,
|
||||
analytics: analytics,
|
||||
stylesheet: "embed.css",
|
||||
embed: true,
|
||||
}
|
||||
res.render('layouts/client/embed', data);
|
||||
} else if(req.params.channel_name == "o_callback") {
|
||||
res.sendFile(path.join(pathThumbnails, '/public/assets/html/callback.html'));
|
||||
} else {
|
||||
@@ -156,7 +177,9 @@ function channel(req, res, next) {
|
||||
year: year,
|
||||
javascript_file: "main.min.js",
|
||||
captcha: res.recaptcha,
|
||||
analytics: analytics
|
||||
analytics: analytics,
|
||||
stylesheet: "style.css",
|
||||
embed: false,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user