Skip to content

Commit

Permalink
commentspice: first checkin
Browse files Browse the repository at this point in the history
  • Loading branch information
brockhaus committed Jun 29, 2012
1 parent c64c623 commit e887013
Show file tree
Hide file tree
Showing 4 changed files with 218 additions and 0 deletions.
Binary file added serendipity_event_commentspice/img/twitter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions serendipity_event_commentspice/lang_en.inc.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?php
@define('PLUGIN_EVENT_COMMENTSPICE_TITLE', 'Comment Spice');
@define('PLUGIN_EVENT_COMMENTSPICE_DESC', 'Spice your comments');
95 changes: 95 additions & 0 deletions serendipity_event_commentspice/serendipity_event_commentspice.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<?php


if (IN_serendipity !== true) {
die ("Don't hack!");
}

// Probe for a language include with constants. Still include defines later on, if some constants were missing
$probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
if (file_exists($probelang)) {
include $probelang;
}

include dirname(__FILE__) . '/lang_en.inc.php';

class serendipity_event_commentspice extends serendipity_event
{
var $title = PLUGIN_EVENT_COMMENTSPICE_TITLE;
function introspect(&$propbag)
{
global $serendipity;

$propbag->add('name', PLUGIN_EVENT_COMMENTSPICE_TITLE);
$propbag->add('description', PLUGIN_EVENT_COMMENTSPICE_DESC);
$propbag->add('stackable', false);
$propbag->add('author', 'Grischa Brockhaus');
$propbag->add('requirements', array(
'serendipity' => '0.8',
'smarty' => '2.6.7',
'php' => '4.1.0'
));
$propbag->add('version', '0.1');
$propbag->add('event_hooks', array(
'frontend_comment' => true,
'external_plugin' => true,
));
$propbag->add('groups', array('FRONTEND_VIEWS'));
$propbag->add('configuration', array('twitterinput'));
}

function generate_content(&$title) {
$title = PLUGIN_EVENT_EMOTICONCHOOSER_TITLE;
}

function introspect_config_item($name, &$propbag)
{
switch($name) {
case 'twitterinput':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_COMMENTSPICE_TWITTERINPUT);
$propbag->add('description', '');
$propbag->add('default', true);
return true;
break;
}
return false;
}

function event_hook($event, &$bag, &$eventData) {
global $serendipity;

$hooks = &$bag->get('event_hooks');
if (isset($hooks[$event])) {
switch($event) {
case 'external_plugin':
switch($eventData) {
case 'spicetwitter.png':
header('Content-Type: image/png');
echo file_get_contents(dirname(__FILE__). '/img/twitter.png');
break;
}
return true;
break;
case 'frontend_comment':
if (!serendipity_db_bool($this->get_config('twitterinput', true))) {
break;
}
echo '<div id="serendipity_commentspice_twitter">';
echo '<input type="text" id="serendipity_commentform_twitter" name="serendipity[twitter]" placeholder="your twittername" />';
echo '&nbsp;<label for="serendipity_commentform_twitter"><img src="' . $serendipity['baseURL'] . 'index.php?/plugin/spicetwitter.png" alt="Twitter"></label>';
echo '</div>';
echo '<br/><div id="serendipity_commentspice_twitter_desc" class="serendipity_commentDirection serendipity_comment_spice">';
echo 'If you enter your <b>twitter name</b> here, your timeline will get linked to your comment. (<i>experimental comment spice</i>)';
echo '</div>';
return true;
break;
default:
return false;
break;
}
} else {
return false;
}
}
}
120 changes: 120 additions & 0 deletions testxmlrpc.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
<?php
// needs php5-curl and php5-xmlrpc on Ubuntu

@define("XMLRPC_USER", "grischa");
@define("XMLRPC_PWD", "int0rg98");
@define("XMLRPC_HOST", "grischa.scorpius.uberspace.de");
@define("XMLRPC_ENDPOINT", "http://" . XMLRPC_HOST . "/blog/serendipity_xmlrpc.php");

