您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows content hidden by Valve's automated content check system
当前为
- // ==UserScript==
- // @name Show not checked content
- // @namespace https://greasyfork.org/users/2205
- // @version 0.7
- // @description Shows content hidden by Valve's automated content check system
- // @author Ryzhehvost
- // @license Apache-2.0
- // @match https://steamcommunity.com/groups/*/discussions/*
- // @match https://steamcommunity.com/discussions/forum/*
- // @run-at document-idle
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- /* global g_rgForumTopicCommentThreads */
- /* global g_rgForumTopics*/
- function GetText( gidTopic, gidComment )
- {
- var CommentThread = g_rgForumTopicCommentThreads[gidTopic];
- var rgRawComment;
- if ( gidComment && gidComment != -1 )
- {
- rgRawComment = CommentThread.GetRawComment( gidComment );
- }
- else
- {
- // topic quoting
- rgRawComment = g_rgForumTopics[gidTopic].m_rgRawData;
- }
- return rgRawComment.text;
- }
- function FormatBBCode(text){
- let re = /\[noparse\]([\s\S]*?)\[\/noparse\]/g;
- let noparse = text.match(re);
- re = /([^\]])\n([^\[])/g;
- text = text.replace(re, '$1<br>$2');
- re = /\[h1\]([\s\S]*?)\[\/h1\]/g;
- text = text.replace(re, '<div class="bb_h1">$1</div>');
- re = /\[b\]([\s\S]*?)\[\/b\]/g;
- text = text.replace(re, '<b>$1</b>');
- re = /\[u\]([\s\S]*?)\[\/u\]/g;
- text = text.replace(re, '<u>$1</u>');
- re = /\[i\]([\s\S]*?)\[\/i\]/g;
- text = text.replace(re, '<i>$1</i>');
- re = /\[strike\]([\s\S]*?)\[\/strike\]/g;
- text = text.replace(re, '<span class="bb_strike">$1</span>');
- re = /\[spoiler\]([\s\S]*)\[\/spoiler\]/g;
- text = text.replace(re, '<span class="bb_spoiler"><span>$1</span></span>');
- re = /\[url=(.*?)\]([\s\S]*?)\[\/url\]/g;
- text = text.replace(re, '<a class="bb_link" href="$1" target="_blank" rel="noreferrer">$2</a>');
- re = /([^>"]|^)https?:\/\/store\.steampowered\.com\/app\/(\d*)[^\s]*/g;
- text = text.replace(re, '$1<br/><iframe src="https://store.steampowered.com/widget/$2/?dynamiclink=1" width="100%" height="190" frameborder="0"></iframe>');
- re = /([^>"]|^)(http|https|ftp)(:\/\/[^\s]*)/g;
- text = text.replace(re, '$1<a class="bb_link" href="$2$3" target="_blank" rel="noreferrer">$2$3</a>');
- re = /\[quote=([^;]*?)\]([\s\S]*?)\[\/quote\]/g;
- text = text.replace(re, '<blockquote class="bb_blockquote with_author"><div class="bb_quoteauthor">Originally posted by <b>$1</b>:</div>$2</blockquote>');
- re = /\[quote=([^;]*?);(\d*)\]([\s\S]*?)\[\/quote\]/g;
- text = text.replace(re, '<blockquote class="bb_blockquote with_author"><div class="bb_quoteauthor">Originally posted by <b><a href="#c$2">$1</a></b>:</div>$3</blockquote>');
- re = /\[quote\]([\s\S]*?)\[\/quote\]/g;
- text = text.replace(re, '<blockquote class="bb_blockquote">$1</blockquote>');
- re = /\[code\]([\s\S]*?)\[\/code\]/g;
- text = text.replace(re, '<div class="bb_code">$1</div>');
- re = /\[list\]([\s\S]*?)\[\/list\]/gm;
- text = text.replace(re, '<ul class="bb_ul">$1</ul>');
- re = /\[olist\]([\s\S]*?)\[\/olist\]/gm;
- text = text.replace(re, '<ol>$1</ol>');
- re = /\[\*\]([\s\S]*?)$/gm;
- text = text.replace(re, '<li>$1</li>');
- let index = 0;
- re = /\[noparse\]([\s\S]*?)\[\/noparse\]/g;
- text = text.replace(re,() => noparse[index++]);
- return text;
- }
- function FixComments (comments){
- for (let i=comments.length-1; i>=0; i--) {
- let parent = comments[i].parentNode;
- let gidComment = parent.id.split('_')[2];
- parent.innerHTML = FormatBBCode(GetText( gidTopic, gidComment));
- //add a notice
- let noticeDiv = document.createElement("span");
- noticeDiv.className = "forum_comment_author_banned";
- noticeDiv.appendChild(document.createTextNode("(post awaiting analysis)"));
- parent.parentElement.querySelector("div.forum_author_menu").after(noticeDiv);
- }
- }
- let re = /.*discussions\/\d+\/(\d+)/g;
- let res = re.exec(document.URL);
- if (res===null){
- re = /.*forum\/\d+\/(\d+)/g;
- res = re.exec(document.URL);
- }
- let gidTopic = res[1];
- let comments = document.getElementsByClassName('needs_content_check');
- FixComments(comments);
- let mutationObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutation) {
- mutation.addedNodes.forEach( function(currentValue, currentIndex, listObj) {
- if (currentValue.nodeType == Node.ELEMENT_NODE) {
- let comments = currentValue.querySelectorAll("div[class^='needs_content_check']");
- FixComments(comments);
- }
- });
- });
- });
- mutationObserver.observe(document.documentElement, {
- childList: true,
- subtree: true
- });
- })();