Этот архвив с сайта www.linux.org.ru. Я всял страницы "индексные" (с вопросами и ссылками на ответы) и обработал скриптом. А скрипт писал так, чтобы в результате у меня получился новый "индексный файл", где ссылки на ответы будут локальными, и чтобы получился файл .GRX, для импорта в GetRight...
Короче тут легко разобраться.
# Program by KMiNT21
#!perl.exe
# Для обработки форума с http://www.linux.org.ru:8101
opendir(Dir, $INC[2]) |die "Что-то не то с функцией opendir : $!\n";
while ($file = readdir(Dir))
{
if ($file !~m/.msg/i) { next; }
if ($file =~m/.GRX/i) { next; }
if ($file =~m/.NEW/i) { next; }
open(hFile,"$file"); open(hOutFile,">$file.HTML"); open(hGrxFile,">$file.GRX");
binmode hFile; binmode hOutFile; binmode hGrxFile;
while (!eof(hFile))
{
$c=f_getc(hFile);
if ($c eq '<') {
$s=$c.f_getc(hFile); # это для случаев, когда попадет тэг <P> или похожий
$s=$s.f_getc(hFile); if ($s =~m/>/i) { print hOutFile "$s"; next; }
$s=$s.f_getc(hFile); if ($s =~m/>/i) { print hOutFile "$s"; next; }
# Убьемвыборочносслылки "<a " (ищем анкеры)
if ($s =~m/<a /i) {
$s=$s.f_getc(hFile) until ($s =~m/>/i);
# если ссылка не на просмотр сообщения, то не будем ее трогать
if ($s !~m/view-mess/i) { print hOutFile "$s"; next; }
# теперь вырежем сам линк из всего анкера
if ($s =~ /href="/) { $s = "$'"; }
if ($s =~ /"/) { $s = "$`"; }
# и сохраняем его, предварительно сделав его глобальным
print hGrxFile "URL: http://www.linux.org.ru:8101/"."$s\r\n";
# теперь вытянем из всего линка Message ID (msgid=)
if ($s =~ /(\d+)/) { }
# и сохраним его, добавив PATH
print hGrxFile "FILE: c:\\$file.dir\\$1.html\r\n\r\n";
print hOutFile "<a href=\"$file.dir\\$1.html\">";
next;
}
# если ничего "такого", просто копируем и идем дальше
print hOutFile "$s";
}
else # Если обычный поток данных, просто записываем в файл
{
print hOutFile "$c";
}
} # next WHILE NOT EOF
close(hFile); close(hOutFile); close(hGrxFile);
} # enum FILES in DIR
closedir(Dir);
sub f_getc(hFile)
{
if (!eof(hFile)) { return getc(hFile); }
print " - bad HTML! ";
next; # продолжим нормально программу, если у нас глючно с тэгами. фиг с ними
}
---
http://www.linux.org.ru
|