- return DFRN::TOP_LEVEL;
- }
- }
-
- /**
- * Send a "poke"
- *
- * @param array $item The new item record
- * @param array $importer Record of the importer user mixed with contact of the content
- * @return void
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
- * @todo set proper type-hints (array?)
- */
- private static function doPoke(array $item, array $importer)
- {
- $verb = urldecode(substr($item["verb"], strpos($item["verb"], "#")+1));
- if (!$verb) {
- return;
- }
- $xo = XML::parseString($item["object"]);
-
- if (($xo->type == Activity\ObjectType::PERSON) && ($xo->id)) {
- // somebody was poked/prodded. Was it me?
- $Blink = '';
- foreach ($xo->link as $l) {
- $atts = $l->attributes();
- switch ($atts["rel"]) {
- case "alternate":
- $Blink = $atts["href"];
- break;
- default:
- break;
- }
- }
-
- if ($Blink && Strings::compareLink($Blink, DI::baseUrl() . "/profile/" . $importer["nickname"])) {
- $author = DBA::selectFirst('contact', ['id', 'name', 'thumb', 'url'], ['id' => $item['author-id']]);
-
- $parent = Post::selectFirst(['id'], ['uri' => $item['thr-parent'], 'uid' => $importer["importer_uid"]]);
- $item['parent'] = $parent['id'];
-
- // send a notification
- DI::notify()->createFromArray(
- [
- "type" => Notification\Type::POKE,
- "otype" => Notification\ObjectType::PERSON,
- "activity" => $verb,
- "verb" => $item["verb"],
- "uid" => $importer["importer_uid"],
- "cid" => $author["id"],
- "item" => $item,
- "link" => DI::baseUrl() . "/display/" . urlencode($item['guid']),
- ]
- );
- }