Наши скрипты > Sanitarium WebLoG

RSS

(1/2) > >>

Cyberinfo:
Кто знает как сделать RSS новости в этом движке?

ddkd:
Cyberinfo
смотря для каких целей тебе. Ты только заголовки хочешь отправлять?

ddkd:

#!/usr/bin/perl
#Впервые юзалось на compnews.org, сделано Fast & vu1tur
print "Content-type: text/html\\n\\n";

require "rss.pm";
use HTTP::Date;

@cats = (\'Железо\',\'Интернет\',\'\',\'Софт\',\'Игры\',\'Программирование\',\'Связь\',\'Безопасность\',\'GTA Vice City\',\'Телекоммуникации\');

%months = (\'Январь\',1,\'Февраль\',2,\'Март\',3,\'Апрель\',4,\'Май\',5,\'Июнь\',6,\'Июль\',7,\'Август\',8,\'Сентябрь\',9,\'Октябрь\',10,\'Ноябрь\',11,\'Декабрь\',12);
my $rss = XML::RSS->new(version => \'2.0\', encoding => "windows-1251");
my $rss2 = XML::RSS->new(version => \'2.0\', encoding => "windows-1251");

$rss->channel(title=>"compnews.org channel", link => "www.compnews.org", description => "IT новости от compnews.org");
$rss2->channel(title=>"compnews.org channel", link => "www.compnews.org", description => "IT новости от compnews.org");

$rss->image(url=>"http://www.compnews.org/images/logo.gif", title=>"compnews.org", link=>"http://www.compnews.org/");

$index_js = "/www/compnews.org/htdocs/news/index.js";

open(DATA, $index_js) or die "can\'t open filename: $!";
while ($news_line = <DATA>) {
if ($news_line =~ /<a href=\\\\\\"(.*org\\/(\\d\\d?)\\/\\d\\d\\d.\\d\\.shtml)\\\\\\">([^<]+)/g) {
 my $ftext=$3;
 my $catnum = $2;
 {
  my $newsfn = $1; 
  $newsfn =~ s/http:\\/\\/www\\.compnews\\.org//;
  $newsfn = join(\'\',\'/www/compnews.org/htdocs\',$newsfn);
  open(FT, $newsfn);
 }
 $a=$/;
 undef $/;
my $tt = 0;
 while (<FT>) {
   if (/<!--CONTENT-->([^<]+<){10}p>(\\d\\d)\\s([^ ]+)\\s(\\d\\d\\d\\d)\\s(\\d\\d:\\d\\d)([^<]*)<([^<]+<){3}[^>]*>(.*)<p>Страницы: <b>.*<!-CONTENT STOP-->/ms) {
   $ftext = $8;
   $tt = join(\'-\',$4,$months{$3},$2);
   $tt = join(\' \',$tt,$5);
   $tt = join(\':\',$tt,\'00\');
   $tt = str2time($tt,\'-0100\');
   $ftext =~ s/<(?:[^>\'"]*|([\'"]).*?\\1)*>//gs;
   while ($ftext =~ s/\\n\\s*\\n/\\n/gs) { };
   while ($ftext =~ s/\\n//gs) { };
     }
    }
 $/=$a;
 close FT;
$rss_title = $3;
$rss_link = $1;

$rss_title =~ s/&/&/gsm;
$rss_title =~ s/</</gsm;
$rss_title =~ s/>/>/gsm;
$rss_title =~ s/\'/&apos;/gsm;
$rss_title =~ s/\\\\?"/"/gsm;

$rss_link =~ s/&/&/gsm;
$rss_link =~ s/</</gsm;
$rss_link =~ s/>/>/gsm;
$rss_link =~ s/\'/&apos;/gsm;
$rss_link =~ s/\\\\?"/"/gsm;

$ftext =~ s/&/&/gsm;
$ftext =~ s/</</gsm;
$ftext =~ s/>/>/gsm;
$ftext =~ s/\'/&apos;/gsm;
$ftext =~ s/\\\\?"/"/gsm;


$rss->add_item(title => $rss_title, link => $rss_link, category => $cats[$catnum-1], pubDate => time2str($tt), comments=>$ftext);
$rss2->add_item(title => $rss_title, link => $rss_link, description => time2str($tt));
}
}
$rss->save("/www/compnews.org/htdocs/rss.xml");
$rss2->save("/www/compnews.org/htdocs/klip.xml");
close DATA;

#То что вы увидите когда запустите rss.pl, если удалить, то будет пустой экран.
print "<html>\\n";
print "<head>\\n";
print "<title>Обновление RSS файла прошло успешно</title>\\n";
print "</head>\\n";
print "<body>\\n";
print "<p>\\n";
print "Обновление RSS файла прошло успешно. <a href=/rss.xml target=_blank>rss.xml</a>\\n";
print "</p>\\n";
print "<p>\\n";
print "<a href=rss.pl>Обновить RSS файл еще раз</a>\\n";
print "</p>\\n";
print "</body>\\n";
print "</html>\\n";

работоспособность не гарантирую. ибо писалось под конкретный сайт. для конкретных целий.

ddkd:
если руки заточены под то что надо, то думаю сможешь пределать. Тока плиз сохрани копирайт. мелочь а приятно :)

Cyberinfo:
а куда его заливать и т.д. где нит вкл. и прочее?

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии