def parse_embeds(event_id, liveupdate_id, maxwidth=_EMBED_WIDTH): """Find, scrape, and store any embeddable URLs in this liveupdate. Return the newly altered liveupdate for convenience. Note: This should be used in async contexts only. """ if isinstance(liveupdate_id, basestring): liveupdate_id = uuid.UUID(liveupdate_id) try: event = LiveUpdateEvent._byID( event_id, read_consistency_level=tdb_cassandra.CL.QUORUM) liveupdate = LiveUpdateStream.get_update( event, liveupdate_id, read_consistency_level=tdb_cassandra.CL.QUORUM) except tdb_cassandra.NotFound: g.log.warning("Couldn't find event/liveupdate for embedding: %r / %r", event_id, liveupdate_id) return urls = _extract_isolated_urls(liveupdate.body) liveupdate.media_objects = _scrape_media_objects(urls, maxwidth=maxwidth) liveupdate.mobile_objects = _scrape_mobile_media_objects(urls) LiveUpdateStream.add_update(event, liveupdate) return liveupdate
def parse_embeds(event_id, liveupdate_id, maxwidth=_EMBED_WIDTH): """Find, scrape, and store any embeddable URLs in this liveupdate. Return the newly altered liveupdate for convenience. Note: This should be used in async contexts only. """ if isinstance(liveupdate_id, basestring): liveupdate_id = uuid.UUID(liveupdate_id) try: event = LiveUpdateEvent._byID(event_id) liveupdate = LiveUpdateStream.get_update(event, liveupdate_id) except tdb_cassandra.NotFound: g.log.warning("Couldn't find event/liveupdate for embedding: %r / %r", event_id, liveupdate_id) return urls = _extract_isolated_urls(liveupdate.body) liveupdate.media_objects = _scrape_media_objects(urls, maxwidth=maxwidth) LiveUpdateStream.add_update(event, liveupdate) return liveupdate
def GET_focus(self, target): """Get details about a specific update in a live thread.""" try: target = uuid.UUID(target) except (TypeError, ValueError): self.abort404() try: update = LiveUpdateStream.get_update(c.liveupdate_event, target) except tdb_cassandra.NotFound: self.abort404() if update.deleted: self.abort404() query = FocusQuery([update]) builder = LiveUpdateBuilder( query=query, skip=True, reverse=True, num=1, count=0) listing = pages.LiveUpdateListing(builder) wrapped_listing = listing.listing() c.js_preload.set_wrapped( "/live/" + c.liveupdate_event._id + ".json", wrapped_listing, ) content = pages.LiveUpdateFocusApp( event=c.liveupdate_event, listing=wrapped_listing, ) return pages.LiveUpdateEventFocusPage( content=content, focused_update=update, page_classes=["liveupdate-focus"], ).render()
def GET_focus(self, target): try: target = uuid.UUID(target) except (TypeError, ValueError): self.abort404() try: update = LiveUpdateStream.get_update(c.liveupdate_event, target) except tdb_cassandra.NotFound: self.abort404() if update.deleted: self.abort404() query = FocusQuery([update]) builder = LiveUpdateBuilder( query=query, skip=True, reverse=True, num=1, count=0) listing = pages.LiveUpdateListing(builder) wrapped_listing = listing.listing() c.js_preload.set_wrapped( "/live/" + c.liveupdate_event._id + ".json", wrapped_listing, ) content = pages.LiveUpdateFocusApp( event=c.liveupdate_event, listing=wrapped_listing, ) return pages.LiveUpdateEventFocusPage( content=content, focused_update=update, page_classes=["liveupdate-focus"], ).render()