Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Tripcode breaker kot v2
- // @description Breaks weak tripcodes on 4chan.
- // @include https://kotchan.org/chat/*
- // @grant GM_xmlhttpRequest
- // ==/UserScript==
- function showTrip (e) {
- var tnode = document.evaluate("./text()", e.target, null, XPathResult.ANY_TYPE, null).iterateNext();
- if (tnode != null) tnode.nodeValue = e.target.getAttribute("trip");
- }
- function showPWD (e) {
- var tnode = document.evaluate("./text()", e.target, null, XPathResult.ANY_TYPE, null).iterateNext();
- if (tnode != null) tnode.nodeValue = e.target.getAttribute("pwd");
- }
- function setName (e) {
- var nameMatches = document.getElementsByName("chat_name");
- if ( nameMatches.length > 0 ){
- var namePath = "ancestor-or-self::output[@class='trip_code']/preceding-sibling::span[@class='chat_name']/descendant::text()";
- var namemode = document.evaluate(namePath, e.target, null, XPathResult.ANY_TYPE, null).iterateNext();
- var name = ( nameNode != null ) ? nameNode.nodeValue : "";
- for (var i = 0; i < name.length; i++) {
- if (name.charAt(i) == "\u202B" || name.charAt(i) == "\u202E") {
- name = name.substr(0, name.length - 1);
- } else {
- break;
- }
- }
- nameMatches[0].value = name + e.target.getAttribute("pwd");
- }
- }
- function lookUp (trips) {
- console.log("Looking up trips.");
- for (var i = 0; i < trips.snapshotLength; i++){
- var tripNode = trips.snapshotItem(i);
- var trip = tripNode.nodeValue;
- var parts = trip.match(/([^!]*)((\![^!]+)?)((\!\![^!]+)?)/);
- var pwd = parts[1];
- if (parts[2] != ""){
- if (parts[2] in brokenTrips) {
- pwd += brokenTrips[parts[2]];
- } else {
- pwd += parts[2];
- }
- }
- if (parts[4] != "") {
- if (parts[4] in brokenTrips) {
- if (parts[2] == "") pwd += "#";
- pwd += brokenTrips[parts[4]];
- } else {
- pwd += parts[4];
- }
- }
- if (pwd != trip) {
- cracked++;
- tripNode.nodeValue = pwd;
- tripNode.parentNode.setAttribute("trip", trip);
- tripNode.parentNode.setAttribute("pwd", pwd);
- tripNode.parentNode.addEventListener("mouseover", showTrip, false);
- tripNode.parentNode.addEventListener("mouseout", showPWD, false);
- tripNode.parentNode.addEventListener("click", setName, false);
- }
- }
- console.log("Found "+trips.snapshotLength+" trips, cracked "+cracked);
- }
- function getTrips () {
- if ( !localStorage.tripBreak ) {
- console.log("Requesting trips");
- GM_xmlhttpRequest({
- method: "GET",
- url: "http://m.uploadedit.com/bbtc/1560488240643.txt",
- onload: function (response) {
- var lines = response.responseText.split("\r\n");
- for (var i = 0; i < lines.length; i++) {
- var parts = lines[i].match(/(([^!]+)?)((\![^!]+)?)((\!\![^!]+)?)/);
- if (parts[3] != "") brokenTrips[parts[3]] = "#" + parts[1];
- if (parts[5] != "") brokenTrips[parts[5]] = "#" + parts[1];
- //console.log(brokenTrips.length)
- }
- }
- })
- lookUp(trips);
- localStorage.brokenTrips = JSON.stringify(brokenTrips);
- } else {
- console.log("Loading trips from localStorage");
- brokenTrips = JSON.parse(localStorage.brokenTrips);
- lookUp(trips);
- }
- console.log(brokenTrips.length,"after");
- }
- var tripPath;
- var trips;
- var cracked = 0;
- var brokenTrips = [];
- function load() {
- tripPath = "descendant::output[@class='trip_code']/descendant-or-self::*[text()!='']/text()";
- trips = document.evaluate(tripPath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
- console.log("Loading tripbreaker");
- getTrips();
- console.log("Trip breaker fully loaded");
- }
- window.onload = function() {setTimeout(function(){load();},8000)}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement