phergie / phergie-irc-plugin-react-url

Phergie plugin for displaying information about URLs
MIT License
0 stars 4 forks source link

This project is abandoned

This repo is being kept for posterity and will be archived in a readonly state. If you're interested it can be forked under a new Composer namespace/GitHub organization.

Url Plugin

Phergie plugin for Display URL information about links.

Build Status

Install

To install via Composer, use the command below, it will automatically detect the latest version and bind it with ~.

composer require phergie/phergie-irc-plugin-react-url 

See Phergie documentation for more information on installing and enabling plugins.

Configuration

return array(

    'plugins' => array(

        // dependencies
        new \Phergie\Plugin\Dns\Plugin, // Handles DNS lookups for the HTTP plugin
        new \Phergie\Plugin\Http\Plugin, // Handles the HTTP requests for this plugin

        // configuration
        new \Phergie\Irc\Plugin\React\Url\Plugin(array(
            // All configuration is optional

            'hostUrlEmitsOnly' => false, // url.host.(all|<host>) emits only, no further URL handling / shortening

            // or

            'handler' => new \Phergie\Irc\Plugin\React\Url\DefaultUrlHandler(), // URL handler that creates a formatted message based on the URL

            // or

            'shortenTimeout' => 15 // If after this amount of seconds no url shortener has come up with a short URL the normal URL will be used. (Not in effect when there are no shorteners listening.)

            // or

            'filter' => null // Any valid filter implementing Phergie\Irc\Plugin\React\EventFilter\FilterInterface to filter which messages should be handled 

        )),

    )
);

Events

This plugin emits the following generic, do what ever you want with it, events.

This plugins also emits two events for url shortening. Only called when there are listeners registered. Each event emit is passed a UrlshorteningEvent, if a shortener resolved short url it calls the resolve method on the promise.

Placeholders

The following placeholders can be used to compose a message that is passed as the first argument for DefaultUrlHandler to create custom messages:

Header Placeholders

Selection of response headers from: en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_Headers

UrlSectionFilter

This plugin comes with the UrlSectionFilter that lets you filter on the different key value pairs coming out of parse_url. The following example filter allows www.phergie.org, www2.phergie.org, and phergie.org:

new OrFilter([
    new UrlSectionFilter('host', '*.phergie.org'),
    new UrlSectionFilter('host', 'phergie.org'),
])

The filter comes with a third strict parameter where instead of declaring out of scope on missing an URL part it return false.

Tests

To run the unit test suite:

curl -s https://getcomposer.org/installer | php
php composer.phar install
./vendor/bin/phpunit

License

Released under the MIT License. See LICENSE.