-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
218 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
95
serendipity_event_commentspice/serendipity_event_commentspice.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 ' <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; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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ässigen Abstä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ürlich nicht gelesen wurde. Oder was soll \"<em>Danke Gott, dass ich diese Info nun endlich gefundem habe!</em>\" unter einem Youtube Video mit einem lustig furzenden Comic Dino? :D | ||
Merkwürdiger Weise haben die Kommentare alle keinen Link, der beworben werden könnte, was ist also das Ziel?! | ||
Schräg.. | ||
<a href=\"http://grischa.scorpius.uberspace.de/blog/uploads/screenshot-1325727080060.png\"><img class=\"alignnone\" title=\"screenshot-1325727080060.png\" alt=\"image\" src=\"http://grischa.scorpius.uberspace.de/blog/uploads/screenshot-1325727080060.png\" /></a> | ||
</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); |