您需要先安装一个扩展,例如 篡改猴、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.2
- // @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/*
- // @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){
- console.log(text);
- let re = /[noparse](.*)[/noparse]/g;
- let noparse = text.match(re);
- re = /\[h1\](.*?)\[\/h1\]/g;
- text = text.replace(re, '<div class="bb_h1">$1</div>');
- console.log(text);
- re = /\[b\](.*?)\[\/b\]/g;
- text = text.replace(re, '<b>$1</b>');
- console.log(text);
- re = /\[u\](.*?)\[\/u\]/g;
- text = text.replace(re, '<u>$1</u>');
- console.log(text);
- re = /\[i\](.*?)\[\/i\]/g;
- text = text.replace(re, '<i>$1</i>');
- console.log(text);
- re = /\[strike\](.*?)\[\/strike\]/g;
- text = text.replace(re, '<span class="bb_strike">$1</span>');
- console.log(text);
- re = /\[spoiler\](.*)\[\/spoiler\]/g;
- text = text.replace(re, '<span class="bb_spoiler"><span>$1</span></span>');
- console.log(text);
- re = /\[url=(.*?)\](.*?)\[\/url\]/g;
- text = text.replace(re, '<a class="bb_link" href="$1" target="_blank" rel="noreferrer">$2</a>');
- console.log(text);
- re = /([^>"]|^)(http|https|ftp)(:\/\/[^\s]*)/g;
- text = text.replace(re, '$1<a class="bb_link" href="$1" target="_blank" rel="noreferrer">$2$3</a>');
- console.log(text);
- re = /\[quote=([^;]*?)\](.*?)\[\/quote\]/g;;
- text = text.replace(re, '<blockquote class="bb_blockquote with_author"><div class="bb_quoteauthor"><b>$1</b>:</div>$2</blockquote>');
- console.log(text);
- re = /\[quote=([^;]*?);(\d*)\](.*?)\[\/quote\]/g;;
- text = text.replace(re, '<blockquote class="bb_blockquote with_author"><div class="bb_quoteauthor"><b><a href="#c$2">$1</a></b>:</div>$3</blockquote>');
- console.log(text);
- re = /\[quote\](.*?)\[\/quote\]/g;;
- text = text.replace(re, '<blockquote class="bb_blockquote"><div class="bb_quoteauthor"><b>$1</b>:</div>$2</blockquote>');
- console.log(text);
- re = /\[code\](.*?)\[\/code\]/g;
- text = text.replace(re, '<div class="bb_code">$1</div>');
- /*
- we still miss:
- - steam store widgets;
- - user content widgets;
- - youtube widgets;
- - numbered lists;
- - not numbered lists;
- */
- let index = 0;
- re = /\[noparse\](.*?)\[\/noparse\]/g;
- text = text.replace(re,() => noparse[index++]);
- console.log(text);
- 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));
- }
- }
- 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
- });
- })();