rvdv / react-nntp
Network News Transfer Protocol (NNTP) bindings for React.
dev-master / 0.1.x-dev
2014-01-10 17:56 UTC
Requires
- php: >=5.4.0
- evenement/evenement: ~1.0
- react/promise: ~1.0
- react/react: ~0.3
- symfony/property-access: ~2.3
Requires (Dev)
- phake/phake: 2.0.*@dev
- phpunit/phpunit: ~3.7
- satooshi/php-coveralls: dev-master
This package is auto-updated.
Last update: 2024-10-29 04:03:54 UTC
README
Network News Transfer Protocol (NNTP) bindings for React.
This component builds on top of the SocketClient
component to implement NNTP.
Install
The recommended way to install react-nntp is through composer.
{ "require": { "rvdv/react-nntp": "1.0.*@dev" } }
Basic Usage
Here is a simple example that fetches the first 100 articles from the 'php.doc' newsgroup of the PHP mailing list.
use React\Dns\Resolver\Factory as ResolverFactory; use React\EventLoop\Factory as EventLoopFactory; use Rvdv\React\Nntp\Client; use Rvdv\React\Nntp\Command\CommandInterface; use Rvdv\React\Nntp\Response\ResponseInterface; $loop = EventLoopFactory::create(); $dnsResolverFactory = new ResolverFactory(); $dns = $dnsResolverFactory->createCached('8.8.8.8', $loop); $client = Client::factory($loop, $dns); $group = null; $format = null; $client ->connect('news.php.net', 119) ->then(function (ResponseInterface $response) use ($client) { return $client->overviewFormat(); }) ->then(function (CommandInterface $command) use (&$format, $client) { $format = $command->getResult(); return $client->group('php.doc'); }) ->then(function (CommandInterface $command) use (&$group, &$format, $client) { $group = $command->getResult(); return $client->overview($group->getFirst() . '-' . ($group->getFirst() + 99), $format); }) ->then(function (CommandInterface $command) use ($client) { $articles = $command->getResult(); // Process the articles further. $client->stop(); }); $client->run();
Tests
To run the test suite, you need PHPUnit.
$ phpunit
Vagrant
You can also use the configured Vagrant VM for local development.
Move into the /vagrant
directory and run the following commands;
# Resolve the Puppet dependencies through librarian-puppet.
$ gem install librarian-puppet
$ librarian-puppet install
$ vagrant up