Пример #1
0
 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()
Пример #2
0
 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()
Пример #3
0
 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()
Пример #4
0
 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()
Пример #5
0
 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()
Пример #6
0
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