Mirv-Startpage/assets/js/script.js

112 lines
3.2 KiB
JavaScript
Executable File

/*
* Evening Startpage
* Inspired by https://github.com/jeroenpardon/sui
* You can find it at https://github.com/TB-96/Evening-Startpage
* Made by TB-96 2021
*
*/
// Time and date settings
function startTime() {
var currentDate = new Date();
var hr = parseInt(currentDate.getHours());
var min = parseInt(currentDate.getMinutes());
//Add a zero in front of numbers<10
if (min < 10) {
min = "0" + min;
}
document.getElementById("header-time").innerHTML = hr + ":" + min;
var dateOptions = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric"
}
var date = currentDate.toLocaleDateString("ru-RU", dateOptions);
document.getElementById("header-date").innerHTML = date;
var time = setTimeout(function(){ startTime() }, 60000);
}
// You can add your own random quotes and stuff here
/* const quotes = [
'Hello, world...',
'Goodbye world sudo rm -rf *',
'This is a random quote'
]; */
/* document.getElementById("header-quote").innerText = quotes[
Math.floor(Math.random() * quotes.length)
]; */
document.addEventListener('click', function (event) {
// If the clicked element doesn't have the right selector, bail
if (!event.target.matches('#link')) return;
// Otherwise, run your code...
document.body.style.opacity = 0;
}, false);
// SEARCH
const $s = {
qS: e => document.querySelector(e),
qA: e => document.querySelectorAll(e)
};
// You can add your own search query here for anything you're interested in.
// [command character]: ['search url', 'title']
function engines () {
return {
g: ['https://google.com/search?q=', 'Google'],
i: ['https://google.com/search?tbm=isch&q=', 'Google Images'],
yt: ['https://youtube.com/results?search_query=', 'Youtube'],
s: ['https://stackoverflow.com/search?q=', 'Stackoverflow'],
a: ['https://web.archive.org/web/*/', 'Archive'],
w: ['https://en.wikipedia.org/w/index.php?search=', 'Wikipedia'],
ya: ['https://yandex.ru/search/?text=', 'Yandex'],
};
}
var search = $s.qS('#search'),
input = $s.qS('#search input[type="text"]'),
engines = engines();
for (var key in engines)
$s.qS('.search-engines').innerHTML += `<li><p title="${engines[key][1]}">!${key}</p></li>`;
document.onkeypress = (e) => {
if (e.key == 's')
search.classList.add('active');
input.focus();
input.scrollIntoView();
search.onkeyup = (e) => {
let args = e.target.value.split(' '),
prefix = args[0],
engine = engines['g'][0], // the default engine (google in this case)
str = 0;
$s.qA('.search-engines li p').forEach((eng) => {
let current = eng.parentNode;
(prefix == eng.innerHTML)
? current.classList.add('active')
: current.classList.remove('active');
});
if (e.key == 'Enter') {
if (prefix.indexOf('!') == 0)
(engine = engines[prefix.substr(1)][0], str = prefix.length + 1);
window.location = engine + args.join(' ').substr(str).toString().replace(/\s+/m, '%20');
} else if (e.keyCode == 27)
search.classList.remove('active');
};
};
document.getElementById("container").addEventListener("DOMContentLoaded", startTime());