File: README

package info (click to toggle)
snap 0.08-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 440 kB
  • ctags: 473
  • sloc: perl: 7,033; makefile: 117; sh: 70
file content (168 lines) | stat: -rw-r--r-- 6,687 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
Snap 0.07
A Perl Napster Client
---------------------

http://ugweb.cs.ualberta.ca/~kosinski/snap
email: brettk@ualberta.ca

Snap is an open source (licensed under the Artistic License), Perl-based
Napster client.  It's main goal is to remain relatively slim while providing
all the functionality demanded of a full-fledged Napster client.  The
fundamental design involves providing a basic core, with all the code
necessary to communicate with the Napster server, and provide any additional
functionality, including user interfaces, as separate add-on scripts.


Features
--------

Currently, Snap supports a wide range of features, including:

* Full song searching and library browsing support. 
* Regular expression filtering of search/browse results.
* Support for all upload and download methods, with upload speed throttling.
* Resume support (mostly... :)
* Download queuing (still rough, though :).
* Efficient MP3 data cache for fast logins.
* Chatting support, including multi-channel support.
* Support of most admin commands.
* Support for Opennap extensions.
* Hotlist support.
* Support for most other Napster commands, including ping, whois, etc.
* Support for alternate metaservers and Napster servers, for use 
  with OpenNap and other independant networks.
* Highly flexible and scriptable, including a builtin /eval function for 
  evaluating Perl code on the fly from within the client. 
* Builtin help facility for all commands.
* Small set of standard IRC commands, such as /exec.
* SOCKSv4 and v5 support using Net::SOCKS.
* The choice of three different user interface options:

    Gtk    - Graphical interface for X.
    Tk     - Another GUI, using Tk instead of Gtk.  Very rudimentary.
    Curses - Text mode, full-screen text interface, with scroll-back,
             colour, and GNU inputline-stype input.
    Plain  - Plain text, console interface, suitable for terminals with
             poor capabilities, or for use with separate front-ends.


Supported Platforms
-------------------

Snap has been known to work on the following platforms, however I'm sure that
as long as you have a working Perl5 installation, it should work (although
perhaps not perfectly ;).

* AIX 4.2 (Matthew Shaw)
* Digital Unix 4.0 (Hugo Leote)
* FreeBSD 4.0 (Ed Heil)
* OpenBSD 2.5
* Redhat Linux 5.2 (i686)
* RedHat Linux 6.0 (i686)
* Debian Linux (Potato)
* SunOS (Curses interface is broken, though)

All platforms use Perl 5, which is required (at least AFAIK) for Snap
to run.  As well, you need a working version of basic POSIX IPC (fork(),
signals, pipes, etc)... meaning no Win32 (can't select() on STDIN!)


Software Requirements
---------------------

In terms of required software, Snap only needs a working Perl 5 installation.
However, snap can take advantage of various additional modules, if they are
available.  The presence of these modules causes the inclusion of various
additional features.  The following is a list of the modules Snap can take
advantage of, and the features which are enabled when they are present.

* Time::HiRes - Upload speed throttling.
* MD5         - (Mostly :) Correct MP3 MD5 signatures.
* Net::SOCKS  - SOCKS v4 and v5 support.

In addition, the user interface modules have their own requirements.  For
example, the Gtk interface obviously needs Perl/Gtk installed, and the
Curses interface needs a working Curses module installed. :)


Installing Snap
---------------

First of all, it's possible to run Snap straight from the directory
created by the tarball.  However, if this is to be a system-wide
installation, simply run the install.sh script.  This will install
Snap into the following directories:

snap    -> /usr/local/bin/snap
libsnap -> /usr/local/lib/libsnap
snaprc  -> /usr/local/share/snap/snaprc
scripts -> /usr/local/share/snap/scripts

You can edit the install script if you wish to install Snap into a 
different location, however Snap assumes your system obeys Unix path
conventions (ie, bin/, lib/, share/ in one common directory).

Once the script is run, a user can run the snap.inst script (again,
you can change this name if you like) to install the snaprc file and
to populate the basic snap directory.


Running Snap
------------

Well, there isn't a lot to it.  Before anything, make sure you've
got a .snaprc file installed in your home directory, and you've editted
it to contain your preferred settings.  The file is somewhat self
documenting, so just look there to see what's available.

To get help with command-line parameters, type:

  snap -h

If you're logging into Napster for the first time, edit your .snaprc to
include your desired username and password, and then run snap like this:

  snap -n

This will cause snap to register you as a new user.

When Snap is running, you can get access to the online help through the "/help"
command.  Use this command to get a list of the commands and their operation.

Index of available commands:

    /admin            - Execute Napster Admin command  
    /alias            - Create command alias
    /browse           - Browse a particular users share list
    /clear            - Clear the screen
    /config           - Configure some run-time option
    /dl               - Perform an operation on a download
    /dlist            - Get current download list
    /eval             - Evaluate perl code or file
    /exec             - Execute application and display results
    /filter           - Filter current search/browse results with regex
    /get              - Download file(s)
    /global           - Send a global message
    /help             - Get help
    /hotlist          - Manage hotlist
    /join             - Join a channel
    /list             - List current available channels
    /me               - Send emote
    /msg              - Send private message to user
    /op               - Perform an operator command
    /pagedown         - Page screen down
    /pageup           - Page screen up
    /part             - Part the specified channel
    /ping             - Ping a user
    /queue            - Add file(s) to download queue
    /quit             - Quit program
    /reconnect        - Reconnect to current server or another one
    /resume           - Resume a file transfer
    /search           - Perform a song search
    /send             - Send a line to the current channel
    /speed            - Get connection type for user
    /ul               - Perform operation on an upload
    /ulist            - Display the current upload list
    /users            - Get list of users in current channel
    /whois            - Perform a whois on a user
    About             - Information about Snap