Bot na kanale IRC. Jak??
mario984 - 11-07-2006 20:35
Bot na kanale IRC. Jak??
Witam
Więc sprawa wygląda następująco. Założyłem kanał IRC. Teraz chcę w jak najtańszy lub darmowy sposób założyć na nim bota. I tutaj odezwała się moja luka w wiedzy. Nie mam pojęcia jak to zrobić. Jeśli mógłby mi ktoś pomóc, nakierować mnie lub podać sam link do szczegółowej instrukcji będę bardzo wdzięczny. Tak więc proszę o pomoc:)
Pozdrawiam i z góry dziękuję:)
szczeles - 11-07-2006 20:43
Elo,
niedawno stanąłem przed podobnym problemem - postanowiłem napisać bota w stylu
http://pr0n.pl/5328 :D
Pow ielu zmaganiach z ping-pong i eof from client udało mi się wykombinować coś takiego: :D
Kod:
<?php
function send($s) {
echo 'wysylam: '.$s."\r\n";
fputs($GLOBALS['fp'], $s."\r\n");
}
function zerofill ($num,$zerofill) {
while (strlen($num)<$zerofill) {
$num = "0".$num;
}
return $num;
}
function get() {
$s=fgets($GLOBALS['fp'], 1024);
echo $s;
return $s;
}
$fp=fsockopen('irc.quakenet.org', 6667);
if (!$fp) die ('dupa z polaczneiem');
send('NICK timerek');
send('USER timerek . . :timerek');
$na_kanale=0;
while (!preg_match("#End of /MOTD command.#",($s=fgets($fp, 1024)))&&!feof($fp)) {
if (preg_match("/PING :(.*)$/", $s, $t))
send('PONG '.$t[1]);
echo $s;
}
$kanal='polishunion';
$start=108;
send('JOIN #'.$kanal.'');
sleep(10);
stream_set_timeout($fp, 0, 200);
do {
$wpisany=0;
//odliczenie do 4
for ($i=$start; $i>4; $i--) {
send('PRIVMSG #'.$kanal.' :*'.$i.':00*');
sleep(60);
while (get());
}
for ($l=240; $l>=0; $l-=2) {
while (($s=get())) {
if (preg_match("/4 8 15 16 23 42/", $s)) {
send('PRIVMSG #'.$kanal.' :ziiiuuuuuuuuuuuuu');
sleep(2);
$wpisany=1;
break(2);
}
}
send('PRIVMSG #'.$kanal.' :*'.(int)($l/60).':'.zerofill($l%60, 2).'*');
if (rand()%10==0) send('PRIVMSG #'.$kanal.' :BEEP BEEP BEEP');
sleep(2);
}
}
while ($wpisany==1);
send('PRIVMSG #'.$kanal.' :nikt nie wpisal :< / kupa :<');
?>
Wiem, wiem, kod jest bardzo brzydki, ale po wersji alpha przestałem nad nim pracować :<>
Bota wysyłajacego jakąś wiadomość po napisaniu przez kogoś określonej wiadomości oczywiście napisać łatwiej ;D
POzdro
mario984 - 12-07-2006 12:03
ok. dzięki wielkie za pomoc.
Idę pokombinować:)
Jak będę miał problemy to się odezwę.
Jak ktoś ma jeszcze jakąś pomoc do zaoferowania to czekam:)
Dzięki i Pozdrawiam
Einzeinbleth - 13-07-2006 12:14
He he na podstawie bota Szczelesa napisalem swojego :> Mysle ze calkiem niezle wyszedl :> Tyle ze to jest standardowy bot, ktory w zalozeniu mial siedziec na kanale i logowac do pliku kto jest na kanale, pozniej moze dorobie logowanie rozmow. Bot tworzy plik #kanal.txt gdzie sa wypisani wszyscy z kanalu :)
Ma tez kilka komend, np .join #kanal, .part #kanal, .exit powod, .say tekst, .mode +-flaga uzytkownik (aktualny kanal), .kick user i tak dalej :)
W configu trzeba ustawic imie bota, siec, i ownera - czyli kogo bot bedzie sluchal :)
http://einz.ovh.org/data/Pamela.zip < moze sie komus przyda :)
Ah.. i bardzo latwo dorobic nowe rozpoznawane komendy, wystarczy to ustawic w common.php
gracja322 - 13-07-2006 15:35
Do tego jest potrzebny shell?...
Ja ostatnio mialem jakiegos zwyklego na php pisanego. Z witryny szlo go odpalic ale po 15minutach d/c dostawal.
szczeles - 13-07-2006 18:48
Cytat:
Do tego jest potrzebny shell?...
Ja ostatnio mialem jakiegos zwyklego na php pisanego. Z witryny szlo go odpalic ale po 15minutach d/c dostawal.
Bo minal timeout z cofiga php pewnie :<
Swojego bocika stawialem na scrrenie na shellu - chodzil dlugo, dopoki go nie skickowali ludzie, ktorym sie nie spodobal ;-)
gracja322 - 13-07-2006 19:41
jak ktos nie wie co ma zrobić z botami to mozecie je powysylac na :
siec: quakenet 6668
kanał #urt
szczeles - 13-07-2006 23:08
Troche drętwy kanał, 5 opow i jeden user z voicem, a jak się przywitałem to już 10 minut czekam na odpoweidź ;-)
gracja322 - 14-07-2006 11:02
:P. Mnie nie bylo o tej godzinie wczoraj :D. Zazwyczaj jest wiecej osob.
zanotowane.pldoc.pisz.plpdf.pisz.plkonstruktor.keep.pl