BusyBird
view release on metacpan or search on metacpan
lib/BusyBird.pm view on Meta::CPAN
return defined($singleton_main)
? $singleton_main : ($singleton_main = BusyBird::Main->new);
}
sub timeline {
my ($timeline_name) = @_;
return busybird()->timeline($timeline_name);
}
sub end {
return create_psgi_app(busybird());
}
1;
__END__
=pod
=head1 NAME
BusyBird - a multi-level Web-based timeline viewer
=head1 DESCRIPTION
L<BusyBird> is a personal Web-based timeline viewer application.
You can think of it as a Twitter client, but L<BusyBird> is more generic and focused on viewing.
L<BusyBird> accepts data called B<Statuses> from its RESTful Web API.
The received statuses are stored to one or more B<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
=head2 Features
=over
=item *
L<BusyBird> is extremely B<programmable>.
You are free to customize L<BusyBird> to view any statuses, e.g.,
Twitter tweets, RSS feeds, IRC chat logs, system log files etc.
In fact L<BusyBird> is not much of use without programming.
=item *
L<BusyBird> has well-documented B<Web API>.
You can easily write scripts that GET/POST statuses from/to a L<BusyBird> instance.
Some endpoints support real-time notification via HTTP long-polling.
=item *
L<BusyBird> maintains B<read/unread> states of individual statuses.
You can mark statuses as "read" via Web API.
=item *
L<BusyBird> renders statuses based on their B<< 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 L<BusyBird>.
=back
=head1 SCREENSHOTS
L<https://github.com/debug-ito/busybird/wiki/Screenshots>
=head1 QUICK START
Example in Ubuntu Linux.
=over
=item *
Install C<gcc>, C<make> and C<curl>
$ sudo apt-get install build-essential curl
=item *
Install
$ curl -L http://cpanmin.us/ | perl - -n BusyBird
$ export PERL5LIB="$HOME/perl5/lib/perl5:$PERL5LIB"
$ export PATH="$HOME/perl5/bin:$PATH"
=item *
Run
$ busybird
Twiggy: Accepting connections at http://127.0.0.1:5000/
=item *
Open timelines
$ firefox http://localhost:5000/
=item *
Post a status
$ curl -d '{"text":"hello, world!"}' http://localhost:5000/timelines/home/statuses.json
=back
( run in 1.595 second using v1.01-cache-2.11-cpan-2398b32b56e )