GameFAQs post numberer

Numbers posts on gameFAQs.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        GameFAQs post numberer
// @version     1
// @author      King of Cats
// @namespace   Cats
// @description Numbers posts on gameFAQs.
// @include     http://www.gamefaqs.com/boards/*
// @grant       none
// ==/UserScript==

// The script assumes you have GameFAQs' numbering disabled; probably doubles up on post numbers or breaks otherwise.

var postNumbers = document.evaluate('//td[contains(@class,"author")]//a[@name]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

if (postNumbers.snapshotItem(0) != null) {
	
	function padMe(num) {
		var pad = num + '';
		while(pad.length < 3) {
				pad = "0" + pad;
			}
		return pad;
	}
	
	for (var i = 0; i < postNumbers.snapshotLength; i++) {
		var number = postNumbers.snapshotItem(i).getAttribute("name");
		
		var leftOfMessage = (document.getElementsByClassName("msg_stats_left")[0] != null);
		if (!leftOfMessage) {
			var appendedDivider = document.createTextNode(" | ");
			postNumbers.snapshotItem(i).parentNode.appendChild(appendedDivider);
			
			var appendedNumber = document.createTextNode("#"+padMe(number));
			postNumbers.snapshotItem(i).parentNode.appendChild(appendedNumber);
		} else {
			var appendedNumber = document.createTextNode("#"+padMe(number));
			var lineBreak = document.createElement("br");
			postNumbers.snapshotItem(i).parentNode.insertBefore(lineBreak,postNumbers.snapshotItem(i).parentNode.childNodes[0]);
			postNumbers.snapshotItem(i).parentNode.insertBefore(appendedNumber,postNumbers.snapshotItem(i).parentNode.childNodes[0]);
		}
	}
}