From 24503e3abe705acde2df159aeae61be0d009f92e Mon Sep 17 00:00:00 2001 From: Starla Insigna Date: Wed, 19 Nov 2008 17:27:03 -0500 Subject: Imported sources --- xmlrpc.php | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 xmlrpc.php (limited to 'xmlrpc.php') diff --git a/xmlrpc.php b/xmlrpc.php new file mode 100644 index 0000000..2c634d3 --- /dev/null +++ b/xmlrpc.php @@ -0,0 +1,101 @@ +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>/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"))); + +?> -- cgit 1.4.1