All pastes #953195 Raw Edit

Something

public text v1 · immutable
#953195 ·published 2008-03-22 21:32 UTC
rendered paste body
-- The entire mIRC part that does everything (just take what you need) --
alias start-php-listening {
  ; starts listening for the PHP script on port 5600 
  if ($portfree(5600)) {
    set %channel #sp219
    socklisten php 5600
  }
}
alias send-to-php2 {
  ; alias that sends $1- to PHP, so data can be sent easily with one command
  sockwrite -tn %bleh1 $1-
}
alias send-to-php {
  ; alias that sends $1- to PHP, so data can be sent easily with one command
  sockwrite -tn %bleh1 $1-
  sockclose %bleh1
}
alias send-users {
  ; loop through the userlist and send each nick to PHP
  set %testvar 1
  while (%testvar < $calc($nick($1,0)+1)) {
    sockwrite -tn %bleh1 $nick($1,%testvar) $+ :
    inc %testvar
  }
  sockclose %bleh1
}
on *:socklisten:php:{
  ; listens and accepts the socket request from PHP
  if (!$sockerr) {
    %sockname = usercount $+ $rand(1,99999999999999)
    ; accept it
    sockaccept usercount %sockname
  }
}

on *:sockread:usercount*:{
  ; read the data from php, and put it in the variable %temp
  sockread -f %temp
  ; set the socket name so it can be used in other aliases
  set %bleh1 $sockname
  ; PHP sent the word "uptime", so send it the mirc uptime
  if (uptime iswm %temp) { send-to-php $uptime(mirc,2) }
  ; PHP sent the word "topic #somechan", so send it the topic for that channel
  if (topic* iswm %temp) { send-to-php $chan($gettok(%temp,2,32)).topic }
  ; PHP sent the word "users #somechan", so call the send-users alias to loop through and send each user
  if (users* iswm %temp) { send-users $gettok(%temp,2,32) }
  ; PHP sent the word "chans", so return all the channels im in
  if (chans iswm %temp) { unset %botchans | send-to-php $chansimin }
  ; PHP sent the word "howmanyusers", so return the number of users in each channel
  if (howmanyusers iswm %temp) { unset %botusers | chansimin | send-to-php %botusers }
}
alias chansimin {
  var %load = 0
  var %i = 1
  while (%i <= $chan(0)) {
    if (%i != $chan(0)) {
      set %botchans %botchans $+ $chan(%i) $+ :
      set %botusers %botusers $+ $nick($chan(%i),0) $+ :
    }
    if (%i == $chan(0)) {
      set %botchans %botchans $+ $chan(%i)
      set %botusers %botusers $+ $nick($chan(%i),0)
    }
    inc %load    
    inc %i
  }
  return %botchans
  unset %load
  unset %i
}


-- The PHP chans.php --
<?
function getData($whatData) {
$fp = fsockopen("127.0.0.1", "5600", $errno, $errstr, 5);
fwrite($fp, $whatData);
while (!feof($fp)) {
 $stream .= fgets($fp, 2048);
}
return $stream;
}
$chans = getData("chans");
$chansarray = explode(":",$chans);
$howmanyusers = getData("howmanyusers");
$usersarray = explode(":",$howmanyusers);
//print_r($chansarray);
//echo 'done<br>';
//print_r($usersarray);
$val = 0;
$numchans = count($chansarray);
//echo $numchans;
while ($val < $numchans) {
$chansarray[$val] = str_replace(array("\r", "\n"), '', $chansarray[$val]);
$usersarray[$val] = str_replace(array("\r", "\n"), '', $usersarray[$val]);
$temp = str_replace('#', '', $chansarray[$val]);
echo "<a href=\"users.php?chan=$temp\">$chansarray[$val] ($usersarray[$val])</a><br>\n";
$val++;
}
?>