NeoGAF

NeoGAF is a forum dedicated to discussing video games and related topics in the video gaming industry, previously known as the Gaming-Age Forums from its inception in 1999 until April 2006. It's amongst one of the largest vBulletin forums in existence with the site reporting just shy of 120 million posts spread across about ~830K threads.
== Vital signs ==
Was extremely unstable in 2017 in the wake of a sexual harassment scandal with accusations involving the site's owner.https://www.polygon.com/2017/10/22/16516592/neogaf-tyler-malka-evilore-allegations-shutdownhttps://aotf.com/news/neogaf-currently-imploding-amid-accusations-of-sexual-harassment-by-owner/ This has sparked reddit-like riots on the forums, with several moderators resigning and users being asked to be banned from the site. Site performance has tanked, with it being completely unavailable at times. Much of the userbase has migrated to a new forum ResetEra.
The site situation has since stabilised.
== Structure ==
Site uses vBulletin as its forum software, commonly used on many forums such as Valve's Steam Users' Forums and numerous others.
===Threads===
All thread URLs are in this form:
http://www.neogaf.com/forum/showthread.php?t=$thread_id
Where $thread_id is between 1 and approximately 1500000 (as of October 24, 2017).
====Page Count====
The $page_count, which exists in threads with more than one page, could be found within the HTML. E.g.
 Page 1 of 32
 
The $page_count could be extracted using an HTML parser that supports CSS-style selectors (e.g. ). First select the "li" tag with the class name "pageof". Then extract the text within "li" tag. Trim any whitespace. And finally do a regex to extract the $page_count.
Once the page count is extracted, the URL to any other page is:
http://www.neogaf.com/forum/showthread.php?t=$thread_id&page=$page_number
where $page_number is between 1 and $page_count.
== Registration ==
Some forums, including the archive subforum, require you to login to view the threads.
Requires you to register through a non-free email account. It does not accept Gmail or Yahoo! email addresses.
== Page Validation ==
Both valid and invalid pages return HTTP 200 status code representing success. Therefore, in order to determine if a page is fetched correctly you cannot rely only on the status code; you must parse the HTML and test whether there are actual posts within a page or if there is an explicit message stating that a post does not exist.
To test if a thread actually contains posts, you could use an HTML parser and test if there exists any tags with classes named "post", "postbit-details-username", etc.
If a thread DOES_NOT_EXIST, the page will contain the following HTML code:
NeoGAF Message
	</tr>
	
		
		
			
			
				No Thread specified. If you followed a valid link, please notify the <a href="sendmessage.php">administrator</a>
			
			
		
		<!--
		
			<input type="submit" class="button" value="Go Back" accesskey="s" onclick="history.back(1); return false" />
		
		-->
		
Similarly, if a thread is INVALID, the page will display "NeoGAF Message" along with the text "Invalid Thread specified. If you followed a valid link, please notify the administrator"
If you are NOT_AUTHORIZED to access a thread (e.g. a thread is in the moderators-only forum), the page will will display "NeoGAF Message" and a login form containing the text "You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:".
If there are no posts in the thread and it displays neither of those messages, then it is an UNKNOWN_ERROR. An UNKNOWN_ERROR may be a connection problem or a could temporary server failure in serving the page, so it's best to re-fetch the threads with UNNOWN_ERRORs at a later time.
== References ==