mirror of
https://github.com/nikdoof/ohayodash.git
synced 2025-12-23 06:49:23 +00:00
Initial commit
This commit is contained in:
95
ohayodash/static/js/search.js
Executable file
95
ohayodash/static/js/search.js
Executable file
@@ -0,0 +1,95 @@
|
||||
var sindex = 0;
|
||||
var cycle = false;
|
||||
|
||||
function start() {
|
||||
var query = getParameterByName('q');
|
||||
if (query) search(query.replaceAll("+", "%2B"));
|
||||
|
||||
document.getElementById('keywords').focus();
|
||||
|
||||
window.setInterval(function () {
|
||||
updatetime();
|
||||
}, 200);
|
||||
}
|
||||
|
||||
function handleKeyPress(e) {
|
||||
var key = e.keyCode || e.which;
|
||||
var text = document.getElementById("keywords").value.replaceAll("+", "%2B");
|
||||
var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);
|
||||
var subtext = text.substr(2 + option.length);
|
||||
if (key == 13) { // Search functions
|
||||
search(text);
|
||||
}
|
||||
if(key == 32){ //Space to go to search
|
||||
document.getElementById("keywords").focus();
|
||||
}
|
||||
sindex = 0;
|
||||
cycle = false;
|
||||
}
|
||||
|
||||
function search(text) {
|
||||
var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);
|
||||
var subtext = text.substr(2 + option.length);
|
||||
if (text[0] === '/') {
|
||||
if (text.indexOf(' ') > -1) {
|
||||
switch (option) {
|
||||
case "d":
|
||||
window.location = "https://duckduckgo.com/?q=" + subtext;
|
||||
break;
|
||||
case "i":
|
||||
window.location = "https://www.imdb.com/find?q=" + subtext;
|
||||
break;
|
||||
case "r":
|
||||
window.location = "https://www.reddit.com/search?q=" + subtext;
|
||||
break;
|
||||
case "y":
|
||||
window.location = "https://www.youtube.com/results?search_query=" + subtext;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
var option = text.substr(1);
|
||||
switch (option) {
|
||||
case "d":
|
||||
window.location = "https://www.duckduckgo.com";
|
||||
break;
|
||||
case "y":
|
||||
window.location = "https://www.youtube.com";
|
||||
break;
|
||||
case "r":
|
||||
window.location = "https://reddit.com";
|
||||
break;
|
||||
case "s":
|
||||
window.location = "https://open.spotify.com";
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (validURL(text)) {
|
||||
if (containsProtocol(text))
|
||||
window.location = text;
|
||||
else
|
||||
window.location = "https://" + text;
|
||||
} else {
|
||||
window.location = "https://www.google.com/search?q=" + text;
|
||||
}
|
||||
}
|
||||
|
||||
// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url
|
||||
function validURL(str) {
|
||||
var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
|
||||
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
|
||||
'((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
|
||||
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
|
||||
'(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
|
||||
'(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
|
||||
return !!pattern.test(str);
|
||||
}
|
||||
|
||||
function containsProtocol(str) {
|
||||
var pattern = new RegExp('^(https?:\\/\\/){1}.*', 'i');
|
||||
return !!pattern.test(str);
|
||||
}
|
||||
|
||||
String.prototype.replaceAll = function(search, replacement) {
|
||||
var target = this;
|
||||
return target.split(search).join(replacement);
|
||||
};
|
||||
139
ohayodash/static/js/themer.js
Executable file
139
ohayodash/static/js/themer.js
Executable file
@@ -0,0 +1,139 @@
|
||||
const setValue = (property, value) => {
|
||||
if (value) {
|
||||
document.documentElement.style.setProperty(`--${property}`, value);
|
||||
|
||||
const input = document.querySelector(`#${property}`);
|
||||
if (input) {
|
||||
value = value.replace('px', '');
|
||||
input.value = value;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const setValueFromLocalStorage = property => {
|
||||
let value = localStorage.getItem(property);
|
||||
setValue(property, value);
|
||||
};
|
||||
|
||||
const setTheme = options => {
|
||||
for (let option of Object.keys(options)) {
|
||||
const property = option;
|
||||
const value = options[option];
|
||||
|
||||
setValue(property, value);
|
||||
localStorage.setItem(property, value);
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
setValueFromLocalStorage('color-background');
|
||||
setValueFromLocalStorage('color-text-pri');
|
||||
setValueFromLocalStorage('color-text-acc');
|
||||
});
|
||||
|
||||
const dataThemeButtons = document.querySelectorAll('[data-theme]');
|
||||
|
||||
for (let i = 0; i < dataThemeButtons.length; i++) {
|
||||
dataThemeButtons[i].addEventListener('click', () => {
|
||||
const theme = dataThemeButtons[i].dataset.theme;
|
||||
|
||||
switch (theme) {
|
||||
case 'blackboard':
|
||||
setTheme({
|
||||
'color-background': '#1a1a1a',
|
||||
'color-text-pri': '#FFFDEA',
|
||||
'color-text-acc': '#5c5c5c'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'gazette':
|
||||
setTheme({
|
||||
'color-background': '#F2F7FF',
|
||||
'color-text-pri': '#000000',
|
||||
'color-text-acc': '#5c5c5c'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'espresso':
|
||||
setTheme({
|
||||
'color-background': '#21211F',
|
||||
'color-text-pri': '#D1B59A',
|
||||
'color-text-acc': '#4E4E4E'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'cab':
|
||||
setTheme({
|
||||
'color-background': '#F6D305',
|
||||
'color-text-pri': '#1F1F1F',
|
||||
'color-text-acc': '#424242'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'cloud':
|
||||
setTheme({
|
||||
'color-background': '#f1f2f0',
|
||||
'color-text-pri': '#35342f',
|
||||
'color-text-acc': '#37bbe4'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'lime':
|
||||
setTheme({
|
||||
'color-background': '#263238',
|
||||
'color-text-pri': '#AABBC3',
|
||||
'color-text-acc': '#aeea00'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'white':
|
||||
setTheme({
|
||||
'color-background': '#ffffff',
|
||||
'color-text-pri': '#222222',
|
||||
'color-text-acc': '#dddddd'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'tron':
|
||||
setTheme({
|
||||
'color-background': '#242B33',
|
||||
'color-text-pri': '#EFFBFF',
|
||||
'color-text-acc': '#6EE2FF'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'blues':
|
||||
setTheme({
|
||||
'color-background': '#2B2C56',
|
||||
'color-text-pri': '#EFF1FC',
|
||||
'color-text-acc': '#6677EB'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'passion':
|
||||
setTheme({
|
||||
'color-background': '#f5f5f5',
|
||||
'color-text-pri': '#12005e',
|
||||
'color-text-acc': '#8e24aa'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'chalk':
|
||||
setTheme({
|
||||
'color-background': '#263238',
|
||||
'color-text-pri': '#AABBC3',
|
||||
'color-text-acc': '#FF869A'
|
||||
});
|
||||
return;
|
||||
|
||||
case 'paper':
|
||||
setTheme({
|
||||
'color-background': '#F8F6F1',
|
||||
'color-text-pri': '#4C432E',
|
||||
'color-text-acc': '#AA9A73'
|
||||
});
|
||||
return;
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user