Given:
        soup: a bs4 element containing a row from the current media list

      Return a tuple:
        (media object, dict of this row's parseable attributes)

def parse_entry(self, soup):
    """
      Given:
        soup: a bs4 element containing a row from the current media list

      Return a tuple:
        (media object, dict of this row's parseable attributes)
    """
    # parse the media object first.
    media_attrs = self.parse_entry_media_attributes(soup)
    media_id = media_attrs[u'id']
    del media_attrs[u'id']
    media = getattr(self.session, self.type)(media_id).set(media_attrs)

    entry_info = {}
    try:
      entry_info[u'started'] = utilities.parse_profile_date(soup.find(u'my_start_date').text)
    except ValueError:
      entry_info[u'started'] = None
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      entry_info[u'finished'] = utilities.parse_profile_date(soup.find(u'my_finish_date').text)
    except ValueError:
      entry_info[u'finished'] = None
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      entry_info[u'status'] = self.user_status_terms[int(soup.find(u'my_status').text)]
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      entry_info[u'score'] = int(soup.find(u'my_score').text)
      # if user hasn't set a score, set it to None to indicate as such.
      if entry_info[u'score'] == 0:
        entry_info[u'score'] = None
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      entry_info[u'last_updated'] = datetime.datetime.fromtimestamp(int(soup.find(u'my_last_updated').text))
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    return media,entry_info