about summary refs log tree commit diff stats
path: root/xmlrpc.php
blob: 2c634d366342257deec422ee7cc3cb0a6b849e24 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc {
<?php
/*
       444444444  
      4::::::::4  
     4:::::::::4  
    4::::44::::4  
   4::::4 4::::4   Four Island
  4::::4  4::::4  
 4::::4   4::::4   Written and maintained by Starla Insigna
4::::444444::::444
4::::::::::::::::4  xmlrpc.php
4444444444:::::444
          4::::4   Please do not use, reproduce or steal the
          4::::4   contents of this file without explicit
          4::::4   permission from Hatkirby.
        44::::::44
        4::::::::4
        4444444444
*/

require('headerproc.php');

include('../security/config.php');
include('includes/db.php');
include('includes/xmlrpc/xmlrpc.inc');
include('includes/xmlrpc/xmlrpcs.inc');
include('includes/functions.php');

function ping($xmlrpcmsg)
{
	$from = $xmlrpcmsg->getParam(0)->scalarVal();
	$to = $xmlrpcmsg->getParam(1)->scalarVal();

	if (preg_match('/^http:\/\/w?w?w?\.?fourisland\.com\/blog\/([-a-z0-9]+)\/$/',$to))
	{
		$slug = preg_replace('/^http:\/\/w?w?w?\.?fourisland\.com\/blog\/([-a-z0-9]+)\/$/','$1',$to);

		$getpost = "SELECT * FROM updates WHERE slug = \"" . $slug . "\"";
		$getpost2 = mysql_query($getpost);
		$getpost3 = mysql_fetch_array($getpost2);

		if ($getpost3['slug'] == $slug)
		{

			$c = curl_init();
			curl_setopt($c, CURLOPT_URL, $from);
			curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($c, CURLOPT_HEADER, false);
			$page_data = curl_exec($c);
			curl_close($c);

			if (stripos($page_data,$to) !== FALSE)
			{
				if (preg_match('/<TITLE>([^>]+)<\/TITLE>/i',$page_data,$matches))
				{
					$title = $matches[1];
				} else {
					$title = $from;
				}

				$text = substr($page_data,(stripos($page_data,$to)-300),700);
				$text = strip_tags($text);
				$text = str_replace("\n",' ',$text);

				$commentText = "[url=" . $from . "]" . $title . "[/url]\n\n[....] " . $text . " [....]";

				$getping = "SELECT * FROM comments WHERE page_id = \"updates-" . $getpost3['id'] . "\" AND comment = \"" . addslashes($commentText) . "\"";
				$getping2 = mysql_query($getping);
				$getping3 = mysql_fetch_array($getping2);

				if ($getping3['comment'] == $commentText)
				{
					return new xmlrpcresp(0, 48, "Target uri cannot be used as target");
				} else {
					$insping = "INSERT INTO comments (page_id,username,comment) VALUES (\"updates-" . $getpost3['id'] . "\",\"Pingback\",\"" . $commentText . "\")";
					$insping2 = mysql_query($insping);
					recalcPop($getpost3['id']);

					return new xmlrpcresp(new xmlrpcval("YAY! Your Pingback has been registered!", "string"));
				}
			} else {
				return new xmlrpcresp(0, 17, "Source uri does have link to target uri");
			}
		} else {
			return new xmlrpcresp(0, 32, "Target uri does not exist");
		}
	} else {
		return new xmlrpcresp(0, 33, "Target uri cannot be used as target");
	}
}

function rr($xmlrpcmsg)
{
	return new xmlrpcresp(new xmlrpcval(0, "int"));
}

$s = new xmlrpc_server(array(
			"pingback.ping" => array("function" => "ping"),
			"InstaDisc.checkRegistration" => array("function" => "rr")));

?>