send linkback when a post is created
[anoweco.git] / src / anoweco / Linkback.php
1 <?php
2 namespace anoweco;
3
4 class Linkback
5 {
6     protected $lbc;
7
8     protected function initLbc()
9     {
10         $this->lbc = new \PEAR2\Services\Linkback\Client();
11         $req = $this->lbc->getRequest();
12         /*
13         $req->setConfig(
14             array(
15                 'ssl_verify_peer' => false,
16                 'ssl_verify_host' => false
17             )
18         );
19         */
20         $headers = $req->getHeaders();
21         $req->setHeader('user-agent', 'anoweco');
22         $this->lbc->setRequestTemplate($req);
23     }
24
25     public function ping($postId)
26     {
27         $this->initLbc();
28         $storage = new Storage();
29         $rowPost = $storage->getJsonComment($postId)->Xrow;
30
31         $from = Urls::full(Urls::comment($postId));
32         $to   = $rowPost->comment_of_url;
33
34         try {
35             $res = $this->lbc->send($from, $to);
36             if (!$res->isError()) {
37                 //all ok
38                 $error = false;
39             } else {
40                 //some error
41                 error_log($res->getMessage());
42                 $error = true;
43             }
44         } catch (\Exception $e) {
45             error_log($e->getMessage());
46             $error = true;
47         }
48
49         if ($error) {
50             $pingState = $rowPost->comment_pingstate + 1;
51         } else {
52             $pingState = 'ok';
53         }
54         $storage->setPostPingState($postId, $pingState);
55     }
56 }
57 ?>