Added Globster project
This commit is contained in:
parent
c1e08277ef
commit
2e29709225
4 changed files with 110 additions and 8 deletions
94
dat/globster
Normal file
94
dat/globster
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
=pod
|
||||
|
||||
[html]<!-- This code is ugly as hell. -->
|
||||
<div style="width: 600px; height: 227px; background-image: url(/img/globster.png); margin-bottom: -30px">
|
||||
<b style="font-size: 14px; position: relative; left: 150px; top: 10px">The Globster What?</b>
|
||||
<p style="position: relative; left: 150px; top: 20px; width: 420px; text-align: right">
|
||||
Globster is an efficient file sharing client for the Direct Connect<br />
|
||||
network. It runs as a background daemon and provides<br />
|
||||
a convenient and high-level D-Bus API, making<br />
|
||||
it easy to write scripts, bots and user<br />
|
||||
interfaces for Direct Connect.
|
||||
</p></div>É
|
||||
|
||||
=head1 Adopt your own Globster
|
||||
|
||||
=head2 Download
|
||||
|
||||
There are no tarballs at the moment. You'll have to get it from the git repo:
|
||||
|
||||
git clone --recursive git://g.blicky.net/globster.git
|
||||
cd globster
|
||||
autoreconf -i
|
||||
./configure
|
||||
make
|
||||
|
||||
The git repo is available for
|
||||
L<online browsing|http://g.blicky.net/globster.git/> and can also be
|
||||
L<found on github|https://github.com/yorhel/globster>.
|
||||
|
||||
(Note: If you have a git version before 1.6.5, the C<--recursive> argument
|
||||
isn't going to work. You'll have to type C<git submodule init> and C<git
|
||||
submodule update> after checking out the repo. But chances are that your GnuTLS
|
||||
is waaay too old as well and Globster won't currently build, anyway.)
|
||||
|
||||
=head2 Requirements
|
||||
|
||||
Globster can be compiled with a (moderately recent) GCC or clang. You'll need
|
||||
the following libraries: L<libdbus|http://dbus.freedesktop.org/> and
|
||||
L<GnuTLS|http://gnutls.org> 3.0+.
|
||||
|
||||
I've only tested things on Linux (glibc and L<musl|http://www.musl-libc.org>),
|
||||
but I intent to support more kinda-sane POSIX systems in the future as well.
|
||||
The requirement of GnuTLS 3.0+ will be relaxed later on. On the other hand,
|
||||
Globster will no doubt require some more libraries as more basic features are
|
||||
being implemented. And, yes, I<of course> we will get static binaries!
|
||||
|
||||
=head2 Status
|
||||
|
||||
Remember when I called Globster a "file sharing" client? I lied. It doesn't
|
||||
share or download files yet, since it's currently in an early alpha stage. So
|
||||
what I<does> it do?
|
||||
|
||||
=over
|
||||
|
||||
=item * Connect to ADC and NMDC hubs
|
||||
|
||||
=item * User list management
|
||||
|
||||
=item * Chatting and private messaging
|
||||
|
||||
=back
|
||||
|
||||
Those features already make it perfectly suitable for writing chat-only bots
|
||||
and interfaces.
|
||||
|
||||
=head2 Usage
|
||||
|
||||
Globster isn't particularly hard to use, but usage documentation is currently a
|
||||
bit lacking. I have every intention to fix that, but for now, you're encouraged
|
||||
to join the development hub and bug me for help: C<adc://dc.blicky.net:2780/>.
|
||||
I did already write some
|
||||
L<API documentation|http://dev.yorhel.nl/globster/api>.
|
||||
|
||||
There are at this point no scripts or interfaces for Globster available. I'd
|
||||
love to have at least a simple console client (a weechat or irssi plugin?) and
|
||||
perhaps a web-based interface. But other solutions are nice, too. Who's going
|
||||
to write all that, you ask? Erm... well... You, perhaps? :-)
|
||||
|
||||
=head2 Final notes
|
||||
|
||||
As you've come to expect from me I<(right?)>, Globster is entirely written in C
|
||||
and available under a liberal MIT license.
|
||||
|
||||
Globster incorporates code from
|
||||
L<libev|http://software.schmorp.de/pkg/libev.html>,
|
||||
L<libeio|http://software.schmorp.de/pkg/libeio.html>,
|
||||
L<freetiger|http://klondike.es/freetiger/>,
|
||||
L<klib|https://github.com/attractivechaos/klib> and
|
||||
L<ylib|https://github.com/yorhel/ylib>.
|
||||
Additionally, L<makeheaders|http://www.hwaci.com/sw/mkhdr/> is used to prevent
|
||||
obsessing over header file management, and
|
||||
L<autoconf-lean|https://bitbucket.org/GregorR/autoconf-lean> keeps the
|
||||
configure script fast.
|
||||
|
||||
1
dat/globster-api
Symbolic link
1
dat/globster-api
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/home/yhdev/globster/doc/api.pod
|
||||
21
index.cgi
21
index.cgi
|
|
@ -12,6 +12,7 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; }
|
|||
|
||||
|
||||
my @changes = (
|
||||
[ '2012-12-15', '/globster', 'Announcing yet another awesome project: Globster!' ],
|
||||
[ '2012-12-02', '/ncdu/jsonfmt', 'Documented the ncdu export file format' ],
|
||||
[ '2012-11-04', '/ncdc', 'ncdc 1.14 released' ],
|
||||
[ '2012-10-17', '/dump', 'Added reference to my repo of small C libs to the code dump' ],
|
||||
|
|
@ -79,6 +80,8 @@ TUWF::register(
|
|||
qr{ncdc/man} => sub { podpage(shift, 'ncdc-man', 'ncdc', 'man', 'Ncdc Manual', 1) },
|
||||
qr{ncdc/install} => sub { podpage(shift, 'ncdc-install', 'ncdc', 'install', 'Ncdc Installation Instructions', 1) },
|
||||
qr{ncdc/changes} => sub { changelog(shift, 'ncdc-changelog', 'ncdc', 'ncdc', 'changes', 'Ncdc Changelog') },
|
||||
qr{globster} => sub { podpage(shift, 'globster', 'globster', '', 'The Globster Direct Connect Client') },
|
||||
qr{globster/api} => sub { podpage(shift, 'globster-api', 'globster', 'api', 'The Globster D-Bus API', 1) },
|
||||
qr{tuwf} => sub { podpage(shift, 'tuwf', 'tuwf', '', 'The Ultimate Website Framework') },
|
||||
qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual,
|
||||
qr{tuwf/changes} => sub { changelog(shift, 'tuwf-changelog', 'TUWF', 'tuwf', 'changes', 'TUWF Changelog') },
|
||||
|
|
@ -380,7 +383,7 @@ sub genChanges {
|
|||
sub htmlHeader {
|
||||
my $s = shift;
|
||||
my %o = (
|
||||
spec => { map +($_,1), qw|ncdu ncdc tuwf| },
|
||||
spec => { map +($_,1), qw|ncdu ncdc globster tuwf| },
|
||||
page => '',
|
||||
sec => '',
|
||||
sec2 => '',
|
||||
|
|
@ -462,6 +465,9 @@ sub htmlMenu {
|
|||
$m->('/ncdc/changes', 'Changelog', $o{sec} eq 'changes');
|
||||
$m->('/ncdc/scr', 'Screenshots', $o{sec} eq 'scr');
|
||||
$m->('/ncdc/bug', 'Bug tracker', $o{sec} eq 'bug');
|
||||
} elsif($o{page} eq 'globster') {
|
||||
$m->('/globster', 'Info', !$o{sec});
|
||||
$m->('/globster/api', 'API Docs', $o{sec} eq 'api');
|
||||
} elsif($o{page} eq 'tuwf') {
|
||||
$m->('/tuwf', 'Info', !$o{sec});
|
||||
$m->('/tuwf/man', 'Manual', $o{sec} eq 'man', sub {
|
||||
|
|
@ -474,12 +480,13 @@ sub htmlMenu {
|
|||
});
|
||||
$m->('/tuwf/changes', 'Changelog', $o{sec} eq 'changes');
|
||||
} else {
|
||||
$m->('/', 'Home', !$o{page});
|
||||
$m->('/ncdu', 'Ncdu ');
|
||||
$m->('/ncdc', 'Ncdc ');
|
||||
$m->('/tuwf', 'Tuwf ');
|
||||
$m->('/doc', 'Articles', $o{page} eq 'doc');
|
||||
$m->('/dump', 'Code dump', $o{page} eq 'dump', sub {
|
||||
$m->('/', 'Home', !$o{page});
|
||||
$m->('/ncdu', 'Ncdu ');
|
||||
$m->('/ncdc', 'Ncdc ');
|
||||
$m->('/globster', 'Globster ');
|
||||
$m->('/tuwf', 'Tuwf ');
|
||||
$m->('/doc', 'Articles', $o{page} eq 'doc');
|
||||
$m->('/dump', 'Code dump', $o{page} eq 'dump', sub {
|
||||
$m->('/dump', 'Misc.', $o{page} eq 'dump' && !$o{sec});
|
||||
$m->('/demo', 'Demos', $o{page} eq 'dump' && $o{sec} eq 'demo');
|
||||
$m->('/dump/awshrink','AWShrink', $o{page} eq 'dump' && $o{sec} eq 'awshrink');
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ p + ul, p + ol { margin-top: -10px }
|
|||
pre { padding-left: 0 }
|
||||
pre, code, pre b { font: 11px monospace; }
|
||||
pre b { font-weight: bold }
|
||||
pre { background: #f5f5f5; border: 1px dotted #aaa; margin: 5px 10px; display: block; padding: 5px 5px 5px 0; }
|
||||
pre { margin: 0 0 10px 18px; display: block; padding: 0; border-left: 1px dotted #999 }
|
||||
dd { margin-left: 15px }
|
||||
dt a { color: #333 }
|
||||
dt { margin-left: 10px }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue