diff options
Diffstat (limited to 'assets/js/search.js')
| -rwxr-xr-x | assets/js/search.js | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/assets/js/search.js b/assets/js/search.js new file mode 100755 index 0000000..14bc979 --- /dev/null +++ b/assets/js/search.js @@ -0,0 +1,122 @@ +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 == 9) { // Tab Completion Functions + e.preventDefault(); + e.stopPropagation(); + if (text[0] === ';') { + switch (option) { + case 't': + var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix']; + if (!subtext || cycle) { + cycle = true; + if (sindex > streamers.length - 1) sindex = 0; + document.getElementById("keywords").value = ';t ' + streamers[sindex++]; + return; + } + for (var streamer of streamers) { + if (subtext === streamer.substr(0, subtext.length)) { + document.getElementById("keywords").value = ';t ' + streamer; + return; + } + } + break; + } + } + } + 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 "am": + window.location = "https://www.allmusic.com/search/all/" + subtext; + break; + case "d": + window.location = "https://duckduckgo.com/?q=" + subtext; + break; + case "di": + window.location = "https://www.discogs.com/search/?q=" + subtext; + break; + case "i": + window.location = "https://www.imdb.com/find?q=" + subtext; + break; + case "m": + window.location = "https://www.themoviedb.org/search?query=" + subtext; + break; + case "r": + window.location = "https://www.reddit.com/search?q=" + subtext; + break; + case "q": + window.location = "https://www.qwant.com/?q=" + subtext; + break; + case "so": + window.location = "https://soundcloud.com/search?q=" + subtext; + break; + case "s": + window.location = "https://open.spotify.com/search/results/" + subtext; + break; + case "t": + window.location = "https://trakt.tv/search?query=" + subtext; + break; + case "tv": + window.location = "https://www.thetvdb.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.dukduckgo.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 { + window.location = "https://www.google.com/search?q=" + text; + } +} + + +String.prototype.replaceAll = function(search, replacement) { + var target = this; + return target.split(search).join(replacement); +};
\ No newline at end of file |