mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-11-24 02:16:08 +03:00
3daeacc208
This breaks compatibility with previous versions of VkBridge (which seems broken anyway). Bridges should never use full URIs as inputs since their validation will always be more complicated, hence prone to security issues, than rebuilding a clean URI from simple validated inputs.
53 lines
2.2 KiB
PHP
53 lines
2.2 KiB
PHP
<?php
|
|
|
|
class VkBridge extends BridgeAbstract {
|
|
|
|
const MAINTAINER = "ahiles3005";
|
|
const NAME = "VK.com";
|
|
const URI = "http://vk.com/";
|
|
const DESCRIPTION = "Working with open pages";
|
|
const PARAMETERS=array( array(
|
|
'u'=>array(
|
|
'name'=>'Group or user name',
|
|
'required'=>true
|
|
)
|
|
)
|
|
);
|
|
|
|
public function getURI(){
|
|
return static::URI.urlencode($this->getInput('u'));
|
|
}
|
|
public function collectData(){
|
|
$text_html = $this->getContents($this->getURI())
|
|
or $this->returnServerError('No results for group or user name "'.$this->getInput('u').'".');
|
|
|
|
$text_html = iconv('windows-1251', 'utf-8', $text_html);
|
|
$html = str_get_html($text_html);
|
|
foreach ($html->find('div.post_table') as $post) {
|
|
if (is_object($post->find('a.wall_post_more', 0))) {
|
|
$post->find('a.wall_post_more', 0)->outertext = ''; //delete link "show full" in content
|
|
}
|
|
$item = array();
|
|
$item['content'] = strip_tags($post->find('div.wall_post_text', 0)->innertext);
|
|
if (is_object($post->find('a.page_media_link_title', 0))) {
|
|
$link = $post->find('a.page_media_link_title', 0)->getAttribute('href');
|
|
$item['content'] .= "\n\rExternal link: " . str_replace('/away.php?to=', '', urldecode($link)); //external link in the post
|
|
}
|
|
//get video on post
|
|
if (is_object($post->find('span.post_video_title_content', 0))) {
|
|
$titleVideo = $post->find('span.post_video_title_content', 0)->plaintext;
|
|
$linkToVideo = self::URI . $post->find('a.page_post_thumb_video', 0)->getAttribute('href');
|
|
$item['content'] .= "\n\r {$titleVideo}: {$linkToVideo}";
|
|
}
|
|
$item['uri'] = self::URI . $post->find('.reply_link_wrap', 0)->find('a', 0)->getAttribute('href'); // get post link
|
|
$item['date'] = $post->find('span.rel_date', 0)->plaintext;
|
|
$this->items[] = $item;
|
|
// var_dump($item['date']);
|
|
}
|
|
}
|
|
|
|
public function getCacheDuration() {
|
|
return 300; // 5 minutes
|
|
}
|
|
|
|
}
|