The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

BusyBird - a multi-level Web-based timeline viewer

DESCRIPTION

BusyBird is a personal Web-based timeline viewer application. You can think of it as a Twitter client, but BusyBird is more generic and focused on viewing.

BusyBird accepts data called Statuses from its RESTful Web API. The received statuses are stored to one or more Timelines. You can view those statuses in a timeline by a Web browser.

    [ Statuses ]
         |       +----------------+
         |       |    BusyBird    |
        HTTP     |                |
        POST --> | [ Timeline 1 ]----+
                 | [ Timeline 2 ] |  |
                 |       ...      | HTTP
                 +----------------+  |
                                     v
                              [ Web Browser ]
                                     |
                                    YOU

Features

  • BusyBird is extremely programmable. You are free to customize BusyBird to view any statuses, e.g., Twitter tweets, RSS feeds, IRC chat logs, system log files etc. In fact BusyBird is not much of use without programming.

  • BusyBird has well-documented Web API. You can easily write scripts that GET/POST statuses from/to a BusyBird instance. Some endpoints support real-time notification via HTTP long-polling.

  • BusyBird maintains read/unread states of individual statuses. You can mark statuses as "read" via Web API.

  • BusyBird renders statuses based on their Status Levels. Statuses whose level is below the threshold are dynamically hidden, so you can focus on more relevant statuses. Status levels are set by you, not by BusyBird.

SCREENSHOTS

https://github.com/debug-ito/busybird/wiki/Screenshots

QUICK START

Example in Ubuntu Linux.

  • Install gcc, make and curl

        $ sudo apt-get install build-essential curl
  • Install

        $ curl -L http://cpanmin.us/ | perl - -n BusyBird
        $ export PERL5LIB="$HOME/perl5/lib/perl5:$PERL5LIB"
        $ export PATH="$HOME/perl5/bin:$PATH"
  • Run

        $ busybird
        Twiggy: Accepting connections at http://127.0.0.1:5000/
  • Open timelines

        $ firefox http://localhost:5000/
  • Post a status

        $ curl -d '{"text":"hello, world!"}' http://localhost:5000/timelines/home/statuses.json

See BusyBird::Manual::Tutorial for detail.

DOCUMENTATION

BusyBird::Manual::Tutorial

If you are new to BusyBird, you should read this first.

BusyBird::Manual::WebAPI

Reference manual of BusyBird Web API.

BusyBird::Manual::Status

Object structure of BusyBird statuses.

BusyBird::Manual::Config

How to configure BusyBird.

BusyBird::Manual::Config::Advanced

Advanced topics about configuring BusyBird.

...and others.

Documentation for various BusyBird modules may be helpful when you customize your BusyBird instance.

AS A MODULE

Below is detailed documentation of BusyBird module. Casual users need not to read it.

As a module, BusyBird maintains a singleton BusyBird::Main object, and exports some functions to manipulate the singleton. That way, BusyBird makes it easy for users to write their config.psgi file.

SYNOPSIS

In your ~/.busybird/config.psgi file...

    use BusyBird;
    
    busybird->set_config(
        time_zone => "+0900",
    );
    
    timeline("twitter_work")->set_config(
        time_zone => "America/Chicago"
    );
    timeline("twitter_private");
    
    end;

EXPORTED FUNCTIONS

The following functions are exported by default.

$main = busybird()

Returns the singleton BusyBird::Main object.

$timeline = timeline($timeline_name)

Returns the BusyBird::Timeline object named $timeline_name from the singleton. If there is no such timeline, it automatically creates the timeline.

This is equivalent to busybird()->timeline($timeline_name).

$psgi_app = end()

Returns a PSGI application object from the singleton BusyBird::Main object. This is supposed to be called at the end of config.psgi file.

This is equivalent to BusyBird::Main::PSGI::create_psgi_app(busybird()).

TECHNOLOGIES USED

REPOSITORY

https://github.com/debug-ito/busybird

BUGS AND FEATURE REQUESTS

Please report bugs and feature requests to my Github issues https://github.com/debug-ito/busybird/issues.

Although I prefer Github, non-Github users can use CPAN RT https://rt.cpan.org/Public/Dist/Display.html?Name=BusyBird. Please send email to bug-BusyBird at rt.cpan.org to report bugs if you do not have CPAN RT account.

AUTHOR

Toshio Ito, <toshioito at cpan.org>

CONTRIBUTORS

  • Keisuke Minami

LICENSE AND COPYRIGHT

Copyright 2014 Toshio Ito.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.