def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" object_type = None if activity_prefix: object_type = self.get_namespaced_attr(entry, activity_prefix, 'object-type') if not object_type: object_type = object_types['article'] title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not title: title = entry.get('title') if not uri: uris = entry.get('links') if uris: uri = uris[0].get('href') if not (title and uri): return for link in sender.link_set.all(): remote_obj = RemoteObject(link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity(actor=link.user, verb=verbs['share'], target_object=remote_obj) if link.project: activity.scope_object = link.project activity.save()
def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" verb, object_type = None, None if activity_prefix: verb = self.get_namespaced_attr( entry, activity_prefix, 'verb') object_type = self.get_namespaced_attr( entry, activity_prefix, 'object-type') if not verb: verb = 'http://activitystrea.ms/schema/1.0/post' if not object_type: object_type = 'http://activitystrea.ms/schema/1.0/article' title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not (title and uri): return for link in sender.link_set.all(): remote_obj = RemoteObject( link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity( actor=link.user, verb=verb, remote_object=remote_obj) if link.project: activity.target_project = link.project activity.save()
def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" verb, object_type = None, None if activity_prefix: verb = self.get_namespaced_attr(entry, activity_prefix, 'verb') object_type = self.get_namespaced_attr(entry, activity_prefix, 'object-type') if not verb: verb = 'http://activitystrea.ms/schema/1.0/post' if not object_type: object_type = 'http://activitystrea.ms/schema/1.0/article' title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not (title and uri): self.log.warn("Received pubsub update with no title or uri") return for link in sender.link_set.all(): self.log.info("Creating activity entry for link: %d" % (link.id, )) remote_obj = RemoteObject(link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity(actor=link.user, verb=verb, remote_object=remote_obj) if link.project: activity.target_project = link.project activity.save()
def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" object_type = None if activity_prefix: object_type = self.get_namespaced_attr( entry, activity_prefix, 'object-type') if not object_type: object_type = object_types['article'] title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not title: title = entry.get('title') if not uri: uris = entry.get('links') if uris: uri = uris[0].get('href') if not (title and uri): return for link in sender.link_set.all(): remote_obj = RemoteObject( link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity( actor=link.user, verb=verbs['share'], target_object=remote_obj) if link.project: activity.scope_object = link.project activity.save()
def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" verb, object_type = None, None if activity_prefix: verb = self.get_namespaced_attr( entry, activity_prefix, 'verb') object_type = self.get_namespaced_attr( entry, activity_prefix, 'object-type') if not verb: verb = 'http://activitystrea.ms/schema/1.0/post' if not object_type: object_type = 'http://activitystrea.ms/schema/1.0/article' title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not title: title = entry.get('title') if not uri: uris = entry.get('links') if uris: uri = uris[0].get('href') if not (title and uri): return for link in sender.link_set.all(): remote_obj = RemoteObject( link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity( actor=link.user, verb=verb, remote_object=remote_obj) if link.project: activity.target_project = link.project activity.save()
def _create_remote_object(obj): """ Create a remote object from a dictionary of attributes. Examples of remote objects: a status update or a blog post from another service. """ robj = RemoteObject( type=obj['type'], atom_id=obj.get('id', None), title=obj.get('title', None), uri=obj.get('uri', None), ) extra_keys = set(obj.keys()) - set(('type', 'id', 'title', 'uri')) attrs = {} [attrs.update({k: obj[k]}) for k in extra_keys] robj.attrs = pickle.dumps(attrs) robj.save() return robj