Board Thread:Code Review/@comment-3328029-20150728140056

Hello,

So I recently completed a rewrite of my script after I finally figured out the Mediawiki API was a lot more intensive than I initially thought (in regards to using for this script). So with this rewrite I also tried to organize / comment my code so that others can hopefully understand what's going on.

First of all, encase you aren't aware, this script allows users to view Special:RecentChanges from multiple wikis all on one page, with RCs (Recent Changes) being marked so you can still identify what wiki that change is from.

So on code.2.js of the RecentChangesMultiple script, the main changes are using the API to grab some translations (for text normally found on Special:RecentChanges), for grabbing RecentChanges / site / user data (as well as logs since Wikia does support logparams yet for RCs API), a rewrite of the RCData / RCList "classes", an actual data object for storing wiki data, and the ability to run the script on more than 1 div on the same page (for whatever reason), among smaller reworks.

Flow:
 * The script has a check to make sure the script is only run once (to avoid weird conflicts if run personally and wiki-wide).
 * Translations are defined at the top ("TEXT" is user defined, "RC_TEXT" is loaded via API, although English defaults are defined for backup / fall-through.
 * module is for starting the script, doing things that should only be done once (hiding the rail), and loading the initial language info.
 * RecentChangesMultiple - Parses the data to be used in the script from the div wrapper on the page, loads the data, passes the data to WikiData, RCData, and RCList objects.
 * WikiData - Stores content about a specific wiki that RCs belong to, such as file path and favicon. Only needs to be created/initialized first time script runs. Has helper methods.
 * RCData - Keeps track of info for a specific RC, with a bunch of helper methods to parse through the info.
 * RCList - Actually displays the information on the page for a specific group of edits. Even if a RC isn't a "list" but a single change, this is what keeps track of them.
 * Utils - While not really part of the "flow", this has a bunch of helper methods that can be accessed from anywhere in the script.

As far as a code review, any constructive criticism is welcome, especially if it's related to memory management (since this will be refreshed multiple times). While my initial goal was to do as much of this without Jquery as possible (for fun), I'm not against using it for things that really shorten / better code. I'm also open to any suggestions / thoughts on the script itself.

I still plan on tweaking the script for things like rollback support, but the script as is should be completely functional, so if any major issues / bugs are found, don't assume they are a "work in progress". 