Файл: InstantSocial/uploud/plugins/p_autopost/plugin.php
Строк: 95
<?php
class p_autopost extends cmsPlugin {
public function __construct(){
parent::__construct();
$this->info['plugin'] = 'p_autopost';
$this->info['title'] = 'Автопост CN';
$this->info['description'] = 'Автопостинг в группу контакта (новые статьи)';
$this->info['author'] = 'CozaNostra';
$this->info['version'] = '0.1';
$this->config['Логин от VK'] = 'login';
$this->config['Пароль от VK'] = 'password';
$this->config['id группы VK'] = '999999999';
$this->config['Префикс для статьи'] = 'Новая статья';
$this->events[] = 'ADD_ARTICLE_DONE';
}
public function install(){
return parent::install();
}
public function upgrade(){
return parent::upgrade();
}
public function execute($event, $item){
parent::execute();
$siteURL = HOST.'/';
$vk['idg'] = $this->config['id группы VK'];
$login = $this->config['Логин от VK'];
$pass = $this->config['Пароль от VK'];
if($event=='ADD_ARTICLE_DONE')
{
$vk['zag'] = $this->config['Префикс для статьи'];
if($this->config['Префикс для статьи'])
{
$vk['title'] = $vk['zag'].' - '.$item['title'];
}
else
{
$vk['title'] = $item['title'];
}
preg_match('/^.{0,250} .*?./is', $item['content'],$v);
$vk['desc'] = strip_tags($v[0]);
$vk['mess'] = preg_replace('#&(.+?);#s','',strip_tags($item['content']));
$vk['img'] = urlencode($siteURL.'images/photos/medium/article'.$item['id'].'.jpg');
$vk['link'] = urlencode($siteURL.$item['seolink'].'.html');
$this->vk_post($login,$pass,$vk);
}
return $item;
}
/********************/
private function vk_post($login,$pass,$vk)
{
$c = curl_init();
$uagent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)';
$h = array ("Accept-Language: ru-RU,ru;q=0.9,en;q=0.8, Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7, Accept-Encoding: gzip, deflate");
$postdata = 'email='.$login.'&pass='.$pass.'&act=login&q=&al_frame=1&expire=&captcha_sid=&captcha_key=&from_host=vk.com';
curl_setopt($c, CURLOPT_URL, "http://vk.com/login.php");
curl_setopt($c, CURLOPT_HEADER, 0);
curl_setopt($c, CURLOPT_HTTPHEADER, $h);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($c, CURLOPT_USERAGENT, $uagent);
curl_setopt($c, CURLOPT_TIMEOUT, 20);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($c, CURLOPT_HEADER, 0);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_ENCODING, "");
curl_setopt($c, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($c, CURLOPT_COOKIEJAR, "cookie.txt");
curl_exec($c);
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_REFERER, 'http://vk.com/settings');
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_USERAGENT, $uagent);
curl_setopt($c, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($c, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($c, CURLOPT_URL, 'http://vk.com/wall-'.$vk['idg'].'?own=1');
$r = curl_exec($c);
//регулярками выдераем хеш и айди пользователя
preg_match_all('/"post_hash":"(w+)"/i', $r, $f1);
preg_match_all('/"user_id":(d+),/i', $r, $f2);
preg_match_all('/handlePageParams({"id":(d+),/i', $r, $f3);
$f = array('post_hash'=>$f1[1][0], 'my_id'=>$f3[1][0]);
$mess = urlencode(mb_convert_encoding($vk['mess'],'UTF-8','windows-1251'));
$title = urlencode(mb_convert_encoding($vk['title'],'UTF-8','windows-1251'));
$desc = urlencode(mb_convert_encoding($vk['desc'],'UTF-8','windows-1251'));
$postdata = 'act=post&al=1&attach1_type=share&description='.$mess.'&extra=0&extra_data=&facebook_export=&fixed=&friends_only=&from=&hash='.$f['post_hash'].'&message='.$desc.'¬e_title=&official=1&photo_url='.$vk['img'].'&signed=1&status_export=&title='.$title.'&to_id=-'.$vk['idg'].'&type=full_all&url='.$vk['link'];
curl_setopt($c, CURLOPT_HEADER, 0);
curl_setopt($c, CURLOPT_HTTPHEADER, $h);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_REFERER, 'http://vk.com/id'.$f['my_id']);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_USERAGENT, $uagent);
curl_setopt($c, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($c, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($c, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($c, CURLOPT_TIMEOUT, 20);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($c, CURLOPT_URL, 'http://vk.com/al_wall.php');
$r = curl_exec($c);
curl_close($c);
curl_close($c);
return;
}
}
?>