IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   PHP (https://www.ircforumlari.net/php/)
-   -   IRC de olan biteni webe yansıtmak? (https://www.ircforumlari.net/php/43177-irc-de-olan-biteni-webe-yansitmak.html)

kercan01 05 Aralık 2007 13:47

IRC de olan biteni webe yansıtmak?
 
ircde belirlediğimiz kanal loglarını tutup web sayfasına yansıtmak için bildiginiz bir Php irc botu varmı? olanlar yazarsa sevinirim.

Loft 13 Ocak 2008 14:26

Cevap: IRC de olan biteni webe yansıtmak?
 
Alıntı:

kercan01 Nickli Üyeden Alıntı (Mesaj 299309)
ircde belirlediğimiz kanal loglarını tutup web sayfasına yansıtmak için bildiginiz bir Php irc botu varmı? olanlar yazarsa sevinirim.

bunun botu script'î yok :D bildiğim kadarıyla irc'nin desteklemesi gereken bir modül var bunun için. Shell saglayıcınla konuş yardımcı olurlar sanırım.

Brain 13 Ocak 2008 15:14

Cevap: IRC de olan biteni webe yansıtmak?
 
php botu vardir mutlaka lakin bunu en guzel yapan 1 eggdrop bot mevcut

chanstats.tcl egghelp.org den bulabilirsiniz. (localhost olarak calismakta)

CanCeL 13 Ocak 2008 16:13

Cevap: IRC de olan biteni webe yansıtmak?
 
Kanaldaki konuşma logları web'e aktarabilinir eggdrop bot ile. Boş bir zamanımda hazırlayıp veririm...

Loft 13 Ocak 2008 20:26

Cevap: IRC de olan biteni webe yansıtmak?
 
öyleyse konu yanlış yerde. Ben bot ve script derken php script ve botlardan bahsediyoruz sanmıştım. Konu taşınırsa daha iyi olacaktır.

Kenshin 14 Ocak 2008 00:22

Cevap: IRC de olan biteni webe yansıtmak?
 
Conferenceroom da mevcut bir özellik.

khazadum 14 Ocak 2008 01:14

Cevap: IRC de olan biteni webe yansıtmak?
 
Kod ceviz.net ten alınmış, tarafımca düzenlenmiştir. (Kodun sahibi HunteR, Ertugrul Yıldırımdır.)

ilk başta baglanti.php'yi vereyim.

PHP- Kodu:

<?
 
class CN_RssParser
      
{
    
# Genel Tanýmlamalar
      
var $insideitem false// Alt Oge Varmý?
      
var $tag;                // Etýket Adý
      
var $title;              // Oge Baslýgý
      
var $link;               // Oge Linki
      
var $aticdate;           // Oge Tarihi
      
var $author;             // Oge Yazarý

    # Baglantý
      
var $result = array();
      var 
$parser;

    
# Sýnýf Cagrýldýgýnda Calýsacak Method
      
function CN_RssParser()
         {
         
$this->parser xml_parser_create();
         
xml_set_object($this->parser,&$this);
         
xml_set_element_handler($this->parser,"StartElement","EndElement");
         
xml_set_character_data_handler($this->parser,"CharacterData");
         }

    
# Datayý Yorumlar ve Sonucu Dondurur
      
function Parse($data,$feof)
         {
         
# Datayý Yorumla
         
xml_parse($this->parser$data$feof);

         
# Sonucu Dondur
         
return $this->result;
         }

    
# Yený Bý Etýket ýle Karsýlastýgýnda
      
function StartElement($parser$tagname$attrs)
         {
         
# Eger Alt Ogelere Gecýldýyse (title,link, vs..)
         
if ($this->insideitem)
            {
            
$this->tag $tagname;
            }
         
# Yený Ogeye Gecýldýyse (item), Alt Ogeye Gec (title,link, vs..)
         
elseif ($tagname == "ITEM")
            {
            
$this->insideitem true;
            }
         return;
         }

    
# Etýketýn Sonuna Geldýgýnde
      
function EndElement($parser$tagname)
         {
         if (
$tagname == "ITEM")
            {
            
# Sonucu Olustur
            
$result .= trim($this->title)."\n".trim($this->link)."\n";
            if(
$this->author and $this->articdate)
            
$result .= trim($this->author)." ".trim($this->articdate)."\n";
            
$result .= "\n ";

            
# Degerlerý Sýfýrla
            
$this->title "";
            
$this->link "";
            
$this->articdate "";
            
$this->author "";
            
$this->insideitem false;

            
# Olusan sonucu $result dýzýsýne yený býr eleman olarak at
            
$this->result[] = $result;
            }
         return;
         }

    
# Etýketýn Icerýgýný Yorumlamak Icýn
      
function CharacterData($parser$data)
         {
         
# Eger Alt Ogeye Gecýldýyse
         
if ($this->insideitem)
            {
            
# Alt Oge Adýna Gore Degerlý Ata
            
switch ($this->tag)
               {
               case 
"TITLE":     $this->title .= $data;     break;
               case 
"LINK":      $this->link .= $data;      break;
               case 
"ARTICDATE"$this->articdate .= $data; break;
               case 
"YAZAR":     $this->author .= $data;    break;
               }
            }
         return;
         }


    
# Islemý Tamam.. Bellegý Bosalt
      
function Close()
         {
         
xml_parser_free($this->parser);
         return;
         }
      }
?>

sonra da php kodumuzu;

PHP- Kodu:

<?
  
include("baglanti.php");
  class 
PHPbot
      

      var 
$localhost
      var 
$host;
      var 
$port;       
      var 
$timeout;    
      var 
$kanal;    
      var 
$nick;       
      var 
$closecode;  
      var 
$logfile;    
      var 
$server;
      var 
$log;

     function 
PHPbot()
         {
         
define(n"\n");
         
$this -> localhost  'adsluser-2866.adsl.ttnet.net.tr';
         
$this -> host 'irc.hebele.com'//*Sunucu Adresiniz.
         
$this -> port       6667;
         
$this -> timeout    0;
         
$this -> kanal      'kanal adi'//*Botun girecegi kanal "#" karakterini kullanmayin.
         
$this -> nick       'PHPBot';
         
$this -> closecode  'kapanma sifresi';
         
$this -> logfile    'log.txt';
         }

      function 
Connect()
         {
         
set_time_limit ($this->timeout);
         
$this -> server fsockopen ($this -> host$this -> port$hatano$hatastr$this -> timeout) or
                         die(
'Sunucuya Baðlanamadý');
        
$this -> log    fopen ($this -> logfile'w+') or
                         die(
'Dosya Yaratýlamadý');

         
fputs($this->server'NICK '.$this->nick.n);
         
fputs($this->server'USER '.$this->nick.' '.$this->localhost.' '.$this->remotehost.' :'.$this->nick.n);
         
fputs($this->server'JOIN #'.$this->channel.n);
         
fputs($this->server'PRIVMSG #'.$this->channel.' :Phpbot aktiftir.'.n);
         return;
         }

      function 
Disconnect()
         {
         
fclose($this->server);
         
fclose($this->log);
         exit;
         return;
         }
      function 
PrivMsg($nick,$cmd,$arg)
         {
         if(
$cmd[1] == '#'.$this->channel)
         
fputs($this->log'<'.date("H:i").' '.$nick.'> '.$arg.n);
         if(
preg_match("'\!(.*?)'U",$arg,$set))
            {
            switch(
$set[1])
               {
               case 
$this->closecode$this->Disconnect();            break; // Kapan (Calýsmayý Durdur)
                 
}
            }

         return;
         }

      function 
Run()
         {
         
$this->Connect();

         while (!
feof($this->server))
            {
            
$data fgets ($this->server,1024);

            if(
preg_match("'PING(.*?)'si"$data$set))
            
fputs($this->server,'PONG '.trim($set[1]).n);

            if(
preg_match("':(.*?)!([^\s]*?)\s(.*?)\s:(.*?)'U"$data$set))
               {
               
$nick trim($set[1]);
               
$host trim($set[2]);
               
$cmd explode(" ",trim($set[3]));
               
$arg trim($set[4]);

               switch(
$cmd[0])
                  {
                  case 
"PRIVMSG"$this->PrivMsg($nick,$cmd,$arg); break; // Mesaj Gonderýldýgýnde
                  
case "PART":  break; // Tamamlanmadý..
                  
case "JOIN":  break; // Tamamlanmadý..
                  
case "NICK":  break; // Tamamlanmadý..
                  
case "QUIT":  break; // Tamamlanmadý..
                  
}

               }
            }
         }
      }

 
$PHPbot = new PHPbot();
 
$PHPbot->Run();
?>


SurucLu 03 Şubat 2008 19:55

Cevap: IRC de olan biteni webe yansıtmak?
 
Onur usta verdigin kodları uguladım ama şöyle bir hata verdi

Warning: set_time_limit() has been disabled for security reasons in /home/XXXX/public_html/bot.php on line 31

Warning: fsockopen() [[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]]: unable to connect to irc.xxxxxxx.com:6667 (Connection timed out) in /home/XXXX/public_html/bot.php on line 32
Sunucuya Ba?lanamad?


hata ne olmuş olabilir
bende ident koruması var olabilirmi ?

Alovepoem 03 Şubat 2008 20:47

Cevap: IRC de olan biteni webe yansıtmak?
 
Düzenlemeleri tam olarak yapamamıssın bastan kodlamaları kendıne göre düzenle .

SurucLu 03 Şubat 2008 21:43

Cevap: IRC de olan biteni webe yansıtmak?
 
Kod:


<?
include("baglanti.php");
class PHPbot
{
var $localhost;
var $host;
var $port;
var $timeout;
var $kanal;
var $nick;
var $closecode;
var $logfile;
var $server;
var $log;
function PHPbot()
{
define(n, "\n");
$this -> localhost = 'adsluser-2866.adsl.ttnet.net.tr';
$this -> host = 'irc.xxxxxx.com'; //*Sunucu Adresiniz.
$this -> port = 6667;
$this -> timeout = 0;
$this -> kanal = 'coders'; //*Botun girecegi kanal "#" karakterini kullanmayin.
$this -> nick = 'PHPBot';
$this -> closecode = 'kapanma sifresi';
$this -> logfile = 'log.txt';
}
function Connect()
{
set_time_limit ($this->timeout);
$this -> server = fsockopen ($this -> host, $this -> port, $hatano, $hatastr, $this -> timeout) or
die('Sunucuya Ba?lanamad?');
$this -> log = fopen ($this -> logfile, 'w+') or
die('Dosya Yarat?lamad?');
fputs($this->server, 'NICK '.$this->nick.n);
fputs($this->server, 'USER '.$this->nick.' '.$this->localhost.' '.$this->remotehost.' :'.$this->nick.n);
fputs($this->server, 'JOIN #'.$this->channel.n);
fputs($this->server, 'PRIVMSG #'.$this->channel.' :Phpbot aktiftir.'.n);
return;
}
function Disconnect()
{
fclose($this->server);
fclose($this->log);
exit;
return;
}
function PrivMsg($nick,$cmd,$arg)
{
if($cmd[1] == '#'.$this->channel)
fputs($this->log, '<'.date("H:i").' '.$nick.'> '.$arg.n);
if(preg_match("'\!(.*?)'U",$arg,$set))
{
switch($set[1])
{
case $this->closecode: $this->Disconnect(); break; // Kapan (Cal?smay? Durdur)
}
}
return;
}
function Run()
{
$this->Connect();
while (!feof($this->server))
{
$data = fgets ($this->server,1024);
if(preg_match("'PING(.*?)'si", $data, $set))
fputs($this->server,'PONG '.trim($set[1]).n);
if(preg_match("':(.*?)!([^\s]*?)\s(.*?)\s:(.*?)'U", $data, $set))
{
$nick = trim($set[1]);
$host = trim($set[2]);
$cmd = explode(" ",trim($set[3]));
$arg = trim($set[4]);
switch($cmd[0])
{
case "PRIVMSG": $this->PrivMsg($nick,$cmd,$arg); break; // Mesaj Gonder?ld?g?nde
case "PART": break; // Tamamlanmad?..
case "JOIN": break; // Tamamlanmad?..
case "NICK": break; // Tamamlanmad?..
case "QUIT": break; // Tamamlanmad?..
}
}
}
}
}
$PHPbot = new PHPbot();
$PHPbot->Run();
?>

sadece bu sayfada degişiklik yapılacak degilmi ?

ve bu sayfadan sadece bu bolum
Kod:

$this -> localhost = 'adsluser-2866.adsl.ttnet.net.tr';
$this -> host = 'irc.xxxxxxxxx.com'; //*Sunucu Adresiniz.
$this -> port = 6667;
$this -> timeout = 0;
$this -> kanal = 'coders'; //*Botun girecegi kanal "#" karakterini kullanmayin.
$this -> nick = 'PHPBot';
$this -> closecode = 'kapanma sifresi';
$this -> logfile = 'log.txt';

aynen yaptim ve
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
klasorune atim ama olmadı


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 15:28.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk