Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > список каналов irc сервера


Автор: demond 26.9.2008, 20:31
Здравствуйте. подскажите, как использую Net::IRC получить список каналов на сервер?

Автор: arto 29.9.2008, 12:59
команда "LIST", обработчик на 322.

Автор: demond 30.9.2008, 10:44
а можно по подробнее? smile

Автор: arto 30.9.2008, 11:08
в дистрибутиве Net::IRC присутствует irctest, там показано.

Автор: noneg 3.2.2011, 18:19
Подскажите как это сделать (без Net:IRC)
1.Получить списокканалов  и записать в фаил.
или
2.Получить список и организовать заход на каждый канал.


Получаю список так send ($socket, "LIST \r\n",332);

не знаю как реализовать заход на каналы (список сам нигде же не выводится)
ну или запись в фаил.

Автор: arto 4.2.2011, 08:31
# print -l "NICK asdfgh" "USER asdfgh 1 1 :asdfgh" "LIST" "QUIT" | nc irc.run.net 6667
...
:irc.run.net 222 asdfgh NONE :is now your codepage
:irc.run.net 322 asdfgh #skinhead 1 :
:irc.run.net 322 asdfgh #M@NGO 1 :
:irc.run.net 322 asdfgh #Genie 1 :Канал  "Хитрых замут".^O^O^C  ^C0,4 Здесь обсуждаются  картинки от приходов ;)^C ^C13 http://tomsk.fm/watch/21219
:irc.run.net 322 asdfgh #ul-soc 1 :Чат глобальных проблем  МТиСР Ульяновской области
:irc.run.net 322 asdfgh #bppp 1 :
:irc.run.net 322 asdfgh #GetFrag 1 :^C9`%^C0,9%, ^C3,9`%^C9,3%, ^C1,3`%^C3,1%,^C9 GetFrag! dimqa murd pasha meGycuk Part1zan ^C3,1`%^C1,3%, ^C9,3`%^C3,9%, ^C0,9`%^C^C9%,
:irc.run.net 322 asdfgh #ulll 1 :
:irc.run.net 322 asdfgh #koj 1 :
:irc.run.net 322 asdfgh #EnDeDeLeNDe 1 :
...

Автор: noneg 4.2.2011, 14:51
не понял что это и куда...(

Автор: arto 4.2.2011, 15:25
RFC 1459
man nc netcat
можно и telnet'ом

Автор: noneg 8.2.2011, 15:29
Код

open (F, "kanals.txt");
while($kanals=<F>){
send ($socket, "JOIN #$kanals \r\n",0)}; - ноль

в kanals.txt лежат 

chanel1
chanel2

Бот заходит нормально...но когда больше каналов в списке, его выкидывает exec flood.

send ($socket, "JOIN #$kanals \r\n",322)}; 
когда пишу 322, он вообще никуда не заходит..даже на 1 канал..
как сделать что бы он мог заходить на большое число каналов.

Автор: noneg 11.2.2011, 01:24
еще такой вапрос как можно спарсить ники сидящих на канале?

Автор: arto 11.2.2011, 08:28
а какая именно проблема?

Автор: noneg 12.2.2011, 12:42
нужно отослать каждому на канале /ctcp (просто на канал отослать не нада, именно каждому по нику)


  
Код

  $socket->send ("JOIN $kana\r\n"); 
  $socket->send ("NAMES $kana \r\n"); - #/names выводит все ники на канале ввиде irc.serv.ru: nick1 nick2 (как бы их засунуть куда для того что бы построчно отсылать ctpc)
  if ($socket=~/(.*):(.*)/) {  - тут явно сокет не подходит...а хотя хз..
  $socket->send ("NOTICE $kana $2 :lol\r\n");} 
  $socket->send ("PART $kana\r\n");
 }
close F;
 
 




Автор: arto 13.2.2011, 14:06
вы должны прочитать строку из сокета

Автор: noneg 23.2.2011, 11:15
Есть два текстовика
-----в первом 
word
word1
word2
-----во втором
slovo
slovo1
slovo2

как сдлеать что бы в текстовике сохранялось

word:slovo
word1:slovo1
word2:slovo2

Автор: arto 23.2.2011, 11:32
что такое "текстовик" ?

Автор: noneg 23.2.2011, 11:44
 .txt


Автор: arto 23.2.2011, 11:45
perl -le '@a = do { open F,$ARGV[0]; <F> }; @b = do { open F,$ARGV[1]; <F> }; chomp @a; chomp @b; while (@a && @b) { print shift @a, ": ", shift @b }'

Автор: noneg 23.2.2011, 12:00
мне бы...не из cmd 
примерно..вот..только не работает..но суть ясна наверно

Код

@a=do{
open F, "<one.txt";
<F>;
}


@b=do{
open F, "<too.txt";
<F>;
}

chomp @a;
chomp @b;

while (@a && @b){
open G, ">>good.txt";

print G shift @a, ": ", shift @b 


}

Автор: noneg 23.2.2011, 12:20
#!/usr/bin/perl

@a = do { open F,"<nicks.txt"; <F> }; @b = do { open F,"<pass.txt"; <F> }; chomp @a; chomp @b; while (@a && @b) { open G, ">>good.txt"; print G shift @a, ": ", shift @b }

так попробывал..сохраняет в виде
word: slovo1slovo1: word2slovo2: word3word: slovo3
вообщем вообще не так(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)