NAME

AutoNap.pl - an interacting and non-interacting Napster/OpenNap client


SYNOPSIS

AutoNap.pl [options]

options

-h

-R [-n]

[-f] [-p -u -m -S -n -P -r -x -l -b -d]

[-f] [-p -s -r -a]


DESCRIPTION

AutoNap.pl is a program written in Perl which will connect to an OpenNap compatible network (Napster is one of those), search for given songs and download them.

It is intended either for interacting mode using a console color-interface or running unattendedly by following the directives given in a configfile. As for now, you will have to confine yourself to the interacting mode. Yet, I am doing my best to with implementing the non-interacting mode as well as making the interactive interface as smooth and comfortable as possible.

If you ever find a feature announced as being available and in fact it is not yet there, please take into account that this client isn't even one month old. Same applies to bugs of which AutoNap is probably particularly rich. Don't just wipe it off from your system: report the bugs instead to me and I'll fix it as soon as possible, often within less than 24h. Or: be an even better boy by fixing it yourself and send me the diff. ;-)


ARGUMENTS

-h
Displays the help screen and exits.

-R
Register a new a accont. It is advisable to use -R only along with -N since AutoNap's serverlist is unsorted and thus you cannot predict which network it'll try to register you on.

-f <file>
Reads options from file. See the commented autonap.conf for details on how to setting up one.

-a
Do not start the interactive user's interface but instead run automatically according to the user's directives in the configfile. Output goes to a log-file.

-u <user>
Tries to login to the network with <user>.

-p <pass>
Identifies with <pass> on login to a network.

-S <server>:<port>
Tries a login on <server> and <port>. <port> is mandatory when specifying a server.

-n <network>
Logins to the specifies <network>. This only works when AutoNap was able to retrieve a serverlist from which it can deduce the network a server is belonging to. This means that -n doesn't make sense along with -S.

-m
Indicates that the given server is a meta-server which requires a slightly different approach on login.

-d <dir>
Store downloads into <dir>. The user running AutoNap naturally needs to have write permissions to this directory.

-b <bitrate>
Sets the default minimum bitrate to <bitrate>. That means that AutoNap will as default only find songs that have at least this bitrate.

-l <linespeed>
Works just like the --bitrate option only that it affects the linespeed of songs to be found. This options can be overriden when being inside AutoNap by suffixing the searchpattern with ||<linespeed>. Valide values for <linespeed> are: T3, T1, DSL, Cable, 128K, 64K, 56K, 33K, 28K, 14K and UNKNOWN.

-P <player>
Specifies which mp3-player should be used for streaming. Only necessary to be specified when different from mpg123.

-r
Toggles random mode, that is: tries to act as 'randomly' on search es possible. Intended for non-interact mode which isn't yet done.

-x <patterns>
Do random searches but none containing one of the <patterns>. <patterns> is a double-colon separated list.

-s <pattern>
Search for songs containing <pattern>. This switch is incompatible with -r and thus ignored when random is set.


EXAMPLES

This will try to register you on a MusicCity server. It will prompt you for desired username and password:

AutoNap.pl -R -n MusicCity

Read options from /home/ethan/autonap.conf but only try MusicCity servers:

AutoNap.pl -f /home/ethan/autonap.conf -n MusicCity

Try to login to any server with user/pass foo/bar and set mp3player to mp3blaster:

AutoNap.pl -u foo -p bar -P mp3blaster

And so on, and so on. When you are smart, you should know yourself which options make sense with each other and which don't. ;-)


INTERACTIVE MODE

When using interactive mode (which is currently the only available one), you see yourself presented with the server's MOTD after login if there is any. You then can control AutoNap through the built-in commands which are listed to you when typing 'help'. Typing 'help <command>' gives you further advice on a particular command.

Some of the commands take arguments, some are without and some may take arguments. Commands without any further arguments are 'downs' and 'quit'. 'last' and 'help' can take arguments and for all other commands an argument must be supplied.

