mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Merge pull request #178 from zoff-music/refactor/ignoring
Refactor/ignoring
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -2,6 +2,10 @@ server/public/assets/images/thumbnails/
|
|||||||
server/config/mailconfig.js
|
server/config/mailconfig.js
|
||||||
server/config/mongo_config.js
|
server/config/mongo_config.js
|
||||||
server/config/cert_config.js
|
server/config/cert_config.js
|
||||||
|
server/public/assets/dist/callback.min.js
|
||||||
|
server/public/assets/dist/embed.min.js
|
||||||
|
server/public/assets/dist/main.min.js
|
||||||
|
server/public/assets/dist/remote.min.js
|
||||||
*/node_modules
|
*/node_modules
|
||||||
node_modules/
|
node_modules/
|
||||||
scripts/
|
scripts/
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"description": "Zoff, the shared YouTube based radio services",
|
"description": "Zoff, the shared YouTube based radio services",
|
||||||
"main": "server/index.js",
|
"main": "server/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node server/index.js",
|
"start": "gulp build && node server/index.js",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|||||||
1
server/public/assets/dist/callback.min.js
vendored
1
server/public/assets/dist/callback.min.js
vendored
@@ -1 +0,0 @@
|
|||||||
!function(){function o(o){var t,e=o.substring(1).split("&"),a={};for(var i in e)t=e[i].split("="),2==t.length&&(a[t[0]]=t[1]);return a}window.addEventListener("load",function(){var t,e,a,i=o(window.location.hash),n=window.location.protocol+"//"+window.location.hostname+"/o_callback";if(i.spotify)t="b934ecdd173648f5bcd38738af529d58",e="token",a="playlist-read-private playlist-read-collaborative user-read-private playlist-modify-public",state=i.nonce,window.location.href="https://accounts.spotify.com/authorize?client_id="+t+"&scope="+a+"&show_dialog=false&response_type="+e+"&redirect_uri="+n+"&state="+state;else if(i.youtube)t="944988770273-butsmlr1aotlsskk8lmgvh0etqqekigf.apps.googleusercontent.com",e="token",a="https://www.googleapis.com/auth/youtube",state=i.nonce,window.location.href="https://accounts.google.com/o/oauth2/v2/auth?client_id="+t+"&response_type="+e+"&state="+state+"&redirect_uri="+n+"&scope="+a;else{var s=o(window.location.hash);window.opener.callback(s)}})}();
|
|
||||||
1
server/public/assets/dist/embed.min.js
vendored
1
server/public/assets/dist/embed.min.js
vendored
File diff suppressed because one or more lines are too long
1
server/public/assets/dist/main.min.js
vendored
1
server/public/assets/dist/main.min.js
vendored
File diff suppressed because one or more lines are too long
1
server/public/assets/dist/remote.min.js
vendored
1
server/public/assets/dist/remote.min.js
vendored
@@ -1 +0,0 @@
|
|||||||
!function(){var e=!0;mobilecheck=function(){var e=!1;return function(o){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(o)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(o.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e},$(document).ready(function(){document.title="Zoff Remote",setTimeout(function(){$("#search").focus()},500);var e={"sync disconnect on unload":!0,secure:!0};$("#about").modal(),$("#contact").modal(),"remote.zoff.me"==window.location.hostname?add="https://zoff.me":add="localhost",socket=io.connect(add+":8080",e),socket.on("update_required",function(){window.location.reload(!0)}),id=window.location.pathname.split("/")[1],id&&(id=id.toLowerCase(),o.control())}),$(document).on("click","#playbutton",function(){socket.emit("id",{id:id,type:"play",value:"mock"})}),$(document).on("click","#pausebutton",function(){socket.emit("id",{id:id,type:"pause",value:"mock"})}),$(document).on("click","#skipbutton",function(){socket.emit("id",{id:id,type:"skip",value:"mock"})}),$(document).on("submit","#remoteform",function(e){e.preventDefault(),o.control()});var o={control:function(){e?(id||(id=document.getElementById("remoteform").chan.value,window.history.pushState("object or string","Title","/"+id)),document.getElementById("remoteform").chan.value="",e=!1,$(".rc").css("display","block"),$("#remote-text").text("Controlling "+id.toUpperCase()),document.getElementById("search").setAttribute("length","18"),document.getElementById("search").setAttribute("maxlength","18"),$("#forsearch").html("Type new channel name to change to"),$("#volume-control").slider({min:0,max:100,value:100,range:"min",animate:!0,stop:function(e,o){socket.emit("id",{id:id,type:"volume",value:o.value})}})):(socket.emit("id",{id:id,type:"channel",value:$("#search").val().toLowerCase()}),$("#search").val(""))}}}();
|
|
||||||
@@ -63,148 +63,8 @@
|
|||||||
<p>This site supports chromecasting!</p>
|
<p>This site supports chromecasting!</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="contact" class="modal">
|
{{> contact}}
|
||||||
<div class="modal-content">
|
{{> footer}}
|
||||||
<h4>Contact</h4>
|
<textarea class="copy_video_id" style="display:none;"></textarea>
|
||||||
<div id="contact-container">
|
</body>
|
||||||
<p>Found a bug, or just want to contact the team?</p>
|
</html>
|
||||||
<form id="contact-form" method="post" onsubmit="return false;">
|
|
||||||
<div class="input-field">
|
|
||||||
<input id="contact-form-from" name="from" type="email" autocomplete="off" class="validate" />
|
|
||||||
<label for="contact-form-from" class="noselect">Email</label>
|
|
||||||
</div>
|
|
||||||
<div class="input-field">
|
|
||||||
<input id="contact-form-message" name="message" type="text" autocomplete="off">
|
|
||||||
<label for="contact-form-message" class="noselect">Message</label>
|
|
||||||
</div>
|
|
||||||
<div class="valign hide" id="send-loader">
|
|
||||||
<div class="preloader-wrapper small active">
|
|
||||||
<div class="spinner-layer spinner-blue">
|
|
||||||
<div class="circle-clipper left">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="gap-patch">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="circle-clipper right">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="spinner-layer spinner-red">
|
|
||||||
<div class="circle-clipper left">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="gap-patch">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="circle-clipper right">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="spinner-layer spinner-yellow">
|
|
||||||
<div class="circle-clipper left">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="gap-patch">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="circle-clipper right">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="spinner-layer spinner-green">
|
|
||||||
<div class="circle-clipper left">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="gap-patch">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div><div class="circle-clipper right">
|
|
||||||
<div class="circle"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button class="waves-effect waves-green btn-flat" id="submit-contact-form">Send</button>
|
|
||||||
<a href="#!" class=" modal-action modal-close waves-effect waves-red btn-flat">Close</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<footer class="page-footer cursor-default">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col l6 s12">
|
|
||||||
<h5 class="white-text">Zoff</h5>
|
|
||||||
<p class="grey-text text-lighten-4">The shared YouTube radio</p>
|
|
||||||
<p class="grey-text text-lighten-4">
|
|
||||||
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.
|
|
||||||
<br />
|
|
||||||
Enjoy!
|
|
||||||
</p>
|
|
||||||
<ul class="footer-buttons">
|
|
||||||
<li>
|
|
||||||
<a class="modal-trigger waves-effect cyan darken-2 btn help-button-footer" title="Need help with the site?" data-target="help">
|
|
||||||
<i class="material-icons left footer-button-icon">help_outline</i>HELP
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="modal-trigger waves-effect blue-grey darken-2 btn help-button-footer hide-on-small-only" id="embed-button" title="Want to embed this channel?" data-target="embed">
|
|
||||||
<i class="material-icons left footer-button-icon">code</i>EMBED
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="modal-trigger waves-effect red darken-2 btn help-button-footer" id="contact-button" title="Contact us" data-target="contact">
|
|
||||||
<i class="material-icons left footer-button-icon">email</i>CONTACT
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p id="latest-commit" class="grey-text text-lighten-4"></p>
|
|
||||||
</div>
|
|
||||||
<div class="col l4 offset-l2 s12 valign-wrapper">
|
|
||||||
<ul class="footer-buttons">
|
|
||||||
<li>
|
|
||||||
<a id="facebook-code-link" class="waves-effect waves-light btn light-blue share shareface" href="https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/{{list_name}}" target="popup" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/{{list_name}}','Share Playlist','width=600,height=300')">
|
|
||||||
<img class="left" src="/assets/images/facebook.png" alt="Share on Facebook" />Share on Facebook
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a id="twitter-code-link" class="waves-effect waves-light btn light-blue share" href="http://twitter.com/intent/tweet?url=https://zoff.me/{{list_name}}&text=Check%20out%20this%20playlist%20{{list_name}}%20on%20Zöff!&via=zoffmusic" target="popup" onclick="window.open('http://twitter.com/intent/tweet?url=https://zoff.me{{list_name}}&text=Check%20out%20this%20playlist%20{{list_name}}%20on%20Zöff!&via=zoffmusic','Share Playlist','width=600,height=300')">
|
|
||||||
<img class="left" src="/assets/images/twitter.png" alt="Share on Twitter" />Share on Twitter
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank" id="donate_form">
|
|
||||||
<input type="hidden" name="cmd" value="_s-xclick">
|
|
||||||
<input type="hidden" name="hosted_button_id" value="JEXDYP59N5VWE">
|
|
||||||
<a title="Like what we made? Help us by donating (a) beer!" class="waves-effect waves-light btn orange light-blue share" onclick="document.getElementById('donate_form').submit();">
|
|
||||||
<i class="material-icons left footer-button-icon">payment</i>Donate
|
|
||||||
</a>
|
|
||||||
</form>
|
|
||||||
</li>
|
|
||||||
<li class="google-play-image-list">
|
|
||||||
<a href="https://play.google.com/store/apps/details?id=zoff.me.zoff&hl=no&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1">
|
|
||||||
<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"/></a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<div id="qr-code-link" class="hide-on-small-only">
|
|
||||||
<img id="qr-code-image-link" class="card rounded" src="//chart.googleapis.com/chart?chs=150x150&cht=qr&chl=https://zoff.me/{{list_name}}&choe=UTF-8&chld=L%7C1" alt="QRCode for link" title="QR code for this page, for easy sharing!" />
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer-copyright">
|
|
||||||
<div class="container">
|
|
||||||
© {{year}}
|
|
||||||
<a href="http://kasperrt.no">KasperRT</a> &
|
|
||||||
<a href="http://nixo.no">Nixo</a>,
|
|
||||||
<br>
|
|
||||||
All rights reserved
|
|
||||||
<a class="right" href="https://github.com/zoff-music/">Contribute on GitHub</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
<textarea class="copy_video_id" style="display:none;"></textarea>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|||||||
65
server/public/partials/contact.handlebars
Normal file
65
server/public/partials/contact.handlebars
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<div id="contact" class="modal">
|
||||||
|
<div class="modal-content">
|
||||||
|
<h4>Contact</h4>
|
||||||
|
<div id="contact-container">
|
||||||
|
<p>Found a bug, or just want to contact the team?</p>
|
||||||
|
<form id="contact-form" method="post" onsubmit="return false;">
|
||||||
|
<div class="input-field">
|
||||||
|
<input id="contact-form-from" name="from" type="email" autocomplete="off" class="validate" />
|
||||||
|
<label for="contact-form-from" class="noselect">Email</label>
|
||||||
|
</div>
|
||||||
|
<div class="input-field">
|
||||||
|
<input id="contact-form-message" name="message" type="text" autocomplete="off">
|
||||||
|
<label for="contact-form-message" class="noselect">Message</label>
|
||||||
|
</div>
|
||||||
|
<div class="valign hide" id="send-loader">
|
||||||
|
<div class="preloader-wrapper small active">
|
||||||
|
<div class="spinner-layer spinner-blue">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spinner-layer spinner-red">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spinner-layer spinner-yellow">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spinner-layer spinner-green">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div><div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="waves-effect waves-green btn-flat" id="submit-contact-form">Send</button>
|
||||||
|
<a href="#!" class=" modal-action modal-close waves-effect waves-red btn-flat">Close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
77
server/public/partials/footer.handlebars
Normal file
77
server/public/partials/footer.handlebars
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<footer class="page-footer cursor-default">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col l6 s12">
|
||||||
|
<h5 class="white-text">Zoff</h5>
|
||||||
|
<p class="grey-text text-lighten-4">The shared YouTube radio</p>
|
||||||
|
<p class="grey-text text-lighten-4">
|
||||||
|
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.
|
||||||
|
<br />
|
||||||
|
Enjoy!
|
||||||
|
</p>
|
||||||
|
<ul class="footer-buttons">
|
||||||
|
<li>
|
||||||
|
<a class="modal-trigger waves-effect cyan darken-2 btn help-button-footer" title="Need help with the site?" data-target="help">
|
||||||
|
<i class="material-icons left footer-button-icon">help_outline</i>HELP
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="modal-trigger waves-effect blue-grey darken-2 btn help-button-footer hide-on-small-only" id="embed-button" title="Want to embed this channel?" data-target="embed">
|
||||||
|
<i class="material-icons left footer-button-icon">code</i>EMBED
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="modal-trigger waves-effect red darken-2 btn help-button-footer" id="contact-button" title="Contact us" data-target="contact">
|
||||||
|
<i class="material-icons left footer-button-icon">email</i>CONTACT
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p id="latest-commit" class="grey-text text-lighten-4"></p>
|
||||||
|
</div>
|
||||||
|
<div class="col l4 offset-l2 s12 valign-wrapper">
|
||||||
|
<ul class="footer-buttons">
|
||||||
|
<li>
|
||||||
|
<a id="facebook-code-link" class="waves-effect waves-light btn light-blue share shareface" href="https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/{{list_name}}" target="popup" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/{{list_name}}','Share Playlist','width=600,height=300')">
|
||||||
|
<img class="left" src="/assets/images/facebook.png" alt="Share on Facebook" />Share on Facebook
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a id="twitter-code-link" class="waves-effect waves-light btn light-blue share" href="http://twitter.com/intent/tweet?url=https://zoff.me/{{list_name}}&text=Check%20out%20this%20playlist%20{{list_name}}%20on%20Zöff!&via=zoffmusic" target="popup" onclick="window.open('http://twitter.com/intent/tweet?url=https://zoff.me{{list_name}}&text=Check%20out%20this%20playlist%20{{list_name}}%20on%20Zöff!&via=zoffmusic','Share Playlist','width=600,height=300')">
|
||||||
|
<img class="left" src="/assets/images/twitter.png" alt="Share on Twitter" />Share on Twitter
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank" id="donate_form">
|
||||||
|
<input type="hidden" name="cmd" value="_s-xclick">
|
||||||
|
<input type="hidden" name="hosted_button_id" value="JEXDYP59N5VWE">
|
||||||
|
<a title="Like what we made? Help us by donating (a) beer!" class="waves-effect waves-light btn orange light-blue share" onclick="document.getElementById('donate_form').submit();">
|
||||||
|
<i class="material-icons left footer-button-icon">payment</i>Donate
|
||||||
|
</a>
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
|
<li class="google-play-image-list">
|
||||||
|
<a href="https://play.google.com/store/apps/details?id=zoff.me.zoff&hl=no&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1">
|
||||||
|
<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"/></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div id="qr-code-link" class="hide-on-small-only">
|
||||||
|
<img id="qr-code-image-link" class="card rounded" src="//chart.googleapis.com/chart?chs=150x150&cht=qr&chl=https://zoff.me/{{list_name}}&choe=UTF-8&chld=L%7C1" alt="QRCode for link" title="QR code for this page, for easy sharing!" />
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-copyright">
|
||||||
|
<div class="container">
|
||||||
|
© {{year}}
|
||||||
|
<a href="http://kasperrt.no">KasperRT</a> &
|
||||||
|
<a href="http://nixo.no">Nixo</a>,
|
||||||
|
<br>
|
||||||
|
All rights reserved
|
||||||
|
<a class="right" href="https://github.com/zoff-music/">Contribute on GitHub</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
Reference in New Issue
Block a user