61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
|
// ==UserScript==
|
||
|
// @name Bypass Twitter Sensitive
|
||
|
// @namespace https://bubbletea.dev/
|
||
|
// @version 1.0
|
||
|
// @description Bypasses Twitter's "Caution: This profile may include potentially sensitive content" page
|
||
|
// @author shibao
|
||
|
// @include https://twitter.com*
|
||
|
// @downloadURL https://gitea.bubbletea.dev/shibao/bypass-twitter-sensitive/raw/branch/stable/bypass-twitter-sensitive.user.js
|
||
|
// @updateURL https://gitea.bubbletea.dev/shibao/bypass-twitter-sensitive/raw/branch/stable/bypass-twitter-sensitive.user.js
|
||
|
// @grant none
|
||
|
// ==/UserScript==
|
||
|
|
||
|
// from https://developer.mozilla.org/en-US/docs/Web/API/Node#recurse_through_child_nodes
|
||
|
function eachNode(rootNode, callback) {
|
||
|
if (!callback) {
|
||
|
const nodes = []
|
||
|
eachNode(rootNode, function (node) {
|
||
|
nodes.push(node)
|
||
|
})
|
||
|
return nodes
|
||
|
}
|
||
|
|
||
|
if (false === callback(rootNode)) {
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
if (rootNode.hasChildNodes()) {
|
||
|
const nodes = rootNode.childNodes
|
||
|
for (let i = 0, l = nodes.length; i < l; ++i) {
|
||
|
if (false === eachNode(nodes[i], callback)) {
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
(function () {
|
||
|
'use strict';
|
||
|
|
||
|
const observer = new MutationObserver(function (mutationList) {
|
||
|
for (const mutation of mutationList) {
|
||
|
for (const addedNode of mutation.addedNodes) {
|
||
|
// recurses through all child nodes as well
|
||
|
eachNode(addedNode, function (node) {
|
||
|
if (node.nodeName == 'SPAN' && node.innerHTML == 'Yes, view profile') {
|
||
|
const viewProfileBtn = node.closest("div[role='button']");
|
||
|
if (viewProfileBtn) { viewProfileBtn.click(); }
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
});
|
||
|
|
||
|
observer.observe(document, {
|
||
|
childList: true,
|
||
|
subtree: true,
|
||
|
attributes: true,
|
||
|
attributeFilter: ["role"]
|
||
|
});
|
||
|
})();
|