Prefixing a command with a '!' will invoke the following string to be interpreted as a system command. However, shell built-ins do not work, in order to execute these (things such as 'cd' etc.) you can do (for the bash):

!bash -c 'cd ..'

As this is clumsy and hardly a win over switching to another shell, you can just start a new shell by typing:

!bash

and then comfortably doing all your stuff there. exit will return you to AutoNap.

NON-INTERACTIVE MODE

This mode is intended for those who want an mp3 leecher that can run as a cron-job for instance. Or those who want to fill their harddrive overnight without any own activity.

As AutoNap, once started with the -a option, can no longer be influenced (except by killing it), all options need to be passed to it in beforehand, preferably through the autonap.conf. For testing purpose, you can however trace what AutoNap is doing by invoking tail -f auto.log. This is useful if you doubt that AutoNap will find any songs relating to the search pattern you specified. In this case you could interrupt AutoNap and start it once more with modified parameters.

Basically, you have to keep in mind that not even AutoNap can perform black magic and that it follows certain hard-coded rules when running non-interactively. It is helpful for you to know what it does and it which order.

First of all it logs on a network just as it does in interactive mode. Afterwards it has a closer look at the config-file and will read out the options given in the [rnd] and [auto] section. If it cannot find satisfactory information it will either assign some in its opinion reasonable defaults...or in worst case it will break. This will probably happen if you specified no values at all.

AutoNap's next step is assigning each search pattern to an element of an array. Thus it can be assured that later search results retrieved on different search patterns will not be merged. It will now perform several searches, depending on what you told him in the configfile. Assuming you gave him three search patterns and a bitrange of 128 and 160 kbits, AutoNap will do 3 * 2 = 6 searches. For each search pattern it will look for songs with at least 128 kbits and at least 160 kbits. It will merge search results from different bitrates per pattern und filter out any song that either is not in the range of the bitrates or that is not within the range of song-length (for instance 2:00 minutes and 5:00 minutes).

If you set ping=yes in the conffile each song (better: its owner) is pinged and the roundtrip time together with the song put into a hash. After all pings have been done, all songs belonging to the respecitve search pattern are sorted by ping-reply. Pinging takes a lot of time, you should be aware of that. If you don't want AutoNap to ping the owners, that's also fine with it. Then it'll just try to get a song one after another till a download has been succesfully finished.

AutoNap will never download more than one song relating to one search pattern. So when you specify beatles +help::beach boys +surfin +usa it will at most get two songs and you do not have to worry that AutoNap pumps 'Help' by the Beatles a few times into your computer.

It behaves differently on random-searches. If you do not give it a limit (auto_max_download=3 for a maximum of three downloads) it will download as many songs as it will find and be able to download. Thus you can broaden your musical horizont by letting AutoNap run randomly while you sleep in the night. Next morning you should have a handful of probably new songs.

You'll find more detailed information in the autonap.conf(5).


PAGING

When browsing other user's song archive or retrieving results from a search, AutoNap wont scroll through to the bottom without you even catching a glimpse of the song. It will pause after (currently) 25 songs and ask you to press a key to go on scrolling or hitting 'q' to quit the list prematurely. There are two more keys you can press, 'g' and 'x'.

'g' is useful when you just spied a song on the current page you badly need to have and you can't wait to scroll the list to the bottom or taking the pain on you to hit 'q' and then entering 'get <num>'. So it'll prompt you for this number, trying to initiate the download and return into paging mode. 'x' (short for execute and exit;-) does the same but wont return and instead fall back to the AutoNap shell.

Both 'g' and 'x' wont affect 'last' in any way and prematurely leaving the list with 'q' will still cache the result, so you can rebrowse that at a later time. In case you mistakenly hit 'x' or 'g' and you do not want to download any of the songs, just hit RETURN without any input and it'll savely make you leave the prompt without the need of downloading anything.


SEE ALSO


AUTHOR AND COPYRIGHT

Tassilo von Parseval <Tassilo.Parseval@post.RWTH-Aachen.de>.

Copyright (c) 2001 Tassilo von Parseval. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL).