Archived
1
0
Fork 0
This repository has been archived on 2020-07-31. You can view files and clone it, but cannot push or open issues or pull requests.
news-script/Publisher/Jabber.php

54 lines
1.5 KiB
PHP

<?php
class Jabber extends Publisher {
protected $client;
protected $text;
public function __construct($config) {
super::__construct($config);
if ($config['JABBER'] === true) {
$this->client = new JAXL(array(
'jid' => $config['JABBER_JID'],
'pass' => $config['JABBER_PASSWORD'],
));
$this->client->require_xep([
'0060' // Publish-Subscribe
]);
}
}
protected function _publish(string $text): void {
$this->text = $text;
$this->client->add_cb('on_auth_success', function() {
$this->on_auth_success_callback();
});
$client->add_cb('on_auth_failure', function() {
$this->on_auth_failure_callback();
});
$this->client->start();
}
protected function on_auth_success_callback()
{
// create node
// $client->xeps['0060']->create_node('pubsub.localhost', 'dummy_node');
// publish
$item = new JAXLXml('item', null, array('id' => time()));
$item->c('entry', 'http://www.w3.org/2005/Atom');
$item->c('title')->t('Soliloquy')->up();
$item->c('summary')->t($this->text)->up();
$item->c(
'link',
null,
array('rel' => 'alternate', 'type' => 'text/html', 'href' => 'http://denmark.lit/2003/12/13/atom03')
)->up();
$item->c('published')->t('2003-12-13T18:30:02Z')->up();
$item->c('updated')->t('2003-12-13T18:30:02Z')->up();
$this->client->xeps['0060']->publish_item('pubsub.localhost', 'dummy_node', $item);
}
protected function on_auth_failure_callback($reason)
{
$this->client->send_end_stream();
}
}