您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add an IRC chat to picarto channels
当前为
- // ==UserScript==
- // @name pIcartoRC
- // @namespace https://wolvan.at/
- // @version 1.1.1
- // @description Add an IRC chat to picarto channels
- // @author Wolvan
- // @match https://picarto.tv/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- function createElementFromHTML(htmlString) {
- var div = document.createElement('div');
- div.innerHTML = htmlString.trim();
- // Change this to div.childNodes to support multiple top-level nodes
- return div.firstChild;
- }
- const ircBtnStr = `
- <div class="headingBtns ml-1" data-marker-type="irc" title="IRC" data-i18n="[title]chat.titles.irc" data-original-title="IRC">
- <i class="fas fa-fw fa-hashtag headerTabBtn clickThru" id="irc-fa">
- <div class="marker" id="markerIRC" style="display: none;"></div>
- </i>
- </div>
- `;
- const ircChatEmbbedStr = `
- <div class="scrollwrapperirc bg-dark functionsMenu ps ps--theme_default" id="irc-chat" data-perfectbar="" style="display: none;width:100%;height:100%;z-index:100">
- <iframe src="https://kiwiirc.com/client/irc.rizon.net/?&theme=cli#picartorc_%%CHANNEL" style="border:0; width:100%; height:100%;"></iframe>
- </div>
- `
- if (!document.querySelector("#irc-fa")) {
- const channelName = window.location.href.match(/picarto.tv\/([a-zA-Z0-9]*)\/?/)[1];
- const ircChat = createElementFromHTML(ircChatEmbbedStr.replace(/%%CHANNEL/g, channelName.toLowerCase()));
- document.querySelector("#mainContainer").append(ircChat);
- const ircBtn = createElementFromHTML(ircBtnStr);
- const headerBar = document.querySelector("#chatHeader > span.ml-auto.d-flex");
- headerBar.append(ircBtn);
- for (let el of headerBar.querySelectorAll(".headingBtns")) {
- el.addEventListener("click", function (e) {
- if (e.target === ircBtn) {
- ircBtn.querySelector(".marker").style.display = "block";
- ircChat.style.display = "block";
- } else {
- ircBtn.querySelector(".marker").style.display = "none";
- ircChat.style.display = "none";
- }
- });
- }
- }
- })();