ncdc 1.0 released + replaced user guide with man page
This commit is contained in:
parent
b52bfdb1ba
commit
ae08020ded
4 changed files with 689 additions and 178 deletions
|
|
@ -1,3 +1,17 @@
|
|||
1.0 - 2011-09-16
|
||||
- Added ncdc(1) and ncdc-gen-cert(1) manual pages
|
||||
- Documented settings (/help set <setting>)
|
||||
- Documented key bindings (/help keys)
|
||||
- Improved line wrapping algorithm for the log window
|
||||
- Added support for client-to-client TLS on NMDC
|
||||
- Added support for the CGFI command on ADC
|
||||
- Throttle GET requests on the same file + offset
|
||||
- Fixed glib assertion failure when disabling active mode
|
||||
- Fixed downloading from clients using $ADCSND with -1 bytes
|
||||
- Fixed race condition in file uploading code
|
||||
- Fixed idle time calculation while connecting to another client
|
||||
- Properly include unistd.h in dl.c
|
||||
|
||||
0.9 - 2011-09-03
|
||||
- Added TLS support (adcs://, nmdcs://, and ADC client-to-client)
|
||||
- Added tls_policy setting
|
||||
|
|
|
|||
660
dat/ncdc-man
Normal file
660
dat/ncdc-man
Normal file
|
|
@ -0,0 +1,660 @@
|
|||
ncdc(1) ncdc(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
ncdc - Ncurses Direct Connect Client
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
ncdc [option...]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
Ncdc is a modern and lightweight direct connect client with a friendly ncurses
|
||||
interface.
|
||||
|
||||
|
||||
GETTING STARTED
|
||||
This is a basic introduction for those who are new to ncdc. See the chapters
|
||||
below for a more detailed description of the available functionality.
|
||||
|
||||
What you see when starting up ncdc is an input line where you can input commands
|
||||
and a log window where the results are displayed, much like a regular terminal.
|
||||
Commands within ncdc start with a slash (e.g. `/help') and have tab completion
|
||||
to help you.
|
||||
|
||||
The first thing you will want to do after starting ncdc for the first time is to
|
||||
setup some basic information and settings:
|
||||
/set nick MyNick
|
||||
/set description ncdc is awesome!
|
||||
/set connection 10
|
||||
/share "My Awesome Files" /path/to/files
|
||||
|
||||
And if you have a direct connection to the internet or if your router allows
|
||||
port forwarding, you may also want to enable active mode:
|
||||
/set active_ip 13.33.33.7
|
||||
/set active_port 34194
|
||||
/set active true
|
||||
|
||||
See the help text for each of the commands and settings for more information.
|
||||
Of course, all of the above settings are saved to the configuration file and
|
||||
will be used again on the next run.
|
||||
|
||||
To connect to a hub, use /open:
|
||||
/open ncdc adc://dc.blicky.net:2780/
|
||||
Here `ncdc' is the personal name you give to the hub, and the second argument
|
||||
the URL. This URL will be saved in the config file, so the next time you want to
|
||||
connect to this hub, you can simply do:
|
||||
/open ncdc
|
||||
See the help text for '/open' and '/connect' for more information. If you want
|
||||
to automatically connect to a hub when ncdc starts up, use the `autoconnect'
|
||||
setting.
|
||||
|
||||
Ncdc uses a tabbed interface: every hub opens in a new tab, and there are sev‐
|
||||
eral other kinds of tabs available as well. The type of tab is indicated in the
|
||||
tab list on the bottom of the screen with a character prefix. Hubs, for example,
|
||||
are prefixed with a `#'. If a tab needs your attention, a colored exclamation
|
||||
mark is displayed before the tab name, different colors are used for different
|
||||
types of activity.
|
||||
|
||||
Everything else should be fairly self-explanatory: To search for files, use the
|
||||
`/search' command. To browse through the user list of a hub, use `/userlist' or
|
||||
hit Alt+u. To browse someone's file list, use `/browse' or hit the 'b' key in
|
||||
the user list. And to monitor your upload and download connections, use `/con‐
|
||||
nections' or hit Alt+n.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-c, --session-dir=<dir>
|
||||
Use a different session directory. Defaults to the contents of the envi‐
|
||||
ronment variable `$NCDC_DIR' or if this is unset to `$HOME/.ncdc'.
|
||||
|
||||
-h, --help
|
||||
Display summary of options.
|
||||
|
||||
-n, --no-autoconnect
|
||||
Don't automatically connect to hubs with the `autoconnect' option set.
|
||||
|
||||
-v, --version
|
||||
Display ncdc version.
|
||||
|
||||
|
||||
INTERACTIVE COMMANDS
|
||||
The following is the list of commands that can be used within ncdc. The /help
|
||||
command can also be used get a list of available commands and to access this
|
||||
documentation.
|
||||
|
||||
/accept
|
||||
Use this command to accept the TLS certificate of a hub. This command is
|
||||
used only in the case the keyprint of the TLS certificate of a hub does
|
||||
not match the keyprint stored in the configuration file.
|
||||
|
||||
/browse [[-f] <user>]
|
||||
Without arguments, this opens a new tab where you can browse your own
|
||||
file list. Note that changes to your list are not immediately visible in
|
||||
the browser. You need to re-open the tab to get the latest version of
|
||||
your list.
|
||||
|
||||
With arguments, the file list of the specified user will be downloaded
|
||||
(if it has not been downloaded already) and the browse tab will open once
|
||||
it's complete. The `-f' flag can be used to force the file list to be
|
||||
(re-)downloaded.
|
||||
|
||||
/clear
|
||||
Clears the log displayed on the screen. Does not affect the log files in
|
||||
any way. Ctrl+l is a shortcut for this command.
|
||||
|
||||
/close
|
||||
Close the current tab. When closing a hub tab, you will be disconnected
|
||||
from the hub and all related userlist and PM tabs will also be closed.
|
||||
Alt+c is a shortcut for this command.
|
||||
|
||||
/connect [<address>]
|
||||
Initiate a connection with a hub. If no address is specified, will con‐
|
||||
nect to the hub you last used on the current tab. The address should be
|
||||
in the form of `protocol://host:port/' or `host:port'. The `:port' part
|
||||
is in both cases optional and defaults to :411. The following protocols
|
||||
are recognized: dchub, nmdc, nmdcs, adc, adcs. When connecting to an
|
||||
nmdcs or adcs hub and the SHA256 keyprint is known, you can attach this
|
||||
to the url as `?kp=SHA256/<base32-encoded-keyprint>'
|
||||
|
||||
Note that this command can only be used on hub tabs. If you want to open
|
||||
a new connection to a hub, you need to use /open first. For example:
|
||||
/open testhub
|
||||
/connect dchub://dc.some-test-hub.com/
|
||||
See the /open command for more information.
|
||||
|
||||
/connections
|
||||
Open the connections tab.
|
||||
|
||||
/disconnect
|
||||
Disconnect from a hub.
|
||||
|
||||
/gc
|
||||
Cleans up unused data and reorganizes existing data to allow more effi‐
|
||||
cient storage and usage. Currently, this commands cleans up hashdata.dat
|
||||
and dl.dat, removes unused files in inc/ and old files in fl/.
|
||||
|
||||
This command may take some time to complete, and will fully block ncdc
|
||||
while it is running. You won't have to perform this command very often.
|
||||
|
||||
/grant [<user>]
|
||||
Grant someone a slot. This allows the user to download from you even if
|
||||
you have no free slots. The slot will be granted for as long as ncdc
|
||||
stays open. If you restart ncdc, the user will have to wait for a regular
|
||||
slot. Unless, of course, you /grant a slot again.
|
||||
|
||||
Note that a granted slot is specific to a single hub. If the same user is
|
||||
also on other hubs, he/she will not be granted a slot on those hubs.
|
||||
|
||||
/help [<command>|set <key>|keys [<section>]]
|
||||
To get a list of available commands, use /help without arguments.
|
||||
To get information on a particular command, use /help <command>.
|
||||
To get information on a configuration setting, use /help set <setting>.
|
||||
To get help on key bindings, use /help keys.
|
||||
|
||||
|
||||
/kick <user>
|
||||
Kick a user from the hub. This command only works on NMDC hubs, and you
|
||||
need to be an OP to be able to use it.
|
||||
|
||||
/me <message>
|
||||
This allows you to talk in third person. Most clients will display your
|
||||
message as something like:
|
||||
** Nick is doing something
|
||||
|
||||
Note that this command only works correctly on ADC hubs. The NMDC proto‐
|
||||
col does not have this feature, and your message will be sent as-is,
|
||||
including the /me.
|
||||
|
||||
/msg <user> [<message>]
|
||||
Send a private message to a user on the currently opened hub. If no mes‐
|
||||
sage is given, the tab will be opened but no message will be sent.
|
||||
|
||||
/nick [<nick>]
|
||||
Alias for `/set nick'.
|
||||
|
||||
/open [-n] <name> [<address>]
|
||||
Opens a new tab to use for a hub. The name is a (short) personal name you
|
||||
use to identify the hub, and will be used for storing hub-specific con‐
|
||||
figuration.
|
||||
|
||||
If you have specified an address or have previously connected to a hub
|
||||
from a tab with the same name, /open will automatically connect to the
|
||||
hub. Use the `-n' flag to disable this behaviour.
|
||||
|
||||
See /connect for more information on connecting to a hub.
|
||||
|
||||
/password <password>
|
||||
This command can be used to send a password to the hub without saving it
|
||||
to the config file. If you wish to login automatically without having to
|
||||
type /password every time, use '/set password <password>'. Be warned,
|
||||
however, that your password will be saved unencrypted in that case.
|
||||
|
||||
/pm <user> [<message>]
|
||||
Alias for /msg
|
||||
|
||||
/queue
|
||||
Open the download queue.
|
||||
|
||||
/quit
|
||||
Quit ncdc. You can also just hit ctrl+c, which is equivalent.
|
||||
|
||||
/reconnect
|
||||
Reconnect to the hub. When your nick or the hub encoding have been
|
||||
changed, the new settings will be used after the reconnect.
|
||||
|
||||
/refresh [<path>]
|
||||
Initiates a refresh. If no argument is given, the complete list will be
|
||||
refreshed. Otherwise only the specified directory will be refreshed. The
|
||||
path argument can be either an absolute filesystem path or a virtual path
|
||||
within your share.
|
||||
|
||||
/say <message>
|
||||
Sends a chat message to the current hub or user. You normally don't have
|
||||
to use the /say command explicitly, any command not staring with '/' will
|
||||
automatically imply `/say <command>'. For example, typing `hello.' in the
|
||||
command line is equivalent to `/say hello.'. Using the /say command
|
||||
explicitly may be useful to send message starting with '/' to the chat,
|
||||
for example `/say /help is what you are looking for'.
|
||||
|
||||
/search [options] <query>
|
||||
Performs a file search, opening a new tab with the results.
|
||||
|
||||
Available options:
|
||||
-hub Search the current hub only. (default)
|
||||
-all Search all connected hubs.
|
||||
-le <s> Size of the file must be less than <s>.
|
||||
-ge <s> Size of the file must be larger than <s>.
|
||||
-t <t> File must be of type <t>. (see below)
|
||||
-tth <h> TTH root of this file must match <h>.
|
||||
|
||||
File sizes (<s> above) accept the following suffixes: G (GiB), M (MiB)
|
||||
and K (KiB).
|
||||
|
||||
The following file types can be used with the -t option:
|
||||
1 any Any file or directory. (default)
|
||||
2 audio Audio files.
|
||||
3 archive (Compressed) archives.
|
||||
4 doc Text documents.
|
||||
5 exe Windows executables.
|
||||
6 img Image files.
|
||||
7 video Video files.
|
||||
8 dir Directories.
|
||||
Note that file type matching is done using file extensions, and is not
|
||||
very reliable.
|
||||
|
||||
/set [<key> [<value>]]
|
||||
Get or set configuration variables. Use without arguments to get a list
|
||||
of all settings and their current value. Changes to the settings are
|
||||
automatically saved to the config file, and will not be lost after
|
||||
restarting ncdc.
|
||||
|
||||
To get information on a particular setting, use `/help set <key>'.
|
||||
|
||||
/share [<name> <path>]
|
||||
Use /share without arguments to get a list of shared directories.
|
||||
When called with a name and a path, the path will be added to your share.
|
||||
Note that shell escaping may be used in the name. For example, to add a
|
||||
directory with the name `Fun Stuff', you could do the following:
|
||||
/share "Fun Stuff" /path/to/fun/stuff
|
||||
Or:
|
||||
/share Fun\ Stuff /path/to/fun/stuff
|
||||
|
||||
The full path to the directory will not be visible to others, only the
|
||||
name you give it will be public. An initial `/refresh' is done automati‐
|
||||
cally on the added directory.
|
||||
|
||||
/unset [<key>]
|
||||
This command can be used to reset a configuration variable back to its
|
||||
default value.
|
||||
|
||||
/unshare [<name>]
|
||||
To remove a single directory from your share, use `/unshare <name>', to
|
||||
remove all directories from your share, use `/unshare /'.
|
||||
|
||||
Note that all hash data for the removed directories will be thrown away.
|
||||
All files will have to be re-hashed again when the directory is later re-
|
||||
added.
|
||||
|
||||
/userlist
|
||||
Opens the user list of the currently selected hub. Can also be accessed
|
||||
using Alt+u.
|
||||
|
||||
/version
|
||||
Display version information.
|
||||
|
||||
/whois <user>
|
||||
This will open the user list and select the given user.
|
||||
|
||||
|
||||
|
||||
SETTINGS
|
||||
The following is a list of configuration settings. These settings can be changed
|
||||
and queried using the `/set' command, and are stored in the config.ini file in
|
||||
the session directory.
|
||||
|
||||
active <boolean>
|
||||
Enables or disables active mode. Make sure to set `active_ip' and
|
||||
`active_port' before enabling active mode.
|
||||
|
||||
active_ip <string>
|
||||
Your public IP address for use in active mode. It is important that other
|
||||
clients can reach you using this IP address. If you connect to a hub on
|
||||
the internet, this should be your internet (WAN) IP. Likewise, if you
|
||||
connect to a hub on your LAN, this should be your LAN IP.
|
||||
|
||||
Note that this setting is global for ncdc: it is currently not possible
|
||||
to use a single instance of ncdc to connect to both internet and LAN
|
||||
hubs, if you are not reachable on the same IP with both networks. In that
|
||||
case you can either use passive mode or run two separate instances of
|
||||
ncdc.
|
||||
|
||||
active_port <integer>
|
||||
The listen port for incoming connections in active mode. Set to `0' to
|
||||
automatically assign a random port. If TLS support is available, another
|
||||
TCP port will be opened on the configured port + 1. Ncdc will tell you
|
||||
exactly on which ports it is listening for incoming packets. If you are
|
||||
behind a router or firewall, make sure that you have configured it to
|
||||
forward and allow these ports.
|
||||
|
||||
autoconnect <boolean>
|
||||
Set to true to automatically connect to the current hub when ncdc starts
|
||||
up.
|
||||
|
||||
autorefresh <integer>
|
||||
The time between automatic file refreshes, in minutes. Set to 0 to dis‐
|
||||
able automatically refreshing the file list. This setting also determines
|
||||
whether ncdc will perform a refresh on startup. See the `/refresh' com‐
|
||||
mand to manually refresh your file list.
|
||||
|
||||
backlog <integer>
|
||||
When opening a hub or PM tab, ncdc can load a certain amount of lines
|
||||
from the log file into the log window. Setting this to a positive value
|
||||
enables this feature and configures the number of lines to load. Note
|
||||
that, while this setting can be set on a per-hub basis, PM windows will
|
||||
use the global value (global.backlog).
|
||||
|
||||
color_* <color>
|
||||
The settings starting with the `color_' prefix allow you to change the
|
||||
interface colors. The following is a list of available color settings:
|
||||
log_default - default log color
|
||||
log_time - the time prefix in log messages
|
||||
log_nick - default nick color
|
||||
log_highlight - nick color of a highlighted line
|
||||
log_ownnick - color of your own nick
|
||||
log_join - color of join messages
|
||||
log_quit - color of quit messages
|
||||
tabprio_low - low priority tab notification color
|
||||
tabprio_med - medium priority tab notification color
|
||||
tabprio_high - high priority tab notification color
|
||||
|
||||
The actual color value can be set with a comma-separated list of color
|
||||
names and/or attributes. The first color in the list is the foreground
|
||||
color, the second color is used for the background. When the fore- or
|
||||
background color is not specified, the default colors of your terminal
|
||||
will be used.
|
||||
The following color names can be used: black, blue, cyan, default, green,
|
||||
magenta, red, white and yellow.
|
||||
The following attributes can be used: bold, reverse and underline.
|
||||
The actual color values displayed by your terminal may vary. Adding the
|
||||
`bold' attribute usually makes the foreground color appear brighter as
|
||||
well.
|
||||
|
||||
connection <string>
|
||||
Set your upload speed. The actual format you can use here may vary, but
|
||||
in general you can set it to either a plain number for Mbit/s (e.g. `50'
|
||||
for 50 mbit) or a number with a `KiB/s' indicator (e.g. `2300 KiB/s').
|
||||
This is only used when connecting to NMDC hubs, and is just an indication
|
||||
for other users in the hub so that they know what speed they can expect
|
||||
when downloading from you.
|
||||
|
||||
description <string>
|
||||
A short public description that will be displayed in the user list of a
|
||||
hub.
|
||||
|
||||
download_dir <path>
|
||||
The directory where finished downloads are moved to. Finished downloads
|
||||
are by default stored in <session directory>/dl/. It is possible to set
|
||||
this to a location that is on a different filesystem than the session
|
||||
directory, but doing so is not recommended: ncdc will block when moving
|
||||
the completed files to their final destination.
|
||||
|
||||
download_slots <integer>
|
||||
Maximum number of simultaneous downloads.
|
||||
|
||||
email <string>
|
||||
Your email address. This will be displayed in the user list of the hub,
|
||||
so only set this if you want it to be public.
|
||||
|
||||
encoding <string>
|
||||
The character set/encoding to use for hub and PM messages. This setting
|
||||
is only used on NMDC hubs, ADC always uses UTF-8. Some common values are:
|
||||
CP1250 (Central Europe)
|
||||
CP1251 (Cyrillic)
|
||||
CP1252 (Western Europe)
|
||||
ISO-8859-7 (Greek)
|
||||
KOI8-R (Cyrillic)
|
||||
UTF-8 (International)
|
||||
|
||||
hubname <string>
|
||||
The name of the currently opened hub tab. This is a user-assigned name,
|
||||
and is only used within ncdc itself. This is the same name as given to
|
||||
the `/open' command.
|
||||
|
||||
log_debug <boolean>
|
||||
Log debug messages to stderr.log in the session directory. It is highly
|
||||
recommended to enable this setting if you wish to debug or hack ncdc. Be
|
||||
warned, however, that this may generate a lot of data if you're connected
|
||||
to a large hub.
|
||||
|
||||
log_downloads <boolean>
|
||||
Log downloaded files to transfers.log.
|
||||
|
||||
log_uploads <boolean>
|
||||
Log file uploads to transfers.log.
|
||||
|
||||
minislots <integer>
|
||||
Set the number of available minislots. A `minislot' is a special slot
|
||||
that is used when all regular upload slots are in use and someone is
|
||||
requesting your filelist or a small file. In this case, the other client
|
||||
automatically applies for a minislot, and can still download from you as
|
||||
long as not all minislots are in use. What constitutes a `small' file can
|
||||
be changed with the `minislot_size' setting. Also see the `slots' config‐
|
||||
uration setting and the `/grant' command.
|
||||
|
||||
minislot_size <integer>
|
||||
The maximum size of a file that may be downloaded using a `minislot', in
|
||||
KiB. See the `minislots' setting for more information.
|
||||
|
||||
nick <string>
|
||||
Your nick. Nick changes are only visible on newly connected hubs, use the
|
||||
`/reconnect' command to use your new nick immediately. Note that it is
|
||||
highly discouraged to change your nick on NMDC hubs. This is because
|
||||
clients downloading from you have no way of knowing that you changed your
|
||||
nick, and therefore can't immediately continue to download from you.
|
||||
|
||||
password <string>
|
||||
Sets your password for the current hub and enables auto-login on connect.
|
||||
If you just want to login to a hub without saving your password, use the
|
||||
`/password' command instead. Passwords are saved unencrypted in the con‐
|
||||
fig file.
|
||||
|
||||
share_hidden <boolean>
|
||||
Whether to share hidden files and directories. A `hidden' file or direc‐
|
||||
tory is one of which the file name starts with a dot. (e.g. `.bashrc'). A
|
||||
file list refresh is required for this setting to be effective.
|
||||
|
||||
show_joinquit <boolean>
|
||||
Whether to display join/quit messages in the hub chat.
|
||||
|
||||
slots <integer>
|
||||
The number of upload slots. This determines for the most part how many
|
||||
people can download from you simultaneously. It is possible that this
|
||||
limit is exceeded in certain circumstances, see the `minislots' setting
|
||||
and the `/grant' command.
|
||||
|
||||
tls_policy <disabled|allow|prefer>
|
||||
Set the policy for secure client-to-client connections. Setting this to
|
||||
`disabled' disables TLS support for client connections, but still allows
|
||||
you to connect to TLS-enabled hubs. `allow' will allow the use of TLS if
|
||||
the other client requests this, but ncdc itself will not request TLS when
|
||||
connecting to others. Setting this to `prefer' tells ncdc to also request
|
||||
TLS when connecting to others.
|
||||
|
||||
The use of TLS for client connections usually results in less optimal
|
||||
performance when uploading and downloading, but is quite effective at
|
||||
avoiding protocol-specific traffic shaping that some ISPs may do. Also
|
||||
note that, even if you set this to `prefer', TLS will only be used if the
|
||||
connecting party also supports it.
|
||||
|
||||
|
||||
|
||||
KEY BINDINGS
|
||||
On any tab without the text input line, you can press `?' to get the key bind‐
|
||||
ings for that tab. The list of key bindings is available through the `/help
|
||||
keys' command, and is reproduced below.
|
||||
|
||||
Global key bindings
|
||||
Alt+j Open previous tab.
|
||||
Alt+k Open next tab.
|
||||
Alt+h Move current tab left.
|
||||
Alt+l Move current tab right.
|
||||
Alt+<num> Open tab with number <num>.
|
||||
Alt+c Close current tab.
|
||||
Alt+n Open the connections tab.
|
||||
Alt+q Open the download queue tab.
|
||||
Alt+o Open own file list.
|
||||
Alt+r Refresh file list.
|
||||
Ctrl+c Quit ncdc.
|
||||
|
||||
Keys for tabs with a log window:
|
||||
Ctrl+l Clear current log window.
|
||||
PgUp Scroll the log backward.
|
||||
PgDown Scroll the log forward.
|
||||
|
||||
Keys for tabs with a text input line:
|
||||
Left/Right Move cursor one character left or right.
|
||||
End/Home Move cursor to the end / start of the line.
|
||||
Up/Down Scroll through the command history.
|
||||
Tab Auto-complete current command, nick or argument.
|
||||
Alt+b Move cursor one word backward.
|
||||
Alt+f Move cursor one word forward.
|
||||
Backspace Delete character before cursor.
|
||||
Delete Delete character under cursor.
|
||||
Ctrl+w Delete to previous space.
|
||||
Alt+d Delete to next space.
|
||||
Ctrl+k Delete everything after cursor.
|
||||
Ctrl+u Delete entire line.
|
||||
|
||||
File browser
|
||||
Up/Down Select one item up/down.
|
||||
k/j Select one item up/down.
|
||||
PgUp/PgDown Select one page of items up/down.
|
||||
End/Home Select last/first item in the list.
|
||||
Right/l Open selected directory.
|
||||
Left/h Open parent directory.
|
||||
d Add selected file/directory to the download queue.
|
||||
|
||||
Connection list
|
||||
Up/Down Select one item up/down.
|
||||
k/j Select one item up/down.
|
||||
PgUp/PgDown Select one page of items up/down.
|
||||
End/Home Select last/first item in the list.
|
||||
d Disconnect selected connection.
|
||||
i/Return Toggle information box.
|
||||
f Find user in user list.
|
||||
q Find file in download queue.
|
||||
|
||||
Download queue
|
||||
Up/Down Select one item up/down.
|
||||
k/j Select one item up/down.
|
||||
PgUp/PgDown Select one page of items up/down.
|
||||
End/Home Select last/first item in the list.
|
||||
f Find user in user list.
|
||||
c Find connection in the connection list.
|
||||
d Remove selected file from the queue.
|
||||
+/- Increase/decrease priority.
|
||||
|
||||
Note: when an item in the queue has `ERR' indicated in the priority col‐
|
||||
umn, you have two choices: You can remove the item from the queue using
|
||||
`d', or attempt to continue the download by increasing its priority using
|
||||
`+'.
|
||||
|
||||
Search results tab
|
||||
Up/Down Select one item up/down.
|
||||
k/j Select one item up/down.
|
||||
PgUp/PgDown Select one page of items up/down.
|
||||
End/Home Select last/first item in the list.
|
||||
f Find user in user list.
|
||||
b/B Browse the selected users' list, B to force a redownload.
|
||||
h Toggle hub column visibility.
|
||||
u Order by username.
|
||||
s Order by file size.
|
||||
l Order by free slots.
|
||||
n Order by file name.
|
||||
|
||||
User list tab
|
||||
Up/Down Select one item up/down.
|
||||
k/j Select one item up/down.
|
||||
PgUp/PgDown Select one page of items up/down.
|
||||
End/Home Select last/first item in the list.
|
||||
s Order by share size.
|
||||
u Order by username.
|
||||
o Toggle sorting OPs before others.
|
||||
t Toggle tag column visibility.
|
||||
e Toggle email column visibility.
|
||||
c Toggle connection column visibility.
|
||||
i/Return Toggle information box.
|
||||
m Send a PM to the selected user.
|
||||
g Grant a slot to the selected user.
|
||||
b/B Browse the selected users' list, B to force a redownload.
|
||||
|
||||
|
||||
|
||||
ENVIRONMENT
|
||||
$NCDC_DIR is used to determine the session dir, it is only honoured if -c is not
|
||||
set on the command line.
|
||||
|
||||
|
||||
FILES
|
||||
$NCDC_DIR corresponds to the session dir set via -c, environment variable
|
||||
$NCDC_DIR or $HOME/.ncdc.
|
||||
|
||||
$NCDC_DIR/cert/
|
||||
Directory where the client certificates are stored. Must contain a pri‐
|
||||
vate key file (client.key) and public certificate (client.crt). These
|
||||
should be generated automatically when ncdc starts up the first time, but
|
||||
can be generated manually using ncdc-gen-cert(1).
|
||||
|
||||
$NCDC_DIR/config.ini
|
||||
Main configuration file. It is recommended to use commands within ncdc
|
||||
instead of editing this file manually. In particular, do not edit this
|
||||
file while ncdc is running, otherwise you will lose your changes.
|
||||
|
||||
$NCDC_DIR/dl/
|
||||
Directory where completed downloads are moved to by default. Can be
|
||||
changed with the `download_dir' configuration option.
|
||||
|
||||
$NCDC_DIR/dl.dat
|
||||
Stores information about the download queue.
|
||||
|
||||
$NCDC_DIR/files.xml.bz2
|
||||
Filelist containing a listing of all shared files.
|
||||
|
||||
$NCDC_DIR/fl/
|
||||
Directory where downloaded file lists from other users are stored. The
|
||||
names of the files are hex-encoded user IDs that are used internally by
|
||||
ncdc. Old file lists are deleted automatically after one week.
|
||||
|
||||
$NCDC_DIR/hashdata.dat
|
||||
File information and hash data for shared files.
|
||||
|
||||
$NCDC_DIR/history
|
||||
Command history.
|
||||
|
||||
$NCDC_DIR/inc/
|
||||
Location for incomplete downloads. File names are the base32-encoded TTH
|
||||
root of the completed file.
|
||||
|
||||
$NCDC_DIR/logs/
|
||||
Directory where all the log files are stored. File names starting with
|
||||
`#' are hub logs and `~' are user (PM) logs. Special log files are trans‐
|
||||
fers.log and main.log.
|
||||
ncdc does not have built-in functionality to rotate or compress log files
|
||||
automatically. When rotating log files manually (e.g. via a cron job),
|
||||
make sure to send the SIGUSR1 signal afterwards to force ncdc to flush
|
||||
the old logs and create or open the new log files.
|
||||
|
||||
$NCDC_DIR/stderr.log
|
||||
Error/debug log. This file is cleared every time ncdc starts up.
|
||||
|
||||
$NCDC_DIR/version
|
||||
Version of the data directory. This file locked while an ncdc instance is
|
||||
running, making sure that no two ncdc instances work with the same ses‐
|
||||
sion directory at the same time.
|
||||
|
||||
|
||||
LICENSE
|
||||
Copyright (C) 2011 Yoran Heling <projects@yorhel.nl>
|
||||
ncdc is distributed under the MIT license, please read the COPYING file for more
|
||||
information.
|
||||
|
||||
|
||||
BUGS
|
||||
Please report bugs or feature requests to projects@yorhel.nl or connect to the
|
||||
development hub at adc://dc.blicky.net:2780/.
|
||||
|
||||
|
||||
AUTHOR
|
||||
ncdc is written by Yoran Heling <projects@yorhel.nl>
|
||||
Web: http://dev.yorhel.nl/ncdc
|
||||
|
||||
|
||||
SEE ALSO
|
||||
ncdc-gen-cert(1).
|
||||
|
||||
|
||||
|
||||
ncdc-1.0 September 2011 ncdc(1)
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB |
193
index.cgi
193
index.cgi
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue