167 lines
4.3 KiB
HTML
167 lines
4.3 KiB
HTML
<html>
|
|
<head>
|
|
<title>Speed Dial</title>
|
|
<link rel="icon" href="https://pube.tk/favicon.ico" type="image/x-icon" />
|
|
<script>
|
|
/* Configuration */
|
|
var sortSubcategories = true; // Sort URLs alphabetically
|
|
var singleExpand = true; // Allow expanding one category at a time
|
|
|
|
|
|
var rounding = 8; // Cryptocurrency rounding to n-th digit
|
|
var cryptos = // List of cryptos (their IDs on CoinMarketCap) and respective values
|
|
{
|
|
'bitcoin' : 0.12345678,
|
|
'ethereum' : 0.12345678,
|
|
'monero' : 0.12345678,
|
|
};
|
|
var sites = // JSON tree structure of 'Group' : { 'Name' : 'URL' }
|
|
{
|
|
'Shopping' :
|
|
{
|
|
'eBay' : 'https://www.ebay.com/',
|
|
'Amazon' : 'https://www.amazon.com/',
|
|
},
|
|
'Search' :
|
|
{
|
|
'DuckDuckGo' : 'https://duckduckgo.com/',
|
|
'Qwant' : 'https://www.qwant.com/',
|
|
},
|
|
'Entertainment':
|
|
{
|
|
'asdf' : 'http://asdf.com/',
|
|
},
|
|
'Videos':
|
|
{
|
|
'HookTube' : 'http://hooktube.com',
|
|
}
|
|
};
|
|
</script>
|
|
<style>
|
|
body {
|
|
background-color: #151515;
|
|
color: #bbb;
|
|
font-family: Arial;
|
|
-moz-user-select: -moz-none;
|
|
-khtml-user-select: none;
|
|
-webkit-user-select: none;
|
|
}
|
|
a {
|
|
color: #BB7D38;
|
|
text-decoration: none;
|
|
display:block;
|
|
|
|
}
|
|
a:hover {
|
|
color: #FF8500;
|
|
}
|
|
.hidden {
|
|
display: none;
|
|
}
|
|
.navBlock {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
.expandLink {
|
|
font-weight: bold;
|
|
}
|
|
.hidden > a {
|
|
color: #bbb;
|
|
}
|
|
#mainNav {
|
|
margin: auto;
|
|
text-align: center;
|
|
position: relative;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
display: none;
|
|
}
|
|
#cryptoTicker {
|
|
position: fixed;
|
|
bottom: 0;
|
|
right: 0;
|
|
display: none;
|
|
}
|
|
#cryptoTable td {
|
|
padding: 0px 15px;
|
|
text-align: center;
|
|
font-family: "Lucida Console", Monaco, monospace;
|
|
font-size: 0.6em;
|
|
}
|
|
</style>
|
|
<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script> <!-- Gets cached, can be replaced with Google hosted library -->
|
|
<script>
|
|
$(document).ready(function(){
|
|
// Subcategory sort
|
|
if(sortSubcategories)
|
|
{
|
|
jQuery.each(sites, function(group, values) {
|
|
unordered = this;
|
|
const ordered = {};
|
|
Object.keys(unordered).sort().forEach(function(key) {
|
|
ordered[key] = unordered[key];
|
|
});
|
|
sites[group] = ordered;
|
|
});
|
|
}
|
|
// Navigation menu
|
|
jQuery.each(sites, function(group, values) {
|
|
urlStr = "";
|
|
jQuery.each(values, function(name, url) {
|
|
urlStr += '<a href="'+url+'">'+name+'</a>';
|
|
});
|
|
if($('#mainNav').children().length) {
|
|
$('#mainNav').append(' :: ');
|
|
}
|
|
$('#mainNav').append('<div class="navBlock"><a href="#" class="expandLink">'+group+'</a><div class="hidden">'+urlStr+'</div></div>');
|
|
});
|
|
$("#mainNav").fadeIn();
|
|
// Subcategory URL expansion
|
|
$('.expandLink').bind('click', function () {
|
|
if(singleExpand && $(this).siblings().is(":hidden"))
|
|
$('.expandLink').siblings().slideUp(); // "Closes" all categories
|
|
$(this).siblings().slideToggle(200);
|
|
});
|
|
|
|
// Ticker table (Async)
|
|
var usdtotal = 0.0;
|
|
jQuery.each(cryptos, function(key, value) {
|
|
$.ajax({
|
|
url: "https://api.coinmarketcap.com/v1/ticker/"+key+"/",
|
|
async: false,
|
|
cache: true,
|
|
success: function(data) {
|
|
usdtotal += usdval = (value*parseFloat(data[0].price_usd));
|
|
$('#cryptoTable tr:last').after(
|
|
'<tr><td>'+
|
|
data[0].rank+
|
|
'</td><td><a href="https://coinmarketcap.com/currencies/'+key+'/">'+
|
|
data[0].symbol+
|
|
'</a></td><td>'+
|
|
value.toFixed(rounding)+
|
|
'</td><td>'+
|
|
parseFloat(data[0].price_usd).toFixed(2)+
|
|
'</td><td>'+
|
|
usdval.toFixed(2)+
|
|
'</tr></tr>');
|
|
}
|
|
});
|
|
});
|
|
$('#cryptoTable tr:last').after('<tr><td></td><td></td><td></td><td></td><td>'+usdtotal.toFixed(2)+'</td></tr>')
|
|
$("#cryptoTicker").fadeIn();
|
|
});
|
|
</script>
|
|
<meta name="Abhorrent_Anger" content="Speed Dail">
|
|
<meta http-equiv="Cache-control" content="public">
|
|
</head>
|
|
<body bgcolor="#151515">
|
|
<div id="cryptoTicker">
|
|
<table id="cryptoTable">
|
|
<tr><td>Rank</td><td>Ticker</td><td>Hold</td><td>USD</td><td>Hold USD</td></tr>
|
|
</table>
|
|
</div>
|
|
<div id="mainNav">
|
|
</div>
|
|
</body>
|
|
</html>
|