Verified Commit 0e2ff6a4 authored by Stephan Fischer's avatar Stephan Fischer
Browse files

FontAwesome 5.0.2, humans.txt, latest Plyr 3 code and... hi 2018

parent 6e0aaf04
YOUTUBE_API_KEY=
VIMEO_TOKEN=
VIMEO_KEY=
VIMEO_SECRET=
CACHE=False
CACHE_TIMEOUT=600
CACHE_TYPE=filesystem
CACHE_DIR =
CACHE_MAX_AGE=604800
SNIPPETLENGTH=30
NEWSICDEBUG=False
DEBUG=False
\ No newline at end of file
The MIT License (MIT)
Copyright (c) 2015-2017 Stephan Fischer (https://stephan-fischer.de, https://tocsin.de)
Copyright (c) 2015-2018 Stephan Fischer (https://stephan-fischer.de, https://tocsin.de)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......
......@@ -54,7 +54,7 @@ Shortcut | What it does
## License
MIT License, Copyright (c) 2015-2017 Stephan Fischer (@tocsinDE, [stephan-fischer.de](https://stephan-fischer.de), [tocsin.de](https://tocsin.de))
MIT License, Copyright (c) 2015-2018 Stephan Fischer (@tocsinDE, [stephan-fischer.de](https://stephan-fischer.de), [tocsin.de](https://tocsin.de))
For more details see [LICENSE](/LICENSE).
......
# http://humanstxt.org
# The humans responsible and
# technology colophon
_
(_)
_ __ _____ _____ _ ___
| '_ \ / _ \ \ /\ / / __| |/ __|
| | | | __/\ V V /\__ \ | (__
|_| |_|\___| \_/\_/ |___/_|\___|
newsic.tocsin.de
trynewsic.tocsin.de
# TEAM
Developer: Stephan Fischer
Site: https://stephan-fischer.de
Twitter: https://twitter.com/22uhr
GitHub: https://github.com/tocsinDE
Location: Germany
# TECHNOLOGY COLOPHON
Standards: HTML5, CSS3 (via SASS), PEP8
Server: Linux, Apache, Python
Components:
Flask: https://github.com/pallets/flask
Plyr: https://github.com/sampotts/plyr
PyVimeo: https://github.com/vimeo/vimeo.py
Optional components:
Flask Caching: https://github.com/sh4nks/flask-caching
Flask-Compress: https://github.com/libwilliam/flask-compress
Flask-HTMLmin: https://github.com/hamidfzm/Flask-HTMLmin
python-dotenv: https://github.com/theskumar/python-dotenv
APIs:
YouTube: https://developers.google.com/youtube/v3
Vimeo: https://developer.vimeo.com/api/start
Software:
git: https://git-scm.com
Visual Studio Code: https://code.visualstudio.com
Insomnia: https://insomnia.rest
Inkscape: https://inkscape.org
Source: https://github.com/newsic/newsic
\ No newline at end of file
/*!
* Font Awesome Free 5.0.2 by @fontawesome - http://fontawesome.com
* License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
svg:not(:root).svg-inline--fa {
overflow: visible; }
.svg-inline--fa {
display: inline-block;
font-size: inherit;
height: 1em;
overflow: visible;
vertical-align: -.125em; }
.svg-inline--fa.fa-lg {
vertical-align: -.225em; }
.svg-inline--fa.fa-w-1 {
width: 0.0625em; }
.svg-inline--fa.fa-w-2 {
width: 0.125em; }
.svg-inline--fa.fa-w-3 {
width: 0.1875em; }
.svg-inline--fa.fa-w-4 {
width: 0.25em; }
.svg-inline--fa.fa-w-5 {
width: 0.3125em; }
.svg-inline--fa.fa-w-6 {
width: 0.375em; }
.svg-inline--fa.fa-w-7 {
width: 0.4375em; }
.svg-inline--fa.fa-w-8 {
width: 0.5em; }
.svg-inline--fa.fa-w-9 {
width: 0.5625em; }
.svg-inline--fa.fa-w-10 {
width: 0.625em; }
.svg-inline--fa.fa-w-11 {
width: 0.6875em; }
.svg-inline--fa.fa-w-12 {
width: 0.75em; }
.svg-inline--fa.fa-w-13 {
width: 0.8125em; }
.svg-inline--fa.fa-w-14 {
width: 0.875em; }
.svg-inline--fa.fa-w-15 {
width: 0.9375em; }
.svg-inline--fa.fa-w-16 {
width: 1em; }
.svg-inline--fa.fa-w-17 {
width: 1.0625em; }
.svg-inline--fa.fa-w-18 {
width: 1.125em; }
.svg-inline--fa.fa-w-19 {
width: 1.1875em; }
.svg-inline--fa.fa-w-20 {
width: 1.25em; }
.svg-inline--fa.fa-pull-left {
margin-right: .3em;
width: auto; }
.svg-inline--fa.fa-pull-right {
margin-left: .3em;
width: auto; }
.svg-inline--fa.fa-border {
height: 1.5em; }
.svg-inline--fa.fa-li {
width: 2em; }
.svg-inline--fa.fa-fw {
width: 1.25em; }
.fa-layers svg.svg-inline--fa {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.fa-layers {
display: inline-block;
height: 1em;
position: relative;
text-align: center;
vertical-align: -12.5%;
width: 1em; }
.fa-layers svg.svg-inline--fa {
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-text, .fa-layers-counter {
display: inline-block;
position: absolute;
text-align: center; }
.fa-layers-text {
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-counter {
background-color: #ff253a;
border-radius: 1em;
color: #fff;
height: 1.5em;
line-height: 1;
max-width: 5em;
min-width: 1.5em;
overflow: hidden;
padding: .25em;
right: 0;
text-overflow: ellipsis;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-bottom-right {
bottom: 0;
right: 0;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom right;
transform-origin: bottom right; }
.fa-layers-bottom-left {
bottom: 0;
left: 0;
right: auto;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom left;
transform-origin: bottom left; }
.fa-layers-top-right {
right: 0;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-top-left {
left: 0;
right: auto;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top left;
transform-origin: top left; }
.fa-lg {
font-size: 1.33333em;
line-height: 0.75em;
vertical-align: -.0667em; }
.fa-xs {
font-size: .75em; }
.fa-sm {
font-size: .875em; }
.fa-1x {
font-size: 1em; }
.fa-2x {
font-size: 2em; }
.fa-3x {
font-size: 3em; }
.fa-4x {
font-size: 4em; }
.fa-5x {
font-size: 5em; }
.fa-6x {
font-size: 6em; }
.fa-7x {
font-size: 7em; }
.fa-8x {
font-size: 8em; }
.fa-9x {
font-size: 9em; }
.fa-10x {
font-size: 10em; }
.fa-fw {
text-align: center;
width: 1.25em; }
.fa-ul {
list-style-type: none;
margin-left: 2.5em;
padding-left: 0; }
.fa-ul > li {
position: relative; }
.fa-li {
left: -2em;
position: absolute;
text-align: center;
width: 2em;
line-height: inherit; }
.fa-border {
border: solid 0.08em #eee;
border-radius: .1em;
padding: .2em .25em .15em; }
.fa-pull-left {
float: left; }
.fa-pull-right {
float: right; }
.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
margin-right: .3em; }
.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
margin-left: .3em; }
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear; }
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8); }
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
transform: rotate(90deg); }
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
transform: rotate(180deg); }
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
transform: rotate(270deg); }
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1); }
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
-webkit-filter: none;
filter: none; }
.fa-stack {
display: inline-block;
height: 2em;
position: relative;
width: 2em; }
.fa-stack-1x,
.fa-stack-2x {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.svg-inline--fa.fa-stack-1x {
height: 1em;
width: 1em; }
.svg-inline--fa.fa-stack-2x {
height: 2em;
width: 2em; }
.fa-inverse {
color: #fff; }
.sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }
.sr-only-focusable:active, .sr-only-focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto; }
This diff is collapsed.
......@@ -190,8 +190,8 @@ input.oninput = function() {
br = document.createElement("br");
icon = document.createElement("i");
icon.classList.add("fa");
icon.classList.add("fa-youtube-play");
icon.classList.add("fab");
icon.classList.add("fa-youtube");
sub.textContent = " " + json[i]["amount"] + " videos";
sub.classList.add("sub");
......
var list=[],timeout=null,playlist,autocomplete=!1,container=document.getElementById("autocomplete"),input=container.getElementsByTagName("input")[0],resultDiv=document.getElementById("autocomplete-result"),loadingIndicator=container.getElementsByClassName("flash")[0],resetSelection=function(){var e=resultDiv.getElementsByClassName("selected");[].forEach.call(e,function(e){e.classList.toggle("selected")})},resultDivMeasures=function(){resultDiv.style.marginTop=container.offsetHeight+"px",resultDiv.style.width=container.offsetWidth+"px"};resultDiv.onmouseover=resetSelection,window.addEventListener("load",resultDivMeasures,!1),window.addEventListener("resize",resultDivMeasures,!1);var checkRegex=function(){const e=/(?:https?:\/\/)*(?:[a-z].*).?youtube.com\/.*list=([a-zA-Z0-9-_]*)(?:.*index=(\d*))?/;var t=e.exec(input.value);return!!t&&(playlist=t[1],!0)};input.onblur=function(){setTimeout(function(){resultDiv.style.visibility="hidden"},200)},input.onfocus=function(){resultDiv.style.visibility="visible"},document.addEventListener("keydown",function(e){switch(e.key){case"e":if(document.activeElement!=input){e.preventDefault(),input.focus();break}}}),input.onkeydown=function(e){var t=resultDiv.getElementsByClassName("selected")[0];switch(e.key){case"Escape":input.blur(),resultDiv.style.visibility="hidden";break;case"End":null!=t&&t.classList.toggle("selected"),resultDiv.lastElementChild.classList.add("selected");break;case"Home":null!=t&&t.classList.toggle("selected"),resultDiv.firstElementChild.classList.add("selected");break;case"ArrowDown":if(null==t){var i=resultDiv.firstElementChild;i.classList.toggle("selected"),autocomplete=i.classList[0]}null!=t&&(t.classList.toggle("selected"),null!=t.nextElementSibling&&(t.nextElementSibling.classList.toggle("selected"),autocomplete=resultDiv.getElementsByClassName("selected")[0].classList[0]));break;case"ArrowUp":if(null==t){var s=resultDiv.lastElementChild;s.classList.toggle("selected"),autocomplete=s.classList[0]}null!=t&&(t.classList.toggle("selected"),null!=t.previousElementSibling&&(t.previousElementSibling.classList.toggle("selected"),autocomplete=resultDiv.getElementsByClassName("selected")[0].classList[0]))}},input.oninput=function(){loadingIndicator.style.visibility="visible",console.log("loading"),resultDiv.style.visibility="visible";resultDiv.getElementsByClassName("selected")[0];0==input.value.length&&(resultDiv.style.visibility="hidden",loadingIndicator.style.visibility="hidden");var e=new XMLHttpRequest;e.open("POST","/search",!0),e.setRequestHeader("Content-type","application/json"),e.onreadystatechange=function(){if(resultDiv.innerText="",resultDiv.style.visibility="hidden",4===e.readyState&&200===e.status){console.log("finished loading"),resultDiv.style.visibility="visible",loadingIndicator.style.visibility="hidden";var t=JSON.parse(e.responseText);if(t.length<1)resultDiv.innerHTML="<li>No results :(</li>";else for(var i=0;i<t.length;i++)node=document.createElement("li"),text=document.createElement("span"),sub=document.createElement("span"),br=document.createElement("br"),icon=document.createElement("i"),icon.classList.add("fa"),icon.classList.add("fa-youtube-play"),sub.textContent=" "+t[i].amount+" videos",sub.classList.add("sub"),text.textContent=" "+t[i].title,text.appendChild(br),text.appendChild(icon),text.appendChild(sub),node.classList.add(t[i].id),node.appendChild(text),""!=t[i].thumb&&(image=document.createElement("img"),image.src=t[i].thumb,node.appendChild(image)),resultDiv.appendChild(node),node.onclick=function(){window.open("/youtube/"+this.classList[0],"_self")}}},clearTimeout(timeout),timeout=setTimeout(function(){if(0!=input.value.length){var t=JSON.stringify({search:input.value});e.send(t)}},500)},document.getElementsByTagName("form")[0].onsubmit=function(e){e.preventDefault(),checkRegex()?window.open("/youtube/"+playlist,"_self"):autocomplete?window.open("/youtube/"+autocomplete,"_self"):document.getElementsByTagName("form")[0].submit()};
\ No newline at end of file
var list=[],timeout=null,playlist,autocomplete=!1,container=document.getElementById("autocomplete"),input=container.getElementsByTagName("input")[0],resultDiv=document.getElementById("autocomplete-result"),loadingIndicator=container.getElementsByClassName("flash")[0],resetSelection=function(){var e=resultDiv.getElementsByClassName("selected");[].forEach.call(e,function(e){e.classList.toggle("selected")})},resultDivMeasures=function(){resultDiv.style.marginTop=container.offsetHeight+"px",resultDiv.style.width=container.offsetWidth+"px"};resultDiv.onmouseover=resetSelection,window.addEventListener("load",resultDivMeasures,!1),window.addEventListener("resize",resultDivMeasures,!1);var checkRegex=function(){const e=/(?:https?:\/\/)*(?:[a-z].*).?youtube.com\/.*list=([a-zA-Z0-9-_]*)(?:.*index=(\d*))?/;var t=e.exec(input.value);return!!t&&(playlist=t[1],!0)};input.onblur=function(){setTimeout(function(){resultDiv.style.visibility="hidden"},200)},input.onfocus=function(){resultDiv.style.visibility="visible"},document.addEventListener("keydown",function(e){switch(e.key){case"e":if(document.activeElement!=input){e.preventDefault(),input.focus();break}}}),input.onkeydown=function(e){var t=resultDiv.getElementsByClassName("selected")[0];switch(e.key){case"Escape":input.blur(),resultDiv.style.visibility="hidden";break;case"End":null!=t&&t.classList.toggle("selected"),resultDiv.lastElementChild.classList.add("selected");break;case"Home":null!=t&&t.classList.toggle("selected"),resultDiv.firstElementChild.classList.add("selected");break;case"ArrowDown":if(null==t){var i=resultDiv.firstElementChild;i.classList.toggle("selected"),autocomplete=i.classList[0]}null!=t&&(t.classList.toggle("selected"),null!=t.nextElementSibling&&(t.nextElementSibling.classList.toggle("selected"),autocomplete=resultDiv.getElementsByClassName("selected")[0].classList[0]));break;case"ArrowUp":if(null==t){var s=resultDiv.lastElementChild;s.classList.toggle("selected"),autocomplete=s.classList[0]}null!=t&&(t.classList.toggle("selected"),null!=t.previousElementSibling&&(t.previousElementSibling.classList.toggle("selected"),autocomplete=resultDiv.getElementsByClassName("selected")[0].classList[0]))}},input.oninput=function(){loadingIndicator.style.visibility="visible",console.log("loading"),resultDiv.style.visibility="visible";resultDiv.getElementsByClassName("selected")[0];0==input.value.length&&(resultDiv.style.visibility="hidden",loadingIndicator.style.visibility="hidden");var e=new XMLHttpRequest;e.open("POST","/search",!0),e.setRequestHeader("Content-type","application/json"),e.onreadystatechange=function(){if(resultDiv.innerText="",resultDiv.style.visibility="hidden",4===e.readyState&&200===e.status){console.log("finished loading"),resultDiv.style.visibility="visible",loadingIndicator.style.visibility="hidden";var t=JSON.parse(e.responseText);if(t.length<1)resultDiv.innerHTML="<li>No results :(</li>";else for(var i=0;i<t.length;i++)node=document.createElement("li"),text=document.createElement("span"),sub=document.createElement("span"),br=document.createElement("br"),icon=document.createElement("i"),icon.classList.add("fab"),icon.classList.add("fa-youtube"),sub.textContent=" "+t[i].amount+" videos",sub.classList.add("sub"),text.textContent=" "+t[i].title,text.appendChild(br),text.appendChild(icon),text.appendChild(sub),node.classList.add(t[i].id),node.appendChild(text),""!=t[i].thumb&&(image=document.createElement("img"),image.src=t[i].thumb,node.appendChild(image)),resultDiv.appendChild(node),node.onclick=function(){window.open("/youtube/"+this.classList[0],"_self")}}},clearTimeout(timeout),timeout=setTimeout(function(){if(0!=input.value.length){var t=JSON.stringify({search:input.value});e.send(t)}},500)},document.getElementsByTagName("form")[0].onsubmit=function(e){e.preventDefault(),checkRegex()?window.open("/youtube/"+playlist,"_self"):autocomplete?window.open("/youtube/"+autocomplete,"_self"):document.getElementsByTagName("form")[0].submit()};
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -22,8 +22,8 @@
/* Plyr version
Warning: Plyr 3 support in very early stage
Temporary variable
Warning: Plyr 3 support is still considered alpha
Please remember to change file requests in play.html template
Default: 2
......@@ -61,25 +61,25 @@ Default: true
*/
var autoplayPlyr = true;
var controls = ["<div class='plyr__controls'>",
var controlsPlyr2 = ["<div class='plyr__controls'>",
"<button class='playPrevious' type='button' data-plyr='backward'>",
"<span class='fa fa-backward'></span>",
"<span class='fas fa-backward'></span>",
"<span class='plyr__sr-only'>Previous snippet</span>",
"</button>",
"<button type='button' data-plyr='play'>",
"<span class='fa fa-play'></span>",
"<span class='fas fa-play'></span>",
"<span class='plyr__sr-only'>Play</span>",
"</button>",
"<button type='button' data-plyr='pause'>",
"<span class='fa fa-pause'></span>",
"<span class='fas fa-pause'></span>",
"<span class='plyr__sr-only'>Pause</span>",
"</button>",
"<button class='playNext' type='button' data-plyr='forward'>",
"<span class='fa fa-forward'></span>",
"<span class='fas fa-forward'></span>",
"<span class='plyr__sr-only'>Next snippet</span>",
"</button>",
......@@ -106,17 +106,17 @@ var controls = ["<div class='plyr__controls'>",
"</span>",
"<button class='playComplete' type='button' data-plyr='complete'>",
"<span class='fa fa-plus-square'></span>",
"<span class='fas fa-plus-square'></span>",
"<span class='plyr__sr-only'>Complete snippet</span>",
"</button>",
"<button class='playMix' type='button' data-plyr='mix'>",
"<span class='fa fa-random'></span>",
"<span class='fas fa-random'></span>",
"<span class='plyr__sr-only'>Mix</span>",
"</button>",
"<button class='searchLyrics' type='button' data-plyr='lyrics'>",
"<span class='fa fa-file-text-o'></span>",
"<span class='fas fa-file-alt'></span>",
"<span class='plyr__sr-only'>Lyrics</span>",
"</button>",
......@@ -128,12 +128,12 @@ var controls = ["<div class='plyr__controls'>",
"</div>"].join("");
var options_plyr2 = {
var optionsPlyr2 = {
debug: false,
autoplay: autoplayPlyr,
iconUrl: '/static/img/plyr/plyr.svg',
blankUrl: '/static/blank.mp4',
html: controls,
html: controlsPlyr2,
tooltips: { controls: true, seek: true },
// "keyboardShorcuts" is a typo of Plyr 2, this will be fixed in Plyr 3
......@@ -141,7 +141,7 @@ var options_plyr2 = {
keyboardShorcuts: { focused: false, global: false }
};
var options_plyr3 = {
var optionsPlyr3 = {
autoplay: autoplayPlyr,
blankUrl: '/static/blank.mp4',
debug: true,
......@@ -150,30 +150,26 @@ var options_plyr3 = {
tooltips: { controls: true },
captions: { active: false },
controls: [
'play-large',
'play',
'progress',
'current-time',
'mute',
'volume',
'settings',
'fullscreen'
]
'play-large', 'play',
'progress', 'current-time',
'mute', 'volume',
'settings', 'fullscreen'
],
// Unsupported value of 'large' for quality
quality: { default: 'default', options: ['hd2160', 'hd1440', 'hd1080', 'hd720', 'large', 'medium', 'small', 'tiny', 'default'] }
};
// Plyr 2
if(plyrVersion == 2) {
var video = plyr.setup('.plyr', options_plyr2);
}
if(plyrVersion == 2) var video = plyr.setup('.plyr', optionsPlyr2);
// Plyr 3
if(plyrVersion == 3) {
var video = new Plyr('.plyr', options_plyr3);
var video = new Plyr('.plyr', optionsPlyr3);
video[0] = video;
}
var elementMessage = document.getElementsByClassName("message")[0];
var elementPlayPause = document.getElementsByClassName("playPause fa fa-play")[0];
var elementPlayPause = document.getElementsByClassName("playPause")[0];
var snippets = document.getElementById("snippets").children;
// debug function
......@@ -192,7 +188,7 @@ var showMessage = function(message, seconds) {
// sloppy fix for browser with antipathy for some es6 specifications (Safari *cough*)
if (typeof(seconds) === "undefined") seconds = 10;
elementMessage.innerHTML = '<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>' + " " + message;