function asActivity() { $act = new Activity(); if (Event::handle('StartMessageAsActivity', array($this, &$act))) { $act->id = TagURI::mint(sprintf('activity:message:%d', $this->id)); $act->time = strtotime($this->created); $act->link = $this->url; $profile = Profile::getKV('id', $this->from_profile); if (empty($profile)) { throw new Exception(sprintf("Sender profile not found: %d", $this->from_profile)); } $act->actor = $profile->asActivityObject(); $act->actor->extra[] = $profile->profileInfo(); $act->verb = ActivityVerb::POST; $act->objects[] = ActivityObject::fromMessage($this); $ctx = new ActivityContext(); $rprofile = Profile::getKV('id', $this->to_profile); if (empty($rprofile)) { throw new Exception(sprintf("Receiver profile not found: %d", $this->to_profile)); } $ctx->attention[$rprofile->getUri()] = ActivityObject::PERSON; $act->context = $ctx; $source = $this->getSource(); if ($source instanceof Notice_source) { $act->generator = ActivityObject::fromNoticeSource($source); } Event::handle('EndMessageAsActivity', array($this, &$act)); } return $act; }