array( 'name' => 'username or Id', 'required' => true ) )); public function collectData(){ // get content parsed $html = getSimpleHTMLDOMCached(self::URI . urlencode($this->getInput('username')) . '/posts', // force language 84600, false, stream_context_create(array( 'http' => array( 'header' => 'Accept-Language: fr,fr-be,fr-fr;q=0.8,en;q=0.4,en-us;q=0.2;*' . "\r\n" ))) ) or returnServerError('No results for this query.'); // get title, url, ... there is a lot of intresting stuff in meta $this->_title = $html->find('meta[property=og:title]', 0)->getAttribute('content'); $this->_url = $html->find('meta[property=og:url]', 0)->getAttribute('content'); // I don't even know where to start with this discusting html... foreach($html->find('div[jsname=WsjYwc]') as $post){ $item = array(); $item['author'] = $item['fullname'] = $post->find('div div div div a', 0)->innertext; $item['id'] = $post->find('div div div', 0)->getAttribute('id'); $item['avatar'] = $post->find('div img', 0)->src; $item['uri'] = self::URI . $post->find('div div div a', 1)->href; $item['timestamp'] = strtotime( '+' . preg_replace('/[^0-9A-Za-z]/', '', $post->find('div div div a span', 1)->getAttribute('aria-label'))); // hashtag to treat : https://plus.google.com/explore/tag // $hashtags = array(); // foreach($post->find('a.d-s') as $hashtag){ // $hashtags[trim($hashtag->plaintext)] = self::URI . $hashtag->href; // } $item['content'] = ''; // avatar display $item['content'] .= '
'; $content = $post->find('div div[id^=body] div div', 0); // extract plaintext $item['content_simple'] = $content->plaintext; $item['title'] = substr($item['content_simple'], 0, 72) . '...'; // XXX ugly but I don't have any idea how to do a better stuff, // str_replace on link doesn't work as expected and ask too many checks foreach($content->find('a') as $link){ $hasHttp = strpos($link->href, 'http'); $hasDoubleSlash = strpos($link->href, '//'); if((!$hasHttp && !$hasDoubleSlash) || (false !== $hasHttp && strpos($link->href, 'http') != 0) || (false === $hasHttp && false !== $hasDoubleSlash && $hasDoubleSlash != 0)){ // skipp bad link, for some hashtag or other stuff if(strpos($link->href, '/') == 0){ $link->href = substr($link->href, 1); } $link->href = self::URI . $link->href; } } $content = $content->innertext; $item['content'] .= '