![]() |
#1
|
|||
|
|||
![]()
Stas Mishchenkov написал(а) к All в Oct 16 00:38:32 по местному времени:
Нi, All! sub route { if ( $text =~ /\r\x01%RouteTo\: (\d+\:\d+\/\d+)\r/i) { ( $routeto ) = ( $1 ); $text =~ s/\x01%RouteTo\:/\x01Routed To/s; $change=1; $$flavour = "direct"; $route = $routeto; } return $route; } По чему все равно роутится с флавором Нold? ЧЯНТД? Нave nice nights. Stas Mishchenkov. --- Если ложка не стоит в сметане, очевидно, виновата не ложка! |
#2
|
|||
|
|||
![]()
Michael Dukelsky написал(а) к Stas Mishchenkov в Oct 16 13:32:32 по местному времени:
Привет, Stas! 23 Oct 16 00:38, Stas Mishchenkov послал(а) письмо к All: SM> sub route SM> { SM> if ( $text =~ /\r\x01%RouteTo\: (\d+\:\d+\/\d+)\r/i) { SM> ( $routeto ) = ( $1 ); SM> $text =~ s/\x01%RouteTo\:/\x01Routed To/s; SM> $change=1; SM> $$flavour = "direct"; SM> $route = $routeto; SM> } SM> return $route; SM> } SM> По чему все равно роутится с флавором Нold? ЧЯНТД? 1. В строчке ( $routeto ) = ( $1 ); скобки лишние. Достаточно написать $routeto = $1; 2. В строчке $$flavour = "direct"; слишком много долларов. :) Надо $flavour = "direct"; 3. Ну и, вообще говоря, переменная $routeto лишняя. Желаю успехов, Stas! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20151128 |
#3
|
|||
|
|||
![]()
Stas Mishchenkov написал(а) к Michael Dukelsky в Oct 16 16:08:04 по местному времени:
Нi, Michael! 23 окт 16 13:32, Michael Dukelsky -> Stas Mishchenkov: SM>> sub route SM>> { SM>> if ( $text =~ /\r\x01%RouteTo\: (\d+\:\d+\/\d+)\r/i) { SM>> ( $routeto ) = ( $1 ); SM>> $text =~ s/\x01%RouteTo\:/\x01Routed To/s; SM>> $change=1; SM>> $$flavour = "direct"; SM>> $route = $routeto; SM>> } SM>> return $route; SM>> } SM>> По чему все равно роутится с флавором Нold? ЧЯНТД? MD> 1. В строчке ( $routeto ) = ( $1 ); скобки лишние. Достаточно написать MD> $routeto = $1; Но значение переменной не меняется же? Просто там было больше переменных в черновике... if ( $text =~ /\r\x01%RouteTo\: (\d+\:\d+\/\d+) at (\d+\:\d+\/\d+)\r/i) MD> 2. В строчке $$flavour = "direct"; слишком много долларов. :) Надо MD> $flavour = "direct"; О! Спасибо. Копипаста подвела. :( MD> 3. Ну и, вообще говоря, переменная $routeto лишняя. Опять же, в черновике болше кода, $1 уже не то, а значение еще нужно, да, и читабельней код получается. Нave nice nights. Stas Mishchenkov. SEEN-BY: 46/12 50/15 240/1120 250/25 451/30 455/19 460/57 58 777 1124 461/48 SEEN-BY: 461/58 463/68 822 877 1104 1113 1124 1331 3232 466/50 466 469/418 SEEN-BY: 4600/140 4614/20 4624/8 4641/222 5000/111 5005/49 5010/352 5015/42 46 SEEN-BY: 5019/40 42 400 5020/101 113 290 545 570 620 715 723 814 828 830 846 SEEN-BY: 5020/848 849 921 961 982 1042 1067 1853 2047 2140 2992 3274 4096 4441 SEEN-BY: 5020/5452 5480 8080 8181 12000 5022/5 128 5023/24 5028/63 5029/32 SEEN-BY: 5030/115 830 1474 5034/13 5037/28 5042/13 5050/55 151 5051/41 5052/4 SEEN-BY: 5053/7 54 57 58 5054/89 5057/19 70 5060/900 5061/15 5064/56 5068/45 SEEN-BY: 5075/35 5083/444 6001/10 6035/1 6056/1 6070/109 6090/1 |
#4
|
|||
|
|||
![]()
Brother Rabbit написал(а) к All в Dec 18 15:00:52 по местному времени:
Нi, All! [fido@BroRabbit]$ uname -a Linux BroRabbit.localdomain 4.9.71-std-def-alt0.M80P.1 #1 SMP Thu Dec 21 01:27:05 UTC 2017 x86_64 GNU/Linux НPT распоследний. вставляю в filter.pl код: sub filter() { $uuedir = "\/home\/fido\/uue"; # директория, в которой складывать ююки. if ($area =~ /RU\.SEX\.SIMVOL/i) { if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r.*end\r/si ){ my $ofile = "$uuedir\/$1"; w_log("uue of \"$ofile\" found."); if (open(F, ">$ofile\.uue")){ print(F $text); close(F); system("uudecode -o $ofile $ofile\.uue"); #> -------------------------^^^^^^^ не срабатывает. Так и должно быть или #> я где-то ошибся? w_log("Dcoded \"$ofile\" from Area \"$area\"."); } else { w_log("Can't open \"$ofile\.uue\"\: $!\."); } } } } Нave nice nights. Brother Rabbit. --- Коньки и ласты - что суждено отбросить, того уже не склеишь... |
#5
|
|||
|
|||
![]()
Michael Dukelsky написал(а) к Brother Rabbit в Dec 18 21:23:30 по местному времени:
Привет, Brother! 07 Dec 18 15:00, Brother Rabbit послал(а) письмо к All: BR> вставляю в filter.pl код: BR> sub filter() BR> { BR> $uuedir = "\/home\/fido\/uue"; BR> # директория, в которой складывать ююки. BR> if ($area =~ /RU\.SEX\.SIMVOL/i) { ^^^^^^^^^^^^^^^^^^^^^ Поскольку эха вроде бы одна, достаточно if(lc($area) eq "ru.sex.simvol") BR> if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r.*end\r/si ){ BR> my $ofile = "$uuedir\/$1"; BR> w_log("uue of \"$ofile\" found."); BR> if (open(F, ">$ofile\.uue")){ BR> print(F $text); BR> close(F); BR> system("uudecode -o $ofile $ofile\.uue"); #>> -------------------------^^^^^^^ не срабатывает. Так и должно быть #>> или я где-то ошибся? Вроде бы никаких принципиальных запретов нет. У меня system() в filter.pl срабатывает. Но надо указать полный путь к uudecode. Если паче чаяния и это не сработает, то попробуй такой фокус: my @args = ("/path/to/uudecode", "-o", "$ofile", "$ofile\.uue"); system(@args); Желаю успехов, Brother! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20170303 |
#6
|
|||
|
|||
![]()
Brother Rabbit написал(а) к Michael Dukelsky в Dec 18 11:18:06 по местному времени:
Нi, Michael! 07 дек 18 21:23, Michael Dukelsky -> Brother Rabbit: BR>> sub filter() BR>> { BR>> $uuedir = "\/home\/fido\/uue"; BR>> # директория, в которой складывать ююки. BR>> if ($area =~ /RU\.SEX\.SIMVOL/i) { MD> ^^^^^^^^^^^^^^^^^^^^^ MD> Поскольку эха вроде бы одна, достаточно if(lc($area) eq "ru.sex.simvol") Ну, да. Так, видимо, быстре будет. BR>> if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r.*end\r/si BR>> ){ BR>> my $ofile = "$uuedir\/$1"; BR>> w_log("uue of \"$ofile\" found."); BR>> if (open(F, ">$ofile\.uue")){ BR>> print(F $text); BR>> close(F); BR>> system("uudecode -o $ofile $ofile\.uue"); #>>> -------------------------^^^^^^^ не срабатывает. Так и должно быть #>>> или я где-то ошибся? MD> Вроде бы никаких принципиальных запретов нет. У меня system() в MD> filter.pl срабатывает. Вот в этом я и сомневался. MD> Но надо указать полный путь к uudecode. Скорее всего в этом дело. Похоже, не наследуются переменные окружения. MD> Если паче чаяния и это не сработает, то попробуй такой фокус: MD> my @args = ("/path/to/uudecode", "-o", "$ofile", "$ofile\.uue"); MD> system(@args); Спасибо. Попробую. Нave nice nights. Brother Rabbit. --- У одних людей, полушария прикрываются костями черепа, у других - штанами. |
#7
|
|||
|
|||
![]()
Brother Rabbit написал(а) к Michael Dukelsky в Dec 18 12:02:00 по местному времени:
Нi, Michael! 07 дек 18 21:23, Michael Dukelsky -> Brother Rabbit: MD> my @args = ("/path/to/uudecode", "-o", "$ofile", "$ofile\.uue"); MD> system(@args); Я пошел другим путем. ;) === Import Windows Clipboard Start === my $uudecoded_data = ""; if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r(.*\r)end\r/i ){ $ofile = "$uuedir\\$1"; $uuelines = $2; open(F, ">>$ofile"); binmode(F); while( $uuelines =~ /^([^ \r]+\r)/ ){ $uudecoded_data = unpack("u", $1); print(F $uudecoded_data); $uuelines =~ s/^[^\r]+\r//; } close(F); } === Import Windows Clipboard End === Здесь, видимо, нужно еще проверять $ofile на наличие и если он уже есть, выбирать другое имя или удалять старый. Нave nice nights. Brother Rabbit. --- Если ложка не стоит в сметане, очевидно, виновата не ложка! |
#8
|
|||
|
|||
![]()
Michael Dukelsky написал(а) к Brother Rabbit в Dec 18 12:48:02 по местному времени:
Привет, Brother! 08 Dec 18 12:02, Brother Rabbit послал(а) письмо к Michael Dukelsky: MD>> my @args = ("/path/to/uudecode", "-o", "$ofile", "$ofile\.uue"); MD>> system(@args); BR> Я пошел другим путем. ;) А полный путь указать не пробовал? BR> === Import Windows Clipboard Start === BR> my $uudecoded_data = ""; BR> if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r(.*\r)end\r/i ){ BR> $ofile = "$uuedir\\$1"; BR> $uuelines = $2; BR> open(F, ">>$ofile"); BR> binmode(F); BR> while( $uuelines =~ /^([^ \r]+\r)/ ){ BR> $uudecoded_data = unpack("u", $1); BR> print(F $uudecoded_data); BR> $uuelines =~ s/^[^\r]+\r//; BR> } BR> close(F); BR> } BR> === Import Windows Clipboard End === Судя по binmode(F), это винда. А в винде как раз без приведённого мной выше фокуса system() не работает. BR> Здесь, видимо, нужно еще проверять $ofile на наличие и если он уже BR> есть, выбирать другое имя или удалять старый. Да. А после open() написать or ... и дальше ругнуться в лог и прекратить обработку. Желаю успехов, Brother! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20170303 |
#9
|
|||
|
|||
![]()
Brother Rabbit написал(а) к Michael Dukelsky в Dec 18 14:25:04 по местному времени:
Нi, Michael! 08 дек 18 12:48, Michael Dukelsky -> Brother Rabbit: MD>>> my @args = ("/path/to/uudecode", "-o", "$ofile", "$ofile\.uue"); MD>>> system(@args); BR>> Я пошел другим путем. ;) MD> А полный путь указать не пробовал? Нет. Я решил сразу разъююкивать, т.к. вызывать из скрипта бинарь, что бы потом за ним еще ююки удалять, мне показалось не удобно. BR>> === Import Windows Clipboard Start === [...skipped...] BR>> === Import Windows Clipboard End === MD> Судя по binmode(F), это винда. Да. Под виндой оно без binmode разъююки ломает. MD> А в винде как раз без приведённого мной выше фокуса system() не MD> работает. Не работало в альтлинуксе. wget, кстати, из обычного перлового скрипта нормально вызывается и там, и там именно так, как я делал с uudecode. BR>> Здесь, видимо, нужно еще проверять $ofile на наличие и если он уже BR>> есть, выбирать другое имя или удалять старый. MD> Да. А после open() написать or ... и дальше ругнуться в лог и прекратить MD> обработку. Сдедлал вот так: === Import Windows Clipboard Start === $uuedir = "\/home\/fido\/uue"; # директория, в которой складывать разююки. if (defined($area)) { if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r(.*\r)end\r/i ){ @uuelines = split(/\r/,$2); my $ofile = "$uuedir\/" . uc($area) ."\/$1"; mkdir "$uuedir\/" . uc($area) if !-e "$uuedir\/" . uc($area); my $i = 0; while (-e $ofile) { $ofile = "$uuedir\/".uc($area)."\/".sprintf("%08x", time()).sprintf("%02d",$i)."$1"; $i++; if ($i > 255) { $ofile = "$uuedir\/" . uc($area) ."\/$1"; unlink($ofile); } } # w_log("uue of \"$ofile\" found."); if (open(F, ">>$ofile")){ binmode(F); foreach my $val ( @uuelines ){ $uudecoded_data = unpack("u", $val); print(F $uudecoded_data); } close(F); # w_log("Dcoded \"$ofile\" from Area \"$area\"."); } else { w_log("Can't open \"$ofile\"\: $!\."); } } } === Import Windows Clipboard End === На линуксовой машине работает. Разъююкивает и по директориям раскладывает. Нave nice nights. Brother Rabbit. --- Хороший собеседник не только внимательно слушает, но и вовремя наливает. |
#10
|
|||
|
|||
![]()
Michael Dukelsky написал(а) к Brother Rabbit в Dec 18 14:46:12 по местному времени:
Привет, Brother! 08 Dec 18 14:25, Brother Rabbit послал(а) письмо к Michael Dukelsky: MD>> А полный путь указать не пробовал? BR> Нет. Я решил сразу разъююкивать, т.к. вызывать из скрипта бинарь, что BR> бы потом за ним еще ююки удалять, мне показалось не удобно. Ну, в общем-то это ты правильно решил. [...skipped...] BR> Сдедлал вот так: BR> === Import Windows Clipboard Start === BR> $uuedir = "\/home\/fido\/uue"; BR> # директория, в которой складывать разююки. BR> if (defined($area)) { BR> if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r(.*\r)end\r/i ){ BR> @uuelines = split(/\r/,$2); BR> my $ofile = "$uuedir\/" . uc($area) ."\/$1"; BR> mkdir "$uuedir\/" . uc($area) if !-e "$uuedir\/" . BR> uc($area); BR> my $i = 0; BR> while (-e $ofile) { BR> $ofile = "$uuedir\/".uc($area)."\/".sprintf("%08x", BR> time()).sprintf("%02d",$i)."$1"; BR> $i++; BR> if ($i > 255) { BR> $ofile = "$uuedir\/" . uc($area) BR> ."\/$1"; BR> unlink($ofile); BR> } BR> } BR> # w_log("uue of \"$ofile\" found."); BR> if (open(F, ">>$ofile")){ BR> binmode(F); BR> foreach my $val ( @uuelines ){ BR> $uudecoded_data = unpack("u", $val); BR> print(F $uudecoded_data); BR> } BR> close(F); BR> # w_log("Dcoded \"$ofile\" from Area BR> \"$area\"."); BR> } else { BR> w_log("Can't open \"$ofile\"\: $!\."); BR> } BR> } BR> } BR> === Import Windows Clipboard End === BR> На линуксовой машине работает. Разъююкивает и по директориям BR> раскладывает. Прекрасно. Можно ещё несколько раз встречающийся текст "$uuedir\/" . uc($area) в самом начале записать в переменную. Желаю успехов, Brother! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20170303 |