array( 'name' => 'username or Id', 'required' => true ) )); public function collectData(){ $username = $this->getInput('username'); // Usernames start with a + if it's not an ID if(!is_numeric($username) && substr($username, 0, 1) !== '+') { $username = '+' . $username; } // get content parsed $html = getSimpleHTMLDOMCached(static::URI . '/' . urlencode($username) . '/posts') or returnServerError('No results for this query.'); $html = defaultLinkTo($html, static::URI); // 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'] = $post->find('div div div a', 1)->href; $timestamp = $post->find('a.qXj2He span', 0); if($timestamp) { $item['timestamp'] = strtotime('+' . preg_replace( '/[^0-9A-Za-z]/', '', $timestamp->getAttribute('aria-label'))); } $item['content'] = ''; // avatar display $item['content'] .= '
'; $content = $post->find('div[jsname=EjRJtf]', 0); // extract plaintext $item['content_simple'] = $content->plaintext; $item['title'] = substr($item['content_simple'], 0, 72) . '...'; $content = $content->innertext; $item['content'] .= '