def post(self): entity = ndb.Key(urlsafe=util.get_required_param(self, 'key')).get() if not entity: self.abort(400, 'key not found') if entity.key.kind() == 'Response': util.add_propagate_task(entity) elif entity.key.kind() == 'BlogPost': util.add_propagate_blogpost_task(entity) else: self.abort(400, 'Unexpected key kind %s', entity.key.kind()) self.messages.add('Retrying. Refresh in a minute to see the results!') self.redirect(entity.source.get().bridgy_url(self))
def post(self): entity = ndb.Key(urlsafe=util.get_required_param(self, 'key')).get() if not entity: self.abort(400, 'key not found') # start all target URLs over if entity.status == 'complete': entity.status = 'new' targets = set(entity.unsent + entity.sent + entity.skipped + entity.error + entity.failed) entity.sent = entity.skipped = entity.error = entity.failed = [] # run OPD to pick up any new SyndicatedPosts. note that we don't refetch # their h-feed, so if they've added a syndication URL since we last crawled, # retry won't make us pick it up. background in #524. if entity.key.kind() == 'Response': source = entity.source.get() for activity in [json.loads(a) for a in entity.activities_json]: originals, mentions = original_post_discovery.discover( source, activity, fetch_hfeed=False, include_redirect_sources=False) targets |= original_post_discovery.targets_for_response( json.loads(entity.response_json), originals=originals, mentions=mentions) entity.unsent = targets entity.put() # clear any cached webmention endpoints memcache.delete_multi(util.webmention_endpoint_cache_key(url) for url in targets) if entity.key.kind() == 'Response': util.add_propagate_task(entity) elif entity.key.kind() == 'BlogPost': util.add_propagate_blogpost_task(entity) else: self.abort(400, 'Unexpected key kind %s', entity.key.kind()) self.messages.add('Retrying. Refresh in a minute to see the results!') self.redirect(self.request.get('redirect_to').encode('utf-8') or entity.source.get().bridgy_url(self))
def add_task(self, **kwargs): util.add_propagate_task(self, **kwargs)
def add_task(self): util.add_propagate_task(self)