function test($request) {
print "$request\n";

$req = curl_init(XMLRPC_ENDPOINT);

// Using the cURL extension to send it off, first creating a custom header block
$headers = array();
array_push($headers,"Content-Type: text/xml");
array_push($headers,"Content-Length: ".strlen($request));
array_push($headers,"\r\n");

//URL to post to
curl_setopt($req, CURLOPT_URL, XMLRPC_ENDPOINT);

//Setting options for a secure SSL based xmlrpc server
curl_setopt($req, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($req, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt( $req, CURLOPT_CUSTOMREQUEST, 'POST' );
curl_setopt($req, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($req, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $req, CURLOPT_POSTFIELDS, $request );

//Finally run
$response = curl_exec($req);
echo "resonse: $response\n";

//Close the cURL connection
curl_close($req);

//Decoding the response to be displayed
echo xmlrpc_decode($response);
}

//test(xmlrpc_encode_request('wp.getTags', array(1, XMLRPC_USER, XMLRPC_PWD)));
//test(xmlrpc_encode_request('wp.getOptions', array(1, XMLRPC_USER, XMLRPC_PWD)));

$req_mt_setPostCategories ='<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>mt.setPostCategories</methodName>
<params>
<param>
<value><string>92</string></value>
</param>
<param>
<value><string>' . XMLRPC_USER . '</string></value>
</param>
<param>
<value><string>' . XMLRPC_PWD . '</string></value>
</param>
<param>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>categoryId</name>
<value><string>3</string></value>
</member>
<member>
<name>categoryName</name>
<value><string>wpandroid</string></value>
</member>
<member>
<name>isPrimary</name>
<value><boolean>1</boolean></value>
</member>
</struct>
</value>
</data>
</array>
</value>
</param>
</params>
</methodCall>';

//test($req_mt_setPostCategories);

$req_metaWeblog_getPost = '<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>metaWeblog.getPost</methodName>
<params>
<param>
<value><string>92</string></value>
</param>
<param>
<value><string>' . XMLRPC_USER . '</string></value>
</param>
<param>
<value><string>' . XMLRPC_PWD . '</string></value>
</param>
</params>
</methodCall>';

//test($req_metaWeblog_getPost);

//test(xmlrpc_encode_request('wp.getCategories', array(1, XMLRPC_USER, XMLRPC_PWD)));
//test(xmlrpc_encode_request('mt.supportedMethods', array(1, XMLRPC_USER, XMLRPC_PWD)));
//test(xmlrpc_encode_request('wp.getPostFormats', array(1, XMLRPC_USER, XMLRPC_PWD)));

$req = "<methodCall><methodName>metaWeblog.editPost</methodName><params><param><value><string>97</string></value></param><param><value><string>grischa</string></value></param><param><value><string>int0rg98</string></value></param><param><value><struct><member><name>custom_fields</name><value><array><data><value><struct><member><name>value</name><value><double>52.47235714285714</double></value></member><member><name>key</name><value><string>geo_latitude</string></value></member></struct></value><value><struct><member><name>value</name><value><double>13.443786685714285</double></value></member><member><name>key</name><value><string>geo_longitude</string></value></member></struct></value><value><struct><member><name>value</name><value><i4>1</i4></value></member><member><name>key</name><value><string>geo_public</string></value></member></struct></value></data></array></value></member><member><name>title</name><value><string>Was sollen diese Spam Kommentare eigentlich genau bewirken?</string></value></member><member><name>date_created_gmt</name><value><dateTime.iso8601>20120104T23:26:07</dateTime.iso8601></value></member><member><name>wp_password</name><value><string></string></value></member><member><name>post_status</name><value><string>publish</string></value></member><member><name>description</name><value><string>Bei mir kommen seit gestern in regelm&#228;ssigen Abst&#228;nden Spam Kommentare wie die unten an.
Was soll das? Sie sind alle unterschiedlich aber immer nach dem selben Muster aufgebaut: Englisch mit zumeist einem Schreibfehler und immer ein Loblied auf den Artikel, der nat&#252;rlich nicht gelesen wurde. Oder was soll \"&lt;em&gt;Danke Gott, dass ich diese Info nun endlich gefundem habe!&lt;/em&gt;\" unter einem Youtube Video mit einem lustig furzenden Comic Dino? :D
Merkw&#252;rdiger Weise haben die Kommentare alle keinen Link, der beworben werden k&#246;nnte, was ist also das Ziel?!
Schr&#228;g..
&lt;a href=\"http://grischa.scorpius.uberspace.de/blog/uploads/screenshot-1325727080060.png\"&gt;&lt;img class=\"alignnone\" title=\"screenshot-1325727080060.png\" alt=\"image\" src=\"http://grischa.scorpius.uberspace.de/blog/uploads/screenshot-1325727080060.png\" /&gt;&lt;/a&gt;
</string></value></member><member><name>mt_keywords</name><value><string>spam</string></value></member><member><name>dateCreated</name><value><dateTime.iso8601>20120104T22:26:07</dateTime.iso8601></value></member><member><name>post_type</name><value><string>post</string></value></member><member><name>categories</name><value><array><data><value><string>wpandroid</string></value></data></array></value></member></struct></value></param><param><value><boolean>0</boolean></value></param></params></methodCall>";
test($req);

0 comments on commit e887013

Please sign in to comment.