BusyBird - a multi-level Web-based timeline viewer
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
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.
https://github.com/debug-ito/busybird/wiki/Screenshots
Example in Ubuntu Linux.
Install gcc, make and curl
gcc
make
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.
If you are new to BusyBird, you should read this first.
Reference manual of BusyBird Web API.
Object structure of BusyBird statuses.
How to configure BusyBird.
Advanced topics about configuring BusyBird.
Documentation for various BusyBird modules may be helpful when you customize your BusyBird instance.
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.
config.psgi
In your ~/.busybird/config.psgi file...
~/.busybird/config.psgi
use BusyBird; busybird->set_config( time_zone => "+0900", ); timeline("twitter_work")->set_config( time_zone => "America/Chicago" ); timeline("twitter_private"); end;
The following functions are exported by default.
Returns the singleton BusyBird::Main object.
Returns the BusyBird::Timeline object named $timeline_name from the singleton. If there is no such timeline, it automatically creates the timeline.
$timeline_name
This is equivalent to busybird()->timeline($timeline_name).
busybird()->timeline($timeline_name)
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()).
BusyBird::Main::PSGI::create_psgi_app(busybird())
jQuery
Bootstrap, which includes Glyphicon
q.js
spin.js
... and a lot of Perl modules
https://github.com/debug-ito/busybird
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.
bug-BusyBird at rt.cpan.org
Toshio Ito, <toshioito at cpan.org>
<toshioito at cpan.org>
Keisuke Minami
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.
To install BusyBird, copy and paste the appropriate command in to your terminal.
cpanm
cpanm BusyBird
CPAN shell
perl -MCPAN -e shell install BusyBird
For more information on module installation, please visit the detailed CPAN module installation guide.