ncdc 1.0 released + replaced user guide with man page

This commit is contained in:
Yorhel 2011-09-16 13:11:10 +02:00
parent b52bfdb1ba
commit ae08020ded
4 changed files with 689 additions and 178 deletions

193
index.cgi
View file

@ -17,7 +17,7 @@ TUWF::register(
qr{ncdu/scr} => \&ncduscr,
qr{ncdc} => \&ncdc,
qr{ncdc/faq} => \&ncdcfaq,
qr{ncdc/guide} => \&ncdcguide,
qr{ncdc/man} => \&ncdcmanual,
qr{ncdc/changes} => \&ncdcchangelog,
qr{tuwf} => \&tuwf,
qr{tuwf/man(?:/(db|misc|request|response|xml))?}
@ -53,6 +53,7 @@ sub home {
E;
end;
h2 'Updates';
b '2011-09-16'; txt ' ncdc 1.0 released!'; br;
b '2011-09-15'; txt ' Added some screenshots for ncdu.'; br;
b '2011-09-03'; txt ' ncdc 0.9 released!'; br;
b '2011-08-26'; txt ' ncdc 0.8 released!'; br;
@ -225,8 +226,8 @@ sub ncdc {
h2 'Get ncdc!';
p;
b 'Latest version:'; txt ' 0.9 (';
a href => '/download/ncdc-0.9.tar.gz', 'download';
b 'Latest version:'; txt ' 1.0 (';
a href => '/download/ncdc-1.0.tar.gz', 'download';
txt ' - '; a href => '/ncdc/changes', 'changes';
txt ' - '; a href => '/download/ncdc.md5', 'md5';
txt ' - '; a href => '/download/ncdc.sha1', 'sha1';
@ -234,13 +235,14 @@ sub ncdc {
txt 'You can also get the latest development version from ';
a href => 'http://g.blicky.net/ncdc.git/', 'this git repository';
txt '. The README includes instructions to build ncdc. Check out the ';
a href => '/ncdc/guide', 'user guide'; txt ' to get started.';
a href => '/ncdc/man', 'manual'; txt ' to get started.';
end;
h2 'Features';
p 'Common features that all modern DC clients (should) have:';
ul;
li 'Connecting to multiple hubs at the same time,';
li 'Support for both ADC and NMDC protocols,';
li 'Chatting and private messaging,';
li 'Browsing the user list of a connected hub,';
li 'Share management and file uploading,';
@ -248,7 +250,7 @@ sub ncdc {
li 'File list browsing,';
li 'Single-source and TTH-checked file downloading,';
li 'Searching for files,';
li 'Secure hub (adcs:// and nmdcs://) and client (ADCS) connections.';
li 'Secure hub (adcs:// and nmdcs://) and client connections on both protocols.';
end;
br;
p 'Special features not commonly found in other clients:';
@ -387,180 +389,14 @@ sub ncdcfaq {
}
sub ncdcguide {
sub ncdcmanual {
my $s = shift;
$s->htmlHeader(title => 'Ncdc User Guide', page => 'ncdc', tab => 'guide');
p 'Since the built-in documentation of ncdc is not really complete yet, it
may be a bit hard to use for first-timers. This is a short guide to help
you get started with ncdc and to make up for the lack of proper
documentation. I\'m assuming that you already managed to install a recent
version of ncdc.';
h2 'Starting up';
p 'Simply run `ncdc\', and you should see something like the following screenshot:';
img src => '/img/ncdcstart.png', style => 'margin: 5px 0 0 10px; border: 1px solid #999', alt => 'Ncdc start-up screen.';
h2 'Basic settings';
p 'When you just started ncdc, the first thing you want to do is to change some basic settings:';
pre class => 'code';
txt '/set nick '; b 'MyNick';
end;
p 'And optionally, you may also want to change these:';
pre class => 'code';
txt '/set description '; b 'ncdc is awesome!'; br;
txt '/set connection '; b '10'; br;
txt '/set email '; b 'user@example.com';
end;
p 'What you can use with the \'connection\' setting is a bit vague, but
you\'re safe if you just set it to your upload speed, in MBit/s. On public
hubs, you probably don\'t want to set an email address.';
p 'Note: these settings can also be changed on a per-hub basis. More on that below.';
h2 'Sharing';
p 'You can skip this section if you don\'t intent to share any files. To add a directory to your share, use the following command:';
pre class => 'code';
txt '/share '; b 'Virtual_name /path/to/actual/dir';
end;
p "And '/path/to/actual/dir' will be shared under the virtual directory
'Virtual_name', for which you are free to choose a name. Ncdc will
automatically index and hash the files in this directory. You can use
'/unshare' to remove a directory from your share and '/refresh' to
manually keep the index updated on changes. A refresh is automatically done
every hour by default, but can be changed using '/set autorefresh'.";
h2 'Active vs. passive';
p 'By default ncdc will use passive mode. If you are connected directly to
the internet or are behind a router that allows port forwarding, you will
probably want to enable active mode. To do so, issue the following
commands:';
pre class => 'code';
txt '/set active_ip '; b $s->reqIP; br;
txt '/set active_port '; b '34194'; br;
txt '/set active '; b 'true';
end;
p "And make sure the port you specified is properly forwarded for both TCP and UDP.";
h2 'Connecting to hubs';
p "This is where ncdc differs a bit from other DC or even IRC clients. To
connect to a hub, you first need to name and open a 'hub tab', after which
you can use '/connect' to actually connect to the hub:";
pre class => 'code';
txt '/open '; b 'ncdc'; br;
txt '/connect '; b 'adc://dc.blicky.net:2780/';
end;
p "The name you specify with '/open' will be used by ncdc to refer to this
hub. After this, you can always reconnect to this hub simply by typing '/open
ncdc', without having to use the '/connect' again.";
p "Some settings can be changed on a per-hub basis, for example your nick.
Using the '/set' command on a hub tab will change the setting only for that
hub. You can use '/unset' to change a setting back to its global value.";
h2 'Global keybindings and commands';
p "You have probably noticed that '/open' created a new tab, and are probably
wondering how to switch between multiple tabs and do other funky stuff. The
following ASCII table lists some of the global keybindings you can use:";
pre class => 'code';
b 'Alt+j'; txt ' open previous tab.'; br;
b 'Alt+k'; txt ' open next tab.'; br;
b 'Alt+h'; txt ' move current tab left.'; br;
b 'Alt+l'; txt ' move current tab right.'; br;
b 'Alt+<num>'; txt ' open tab with number <num>.'; br;
b 'Alt+c'; txt ' close current tab.'; br;
b 'Alt+n'; txt ' open the connections tab.'; br;
b 'Alt+q'; txt ' open the download queue.'; br;
b 'Alt+o'; txt ' open own file list.'; br;
b 'Ctrl+c'; txt ' quit ncdc.'; br;
end;
p "Lots of functionality is hidden behind commands and settings, use '/help'
to get a list of the commands and '/help <command>' for information about a
specific commands. '/set' can be used to get the list of available
settings, but these are not documented yet.";
h2 'User list';
p "To open the user list of a hub, use the '/userlist' command or hit Alt+u.
Here's a list of the keys you can use:";
pre class => 'code';
b 'j'; txt ' scroll down.'; br;
b 'k'; txt ' scroll up.'; br;
b 's'; txt ' order by share size.'; br;
b 'u'; txt ' order by username.'; br;
b 'o'; txt ' toggle sort OPs before others.'; br;
b 'd'; txt ' toggle description column.'; br;
b 'e'; txt ' toggle email column.'; br;
b 'c'; txt ' toggle connection column.'; br;
b 'i'; txt ' toggle information box.'; br;
b 'm'; txt ' PM the selected user.'; br;
b 'b'; txt ' browse the selected users\' list.'; br;
end;
h2 'Searching';
p "To search for files to download, use the '/search' command:";
pre class => 'code';
lit '/search <b>gentoo</b>';
end;
p style => 'font-size: 9px; padding-left: 25px; padding-bottom: 3px',
"My apologies for using such a generic search term as example. It just
happens to be one that doesn't advocate piracy yet gives some results on
most hubs.";
p "See '/help search' for more options. A new tab will be opened with the
search results, where the following keys can be used:";
pre class => 'code';
b 'j/k'; txt ' the usual down/up keys.'; br;
b 'b'; txt ' browse users\' file list.'; br;
b 'd'; txt ' add selected file to download queue.'; br;
b 'f'; txt ' find user in the user list.'; br;
b 'h'; txt ' show/hide hub column.'; br;
b 'u'; txt ' order by username.'; br;
b 's'; txt ' order by file size.'; br;
b 'l'; txt ' order by available slots.'; br;
b 'n'; txt ' order by file name.'; br;
end;
h2 'Browsing file lists';
p "If you were paying attention to the previous sections, you would have
noticed that three ways to open a file list have been mentioned: The global
Alt+o key to open your own, the 'b' key in the user list to browse a users'
list, and a similar 'b' key for the search results. There is a fourth
method, and that is the '/browse' command, see '/help browse' for details
on that one. Regardless of how you open a file list, the following keys
are available while browsing one:";
pre class => 'code';
b 'j/k'; txt ' the usual down/up keys. (this is getting boring)'; br;
b 'l'; txt ' open selected directory.'; br;
b 'h'; txt ' open parent directory.'; br;
b 'd'; txt ' add selected file to download queue.'; br;
end;
h2 'Download queue management';
p "Both the the search results and the file list browser have a 'd' key to
add a file to the download queue. Any queud files will be downloaded
automatically and this process will usually not require any further input.
Nonetheless, there is a download queue manager which can be accessed with
the global Alt+q key. The following keys can be used on this tab:";
pre class => 'code';
b 'j/k'; txt ' again, the down/up keys.'; br;
b 'f'; txt ' find user in the user list.'; br;
b 'd'; txt ' remove selected file from the queue.'; br;
b 'c'; txt ' find the related download connection in the connection list.'; br;
b '+'; txt ' increase download priority.'; br;
b '-'; txt ' decrease download priority.'; br;
end;
p "A little note on the download priorities: if you see that an item has
'ERR' as priority, this means that something went wrong while downloading.
In these cases you have two choices: remove the item from the queue ('d'
key), or tell ncdc to try it again by clearing the error status (that is,
by increasing the priority. That is, the '+' key.).";
h2 'Connection management';
p 'Last but not least, you can also monitor your currently active uploads and
downloads with the connections tab, which can be accessed with Alt+n. Keys:';
pre class => 'code';
b 'j/k'; txt ' guess.'; br;
b 'd'; txt ' disconnect selected connection.'; br;
b 'i'; txt ' toggle information box.'; br;
b 'f'; txt ' find user in the user list.'; br;
b 'q'; txt ' find item in the download queue.'; br;
$s->htmlHeader(title => 'Manual page', page => 'ncdc', tab => 'man');
open my $F, '<', "$ROOT/dat/ncdc-man" or die $!;
pre;
txt $_ while(<$F>);
end;
close $F;
$s->htmlFooter;
}
@ -1015,6 +851,7 @@ sub notfound {
my $u = lc $s->reqPath;
($_->[0] eq $u || $_->[0] eq "$u/") && return $s->resRedirect($_->[1], 'perm') for (
[ 'bluecubes', '/demo' ],
[ 'ncdc/guide', '/ncdc/man' ],
[ 'dump', '/dump' ],
[ 'dump/index2', '/dump' ],
[ 'dump/pmdc2-parse', '/dump' ],
@ -1070,7 +907,7 @@ sub htmlHeader {
div id => 'mtabs';
a href => '/ncdc', !$o{tab} ? (class => 'sel') : (), 'main'; txt ' ';
a href => '/ncdc/faq', $o{tab} eq 'faq' ? (class => 'sel') : (), 'Q&A'; txt ' ';
a href => '/ncdc/guide', $o{tab} eq 'guide' ? (class => 'sel') : (), 'user guide'; txt ' ';
a href => '/ncdc/man', $o{tab} eq 'man' ? (class => 'sel') : (), 'manual'; txt ' ';
a href => '/ncdc/changes', $o{tab} eq 'changes' ? (class => 'sel') : (), 'changelog'; txt ' ';
end;
}