X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FLinkbackPlugin.php;h=8e44beae1828b207d008e08119b44e4e82856bcb;hb=d52f6d5aeaa820e44beadf397dd5c0f15e0d33e7;hp=0513687e9196026dbd3daa99d145996df7d50e66;hpb=fa37967858c3c29000797e510e5f98aca8ab558f;p=quix0rs-gnu-social.git diff --git a/plugins/LinkbackPlugin.php b/plugins/LinkbackPlugin.php index 0513687e91..8e44beae18 100644 --- a/plugins/LinkbackPlugin.php +++ b/plugins/LinkbackPlugin.php @@ -59,7 +59,7 @@ class LinkbackPlugin extends Plugin parent::__construct(); } - function onEndNoticeSave($notice) + function onHandleQueuedNotice($notice) { if ($notice->is_local == 1) { // Try to avoid actually mucking with the @@ -126,29 +126,29 @@ class LinkbackPlugin extends Plugin if (!extension_loaded('xmlrpc')) { if (!dl('xmlrpc.so')) { common_log(LOG_ERR, "Can't pingback; xmlrpc extension not available."); + return; } } - $request = new HTTPClient($endpoint, 'POST'); - $request->setHeader('User-Agent', $this->userAgent()); - $request->setHeader('Content-Type', 'text/xml'); - $request->setBody(xmlrpc_encode_request('pingback.ping', $args)); + $request = HTTPClient::start(); try { - $response = $request->send(); + $response = $request->post($endpoint, + array('Content-Type: text/xml'), + xmlrpc_encode_request('pingback.ping', $args)); + $response = xmlrpc_decode($response->getBody()); + if (xmlrpc_is_fault($response)) { + common_log(LOG_WARNING, + "Pingback error for '$url' ($endpoint): ". + "$response[faultString] ($response[faultCode])"); + } else { + common_log(LOG_INFO, + "Pingback success for '$url' ($endpoint): ". + "'$response'"); + } } catch (HTTP_Request2_Exception $e) { common_log(LOG_WARNING, "Pingback request failed for '$url' ($endpoint)"); } - $response = xmlrpc_decode($response->getBody()); - if (xmlrpc_is_fault($response)) { - common_log(LOG_WARNING, - "Pingback error for '$url' ($endpoint): ". - "$response[faultString] ($response[faultCode])"); - } else { - common_log(LOG_INFO, - "Pingback success for '$url' ($endpoint): ". - "'$response'"); - } } // Largely cadged from trackback_cls.php by @@ -232,4 +232,18 @@ class LinkbackPlugin extends Plugin return 'LinkbackPlugin/'.LINKBACKPLUGIN_VERSION . ' StatusNet/' . STATUSNET_VERSION; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Linkback', + 'version' => LINKBACKPLUGIN_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Linkback', + 'rawdescription' => + _m('Notify blog authors when their posts have been linked in '. + 'microblog notices using '. + 'Pingback '. + 'or Trackback protocols.')); + return true; + } }