您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows follower count next to channel name below twitch player in channel page
当前为
// ==UserScript== // @name Twitch Follower Count // @namespace https://github.com/aranciro/ // @version 0.1.2 // @license GNU GPL v3 // @description Shows follower count next to channel name below twitch player in channel page // @author aranciro // @homepage https://github.com/aranciro/Twitch-Follower-Count // @supportURL https://github.com/aranciro/Twitch-Follower-Count/issues // @include *://*.twitch.tv/* // @run-at document-idle // ==/UserScript== var currentChannel = ''; var channelNameNodeSelector = 'div.tw-align-items-center.tw-flex > a > h1'; var channelPartnerBadgeNodeSelector = 'div.tw-align-items-center.tw-flex > div.tw-align-items-center.tw-c-text-link.tw-flex.tw-full-height.tw-mg-l-05 > figure > svg'; (function() { console.log('Twitch Follower Count userscript - START'); try { run(); setInterval(function(){ run(); }, 5000); } catch (e) { console.log('Twitch Follower Count userscript - STOP (EXCEPTION) '); console.log(e); } })(); function run() { var channelNameNode = document.querySelector(channelNameNodeSelector); if (channelNameNode) { var channelName = channelNameNode.innerText; var followerCountNodes = document.getElementsByName('ChannelFollowerCount'); var followerCountNodesExist = followerCountNodes !== null && followerCountNodes !== undefined && followerCountNodes.length > 0; if (currentChannel !== channelName || !followerCountNodesExist) { currentChannel = channelName; getFollowerCount(channelNameNode, channelName); } } } function handleFollowerCountAPIResponse(http) { if (http.readyState == 4 && http.status == 200) { var obj = http.responseText; var jsonObj = JSON.parse(obj); var followers = jsonObj[0].data.user.followers.totalCount; var followerCountNodes = document.getElementsByName('ChannelFollowerCount'); var followerCountNodesExist = followerCountNodes !== null && followerCountNodes !== undefined && followerCountNodes.length > 0; if(followerCountNodesExist){ var i; for (i = 0; i < followerCountNodes.length; i++) { followerCountNodes[i].remove(); } } insertFollowerCountNode(followers); } } function getFollowerCount(channelNameNode, channelName){ var url = 'https://gql.twitch.tv/gql'; var jsonString = JSON.stringify([{ "operationName": "ChannelPage_ChannelFollowerCount", "variables": { "login": channelName }, "extensions": { "persistedQuery": { "version": 1, "sha256Hash": "87f496584ac60bcfb00db2ce59054b73155f297f1796e5e2418d685213233ad9" } } }]); var http = new XMLHttpRequest(); http.open('POST', url, true); http.setRequestHeader('Content-type', 'application/json'); http.setRequestHeader('Client-Id', 'kimne78kx3ncx6brgo4mv6wki5h1ko'); http.onreadystatechange = function() { handleFollowerCountAPIResponse(http, channelNameNode); }; http.send(jsonString); } function insertFollowerCountNode(followers) { var channelNameNode = document.querySelector(channelNameNodeSelector); var channelPartnerBadgeNode = document.querySelector(channelPartnerBadgeNodeSelector); var followerCountTextNode = document.createTextNode('(' + Number(followers).toLocaleString() + ')'); var followerCountNode = document.createElement('H2'); followerCountNode.setAttribute('name', 'ChannelFollowerCount'); followerCountNode.setAttribute('class','tw-c-text-alt-2 tw-font-size-5 tw-semibold'); followerCountNode.setAttribute('style','margin-left:10px!important;display:inline-block;'); followerCountNode.appendChild(followerCountTextNode); channelNameNode.style.display = 'inline-block'; if(channelPartnerBadgeNode) { channelPartnerBadgeNode.parentNode.insertBefore(followerCountNode, channelPartnerBadgeNode.nextSibling); } else { channelNameNode.parentNode.insertBefore(followerCountNode, channelNameNode.nextSibling); } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址