function postContent() { $body = strip_tags($this->getInput('body')); $name = strip_tags($this->getInput('name')); $url = trim($this->getInput('url')); $url2 = trim($this->getInput('url-2')); $validator = $this->getInput('validator'); if (!empty($url2)) { $this->deniedContent(); } $this->referrerGatekeeper(); if (!empty($body) && !empty($name) && !empty($validator)) { if ($object = Entity::getByUUID($validator)) { if ($url = Webservice::sanitizeURL($url)) { if ($content = Webservice::get($url)) { if ($content['response'] == '200') { $icon = Webmention::getIconFromWebsiteContent($content['content'], $url); } } } if (empty($icon)) { $bn = hexdec(substr(md5($url), 0, 15)); $number = 1 + $bn % 5; $icon = \Idno\Core\site()->config()->url . 'gfx/users/default-' . str_pad($number, 2, '0', STR_PAD_LEFT) . '.png'; } $object->addAnnotation('reply', $name, $url, $icon, $body); $this->forward($object->getDisplayURL()); } } }
/** * Retrieves a feed object for the given URL, or creates one if it's new to the system * @param $url * @param $update Set to true in order to refresh saved feed details. False by default. * @return bool|false|\Idno\Common\Entity|Feed */ function getFeedObject($url, $update = false) { $wc = new Webservice(); $url = $wc->sanitizeURL($url); if ($feed_details = $this->getFeedDetails($url)) { if ($feed_array = Feed::get(array('feed_url' => $feed_details['url']))) { foreach ($feed_array as $feed_item) { $feed = $feed_item; break; } } else { $feed = new Feed(); } if ($feed->getID() && !$update) { return $feed; } $feed->url = $url; if (!empty($feed_details['title'])) { $feed->setTitle($feed_details['title']); } if (!empty($feed_details['type'])) { $feed->setType($feed_details['type']); } if (!empty($feed_details['url'])) { $feed->setFeedURL($feed_details['url']); if ($feed->save()) { return $feed; } } } return false; }