NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Muffin Counter for Callme // @namespace nincognito // @version 1.0.1 // @description Count entries in muffin.net // @author you // @copyright 2020, nincognito (https://openuserjs.org/users/nincognito) // @license NASA-1.3 // @require https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.2/babel.js // @require https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.16.0/polyfill.js // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js // @match naberu.com/* // @grant GM_xmlhttpRequest // @connect keksik.net // ==/UserScript== /* globals $ */ let FETCH_MUFFIN_CODE = false; console.log = function () {}; let getMuffinUrl = (phone) => "https://keksik.net/phone/" + phone; let getMuffinAnchor = (phone) => $("<a>").attr({ href: getMuffinUrl(phone), target: "_blank" }).text("🧁"); let getStatusLabel = (status) => $("<sub>").css({ "font-weight": 100 }).text(status); let pathname = window.location.pathname; if (pathname === "/" || pathname.split("/")[1] === "search") { let cardHeaders = pathname === "/" ? $(".container.mob .card-title") : $(".row .card-title"); console.log("Cards: %s", cardHeaders.length); cardHeaders.each((i, headerEl) => { let profileQuickViewUrl = $(headerEl).find(".link-default").data("href"); $.ajax({ url: profileQuickViewUrl, cache: false, timeout: 5000, dataType: "html", headerJq: $(headerEl), error: (xhr, status, exception) => console.error("Ajax error %s --- %s: %s", status, i + 1, profileQuickViewUrl), success: function (htmlData, status, xhr) { let phoneNumber = $(htmlData).find("a.copy-phone").text().slice(-10); let validPhoneNumber = /^\d{10}$/.test(phoneNumber); if (validPhoneNumber) this.headerJq.append(getMuffinAnchor(phoneNumber)); console.log("%s: %s%s %s", i + 1, (validPhoneNumber ? "" : "--- "), phoneNumber, profileQuickViewUrl); if (FETCH_MUFFIN_CODE) { var that = this; GM_xmlhttpRequest({ method: "GET", url: getMuffinUrl(phoneNumber), onload: (response) => that.header.append(getStatusLabel(response.status)) }); } } }); }); } else if (/\d+/.test(pathname.split("/").slice(-1)[0])) { // card route ends with digits let phoneNumber = $("a.number-search").text().trim(); $(".phone-item-large").prepend(getMuffinAnchor(phoneNumber)); } else { console.error("Uknown route: %s", window.location.href); }