User blog:ElSeiver/Infobox Episode and modules

I have created a new sandboxed copy of Module:Ep/Info that uses an expanded sandbox Module:Ep/Decoder to provide information about an episode automatically from its official wiki episode code (i.e., the keys in Module:Ep/Array.) To see examples of these updated modules in action, you can check out this test page.

This module can now be used to populate a number of fields in Infobox Episode, as long as the episode code is present. This would result in some changes in how data is entered into Infobox Episode that will hopefully make editors' lives easier. I have some ideas for how we could utilize this and wanted to run it by the community.

Proposed steps
1) Update Module:Ep/Info and Module:Ep/Decoder with their sandboxed versions. It expands the content available in the Decoder, and Ep/Info then has many more fields of data it can return, given an episode code.

2) Remove  from the Infobox Episode parameters. Add  . The information represented by these three existing parameters is now present in the Decoder module. It can be invoked with the entered value for EpCode in the Infobox. The existing parameters are not as standardized, and GnSNum is mostly an archaic system of episode codes dating back to the, well, Geek & Sundry days, that would no longer be considered valid on this wiki; I think has mostly been deprecated and is just vestigial data on episode pages themselves. Creating a new parameter name of "EpCode" insures there will be no conflict with existing infobox fields and emphasizes that this is more standardized data.

3) Rewrite Infobox Episode so that it fully utilizes Module:Ep/Info and invokes it wherever possible. (Well, or the sandboxed version for now.) Template writing is not my strong suit, but I've started making changes in the sandbox. You can see a side-by-side of test cases here. Any feedback you have about what the finished box should look like will be most valuable. Ideally, it won't be too different from what's there already.

Here's the information the sandboxed version is getting from the module, roughly top to bottom:
 * Episode name
 * Linked campaign the episode is part of (in the top subheader), as well as adding the appropriate episode category
 * (still needs formatting fixes for seasons, e.g. Calamity)
 * Transcript location (next to VOD and/or Podcast links)
 * Linked relevant list of episodes (in the footer)

4) Propagate this new EpCode param across all existing episode pages. I am more than happy to do repetitive tasks using my good ol' reliable pywikibot. We can carefully order the roll-out events so that the infobox never experiences any downtime, such as first adding the EpCode field to episode pages, then taking the sandboxed version of the template live, and finally deleting the obsolete parameters from each infobox.

5) Update all relevant template and module documentation and test cases Happy to take care of this as well!

6) Optionally, also delete the vast majority of the existing 'Name' field entries in the infoboxes and use Ep/Info to populate that field as well. The episode name infobox field is technically duplicated data from Ep/Array. We may want to keep this field around and set its default value to  so it can handle weird exceptions (i.e. episodes that aren't in Ep/Array), but it would again be better for data integrity if the episode title were stored in a single location and this value is either blank in the infobox or directly invokes the template. You can see in the test cases that relying more on the module and less on   means that episode titles will display correctly even in template space.

Conclusion
These changes will also give us room to grow, so that when more campaigns or shows are released, the information about them can be updated in a few select modules, and all templates that use episode information will continue to function as normal. Nothing visually should change for readers at all; this will impact editor workflows and strengthen our data integrity.

My ideal final outcome: All information that can be inferred or calculated from an episode code will be automatically handled by Infobox Episode.

Any questions, concerns, template suggestions, or other episode info that should also go into Ep/Decoder that I might have missed? A huge thank you to User:CaptainOfTheTidesBreath who has already provided incredibly helpful feedback and guidance.