Moved some redundant code into another method in api function, and set it up to generate cache data when none exists for a campaign.
Merge branch 'd3test' of github.com:weareytm/Ragnarok into d3test