您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Attempts to record tasks submitted to kikora and delivers the correct results to everyone else
- // ==UserScript==
- // @name Kikora hax
- // @namespace Danielv123
- // @version 1.1.1
- // @description Attempts to record tasks submitted to kikora and delivers the correct results to everyone else
- // @author You
- // @match *.kikora.no/*
- // @require http://code.jquery.com/jquery-3.1.0.js
- // @grant GM_xmlhttpRequest
- // ==/UserScript==
- var haxServer = "http://81.167.2.56:8090";
- // expected name in JSON fields is something like C21803|C22001|C22022|188431
- // it is grabbed from the URL up top, but URL parsing is unreliable so this may break for some.
- // Datamine for the correct answer and send it to a server for future abuse
- function getCorrectAnswer() {
- let url = document.location.href.replace("HWA|", "").replace("|", "/").replace("|", "/").split(/[/:]+/);
- let x = false;
- let name = "";
- try{
- x = document.querySelector(".answer-trophy").childNodes[1].childNodes[0].dataset.title;
- name = url[7]+"|"+url[8]+"|"+url[9]+"|"+url[10];
- } catch (e){}
- if(x){
- console.log("Found answer! " + x);
- GM_xmlhttpRequest({
- method: "POST",
- url: haxServer + "/api/place",
- data: JSON.stringify({name: name, answer: x}),
- headers: {
- "Content-Type": "application/json"
- },
- onload: function(data) {
- if(data /*&& typeof data == "string"*/){
- console.log("Sent answer! " + x);
- }
- }
- });
- }
- }
- setInterval(getCorrectAnswer,1000);
- function outputSolution(string){
- document.querySelector("#userscript").innerHTML = string;
- }
- // try checking the last hint (which doesn't show up as a hint since its the answer)
- url = document.location.href.replace("HWA|", "").replace("|", "/").replace("|", "/").split(/[/:]+/);
- console.log(url);
- console.log("Book: " + url[7] + " Theme: " + url[8] + " Chapter: " + url[9] + " Task: " + url[10]);
- // Using this function is not recommended so I disabled it below by commenting it out. Turns out it places a lot of strain on kikoras servers so they called me and asked me to turn it off :P
- // I am still going to leave it in as it works nicely if called with a number liker 15 or 30
- function wasddas(number) {
- number = number - 1;
- (function(number){
- url = document.location.href.replace("HWA|", "").replace("|", "/").replace("|", "/").split(/[/:]+/);
- $.ajax({
- type: "POST",
- url: "/k/json",
- data: 'request={"solution":{"containerid":"'+url[9]+'","exerciseid":'+url[10]+',"timeusedforevent":'+666+',"calculationid":0,"solutionid":' + number + ',"newcalculation":false,"lcode":"nb"}}',
- dataType: "json",
- success: function(data) {
- if(data[0].solution){
- console.log(number);
- console.log("Hint found!");
- console.log(JSON.parse(data[0].solution.esl.replace("[[km:","").replace("]]","")).text);
- outputSolution(JSON.parse(data[0].solution.esl.replace("[[km:","").replace("]]","")).text);
- } else {
- console.log("Not found :'(");
- if (number>-10){
- wasddas(number);
- }
- }
- },
- error: function() {
- // alert('error handing here');
- }
- });
- })(number);
- }
- $('body').append("<div id='userscript' style='position:fixed;background-color:white;z-index:100000000;bottom:0px;right:0px;height:50px;width:150px;'></div>");
- // start it up
- setInterval(function(){
- //wasddas(30);
- let url = document.location.href.replace("HWA|", "").replace("|", "/").replace("|", "/").split(/[/:]+/);
- data = {
- name: url[7]+"|"+url[8]+"|"+url[9]+"|"+url[10],
- };
- GM_xmlhttpRequest({
- method: "POST",
- url: haxServer + "/api/get",
- data: JSON.stringify(data),
- headers: {
- "Content-Type": "application/json"
- },
- onload: function(data) {
- //console.log("Got answer from server! " + JSON.stringify(data));
- if(data && typeof data == "object"){
- //console.log("Got answer from server! " + data.responseText);
- outputSolution(data.responseText);
- }
- }
- });
- console.log("Asking for answer to " + JSON.stringify(data));
- }, 5000);