'Creates a new episode, creating Show(), Season() and
Episode()s as required. Called by _getShowData to populate show
Since the nice-to-use tvdb[1][24][\'name] interface
makes it impossible to do tvdb[1][24][\'name] = "name"
and still be capable of checking if an episode exists
so we can raise tvdb_shownotfound, we have a slightly
less pretty method of setting items.. but since the API
is supposed to be read-only, this is the best way to
do it!
The problem is that calling tvdb[1][24][\'episodename\'] = "name"
calls __getitem__ on tvdb[1], there is no way to check if
tvdb.__dict__ should have a key "1" before we auto-create it'

def _setItem(self, sid, seas, ep, attrib, value):

    if (sid not in self.shows):
        self.shows[sid] = Show()
    if (seas not in self.shows[sid]):
        self.shows[sid][seas] = Season(show=self.shows[sid])
    if (ep not in self.shows[sid][seas]):
        self.shows[sid][seas][ep] = Episode(season=self.shows[sid][seas])
    self.shows[sid][seas][ep][attrib] = value
