def __init__(self, data={}, actor=None, key=None): """ Automatically records a timestamp as well. """ if data.get('type', self.TYPE) != self.TYPE: raise TypeError("Incompatible activity type.") self._data = { 'ts': Services.time.time(), 'type': self.TYPE, } if actor: #TODO have a UserDetails for example.com too to get rid of this branch. if settings.PROJECT == 'canvas': self._data['actor'] = { 'username': actor.username, 'id': actor.id } elif settings.PROJECT == 'drawquest': self._data['actor'] = UserDetails.from_id(actor.id).to_client() self._data.update(data) if 'id' not in self._data: from apps.activity.models import Activity db_activity = Activity.from_redis_activity(self, key=key) self._data['id'] = db_activity.id
def _make_activity(self, activity_id): from apps.activity.models import Activity activity_data = Activity.details_by_id(activity_id)() try: return self._activity_types[activity_data['activity_type']](activity_data) except KeyError: return None
def _make_activity(self, activity_id): from apps.activity.models import Activity activity_data = Activity.details_by_id(activity_id)() try: return self._activity_types[activity_data['activity_type']]( activity_data) except KeyError: return None
def push(self, activity_item): from apps.activity.models import Activity if not hasattr(activity_item, 'id'): dbactivity = Activity.from_redis_activity(activity_item) id_ = dbactivity.id else: id_ = activity_item.id self._buffer.bump(id_, coerce=False) self._invalidate_cache()
def _make_activity(self, activity_id): from apps.activity.models import Activity, LegacyActivity try: activity_data = Activity.details_by_id(activity_id)() except Activity.DoesNotExist: try: activity_data = LegacyActivity.details_by_id(activity_id)() except LegacyActivity.DoesNotExist: return None try: return self._activity_types[activity_data['activity_type']](activity_data) except KeyError as e: return None
def _make_activity(self, activity_id): from apps.activity.models import Activity, LegacyActivity try: activity_data = Activity.details_by_id(activity_id)() except Activity.DoesNotExist: try: activity_data = LegacyActivity.details_by_id(activity_id)() except LegacyActivity.DoesNotExist: return None try: return self._activity_types[activity_data['activity_type']]( activity_data) except KeyError as e: return None
def __init__(self, data={}, actor=None, key=None): """ Automatically records a timestamp as well. """ if data.get('type', self.TYPE) != self.TYPE: raise TypeError("Incompatible activity type.") self._data = { 'ts': Services.time.time(), 'type': self.TYPE, } if actor: #TODO have a UserDetails for example.com too to get rid of this branch. if settings.PROJECT == 'canvas': self._data['actor'] = {'username': actor.username, 'id': actor.id} elif settings.PROJECT == 'drawquest': self._data['actor'] = UserDetails.from_id(actor.id).to_client() self._data.update(data) if 'id' not in self._data: from apps.activity.models import Activity db_activity = Activity.from_redis_activity(self, key=key) self._data['id'] = db_activity.id