// ==UserScript==
// @name Forum Sayı Hizalama
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Mesaj ve görüntülenme sayılarını dt'nin sağına hizalar
// @match https://www.technopat.net/sosyal/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function fixPair(pair) {
if (!pair) return;
// Doğrudan çocuk dt ve dd var mı?
let dt = pair.querySelector(':scope > dt');
let dd = pair.querySelector(':scope > dd');
// Eğer wrapper içine alınmışlarsa, geri taşı
if (!dt || !dd) {
const dtAny = pair.querySelector('dt');
const ddAny = pair.querySelector('dd');
if (dtAny && ddAny) {
pair.insertBefore(dtAny, pair.firstChild);
pair.appendChild(ddAny);
// Boş wrapper'ları temizle
pair.querySelectorAll('div').forEach(div => {
if (!div.querySelector('dt') && !div.querySelector('dd')) div.remove();
});
dt = pair.querySelector(':scope > dt');
dd = pair.querySelector(':scope > dd');
} else {
return;
}
}
// Container'ı flex yap
const comp = window.getComputedStyle(pair);
if (comp.display !== 'flex' && comp.display !== 'inline-flex') {
pair.style.display = 'flex';
}
pair.style.alignItems = 'center';
pair.style.justifyContent = 'space-between';
// dt solda
dt.style.margin = 0;
dt.style.flex = '1 1 auto';
// dd sağda
dd.style.margin = 0;
dd.style.flex = '0 0 auto';
dd.style.textAlign = 'right';
// İçindeki link taşmasın
const a = dd.querySelector('a[id^="js-XF"]');
if (a) {
a.style.whiteSpace = 'nowrap';
a.style.display = 'inline-block';
}
}
// Tüm mevcut öğelere uygula
document.querySelectorAll('.pairs--justified').forEach(fixPair);
// Dinamik eklemeler için gözlemci
const mo = new MutationObserver(muts => {
muts.forEach(m => {
m.addedNodes.forEach(node => {
if (!(node instanceof Element)) return;
if (node.matches && node.matches('.pairs--justified')) {
fixPair(node);
} else if (node.querySelectorAll) {
node.querySelectorAll('.pairs--justified').forEach(fixPair);
}
});
});
});
mo.observe(document.documentElement || document.body, { childList: true, subtree: true });
})();