Advertisement
Tredovsky

Active chatters count Twitch (Tampermonkey)

May 27th, 2025 (edited)
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Twitch unique active chatters count
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.2
  5. // @description  Ilyukha Mad Baza
  6. // @author       Tredovsky
  7. // @match        https://www.twitch.tv/*
  8. // @icon         https://www.google.com/s2/favicons?sz=64&domain=twitch.tv
  9. // @grant        none
  10. // @updateURL    https://pastebin.com/raw/xbtgiN8v
  11. // @downloadURL  https://pastebin.com/raw/xbtgiN8v
  12. // ==/UserScript==
  13.  
  14. (function() {
  15.     'use strict';
  16.     let date = new Date().toLocaleString();
  17.     const UPDATE_PERIOD_MS = 3000;
  18.     let nameSet = new Set();
  19.     let chattersCountEl;
  20.     let streamerPathname = window.location.pathname;
  21.  
  22.     setInterval(() => {
  23.         const nameElements = document.getElementsByClassName('chat-author__display-name');
  24.         const names = [...nameElements].map(ne => ne.innerText);
  25.  
  26.         if (window.location.pathname === streamerPathname) {
  27.           nameSet = nameSet.union(new Set(names));
  28.         } else {
  29.           nameSet = new Set(names);
  30.           date = new Date().toLocaleString();
  31.           streamerPathname = window.location.pathname;
  32.         }
  33.  
  34.         console.log(`Unique chatters in chat: ${nameSet.size}`);
  35.  
  36.         const viewerCountEl = document.querySelector('[data-a-target="animated-channel-viewers-count"]')?.parentElement;
  37.         if (!viewerCountEl) return;
  38.         if (chattersCountEl && viewerCountEl.contains(chattersCountEl)) viewerCountEl.removeChild(chattersCountEl);
  39.         chattersCountEl = document.createElement('p');
  40.         chattersCountEl.innerText = `(${nameSet.size})`;
  41.         chattersCountEl.title = `Начиная с ${date}`;
  42.         viewerCountEl.appendChild(chattersCountEl);
  43.     }, UPDATE_PERIOD_MS);
  44. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement