Opens posts that contains images in gallery mode by default
// ==UserScript==
// @name X (Twitter) Auto Gallery Mode
// @namespace Violentmonkey Scripts
// @match https://x.com/*/status/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=twitter.com
// @license MIT
// @grant none
// @version 1.0
// @author moh
// @description Opens posts that contains images in gallery mode by default
// ==/UserScript==
(function () {
'use strict';
function run() {
const link = document.querySelector('article[data-testid="tweet"][tabindex="-1"]')?.querySelector('[aria-labelledby]')?.querySelector('a[role="link"]') ?? null;
if (!link) {
return;
}
if (window.location.toString().includes('photo')) {
return;
}
console.log(
"%cUserScript",
"color: yellow; font-style: italic; background-color: blue;padding: 2px",
"redirecting from",
window.location.toString(),
"to",
link
);
const data = sessionStorage.getItem("userscript-redirect-"+link);
if (data) {
return;
}
link.click();
sessionStorage.setItem("userscript-redirect-"+link, 1);
}
run();
const observer = new MutationObserver((mutations) => {
mutations.forEach(() => {
run();
});
});
observer.observe(document.body, { subtree: true, childList: true });
})();