Сайт о горячих клавишах.
Автоматизация обновлений через почтуReceived: from jkeks@localhost (localhost [127.0.0.1]) Mon, 5 May 2003 20:50:15 GMT Date: Tue, 6 May 2003 02:50:14 +0600 From: localhost /jkeks@localhost/ X-Mailer: The Bat! (v1.62/Beta6) Reply-To: localhost /jkeks@localhost/ X-Priority: 3 (Normal) Message-ID: /316251540.@localhost/ To: subjex@localhost Subject: Автоматизация добавления MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Автоматизация обновления Как будет реализован процесс В TheBat пишется статья и если она не требует доработки, то отправляется на локальный сервер, которым служит shttps Данный сервер просто напросто возвращает наши сообщения обратно в Бат, при этом в Бате генерируется событие, на которое мы назначаем функцию. Данная функция создает временный файл и запускает Перл с нашим скриптом, которому в параметре указывается имя временного файла. Данный скрипт парсит MSG формат, достает необходимые поля, формирует пакет POST запроса и отправляет на указанный в интернете сайт. После чего скрипт завершает работу. Удаляется временный файл сообщения. Для конечного пользователя все будет выглядеть как будто он отправил сообщение. Проблемы Бат не умеет запускать программу по началу отправки, это значит, что наш сервер необходимо запускать вручную, либо искать пути автоматизирования данного процесса. На момент отправки необходимо подключение к интернет. Вопрос решается путем принудительного указания использования такого-то инет соединения. Как использовать несколько разных POST запросов? На данный момент система дурацкая: В поле темы указывается имя задания. Первая не пустая строчка сообщения - имя статьи остальное - статья решение же лежит на поверхности. Темы - это различные email локальные ящики. Тема - есть тема А сообщение - сообщение. Это заставляет нас и в Бате создавать дополнительные ящики, однако - это необязательно. Обработка сообщений будет идти тогда на событие отправки сообщения и срабатывает только при удачной отправке. Отправляем на указанный ящик, но не принимаем никуда (хотя если надо то можно и создать конечно) Ну все!... готово.. все ошибки исправлены.. все работает.. кому релиз перла ? Да что там говорить.. кусок никчемного кода кидаю всем: OpenSourse -------------------- #!/perl/bin/perl #Auto Update site news, subjex and etc. #---------------------------------------parse data--- undef $/; open (A,$ARGV[0]); $a=/A/; close (A); #print $a; $a=~m/\n\n/sm; $task=$`; $msg_=$'; $task=~/Subject: (.+)$/m; $sbjx=; $task=~/To: (\w+)@.+$/m; $task=; $msg_=~s/\n+//; print "$task-$sbjx-$msg_"; getc; #----------------------------------------send data--- # $task # $sbjx # @msg_ if ($task=~/subjex/i) { use HTTP::Request::Common qw(POST); use LWP::UserAgent; $ua = LWP::UserAgent-/new; my $req = POST 'http://jkeks.ru/cgi-bin/subjex.pl', # 'http://localhost/cgi-bin/1.pl', [ l =/ 'test', p =/ 'testpasword', action =/ 'filterSbjx', sbjxTitle =/ $sbjx, sbjx =/ $msg_ ]; $a=$ua-/request($req)-/as_string; open (A,"/c:/a"); print A $a; close (A); print $a; getc; } ------------------------- Все!
|