Mister Spy Say ="Hello Kids ... :D"
___ ____ _ _____
| \/ (_) | | / ___|
| . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _
| |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | |
| | | | \__ \ || __/ | /\__/ / |_) | |_| |
\_| |_/_|___/\__\___|_| \____/| .__/ \__, |
| | __/ |
|_| |___/
Bot Mister Spy V3
Mister Spy
Mister Spy
<?php
/* Copyright 2002-2003 Edward Swindelles (ed@readinged.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
if (!defined('ONYX_RSS_VERS'))
{
define('ONYX_RSS_VERS', '1.0');
define('ONYX_ERR_NO_PARSER', '<a href="http://www.php.net/manual/en/ref.xml.php">PHP\'s XML Extension</a> is not loaded or available.');
define('ONYX_ERR_NOT_WRITEABLE', 'The specified cache directory is not writeable.');
define('ONYX_ERR_INVALID_URI', 'The specified file could not be opened.');
define('ONYX_ERR_INVALID_ITEM', 'Invalid item index specified.');
define('ONYX_ERR_NO_STREAM', 'Could not open the specified file. Check the path, and make sure that you have write permissions to this file.');
define('ONYX_META', 'meta');
define('ONYX_ITEMS', 'items');
define('ONYX_IMAGE', 'image');
define('ONYX_TEXTINPUT', 'textinput');
define('ONYX_NAMESPACES', 'namespaces');
define('ONYX_CACHE_AGE', 'cache_age');
define('ONYX_FETCH_ASSOC', 1);
define('ONYX_FETCH_OBJECT', 2);
}
class ONYX_RSS
{
var $parser;
var $conf;
var $rss;
var $data;
var $type;
var $lasterror;
/* For when PHP v.5 is released
* http://www.phpvolcano.com/eide/php5.php?page=variables
* private $parser;
* private $conf;
* private $rss;
* private $data;
* private $type;
*/
function ONYX_RSS()
{
$this->__construct();
}
// Forward compatibility with PHP v.5
// http://www.phpvolcano.com/eide/php5.php?page=start
function __construct()
{
$this->conf = array();
$this->conf['error'] = '<br /><strong>Error on line %s of '.__FILE__.'</strong>: %s<br />';
$this->conf['cache_path'] = dirname(__FILE__);
$this->conf['cache_time'] = 180;
$this->conf['debug_mode'] = true;
$this->conf['fetch_mode'] = ONYX_FETCH_ASSOC;
$this->lasterror = "";
if (!function_exists('xml_parser_create'))
{
$this->raiseError((__LINE__-2), ONYX_ERR_NO_PARSER);
return false;
}
$this->parser = @xml_parser_create();
if (!is_resource($this->parser))
{
$this->raiseError((__LINE__-3), ONYX_ERR_NO_PARSER);
return false;
}
xml_set_object($this->parser, $this);
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($this->parser, 'tag_open', 'tag_close');
xml_set_character_data_handler($this->parser, 'cdata');
}
function parse($uri, $file=false, $time=false, $local=false)
{
$this->rss = array();
$this->rss['cache_age'] = 0;
$this->rss['current_tag'] = '';
$this->rss['index'] = 0;
$this->rss['output_index'] = -1;
$this->data = array();
if ($file)
{
if (!is_writeable($this->conf['cache_path']))
{
$this->raiseError((__LINE__-2), ONYX_ERR_NOT_WRITEABLE);
return false;
}
$file = str_replace('//', '/', $this->conf['cache_path'].'/'.$file);
if (!$time)
$time = $this->conf['cache_time'];
$this->rss['cache_age'] = file_exists($file) ? ceil((time() - filemtime($file)) / 60) : 0;
clearstatcache();
if (!$local && file_exists($file))
if (($mod = $this->mod_time($uri)) === false)
{
$this->raiseError((__LINE__-2), ONYX_ERR_INVALID_URI);
return false;
}
else
$mod = ($mod !== 0) ? strtotime($mod) : (time()+3600);
elseif ($local)
$mod = (file_exists($file) && ($m = filemtime($uri))) ? $m : time()+3600;
}
if ( !$file ||
($file && !file_exists($file)) ||
($file && file_exists($file) && $time <= $this->rss['cache_age'] && $mod >= (time() - ($this->rss['cache_age'] * 60))))
{
clearstatcache();
if (!($fp = @fopen($uri, 'r')))
{
$this->raiseError((__LINE__-2), ONYX_ERR_INVALID_URI);
return false;
}
while ($chunk = fread($fp, 4096))
{
$parsedOkay = xml_parse($this->parser, $chunk, feof($fp));
if (!$parsedOkay && xml_get_error_code($this->parser) != XML_ERROR_NONE)
{
$this->raiseError((__LINE__-3), 'File has an XML error (<em>'.xml_error_string(xml_get_error_code($this->parser)).'</em> at line <em>'.xml_get_current_line_number($this->parser).'</em>).');
return false;
}
}
fclose($fp);
clearstatcache();
if ($file)
{
if (!($cache = @fopen($file, 'w')))
{
$this->raiseError((__LINE__-2), 'Could not write to cache file (<em>'.$file.'</em>). The path may be invalid or you may not have write permissions.');
return false;
}
fwrite($cache, serialize($this->data));
fclose($cache);
$this->rss['cache_age'] = 0;
}
}
else
{
clearstatcache();
if (!($fp = @fopen($file, 'r')))
{
$this->raiseError((__LINE__-2), 'Could not read contents of cache file (<em>'.$cache_file.'</em>).');
return false;
}
$this->data = unserialize(fread($fp, filesize($file)));
fclose($fp);
}
return true;
}
function parseLocal($uri, $file=false, $time=false)
{
return $this->parse($uri, $file, $time, true);
}
//private function tag_open($parser, $tag, $attrs)
function tag_open($parser, $tag, $attrs)
{
$this->rss['current_tag'] = $tag = strtolower($tag);
switch ($tag)
{
case 'channel':
case 'image':
case 'textinput':
$this->type = $tag;
break;
case 'item':
$this->type = $tag;
$this->rss['index']++;
break;
default:
break;
}
if (sizeof($attrs))
foreach ($attrs as $k => $v)
if (strpos($k, 'xmlns') !== false)
$this->data['namespaces'][$k] = $v;
}
//private function tag_close($parser, $tag){}
function tag_close($parser, $tag){}
//private function cdata($parser, $cdata)
function cdata($parser, $cdata)
{
if (strlen(trim($cdata)) && $cdata != "\n")
switch ($this->type)
{
case 'channel':
case 'image':
case 'textinput':
(!isset($this->data[$this->type][$this->rss['current_tag']]) ||
!strlen($this->data[$this->type][$this->rss['current_tag']])) ?
$this->data[$this->type][$this->rss['current_tag']] = $cdata :
$this->data[$this->type][$this->rss['current_tag']].= $cdata;
break;
case 'item':
(!isset($this->data['items'][$this->rss['index']-1][$this->rss['current_tag']]) ||
!strlen($this->data['items'][$this->rss['index']-1][$this->rss['current_tag']])) ?
$this->data['items'][$this->rss['index']-1][$this->rss['current_tag']] = $cdata :
$this->data['items'][$this->rss['index']-1][$this->rss['current_tag']].= $cdata;
break;
}
}
function getData($type)
{
if ($type == ONYX_META)
return $this->conf['fetch_mode'] == 1 ? $this->data['channel'] : (object)$this->data['channel'];
if ($type == ONYX_IMAGE)
return $this->conf['fetch_mode'] == 1 ? $this->data['image'] : (object)$this->data['image'];
if ($type == ONYX_TEXTINPUT)
return $this->conf['fetch_mode'] == 1 ? $this->data['textinput'] : (object)$this->data['textinput'];
if ($type == ONYX_ITEMS)
{
if ($this->conf['fetch_mode'] == 1)
return $this->data['items'];
$temp = array();
for ($i=0; $i < sizeof($this->data['items']); $i++)
$temp[] = (object)$this->data['items'][$i];
return $temp;
}
if ($type == ONYX_NAMESPACES)
return $this->conf['fetch_mode'] == 1 ? $this->data['namespaces'] : (object)$this->data['namespaces'];
if ($type == ONYX_CACHE_AGE)
return $this->rss['cache_age'];
return false;
}
function numItems()
{
return sizeof($this->data['items']);
}
function getNextItem($max=false)
{
$type = $this->conf['fetch_mode'];
$this->rss['output_index']++;
if (($max && $this->rss['output_index'] > $max) || !isset($this->data['items'][$this->rss['output_index']]))
return false;
return ($type == ONYX_FETCH_ASSOC) ? $this->data['items'][$this->rss['output_index']] :
(($type == ONYX_FETCH_OBJECT) ? (object)$this->data['items'][$this->rss['output_index']] : false);
}
function itemAt($num)
{
if (!isset($this->data['items'][$num]))
{
$this->raiseError((__LINE__-3), ONYX_ERR_INVALID_ITEM);
return false;
}
$type = $this->conf['fetch_mode'];
return ($type == ONYX_FETCH_ASSOC) ? $this->data['items'][$num] :
(($type == ONYX_FETCH_OBJECT) ? (object)$this->data['items'][$num] : false);
}
function startBuffer($file=false)
{
$this->conf['output_file'] = $file;
ob_start();
}
function endBuffer()
{
if (!$this->conf['output_file'])
ob_end_flush();
else
{
if (!($fp = @fopen($this->conf['output_file'], 'w')))
{
$this->raiseError((__LINE__-2), ONYX_ERR_NO_STREAM);
ob_end_flush();
return;
}
fwrite($fp, ob_get_contents());
fclose($fp);
chmod($this->conf['output_file'],0666);
ob_end_clean();
}
}
//private function raiseError($line, $err)
function raiseError($line, $err)
{
if ($this->conf['debug_mode'])
printf($this->conf['error'], $line, $err);
else
$this->lasterror = $err;
}
function setCachePath($path)
{
$this->conf['cache_path'] = $path;
}
function setExpiryTime($time)
{
$this->conf['cache_time'] = $time;
}
function setDebugMode($state)
{
$this->conf['debug_mode'] = (bool)$state;
}
function setFetchMode($mode)
{
$this->conf['fetch_mode'] = $mode;
}
//private function mod_time($uri)
function mod_time($uri)
{
if (function_exists('version_compare') && version_compare(phpversion(), '4.3.0') >= 0)
{
if (!($fp = @fopen($uri, 'r')))
return false;
$meta = stream_get_meta_data($fp);
for ($j = 0; isset($meta['wrapper_data'][$j]); $j++)
if (strpos(strtolower($meta['wrapper_data'][$j]), 'last-modified') !== false)
{
$modtime = substr($meta['wrapper_data'][$j], 15);
break;
}
fclose($fp);
}
else
{
$parts = parse_url($uri);
$host = $parts['host'];
$path = $parts['path'];
if (!($fp = @fsockopen($host, 80)))
return false;
$req = "HEAD $path HTTP/1.1\r\nUser-Agent: PHP/".phpversion();
$req.= "\r\nHost: $host\r\nAccept: */*\r\n\r\n";
fputs($fp, $req);
while (!feof($fp))
{
$str = fgets($fp, 4096);
if (strpos(strtolower($str), 'last-modified') !== false)
{
$modtime = substr($str, 15);
break;
}
}
fclose($fp);
}
return (isset($modtime)) ? $modtime : 0;
}
}
?>
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat