Greasy Fork is available in English.
The most naughtiest qwq that you have never ever seen before.
- // ==UserScript==
- // @name qwq
- // @namespace https://github.com/ppzvpp
- // @description The most naughtiest qwq that you have never ever seen before.
- // @include *://twitter.com/*
- // @include *://weibo.com/*
- // @include *://*.weibo.com/*
- // @version 1
- // @grant none
- // @run-at document-idle
- // @icon https://github.com/ppzvpp/Userscript-qwq/raw/master/icon.png
- // ==/UserScript==
- /**
- * Created by makito on 2017/9/5. https://github.com/SumiMakito/Chrome-qwq
- * Version https://github.com/SumiMakito/Chrome-qwq/commit/12f38bec1e37f27991533258fcce73247d31ee55
- * Ported to userscript by ppzvpp on 2017/10/17. https://github.com/ppzvpp/Userscript-qwq
- * Tested with Greasemonkey on Firefox
- */
- var QWQ = "<span> qwq</span>";
- var scheduled = false;
- var currentSite = -1;
- var TWITTER = 0;
- var WEIBO = 1;
- var initRetries = 0;
- if (/(^.*\.weibo\.com$|^weibo\.com$)/g.exec(window.location.host) !== null) {
- currentSite = WEIBO;
- } else if (/(^twitter\.com$)/g.exec(window.location.host) !== null) {
- currentSite = TWITTER;
- }
- function qwqize() {
- if (currentSite === TWITTER) {
- var elements_tweet_text = document.getElementsByClassName("tweet-text");
- for (var i = 0; i < elements_tweet_text.length; i++) {
- var el = elements_tweet_text[i];
- if (el.getAttribute("qwq") === "true" ||
- el.innerHTML.endsWith(QWQ)) {
- continue;
- }
- el.innerHTML += QWQ;
- el.setAttribute("qwq", "true");
- }
- scheduled = false;
- }
- else if (currentSite === WEIBO) {
- var elements = document.getElementsByClassName("WB_text");
- for (var i = 0; i < elements.length; i++) {
- var el = elements[i];
- if (el.getAttribute("qwq") === "true") continue;
- if (el.getAttribute("node-type") === "feed_list_content") {
- if (el.innerHTML.endsWith(QWQ)) {
- continue;
- }
- el.innerHTML = el.innerHTML.replace(/([^q][^w][^q])(\/\/<a)/g, "$1qwq//<a"); // literally insert a qwq if the string doesn't end with qwq
- el.innerHTML = el.innerHTML.replace(/([a-zA-z])(qwq\/\/<a)/g, "$1 $2"); // avoid qwq being connected with alphabetic string
- el.innerHTML += QWQ;
- el.setAttribute("qwq", "true");
- } else if (el.getAttribute("node-type") === "feed_list_reason") {
- el.innerHTML += QWQ;
- el.setAttribute("qwq", "true");
- }
- }
- var buttons = document.getElementsByClassName("W_btn_a");
- for (var i = 0; i < buttons.length; i++) {
- var el = buttons[i];
- if (el.getAttribute("qwq") === "true") continue;
- if (el.getAttribute("node-type") === "submit") {
- if (el.innerHTML.endsWith(QWQ)) {
- continue;
- }
- el.innerText = "卖萌";
- el.setAttribute("qwq", "true");
- }
- }
- var pf_intro = document.getElementsByClassName("pf_intro");
- if (pf_intro !== null && pf_intro.length >= 1) {
- var intro = pf_intro[0];
- if (intro.getAttribute("qwq") !== "true"){
- intro.innerHTML += "<br>賣萌博主";
- intro.setAttribute("qwq", "true");
- }
- }
- scheduled = false;
- }
- }
- function schedule() {
- if (scheduled) return;
- scheduled = true;
- setTimeout(qwqize, 2000);
- }
- function init() {
- var done = false;
- if (currentSite === TWITTER) {
- var stream = document.getElementsByClassName("stream");
- if (stream !== null && stream.length >= 1) {
- document.getElementsByClassName("stream")[0].addEventListener("DOMNodeInserted", schedule, false);
- document.getElementById("global-new-tweet-button").innerHTML = '<span class="text">卖萌</span>';
- done = true;
- }
- }
- else if (currentSite === WEIBO) {
- var homefeed = document.getElementById("v6_pl_content_homefeed");
- var profilefeed = document.getElementById("Pl_Official_MyProfileFeed__22");
- if (homefeed !== null) {
- homefeed.addEventListener("DOMNodeInserted", schedule, false);
- done = true;
- } else if (profilefeed !== null) {
- profilefeed.addEventListener("DOMNodeInserted", schedule, false);
- done = true;
- }
- document.body.addEventListener("DOMNodeInserted", schedule, false);
- }
- if (!done) {
- if (initRetries++ < 10) {
- setTimeout(init, 1000);
- }
- } else {
- qwqize();
- }
- }
- init();