информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Модель надежности отказоустойчивой... 
 Человек, из-за которого нас заставляют... 
 Взломано популярное расширение... 
 IPv6 добрался до стандарта 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Unix] Ok. Скрипт тут (+) Да и описание принципа тут же. 11.05.01 10:51  Число просмотров: 433
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
<"чистая" ссылка>
Этот архвив с сайта 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
<programming> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2017 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach