Move Tag Posts Count

Moves the tag's posts count after the tag name on a webpage with specific elements.

目前為 2023-06-18 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Move Tag Posts Count
// @version      1.1
// @description  Moves the tag's posts count after the tag name on a webpage with specific elements.
// @include      https://chan.sankakucomplex.com/post/*
// @grant        none
// @license      MIT
// @namespace https://greasyfork.org/users/1104432
// ==/UserScript==

(function() {
    'use strict';

// Function to move the tag's posts count after the tag name for each element
function moveTagPostsCountForAll() {
    var tagContainers = document.querySelectorAll('div[id^="tag_container"]'); // Find all tag container elements

    // Iterate through each tag container element
    tagContainers.forEach(function(tagContainer) {
        var tagLink = tagContainer.querySelector('a[id^="tag"]'); // Find the tag link element inside the container
        var postsCount = getCount(tagContainer.querySelector('span[role="tooltip"] span:nth-of-type(1)').innerHTML); // Find the posts count element inside the tooltip

        // Check if both the tag link and posts count elements exist
        if (tagLink && postsCount) {
            // Move the posts count element after the tag link
            tagLink.parentNode.insertBefore(postsCount, tagLink.nextSibling);
        }
    });
}

function getCount(details) {
  var re = new RegExp("Posts: (.+?)(<br>)", "g");
  var transformedNumber = transformNumber(re.exec(details)[1]);

  // Create a span element to wrap the transformed number and apply the gray color
  var span = document.createElement('span');
  span.style.color = 'gray';
  span.appendChild(document.createTextNode(' ' + transformedNumber));

  return span;
}

function transformNumber(numberString) {
    const numberParts = numberString.trim().split(/(\d+\.?\d*)([KMB])?/);
    let number = parseFloat(numberParts[1]);
    const suffix = numberParts[2];

    if (suffix === 'K') {
        number *= 1000;
    } else if (suffix === 'M') {
        number *= 1000000;
    }

    return number.toLocaleString("ro-RO", {
        useGrouping: true
    });
}

// Call the function to move the tag's posts count after the tag name for all elements
moveTagPostsCountForAll();


})();