'Search episode data for term, if it matches, return the Episode (self).
The key parameter can be used to limit the search to a specific element,
for example, episodename.
This primarily for use use by Show.search and Season.search. See
Show.search for further information on search'

def search(self, term=None, key=None):

    if (term is None):
        raise TypeError(u'must    supply    string    to    search    for    (contents)')
    for (cur_key, cur_value) in self.items():
        if (isinstance(cur_value, dict) or (key is None) or (cur_value is None)):
            continue
        (cur_key, cur_value) = (unicode(cur_key).lower(), unicode(cur_value).lower())
        if (cur_key != key):
            continue
        if (cur_value.find(term.lower()) > (-1)):
            return self
