NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name New Osu! Nav Search
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try take over the world!
// @author Haxorsnake
// @match https://osu.ppy.sh/*
// @grant none
// @require https://code.jquery.com/jquery-3.3.1.min.js
// @license MIT
// ==/UserScript==
(function() {
'use strict';
var open = window.XMLHttpRequest.prototype.open,
send = window.XMLHttpRequest.prototype.send;
function openReplacement(method, url, async, user, password) {
this._url = url;
return open.apply(this, arguments);
}
function sendReplacement(data) {
if(this.onreadystatechange) {
this._onreadystatechange = this.onreadystatechange;
}
console.log("YEYEYEYYEYEYE");
this.onreadystatechange = onReadyStateChangeReplacement;
return send.apply(this, arguments);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function onReadyStateChangeReplacement() {
//YOUR CODE FOR READYSTATECHANGE
await sleep(500);
createSearch(getElementByXpath('/html/body/div[4]/div[2]/div/div[2]/div[7]/a'));
if(this._onreadystatechange) {
return this._onreadystatechange.apply(this, arguments);
}
}
window.XMLHttpRequest.prototype.open = openReplacement;
window.XMLHttpRequest.prototype.send = sendReplacement;
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
function createSearch(loc) {
//let location = document.querySelector('.nav2').children[1];
let inputBar = document.createElement('input');
let searchLink = 'https://osu.ppy.sh/home/search?mode=all&query=';
//let searchButton = location.children[location.children.length - 1].firstElementChild;
inputBar.className = "search-header__input";
inputBar.style.height = "15px";
inputBar.style.color = "white";
inputBar.style.display = "none";
inputBar.style.margin = "auto";
loc.style.cursor = "pointer";
if(loc){
console.log(loc);
loc.removeAttribute("href");
console.log("Removed href");
}
loc.onclick = function(){
if(inputBar.style.display === "none") {
inputBar.style.display = "inline";
inputBar.addEventListener("keyup", function(event) {
event.preventDefault();
if(event.keyCode === 13){
console.log("Enter was clicked");
loc.href = searchLink + inputBar.value;
loc.click();
}
});
}else if(inputBar.style.display === "inline" && inputBar.value === ""){
inputBar.style.display = "none";
}
};
loc.parentElement.append(inputBar);
}
createSearch(getElementByXpath('/html/body/div[4]/div[2]/div/div[2]/div[7]/a'));
})();