您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name XjKJKDEDJKE // @namespace http://tampermonkey.net/ // @version 0.4 // @description try to take over the world! // @author You // @match *https://brainly.in* // @grant GM.xmlHttpRequest // @grant GM_addStyle // ==/UserScript== /*--- Create a button in a container div. It will be styled and positioned with CSS. */ GM.xmlHttpRequest({ method: "GET", url: "https://brainly.in/api/28/api_global_rankings/view/0/1", headers: { "User-Agent": "Chrome/83.0.4103.116", // If not specified, navigator.userAgent will be used. "Accept": "text/xml" // If not specified, browser defaults will be used. }, onload: function(response) { var responseXML = null; // Inject responseXML into existing Object (only appropriate for XML content). if (!response.responseXML) { responseXML = new DOMParser() .parseFromString(response.responseText, "text/xml"); } var data = JSON.parse(response.responseText); var firstuser = {points:data.data[0].value,nick:data.users_data[0].nick, id:data.users_data[0].id, rank:data.users_data[0].ranks.names[0]}; var seconduser = {points:data.data[1].value,nick:data.users_data[1].nick, id:data.users_data[1].id, rank:data.users_data[1].ranks.names[0]}; var thirduser = {points:data.data[2].value,nick:data.users_data[2].nick, id:data.users_data[2].id,rank:data.users_data[2].ranks.names[0]}; var zNode = document.createElement ('div'); zNode.innerHTML = '<span class="sg-button__icon"><div class="sg-icon sg-icon--adaptive sg-icon--x24"><svg class="sg-icon__svg"><use xlink:href="#icon-settings"></use></svg></div></span><button class="sg-box sg-box--no-border sg-box brn-white-background-box-light-gray" id="myButton" type="button">' + 'Check Daily Ranking</button>' ; zNode.setAttribute ('id', 'myContainer'); zNode.setAttribute ('class', 'sg-box sg-box--no-border sg-box brn-white-background-box-light-gray'); document.body.appendChild (zNode); //--- Activate the newly added button. document.getElementById ("myButton").addEventListener ( "click", ButtonClickAction, false ); function ButtonClickAction (zEvent) { var zNode = document.createElement ('p'); var href1 = "/profile/"+firstuser.nick+"-"+firstuser.id; var href2 = "/profile/"+seconduser.nick+"-"+seconduser.id; var href3 = "/profile/"+thirduser.nick+"-"+thirduser.id; zNode.innerHTML = '<p><a style="background-color:Gold;" href="'+href1+'">'+firstuser.nick+'</a>-'+firstuser.points+' points '+firstuser.rank+'</p><br><p><a style="background-color:Orange;" href="'+href2+'">'+seconduser.nick+'</a>-'+seconduser.points+' points '+seconduser.rank+'</p><br><p><a style="background-color:Gray;" href="'+href3+'">'+thirduser.nick+'</a>-'+thirduser.points+' points '+thirduser.rank+'</p>'; document.getElementById ("myContainer").appendChild (zNode); } //--- Style our newly added elements using CSS. GM_addStyle ( multilineStr ( function () {/*! #myContainer { position: absolute; top: 8px; right: 16px; font-size: 20px; background: #ebf2f7; border: none; margin: 5px; opacity: 0.9; z-index: 222; padding: 40px 40px; } #myButton { cursor: pointer; } #myContainer p { color: black; background: #ebf2f7; font-size: 15px; } */} ) ); function multilineStr (dummyFunc) { var str = dummyFunc.toString (); str = str.replace (/^[^\/]+\/\*!?/, '') // Strip function () { /*! .replace (/\s*\*\/\s*\}\s*$/, '') // Strip */ } .replace (/\/\/.+$/gm, '') // Double-slash comments wreck CSS. Strip them. ; return str; }}});