diff --git a/dat/ncdc-faq b/dat/ncdc-faq new file mode 100644 index 0000000..03ac7c4 --- /dev/null +++ b/dat/ncdc-faq @@ -0,0 +1,128 @@ +=head1 About ncdc + + +=head2 What about other text-mode clients? + +L - A rather nice client, yet +not exactly there. It's limited to connecting to a single hub, hasn't been +updated since 2006, and the readline interface is slightly awkward to use. + +L - Can't comment much on this, +except maybe that rocket science is perhaps easier than getting nanodc to +compile. + +LDCC - Uses DCTC as backend and an interface based on TurboVision. All +mentioned projects are dead: neither LDCC, DCTC nor TurboVision are seeing any +recent development. + +L - Appears to have a commandline +inter-face as well. I haven't personally tried it, but have not heard much +positive things about it. Has not seen any recent development, either. + + +=head2 Why did you start from scratch? Why not use the DC++ core? + +There are many reasons why I chose not to use code from existing projects, but +all of them boil down to the following two: 1) I am a control freak, and 2) +personal preferences. That is the short answer. The long answer will require a +full article, and I don't feel like writing that much at this point. >_> + + +=head2 What protocol features does ncdc support? + +For ADC: BASE, RF, TIGR, BZIP, ADCS and KEYP. + +For NMDC: NoGetINFO, NoHello, UserIP2, MiniSlots, XmlBZList, ADCGet, TTHL and TTHF. + +ncdc also support TLS-enabled connections for both hub connections and +client-to-client connections on both ADC and NMDC protocols. Note that ncdc +does not support some of the older NMDC protocol features, like $Get, +$GetZBlock, $CHUNK, $Cancel or non-XML file lists. I am not aware of an other +up-to-date client that still uses any of these features. + + + + +=head1 Troubleshooting + +=head2 How do I install ncdc on Ubuntu? + +This is for Ubuntu 11.10, but may work for other versions as well. Run the +following command: + + sudo apt-get install libbz2-dev libgdbm-dev\ + libncursesw5-dev libxml2-dev libglib2.0-dev gnutls-bin + +And then follow the instructions in the README. + + +=head2 I'm getting the error "No PEM-encoded private key found" on startup + +Most likely this is caused by a L. To get +around it, install the "certtool" utility that comes with gnutls (package +"gnutls-bin" on Ubuntu), delete the old certificates ("rm ~/.ncdc/cert/*"), and +then start ncdc again. + + +=head2 Why doesn't ncdc rotate log files automatically? + +Because you can easily do that yourself. You can either use logrotate or a +simple script that runs from a cron. For an example of the latter option, +L, which is run as a +monthly cron job. + + + +=head1 Can ncdc... + + +=head2 Can ncdc use the hash data or configuration from an existing DC++ installation? + +No, ncdc uses its own configuration and hash storage directory. However, on +popular demand I could write a conversion utility to transfer the hash data +from other clients to ncdc's format. + + +=head2 Can ncdc run in the background / as a daemon? + +As with most ncurses applications: no. At least, it does not have this +functionality built-in. Ncdc is designed to be used in combination with a +separate terminal multiplexer or detach utility to handle this. Have a look at +L, +L or L. + + +=head2 Does ncdc support TLS? + +Yes! To make use of this, however, you need to have relatively new version +of glib2. If you're still working with an outdated system, an alternative +is to use L to connect to +TLS-enabled hubs. This trick does not allow encrypted client-to-client +connections, so your file transfers will remain unencrypted. + +The following example stunnel configuration is what I used to connect to +the DC Development hub before ncdc had native TLS support: + + [dcdev] + client = yes + accept = 127.0.0.1:16591 + connect = hub.dcbase.org:16591 + +The URL `adc://127.0.0.1:16591/' can then be used to connect to the hub from +within ncdc. + + +=head2 Does ncdc support UPnP? + +Not natively. However, it is possible to use L +and manually keep a port open using a cron job. I have no experience with this +myself, though. I just run ncdc directly on my router. :-) + + +=head2 Are there any programs available for analyzing the transfers.log file? + +Nothing like that is included in the release yet, but there is a simple +Perl script available: L. + diff --git a/dat/ncdu-changelog b/dat/ncdu-changelog index 405b6bf..f5b95c2 100644 --- a/dat/ncdu-changelog +++ b/dat/ncdu-changelog @@ -1,7 +1,7 @@ 1.8 - 2011-11-03 - Use hash table to speed up hard link detection - Added read-only option (-r) - - Use KiB instead of kiB (#3399279 + - Use KiB instead of kiB (#3399279) 1.7 - 2010-08-13 - List the detected hard links in file info window diff --git a/download/ncdc-1.5.tar.gz.asc b/download/ncdc-1.5.tar.gz.asc new file mode 100644 index 0000000..72d67fd --- /dev/null +++ b/download/ncdc-1.5.tar.gz.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.11 (GNU/Linux) + +iQIcBAABCgAGBQJOsoWrAAoJEGI5TGmMJzn6AEQP/jFI01geLkZNfA6SZP/zl7+l +VJiYZqO/6L/EaS5LHRlvCbi1y86KhrHOO/p7JwGUYDp0j3BKLEY+NkmiU8kS89ZA +vusvLRyByjBBe1O0JZ5l+QRIIEcWqD5zkhNlRLQQF29Af5DWvOzX3TgROlbzcrRQ +sXtD3zWOQDJrIxFo607jG1fFoXeU6vsS8YcM+xbdjacPLpwLG0NiC0xVQQpM7eaJ +Ng+Nh1wnPskJCVw+4DXRdZLrnsudVqbsncWrQh8cGx/HHQwX5sLUPJxwBCoSXRot +u4GhenS44MbyWQraNHYcNkXSXK7dSQ6DsROh+rFWxKFnTj7e73pXhl1BzqjdXCUB +FZDsrqp/CVPPOq9h3Sg/EU+nwPx/Ax7m6gkaTSvPAzkswuJFWl5EgVVX9OEIWl5R +SP6kJeEkFre2BmWyquBS2sZuQA/oDbNPplIDxFy2C/k6mgakLLoVB7YiVoswb0Pv +8ET2rAzKar30NtpFBX4JljE51OA/otzjhEUMnB/w2bSOrvuT5KZX4YIeKCYvA5LA +fmn+qFLiEYJQ5Mt007vxj6ht2A2UeONlBBPJeSzBkmxNs5Qc8IMVV5j20nyTmVqj +TzCnVOBqG9l8qs0qMEW6fGXfG1CB4/x9Vtx+8BDK3V7JLj79jzpjIaEXBBfcBVnW +dm5lWaS0yfuMKFivA3W8 +=ZogD +-----END PGP SIGNATURE----- diff --git a/download/ncdc-1.5.tar.gz.md5 b/download/ncdc-1.5.tar.gz.md5 new file mode 100644 index 0000000..c3279b5 --- /dev/null +++ b/download/ncdc-1.5.tar.gz.md5 @@ -0,0 +1 @@ +fbd49a2551d22fb9f41f77b118d01461 ncdc-1.5.tar.gz diff --git a/download/ncdc-1.5.tar.gz.sha1 b/download/ncdc-1.5.tar.gz.sha1 new file mode 100644 index 0000000..b77dcc1 --- /dev/null +++ b/download/ncdc-1.5.tar.gz.sha1 @@ -0,0 +1 @@ +a6a5cbc222e6846e6976a27610968442cc9a4851 ncdc-1.5.tar.gz diff --git a/download/ncdu-1.8.tar.gz.asc b/download/ncdu-1.8.tar.gz.asc new file mode 100644 index 0000000..93decb9 --- /dev/null +++ b/download/ncdu-1.8.tar.gz.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.11 (GNU/Linux) + +iQIcBAABCgAGBQJOsoW7AAoJEGI5TGmMJzn6L/AQALq2I9ate0L0T8k33nPufTR3 +Tg0UpUYHJqziklIUTV/AiXYSay70iehWYSnYA153FD4z9sq16IugOdI1sjy3AxCP +bY7JvsrgaskJJOlro3E9JRHM+bH4NRAb1qqTpdxWrtsqSkaVHr3Ba6vr4vRB+o/F +5SiA04ijTYkXKbebrR7kOgjD/DM959Qpoi35xX/EpdBzJxoInmq7LRIuP/WE9DqP +x9CyZi/1T1hKuw00SSUIIpkvywWHnNAG/qRNQSTlaVDzGFB1DxkBzJR+2wIZJqjA +XOlsMh6pAq/4TKOyUfL2zEFp6/Sz166u+guoY3w0hsfD7gx2i41SdFFpDkqXEQyf +YpeviOs4j4UbE22tWWcB7ZA8M1dyruWETvHNxOipZafnTVbGZ43g5NyJwKpICJ80 +rFQfewKkZRKdrVj0zsOZo6AJb/9bJ8T6skvs0eAAHdSIDbHUFVWzNk56LDfLlDPv +YBjN82lIA+5faQNqzh2Jdlkwh5AV9CoNdsFW6gxyt9LF+BxJ4NYU4NXlCXnzlObI +pWfO1ILtSQeG0lHkyhONrqyhpyXVxkbsCTgIVO+bsxFvnhKRsXxsLQo47joDFBkV +64CW97jn8BdEWIPABWYbSfH9N9P8foaM3HHCrSWcKuxfrXC+yVO4/29QBh9UOoAp +kfRGuMdKGMKvgm0JJ8z6 +=aXX3 +-----END PGP SIGNATURE----- diff --git a/download/ncdu-1.8.tar.gz.md5 b/download/ncdu-1.8.tar.gz.md5 new file mode 100644 index 0000000..8a03ff1 --- /dev/null +++ b/download/ncdu-1.8.tar.gz.md5 @@ -0,0 +1 @@ +94d7a821f8a0d7ba8ef3dd926226f7d5 ncdu-1.8.tar.gz diff --git a/download/ncdu-1.8.tar.gz.sha1 b/download/ncdu-1.8.tar.gz.sha1 new file mode 100644 index 0000000..88ebe48 --- /dev/null +++ b/download/ncdu-1.8.tar.gz.sha1 @@ -0,0 +1 @@ +3d98e78cf7035e32333d263d301d12e9b4352598 ncdu-1.8.tar.gz diff --git a/img/ncdcbrowse.png b/img/ncdcbrowse.png new file mode 100644 index 0000000..e6c0641 Binary files /dev/null and b/img/ncdcbrowse.png differ diff --git a/img/ncdchelp.png b/img/ncdchelp.png new file mode 100644 index 0000000..38d048d Binary files /dev/null and b/img/ncdchelp.png differ diff --git a/img/ncdchub.png b/img/ncdchub.png new file mode 100644 index 0000000..820b05b Binary files /dev/null and b/img/ncdchub.png differ diff --git a/img/ncdcusers.png b/img/ncdcusers.png new file mode 100644 index 0000000..ba4e5ce Binary files /dev/null and b/img/ncdcusers.png differ diff --git a/index.cgi b/index.cgi index 1359b83..c34667d 100755 --- a/index.cgi +++ b/index.cgi @@ -17,8 +17,9 @@ TUWF::register( qr{ncdu/scr} => \&ncduscr, qr{ncdc} => \&ncdc, qr{ncdc/faq} => \&ncdcfaq, - qr{ncdc/man} => \&ncdcmanual, qr{ncdc/changes} => \&ncdcchangelog, + qr{ncdc/man} => \&ncdcmanual, + qr{ncdc/scr} => \&ncdcscr, qr{tuwf} => \&tuwf, qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual, @@ -116,6 +117,9 @@ sub ncdu { h2 'Packages and ports'; p 'ncdu has been packaged for various systems already, here\'s a list of the ones I am aware of:'; + a href => 'http://packages.agilialinux.ru/search.php?tag=sys-fs', 'AgiliaLinux';txt ' - '; + a href => 'http://www.perzl.org/aix/index.php?n=Main.Ncdu', 'AIX'; txt ' - '; + a href => 'http://sisyphus.ru/en/srpm/Sisyphus/ncdu', 'ALT Linux'; txt ' - '; a href => 'http://www.archlinux.org/packages/?q=ncdu', 'Arch Linux'; txt ' - '; a href => 'http://crux.nu/portdb/?q=ncdu&a=search', 'CRUX'; txt ' - '; a href => 'http://cygwin.com/packages/ncdu/', 'Cygwin'; txt ' - '; @@ -124,27 +128,34 @@ sub ncdu { a href => 'http://www.freshports.org/sysutils/ncdu/', 'FreeBSD'; txt ' - '; a href => 'http://frugalware.org/packages/?op=pkg&srch=ncdu&arch=all&ver=all', 'Frugalware'; txt ' - '; a href => 'http://packages.gentoo.org/package/sys-fs/ncdu', 'Gentoo'; txt ' - '; - a href => 'http://www.ipcopaddons.org/addondb.php?action=detail&addonid=67', 'IPCop'; txt ' - '; + a href => 'http://www.ipadd.de/binary-v2.html', 'IPCop'; txt ' - '; a href => 'http://www.openbsd.org/cgi-bin/cvsweb/ports/sysutils/ncdu/', 'OpenBSD'; txt ' - '; a href => 'http://packman.links2linux.de/package/ncdu/', 'OpenSUSE'; txt ' - '; txt 'Mac OS X ('; - a href => 'http://ncdu.darwinports.com/', 'Darwin Ports'; txt '-'; - a href => 'http://pdb.finkproject.org/pdb/package.php/ncdu', 'Fink'; + a href => 'http://pdb.finkproject.org/pdb/package.php/ncdu', 'Fink'; txt '-'; + a href => 'http://mxcl.github.com/homebrew/', 'Homebrew'; txt '-'; + a href => 'http://www.macports.org/ports.php?by=name&substr=ncdu', 'MacPorts'; txt ') - '; - a href => 'http://paketler.pardus.org.tr/info/2009/stable/source/ncdu.html', 'Pardus'; txt ' - '; + a href => 'http://packages.pardus.org.tr/info/2011/devel/source/ncdu.html', 'Pardus'; txt ' - '; + a href => 'http://www.murga-linux.com/puppy/viewtopic.php?t=35024', 'Puppy Linux';txt ' - '; txt 'Solaris ('; a href => 'http://www.opencsw.org/packages/ncdu', 'CSW'; txt '-'; a href => 'http://www.sunfreeware.com/', 'sunfreeware'; txt ') - '; - a href => 'http://slackbuilds.org/repository/13.37/system/ncdu/', 'Slackware'; txt ' - '; + txt 'Slackware ('; + a href => 'http://slackbuilds.org/repository/13.37/system/ncdu/', 'Slackbuilds'; txt '-'; + a href => 'http://www.slackers.it/repository/ncdu/', 'Slackers.it'; + txt ') - '; a href => 'http://packages.ubuntu.com/search?searchon=sourcenames&keywords=ncdu', 'Ubuntu'; txt ' - '; a href => 'http://zur.zenwalk.org/view/package/name/ncdu', 'Zenwalk'; + br; + txt 'ncdu is also available on the '; + a href => 'https://build.opensuse.org/package/show?package=ncdu&project=utilities', 'Open Build Service'; + txt ', which provides packages for a variaty of Linux distributions.'; br; br; txt 'Subscribe to '; a href => 'http://freecode.com/projects/ncdu', 'freecode'; - txt ' or to '; - a href => 'https://sourceforge.net/api/file/index/project-id/200175/mtime/desc/rss', 'this RSS feed at sf.net'; txt ' to receive notifications for new releases.'; h2 'Development access'; @@ -155,11 +166,18 @@ sub ncdu { end; h2 'Similar projects'; - a href => 'http://gt5.sourceforge.net/', 'gt5'; txt " - Quite similar to ncdu, but a different approach."; br; - a href => 'http://webonastick.com/tdu/', 'tdu'; txt " - Another small ncurses-based disk usage visualization utility."; br; - a href => 'http://treesize.sourceforge.net/', 'TreeSize'; txt " - Same goal, but in GTK this time."; br; - a href => 'http://www.marzocca.net/linux/baobab.html', 'Baobab'; txt " - Another GTK disk usage analyzer, comes with GNOME."; br; - a href => 'http://www.methylblue.com/filelight/', 'Filelight'; txt " - And one for KDE."; br; + a href => 'http://gt5.sourceforge.net/', 'gt5'; txt ' - Quite similar to ncdu, but a different approach.'; br; + a href => 'http://webonastick.com/tdu/', 'tdu'; txt ' - Another small ncurses-based disk usage visualization utility.'; br; + a href => 'http://treesize.sourceforge.net/', 'TreeSize'; txt ' - GTK, using a treeview.'; br; + a href => 'http://www.marzocca.net/linux/baobab.html', 'Baobab'; txt ' - GTK, using pie-charts, a treeview and a treemap. Comes with GNOME.'; br; + a href => 'http://gdmap.sourceforge.net/', 'GdMap'; txt ' - GTK, with a treemap display.'; br; + a href => 'http://www.methylblue.com/filelight/', 'Filelight'; txt ' - KDE, using pie-charts.'; br; + a href => 'http://kdirstat.sourceforge.net/', 'KDirStat'; txt ' - KDE, with a treemap display.'; br; + a href => 'http://qt-apps.org/content/show.php/QDiskUsage?content=107012', 'QDiskUsage'; txt ' - Qt, using pie-charts.'; br; + a href => 'http://xdiskusage.sourceforge.net/', 'xdiskusage';txt ' - FLTK, with a treemap display.'; br; + a href => 'http://fsv.sourceforge.net/', 'fsv'; txt ' - 3D visualization.'; br; + a href => 'http://zevv.nl/play/code/philesight/', 'Philesight';txt ' - Web-based clone of Filelight.'; br; + a href => 'http://www.jgoodies.com/freeware/jdiskreport/','JDiskReport';txt ' - Java, using pie-charts and a treeview.'; $s->htmlFooter; } @@ -191,22 +209,22 @@ sub ncduscr { txt 'Note: While these screenshots are from version 1.7, the latest version has only little visible changes.'; br; br; txt 'Scanning...'; - img src => '/img/ncduscan.png', style => 'margin: 5px 0 0 0; border: 1px solid #999', alt => 'Ncdu scanning a large directory.'; + img src => '/img/ncduscan.png', class => 'scr', alt => 'Ncdu scanning a large directory.'; br;br; txt 'Done scanning'; - img src => '/img/ncdudone.png', style => 'margin: 5px 0 0 0; border: 1px solid #999', alt => 'Ncdu done scanning a large directory.'; + img src => '/img/ncdudone.png', class => 'scr', alt => 'Ncdu done scanning a large directory.'; br;br; txt 'Directory information'; - img src => '/img/ncduinfo.png', style => 'margin: 5px 0 0 0; border: 1px solid #999', alt => 'Ncdu displaying directory information.'; + img src => '/img/ncduinfo.png', class => 'scr', alt => 'Ncdu displaying directory information.'; br;br; txt 'Delete confirmation'; - img src => '/img/ncduconfirm.png', style => 'margin: 5px 0 0 0; border: 1px solid #999', alt => 'Ncdu asking for confirmation to delete a file.'; + img src => '/img/ncduconfirm.png', class => 'scr', alt => 'Ncdu asking for confirmation to delete a file.'; br;br; txt 'Help screen'; - img src => '/img/ncduhelp1.png', style => 'margin: 5px 0 0 0; border: 1px solid #999', alt => 'Ncdu help screen.'; + img src => '/img/ncduhelp1.png', class => 'scr', alt => 'Ncdu help screen.'; br;br; txt 'About screen'; - img src => '/img/ncduhelp2.png', style => 'margin: 5px 0 0 0; border: 1px solid #999', alt => 'Ncdu about screen.'; + img src => '/img/ncduhelp2.png', class => 'scr', alt => 'Ncdu about screen.'; end; $s->htmlFooter; } @@ -240,9 +258,12 @@ sub ncdc { txt '. The README includes instructions to build ncdc. Check out the '; a href => '/ncdc/man', 'manual'; txt ' to get started.'; br;br; - txt 'Packages/ports are available for the following systems: '; + txt 'Packages/ports are available for the following systems: '; br; a href => 'http://aur.archlinux.org/packages.php?ID=50949', 'Arch Linux'; txt ' - '; a href => 'http://packages.gentoo.org/package/net-p2p/ncdc', 'Gentoo'; txt ' - '; + txt 'Mac OS X ('; + a href => 'http://www.macports.org/ports.php?by=name&substr=ncdc', 'MacPorts'; + txt ') - '; a href => 'http://packman.links2linux.org/package/ncdc', 'OpenSUSE'; txt '.'; end; @@ -309,112 +330,8 @@ sub ncdcfaq { p 'On this page I collect several questions that people may have and try to answer them. If you have a question that is not covered here, don\'t hesitate to ask!'; - div class => 'pod'; - - h2 'What about other text-mode clients?'; - p; - a href => 'http://corsair626.no-ip.org/microdc/', 'microdc2'; - txt ' - A rather nice client, yet not exactly there. It\'s limited to - connecting to a single hub, hasn\'t been updated since 2006, and the - readline interface is slightly awkward to use.'; br; - a href => 'http://sourceforge.net/projects/nanodc/', 'nanodc'; - txt ' - Can\'t comment much on this, except maybe that rocket science is - perhaps easier than getting nanodc to compile.'; br; - txt 'LDCC - Uses DCTC as backend and an interface based on TurboVision. - All mentioned projects are dead: neither LDCC, DCTC nor TurboVision are - seeing any recent development.'; br; - a href => 'http://shakespeer.bzero.se/', 'ShakesPeer'; - txt ' - Appears to have a commandline inter-face as well. I haven\'t - personally tried it, but have not heard much positive things about it. - Has not seen any recent development, either.'; - end; - - h2 'Why did you start from scratch? Why not use the DC++ core?'; - p; - lit <<' E;'; - There are many reasons why I chose not to use code from existing projects, - but all of them boil down to the following two: 1) I am a control freak, - and 2) personal preferences.
- That is the short answer. The long answer will require a full article, - and I don't feel like writing that much at this point. >_> - E; - end; - - h2 'Can ncdc use the hash data or configuration from an existing DC++ installation?'; - p 'No, ncdc uses its own configuration and hash storage directory. - However, on popular demand I could write a conversion utility to transfer - the hash data from other clients to ncdc\'s format.'; - - h2 'Can ncdc run in the background / as a daemon?'; - p; - lit <<' E;'; - As with most ncurses applications: no. At least, it does not have this - functionality built-in. Ncdc is designed to be used in combination with a - separate terminal multiplexer or detach utility to handle this. Have a look - at GNU screen, - tmux or - dtach. - E; - end; - - h2 'Does ncdc support TLS?'; - p; - lit <<' E;'; - Yes! To make use of this, however, you need to have relatively new version - of glib2. If you're still working with an outdated system, an alternative - is to use stunnel to connect to - TLS-enabled hubs. This trick does not allow encrypted client-to-client - connections, so your file transfers will remain unencrypted.
- The following example stunnel configuration is what I used to connect to - the DC Development hub before ncdc had native TLS support:

-
[dcdev]
client = yes
accept = 127.0.0.1:16591
connect = hub.dcbase.org:16591
-

The URL `adc://127.0.0.1:16591/' can then be used to connect to the hub - from within ncdc. - E; - end; - - h2 'Does ncdc support UPnP?'; - p; - lit <<' E;'; - Not natively. However, it is possible to use this - script and manually keep a port open using a cron job. I have no - experience with this myself, though. I just run ncdc directly on my router. :-) - E; - end; - - h2 'Are there any programs available for analyzing the transfers.log file?'; - p; - lit <<' E;'; - Nothing like that is included in the release yet, but there is a simple - Perl script available: ncdc-transfer-stats. - E; - end; - - h2 'Why doesn\'t ncdc rotate log files automatically?'; - p; - lit <<' E;'; - Because you can easily do that yourself. You can either use logrotate or a - simple script that runs from a cron. For an example of the latter option, - this is the script I use, which is - run as a monthly cron job. - E; - end; - - h2 'What protocol features does ncdc support?'; - p; - lit <<' E;'; - For ADC: BASE, RF, TIGR, BZIP, ADCS and KEYP.
- For NMDC: NoGetINFO, NoHello, UserIP2, MiniSlots, XmlBZList, ADCGet, TTHL and TTHF.
- That is pretty much everything you'd expect any modern client to have. Note - that ncdc does not support some of the older NMDC protocol features, like $Get, - $GetZBlock, $CHUNK, $Cancel or non-XML file lists. I am not aware of an - other up-to-date client that still uses any of these features. - E; - end; - - end 'div'; + br; br; + $s->htmlPOD("$ROOT/dat/ncdc-faq"); $s->htmlFooter; } @@ -439,6 +356,26 @@ sub ncdcchangelog { } +sub ncdcscr { + my $s = shift; + $s->htmlHeader(title => 'Screenshots', page => 'ncdc', tab => 'scr'); + p; + txt 'Main chat'; + img src => '/img/ncdchub.png', class => 'scr', alt => 'Ncdc in the mainchat.'; + br;br; + txt 'File browser'; + img src => '/img/ncdcbrowse.png', class => 'scr', alt => 'Simple file list browser.'; + br;br; + txt 'User list'; + img src => '/img/ncdcusers.png', class => 'scr', alt => 'Ncdc displaying the userlist of a hub.'; + br;br; + txt 'Built-in help'; + img src => '/img/ncdchelp.png', class => 'scr', alt => 'Ncdc built-in help.'; + end; + $s->htmlFooter; +} + + # T U W F @@ -928,8 +865,8 @@ sub htmlHeader { if($o{page} eq 'ncdu') { div id => 'mtabs'; a href => '/ncdu', !$o{tab} ? (class => 'sel') : (), 'main'; txt ' '; - a href => '/ncdu/changes', $o{tab} eq 'changes' ? (class => 'sel') : (), 'changelog'; txt ' '; a href => '/ncdu/man', $o{tab} eq 'man' ? (class => 'sel') : (), 'manual'; txt ' '; + a href => '/ncdu/changes', $o{tab} eq 'changes' ? (class => 'sel') : (), 'changelog'; txt ' '; a href => '/ncdu/scr', $o{tab} eq 'scr' ? (class => 'sel') : (), 'screenshots'; txt ' '; a href => 'http://sourceforge.net/tracker/?group_id=200175', 'bug tracker (sf)'; end; @@ -940,6 +877,7 @@ sub htmlHeader { a href => '/ncdc/faq', $o{tab} eq 'faq' ? (class => 'sel') : (), 'Q&A'; 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 ' '; + a href => '/ncdc/scr', $o{tab} eq 'scr' ? (class => 'sel') : (), 'screenshots'; txt ' '; end; } if($o{page} eq 'tuwf') { @@ -1062,6 +1000,7 @@ sub css { #footer, #footer a { color: #444; margin-bottom: 10px } .sig { vertical-align: super; padding-left: 3px; color: #666!important } .sig, .sig a { font-size: 10px; color: #ccc } + .scr { margin: 5px 0 0 0; border: 1px solid #999 } h1 { font-size: 19px; color: #888; margin-bottom: 5px; } h2 { font-size: 16px; color: #888; margin-top: 25px; margin-bottom: 1px; } b { font-weight: bold; color: #fff }