ii-rss.php
<?php require("ii-functions.php"); define('CWD', getcwd()."/feeds"); date_default_timezone_set("Asia/Irkutsk"); $limit=63000; $default_template='<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"> <channel> <item> <pubDate>'.date("r").'</pubDate> </item> </channel> </rss>'; class RssParser { public $obj; public $items; function __construct($adress) { $this->obj=simplexml_load_file($adress); $obj=$this->obj; $this->items=$obj->channel->item; } } function ii_rss($feedname,$adress,$echo) { global $default_template; if(!file_exists(CWD."/".$feedname)) { file_put_contents(CWD."/".$feedname, $default_template); return; } file_put_contents(CWD."/".$feedname.'-new',file_get_contents($adress,false)); $news=new RssParser(CWD."/".$feedname); $news2=new RssParser(CWD."/".$feedname.'-new'); $first_date=strtotime($news->items[0]->pubDate); $items=$news->items; $itemsDates=array(); foreach($items as $item) { $itemsDates[]=strtotime($item->pubDate); } $todel=array(); for($j=0;$j<count($news2->items);$j++) { $item1=$news2->items[$j]; $loltime=strtotime($item1->pubDate); if($loltime>$first_date) { ii_post($item1,$echo); } } //del_news($news2,$todel); file_put_contents(CWD."/".$feedname, $news2->obj->asXML()); unset($news); unset($news2); } function ii_post($item,$echo) { global $limit; $point="Новостной_робот"; $subject=$item->title; $message=$item->description; $message=trim(strip_tags($message)); $message=htmlspecialchars_decode(html_entity_decode($message, ENT_NOQUOTES, 'UTF-8')); if (count($message)<$limit) { echo "Сохранение статьи '".$subject."'\n"; msg_to_ii($echo,$message,$point,"mira, 1",time(),"All",$subject,""); } else { $message=str_split($message,$limit); $lenn=count($message); for($i=0;$i<$lenn;$i++) { $i1=$i+1; echo "Сохранение статьи '".$subject."' [$i1/$lenn]\n"; msg_to_ii($echo,$message[$i],$point,"mira, 1",time(),"All",$subject." [$i1/$lenn]",""); } } } ?>
gate1.php & gate2.php
<?php require("ii-rss.php"); ii_rss("lor", "http://feeds.feedburner.com/org/LOR", "lor-opennet.2014"); ?> <?php require("ii-rss.php"); ii_rss("opennet", "http://www.opennet.ru/opennews/opennews_all_noadv.rss", "lor-opennet.2014"); ?>Установка: создать рядом с msg и echo каталог feeds. Запустить гейты первый раз, затем кинуть в крон и ждать новостей.