def contents(self, **kwargs): from sefaria.sheets import get_sheet_listing_data d = super(UserHistory, self).contents(**kwargs) if kwargs.get("for_api", False): keys = { 'ref': '', 'he_ref': '', 'book': '', 'versions': {}, 'time_stamp': 0, 'saved': False, 'delete_saved': False, 'is_sheet': False, 'sheet_id': -1, 'sheet_owner': '', 'sheet_title': '', } d = { key: d.get(key, default) for key, default in list(keys.items()) } if kwargs.get("annotate", False): try: ref = Ref(d["ref"]) if ref.is_sheet(): d.update(get_sheet_listing_data(d["sheet_id"])) else: d["text"] = { "en": TextChunk(ref, "en").as_sized_string(), "he": TextChunk(ref, "he").as_sized_string() } except Exception as e: logger.warning( "Failed to retrieve text for history Ref: {}".format( d['ref'])) return d return d