5 * Pings all URLs that have not been pinged yet
13 public function __construct()
15 $this->pbc = new \PEAR2\Services\Pingback\Client();
17 $req = new \HTTP_Request2();
20 'ssl_verify_peer' => false,
21 'ssl_verify_host' => false
24 $this->pbc->setRequest($req);
25 $this->pbc->setDebug(true);
28 public function pingAll()
30 $this->log->info('Pinging all URLs..');
31 $res = $this->db->query(
32 'SELECT fe_url, feu_id, feu_url FROM feedentries, feedentryurls'
33 . ' WHERE fe_id = feu_fe_id AND feu_active = 1 AND feu_pinged = 0'
36 while ($row = $res->fetch(\PDO::FETCH_OBJ)) {
38 sprintf('Pinging URL #%d: %s', $row->feu_id, $row->feu_url)
43 $this->log->info(sprintf('Finished pinging %d URLs.', $items));
46 public function ping($row)
52 $res = $this->pbc->send($from, $to);
53 } catch (\Exception $e) {
54 $this->log->err('Exception: ' . $e->getMessage());
56 'UPDATE feedentryurls SET'
58 . ', feu_updated = NOW()'
59 . ', feu_error = ' . $this->db->quote($e->getMessage())
60 . ' WHERE feu_id = ' . $this->db->quote($row->feu_id)
65 if (!$res->isError()) {
67 $this->log->info('ok');
69 'UPDATE feedentryurls SET'
71 . ', feu_updated = NOW()'
73 . ' WHERE feu_id = ' . $this->db->quote($row->feu_id)
77 $this->log->err('Error: ' . $res->getCode() . ': ' . $res->getMessage());
79 'Pingback response: Status code ' . $res->getResponse()->getStatus()
80 . ', headers: ' . print_r($res->getResponse()->getHeader(), true)
81 . ', body: ' . $res->getResponse()->getBody()
84 'UPDATE feedentryurls SET'
86 . ', feu_updated = NOW()'
88 . $this->db->quote($res->getCode() . ': ' . $res->getMessage())
89 . ' WHERE feu_id = ' . $this->db->quote($row->feu_id)