The torrents Reference Manual

This is the torrents Reference Manual, version 0.12.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 05:28:16 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 torrents

Search for torrents on popular trackers. Lisp library, CLI interface, terminal application, Tk GUI.

Author

vindarel

License

MIT

Long Description

[[https://gitlab.com/vindarel/cl-torrents][file:https://gitlab.com/vindarel/cl-torrents/badges/master/pipeline.svg]]

This is a little app to search for torrents on popular trackers and
to open them with a local or a remote client.

It comes as:

- a *lisp library*,
- a *command line* interface,
- a terminal *readline interface*,
- a simple *GUI*.
- The *[[https://github.com/vindarel/cl-torrents-web][Web UI]]* works too.

We currently scrape [[http://1337x.to][1337x.to]] (since v0.9), [[https://www.torrentdownloads.me][torrentdownloads.me]]
(v0.10) and [[https://torrent-paradise.ml][torrents-paradise]] (v0.11) and present the results sorted by seeders.

Download for GNU/Linux 64 bits: see [[https://gitlab.com/vindarel/cl-torrents/tags][Releases]] (/23MB, self-contained
executable/).

NOTE: torrents-paradise has a rich collection, a simple website as in KISS, it works on IPFS and has
it offers an API… frankly, I want to use its web service and click on its adds.

#+html: <p align="center"><img src="assets/img-colored-results.png" /></p>

#+html: <p align=’center’><img src=’assets/img-readline.png’ /></p>

#+html: <p align="center"><img src="assets/torrents-tk.png" /></p>

With the new default Yaru theme (and [[https://lisp-journey.gitlab.io/blog/pretty-gui-in-common-lisp-with-nodgui-tk-themes/][there are more]]):

#+html: <p align="center"><img src="assets/tk-gui-yaru-theme.png" /></p>

** Installation

The library is on Quicklisp (february 2019) and [[http://ultralisp.org/][Ultralisp]].

: (ql:quickload "torrents")
: (torrents:search-torrents "tears of steel")

Note: the master branch needs [[https://github.com/libre-man/cl-transmission/][cl-transmission]] which was added
to the Quicklisp distribution of december, 2019.

See the download link of the binary above. It is a self-contained executable for
GNU/Linux 64-bits. You do /not/ need to install a Lisp
implementation. It’s a 23MB binary.

To build the readline app, do:

: make build

To build the Tk GUI:

: make build-gui

then run

: ./torrents –help
: ./torrents-tk &

_Troubleshooting_

The Tk GUI needs [[https://notabug.org/cage/nodgui/][nodgui]] newer than march, 2019.

If a search doesn’t work with a =CRYPTO_num_locks= error message:

#+BEGIN_EXPORT ascii
> ./torrents matrix
searching ’(matrix)’ on 1337... no results.
error: The alien function "CRYPTO_num_locks" is undefined.
searching ’(matrix)’ on DOWNLOADSME... no results.
error: The alien function "CRYPTO_num_locks" is undefined.
#+END_EXPORT

You might need to upgrade your OpenSSL version. See [[https://gitlab.com/vindarel/cl-torrents/issues/5][this issue]].

** Usage

We can use this little app both in a Lisp REPL (Slime) and in a
terminal, as a command line tool or from its embedded interactive prompt.

Results are cached in =~/.cl-torrents/cache/=. Delete this
directory if you want new results.

*** Lisp REPL

Search for torrents:

#+BEGIN_SRC text
(use-package :torrents)
(search-torrents "matrix")
[...]
6: The Matrix Revolutions (2003) BRRip [Dual Audio] [Hindi+Eng]
5: Matrix (1999)Blu-Ray 720p Dublado PT-BR - mo93438
4: The Matrix Trilogy (1999-2003) BDRip 1080p Dual Audio [ Hind
3: The Matrix Trilogy (1999-2003) BluRay BDRip 1080p AC3
2: The Matrix Trilogy (1999-2003) + Extras 1080p BluRay x264 Du
1: The Matrix Reloaded (2003) FullHD, Dual Audio: English + Spa
0: Matrix FRENCH DVDRIP 1999 COOL
#+END_SRC

To help finding the most relevant results (the website sometimes is
a bit relaxed with our search terms), each keyword is printed in a
different color:

#+html: <p align="center"><img src="assets/img-colored-results.png" /></p>

(you need to enable ansi colors in Slime, see [[https://github.com/enriquefernandez/slime-repl-ansi-color][slime-repl-ansi-color]].
Disable this feature with =(setf cl-ansi-text:*enabled* nil)=)

We get a magnet link with:

#+BEGIN_SRC lisp
(magnet 0)
;; "magnet:?xt=urn:btih:40eca43690cf1b99b0a4d485ebf4855d20b0bac5"
#+END_SRC

We can open it with a torrent client (transmission-gtk by default):

#+BEGIN_SRC lisp
(download 0)
#+END_SRC

Download it with a remote client (only transmission-remote so far):

you need settings, see below. TODO
#+BEGIN_SRC lisp
;; in ~/.config/torrents.lisp
(setf *remote-client-url* "my.url.without.port")
(setf *remote-client-username* "transmission")
(setf *remote-client-password* "password")
;; port is 9091 by default.
#+END_SRC

#+BEGIN_SRC lisp
(remote-download 0)
#+END_SRC

And voilà :)

We may add more features, eventually. Our goal is rather to write a
tutorial to show you diverse Common Lisp topics.

**** Parameters

=*cache-p*=: if nil, don’t use the cache system.

*** Command line

Use the options given below,

#+BEGIN_SRC text
$ torrents -h
CL-torrents. Usage:

Available options:
-d, –details print more details (like the torrent’s url)
-h, –help print this help text
-i, –interactive enter an interactive repl
-m, –magnet ARG get the magnet link of the given search result.
-n, –nb ARG set the maximum number of results to print.
-o, –open INDEX download with a torrent client (transmission-gtk by default)
-v, –version print the version
#+END_SRC

Example: below we search for "matrix…", we display only 1 result and
we get the magnet link of the first result.

: $ torrents -n 1 matrix french 1999 cool -m 0

#+html: <p align=’center’><img src=’assets/img-cli.png’ /></p>

*** Readline interface

Start it with =torrents -i=.

See the =help= and the help of each command.

The available commands are (use the auto-completion):

- =search=: search for torrents, print the results sorted by number of seeders.
- =magnet <i>=, where /i/ is a result index,
- =open= or =firefox <i>=: open the given torrent page in a web browser
- =download <i>=: open a magnet link with a torrent client
(transmission-gtk by default)
- =filter <text>=: show results that have this text in their
title. This reduces the tab-completion of ids for all commands.
- =highlight= (and =unhighlight=): highlight the given words in
yellow, for this session.
- =url <i>=
- =nb-results= =n= to set the number of results to print to /n/
- =details=: toggle the display of details
- =quit= (or =C-c=)

And the available settings to change with =set= are (use =set=’s autocompletion):

- =*details*=: if true, print more details below each row (like the
url). Defaults to false.
- =*nb-results*=: how many results to print. Defaults to 20.
- =*browser*=: the browser name to use to open urls. Defaults to Firefox.
- =*torrent-client*=: the desktop torrent client name. Defaults to Transmission.
- =*cache-p*=: if true (the default), use the cached results.

You can also set them in a configuration file.

Note that we are in a regular [[https://tiswww.case.edu/php/chet/readline/readline.html#SEC9][readline]] interface, so the usual keybindings and
options are available. For example, Readline obeys the =~/.inputrc=
startup file. You can change the way the TAB key does completion:

: TAB: menu-complete

if you add this, the first press on TAB will insert the first
completion candidate (VS listing all the choices, and requiring a
second keypress). For cl-torrents, it is convenient because we can
enter the first result quickly: I typically do =search foo= then
=download TAB=.

Note: I found out that =C-x C-r= re-reads the inputrc file, so you can
try without quitting cl-torrents.

#+html: <p align=’center’><img src=’assets/img-readline.png’ /></p>

*** Configuration files (in development)

=cl-torrents= will read two configuration files. An ini-style one,
and a lispy one.

**** Ini-style config

First, it will search for a =~.torrents.conf= file
from =~/.config/.torrents.conf= and =~/.torrents.conf=. The last
one takes precedence.

For example, those are the default values:

#+BEGIN_SRC conf
[default]
scrapers = 1337 DOWNLOADSME
browser = firefox
nb-results = 20
cache-p = true # use the cache system.
#+END_SRC

Moreover, you can set parameters related to the repl:

#+BEGIN_SRC text
[default]
# again, default values:
confirm-exit = true # ask with a yes/no prompt before quiting the app.
verbose = false
history = true # use the repl history.
write-history = true # read the history, but don’t write to it.
#+END_SRC

You can set them for all replic-based apps in =~/.replic.conf=, or
override them in =.torrents.conf=.

/Note: we only use a "default" profile for now./

**** Lisp init file

If the file =~/.torrents.lisp= exists, it will be loaded after the
=.conf= one and before the command line arguments.

The option =–no-userinit= prevents it from loading.

You can write whatever you want there, it is just a lisp file that
will be =load=’ed at startup.

/Note/: what we will eventually do then is to expose cl-torrents’
mechanism via hooks.

**** Extending the app, creating commands

One thing you can do is define additional commands to be found at the
repl. We do so by following [[https://github.com/vindarel/replic/][replic]]’s mechanism:

- define functions inside the =torrents.user= package
- define the completion choices for some functions
- =export= the functions you want to see turned into
commands. =cl-torrents=, with the help of the =replic= library, will
automatically turn them into commands available at the application
prompt.

You can copy the example below in =~/.torrents.lisp= and re-run
=torrents -i= to try this out.

#+BEGIN_SRC lisp
(in-package :torrents.user)

(defparameter *names* ’()
"List of names (string) given to ‘hello‘. Will be autocompleted by ‘goodbye‘.")

(defun hello (name)
"Takes only one argument. Adds the given name to the global
‘*names*‘ global variable, used to complete arguments of ‘goodbye‘. "
(format t "hello ~a~&" name)
(push name *names*))

(defun goodbye (name)
"Says goodbye to name, where ‘name‘ should be completed from what was given to ‘hello‘."
(format t "goodbye ~a~&" name))

;; Custom completion for goodbye:
(replic.completion:add-completion "goodbye" (lambda () *names*))

;; and export the two functions to find them as commands.
(export ’(hello
goodbye))
#+END_SRC

** Ideas, todos

- [X] cache (on files) v0.3
- [X] CI
- use a local copy of TPB
- [X] build with ECL. Used [[https://hub.docker.com/r/daewok/lisp-devel/][the lisp-devel]] docker
image. Result: a 52Mo executable with a runtime error.
- [X] open an url
- download the torrent file
- [X] ini config file, to parse with [[https://common-lisp.net/project/py-configparser/][py-configparser]]
- [X] add torrent to a local torrent client
- [X] add the torrent to a remote transmission client, with
[[https://github.com/libre-man/cl-transmission/][cl-transmission]]. v0.12
- [X] self-contained web app ([[https://lispcookbook.github.io/cl-cookbook/scripting.html][doc]]). POC: [[https://github.com/vindarel/cl-torrents-web][cl-torrents-web]]. - [X] interactive prompt, with completion of commands.

** Release notes

[[https://gitlab.com/vindarel/cl-torrents/tags][https://gitlab.com/vindarel/cl-torrents/tags]]

*** WIP
- added: a simple Tk GUI (search, open in browser, download with
torrent desktop client).

*** v0.12
- june, 2021: added [[https://torrent-paradise.ml][torrents-paradise]] API.

*** v0.11
- november, 2019: added connection to transmission-remote
- added rarbg scraper (needs new tests)
- june, 2019: changed the location of the lisp init file from
=~/.torrents.lisp= to =~/.config/torrents.lisp=.
- added: a =filter= command, to only display results whose title
contains a given string. It reduces the TAB-completion of ids (but
doesn’t constrain it).
- added: all functions can now TAB-complete the list of ids.
- added: scrape and display torrents’ size.
- fixed =-d= cli arg.
- added: load =~/.torrents.lisp=, create new commands from the
=torrents.user= package.
- added the ability to read an ini-like config file,
=~/.torrents.conf=. All exported variables from the =:torrent= package
can be overriden. They are written without earmuffs:
#+BEGIN_SRC lisp
:*nb-results*
:*browser*
:*torrent-client*
:*cache-p*
#+END_SRC
gives
#+BEGIN_SRC text
# ~/.torrents.conf
# those are the defaults.
[default]
nb-results = 20
browser = firefox
torrent-client = firefox
cache-p = true
#+END_SRC
See more on replic.
(all parameters need more tests)
- added missing =-o= option to download with a torrent client (transmission-gtk).
- =cl-torrents.conf= configuration file:
- choose the list of scrapers.
- =download= command (open magnet link with transmission by default).
- use the [[https://github.com/vindarel/replic/][replic]] library to build the repl, the commands and their completions.
- -> new builtin =highlight= and =unhighlight= commands,
- -> better error handling (don’t exit the repl on an error).
- fix cli usage without a keyword search, print help.

*** v0.10

- added [[https://www.torrentdownloads.me][torrentdownloads.me]] scraper.
- new parameter, =*cache-p*=: if nil, don’t use the cache.

*** v0.9

- added [[http://1337x.to][1337x.to]] scraper.
- removed piratebay.to, katcr.co, torrent.cd, they’re down :/

*** v0.8

- added a readline-based repl with some commands: =search=, =magnet=,
=open=, with their completion. See =help=. Built with [[https://github.com/mrkkrp/cl-readline][cl-readline]],
but might use [[https://github.com/vindarel/replic][replic]] anytime soon.

*** v0.7

- fix cache not created by binary
- create cache in =~/.cl-torrents/cache/=

* Dev

Clone cl-torrents in =~/quicklisp/local-projects=,

now you can =(ql:quickload :torrents)=.

We use our [[https://github.com/vindarel/replic/][replic]] library to automatically build the readline repl.

Unit tests:

: make test

End-to-end tests (checking that the websites respond and our scrapers still work):

: make test-end2end

Try the Ltk GUI: load =gui-tk.lisp= and run =(main)=.

* Resources

Don’t miss these good resources:

- http://lisp-lang.org/
- [[Https://github.com/CodyReichert/awesome-cl][Awesome-cl]]
- [[https://lispcookbook.github.io/cl-cookbook/][the Common Lisp Cookbook]]
- http://quickdocs.org/
- (my) [[https://lisp-journey.gitlab.io/][lisp-journey]]: introductory posts, lists of resources, selection
of screencasts.

** Tutorial

*update, 2021*: this tutorial is one of the first things I wrote
when discovering CL and it probably bitrot a bit. I’d recommend the
Cookbook now as I ported most of its useful content there.

Writing a little web scraper like this one is not
difficult. However, I had to spend some time to find out the right
libraries and resources. It is also not trivial at first to start
a Lisp project. So the first thing we did is write a tutorial. It
is a mix of hopefully useful stuff:

- web scraping,
- async web scraping,
- trying out things at the REPL,
- where to find documentation,
- creating and loading a project,
- basic data structures and gotchas,
- some useful libraries,
- unit tests, with mocks, running tests from the shell, continuous integration,
- parsing command line arguments, creating executables, continuous delivery,
- basics of error handling,
- ...

It will eventually tackle more topics and features (more settings,
working with a local copy of TPB…) but in the meanwhile, read

the [[https://vindarel.github.io/cl-torrents/tutorial.html][tutorial]] !

It was built with https://github.com/fniessen/org-html-themes.

** Bypassing ISP blocking

Some Internet Service Providers block access to torrent sites, as it’s
the case in France. They currently don’t block the HTTP version of
torrents-paradise, but that one works on IPFS anyways. You can bypass
them by using other DNS servers than your ISP’s.

Here’s how to do it on Ubuntu: https://doc.ubuntu-fr.org/dns (french)

You can use [[https://www.opennic.org/][OpenNIC]] addresses or again the ones of the [[https://www.fdn.fr/actions/dns/][French Data Network]] association.

* Licence

MIT.

Version

0.12.1

Dependencies
  • replic (system).
  • x.let-star (system).
  • cl-transmission (system).
  • access (system).
  • dexador (system).
  • jonathan (system).
  • plump (system).
  • str (system).
  • lparallel (system).
  • cl-ansi-text (system).
  • unix-opts (system).
  • clache (system).
  • mockingbird (system).
  • lquery (system).
  • py-configparser (system).
  • cl-readline (system).
  • parse-float (system).
  • log4cl (system).
Source

torrents.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 torrents/src

Source

torrents.asd.

Parent Component

torrents (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 torrents/torrents.asd

Source

torrents.asd.

Parent Component

torrents (system).

ASDF Systems

torrents.

Packages

torrents-asd.


4.1.2 torrents/src/utils.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

torrents.utils.

Public Interface
Internals

4.1.3 torrents/src/models.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

torrents.models.

Public Interface
Internals

torrent (class).


4.1.4 torrents/src/tpb.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

tpb.

Public Interface

torrents (function).

Internals

4.1.5 torrents/src/torrentcd.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

torrentcd.

Public Interface

torrents (function).

Internals

4.1.6 torrents/src/kat.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

kat.

Public Interface

torrents (function).

Internals

4.1.7 torrents/src/1337.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

torrents.1337.

Public Interface

torrents (function).

Internals

4.1.8 torrents/src/downloadsme.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

torrents.downloadsme.

Public Interface

torrents (function).

Internals

4.1.9 torrents/src/torrents-paradise.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

torrents.torrents-paradise.

Public Interface

torrents (function).

Internals

4.1.10 torrents/src/torrents.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages
Public Interface
Internals

4.1.11 torrents/src/commands.lisp

Source

torrents.asd.

Parent Component

src (module).

Packages

torrents.commands.

Public Interface

4.1.12 torrents/src/config.lisp

Source

torrents.asd.

Parent Component

src (module).

Internals

config-scrapers (function).


5 Packages

Packages are listed by definition order.


5.1 torrents-asd

Source

torrents.asd.

Use List
  • asdf/interface.
  • common-lisp.

5.2 torrents

Source

torrents.lisp.

Use List
Public Interface
Internals

5.3 torrents.models

Source

models.lisp.

Use List

common-lisp.

Used By List

torrents.

Public Interface
Internals

torrent (class).


5.4 torrents.user

Source

torrents.lisp.

Use List

common-lisp.


5.5 torrents.torrents-paradise

Search on torrents-paradise API.

Source

torrents-paradise.lisp.

Use List

common-lisp.

Public Interface

torrents (function).

Internals

5.6 torrents.commands

Source

commands.lisp.

Use List

common-lisp.

Public Interface

5.7 tpb

Source

tpb.lisp.

Use List

common-lisp.

Public Interface

torrents (function).

Internals

5.8 torrentcd

Source

torrentcd.lisp.

Use List

common-lisp.

Public Interface

torrents (function).

Internals

5.9 torrents.utils

Source

utils.lisp.

Use List
  • common-lisp.
  • parse-float.
Public Interface
Internals

5.10 torrents.1337

Source

1337.lisp.

Use List

common-lisp.

Public Interface

torrents (function).

Internals

5.11 kat

Source

kat.lisp.

Use List

common-lisp.

Public Interface

torrents (function).

Internals

5.12 torrents.downloadsme

Source

downloadsme.lisp.

Use List

common-lisp.

Public Interface

torrents (function).

Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *browser*

Default browser, in case $BROWSER is not set.

Package

torrents.

Source

torrents.lisp.

Special Variable: *cache-p*

If true, use the cache.

Package

torrents.

Source

torrents.lisp.

Special Variable: *details*

If true, print additional details (like the url).

Package

torrents.

Source

torrents.lisp.

Special Variable: *last-results*

Remembering the last search results.

Package

torrents.

Source

torrents.lisp.

Special Variable: *nb-results*

Maximum number of search results to display.

Package

torrents.

Source

torrents.lisp.

Special Variable: *remote-client-password*

Password to login to the remote client.

Package

torrents.

Source

torrents.lisp.

Special Variable: *remote-client-url*

Full URL to connect to our remote torrent client. Set it along with the username and password in the lisp init file, ~/.config/torrents.lisp, which is loaded at startup.

Package

torrents.

Source

torrents.lisp.

Special Variable: *remote-client-username*

Username to login to the remote client.

Package

torrents.

Source

torrents.lisp.

Special Variable: *torrent-client*

Default torrent client.

Package

torrents.

Source

torrents.lisp.


6.1.2 Macros

Macro: when-option ((options opt) &body body)
Package

torrents.utils.

Source

utils.lisp.


6.1.3 Ordinary functions

Function: async-torrents (words &key log-stream cache)

Call the scrapers in parallel and sort by seeders.

Package

torrents.

Source

torrents.lisp.

Function: browse (index)

Open firefox to this search result’s url. Use from the repl.

Package

torrents.

Source

torrents.lisp.

Function: download (index &optional soft)

Download with a torrent client.

Package

torrents.

Source

torrents.lisp.

Function: exit (&optional status)

Exit from Lisp. Return ‘status’ (0 by default).

Package

torrents.utils.

Source

utils.lisp.

Function: filter (text)

Show results that have this text in their title.
This doesn’t change the list of last results.

The nice thing is that it changes the list of ids to complete, so using any command with tab completion afterwards is more practical, specially with 1 result remaining.

Package

torrents.

Source

torrents.lisp.

Return the firts href of the page that starts with ’magnet’.

parsed: plump node.

Package

torrents.utils.

Source

utils.lisp.

Function: format-size (torrent &optional stream)

Print the size humanly, with its unit.

Package

torrents.models.

Source

models.lisp.

Function: magnet (index)

Search the magnet from last search’s ‘index”s result.

Package

torrents.

Source

torrents.lisp.

Function: magnet (index)
Package

torrents.commands.

Source

commands.lisp.

Extract the magnet link from a ‘torrent’ result.

Return the first href of the page that starts with ’magnet’.

Package

torrents.

Source

torrents.lisp.

Function: main ()

Parse command line arguments, read the config files and call the program.

Package

torrents.

Source

torrents.lisp.

Function: make-torrent (&key title href seeders leechers size source size-unit magnet-link)
Package

torrents.models.

Source

models.lisp.

Function: missing-arg (condition)
Package

torrents.utils.

Source

utils.lisp.

Function: parse-size (string)

Try to parse this string to a float.
Return two values: the size (float) and the unit (string of MB, GB). - ‘string’ looks like 703.9 MB.

Package

torrents.utils.

Source

utils.lisp.

Function: remote-download (index)

Download with a remote torrent client, if we have the credentials

Package

torrents.

Source

torrents.lisp.

Search for torrents on the different sources and print the results, sorted by number of seeders.

Package

torrents.commands.

Source

commands.lisp.

Function: search-torrents (words &key stream nb-results log-stream cache)

Search for torrents on the different sources and print the results, sorted by number of seeders.

‘words’: a string (space-separated keywords) or a list of strings.
‘nb-results’: max number of results to print.
‘log-stream’: used in tests to capture (and ignore) some output.
‘cache’: if true (the default), read from the cache.

Package

torrents.

Source

torrents.lisp.

Function: sublist (l start end)

Select a sublist when end can be superior to the size of the list. Wrapper around subseq that fails with ’bouncing indices bad error’.

Package

torrents.utils.

Source

utils.lisp.

Function: torrents (words &key stream)

Search torrents.

Package

torrents.torrents-paradise.

Source

torrents-paradise.lisp.

Function: torrents (words &key stream)

Search torrents.

Package

tpb.

Source

tpb.lisp.

Function: torrents (words &key stream)

Return a list of alists with title, href, and seeders.

Package

torrentcd.

Source

torrentcd.lisp.

Function: torrents (words &key stream)

Return a list of...

Package

torrents.1337.

Source

1337.lisp.

Function: torrents (words &key stream)

Return a list of...

Package

kat.

Source

kat.lisp.

Function: torrents (words &key stream)

Return a list of...

Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: unknown-option (condition)
Package

torrents.utils.

Source

utils.lisp.

Function: url (index)

Return the url from last search’s ‘index”s result.

Package

torrents.

Source

torrents.lisp.

Function: url (index)
Package

torrents.commands.

Source

commands.lisp.


6.1.4 Generic functions

Generic Reader: href (object)
Package

torrents.models.

Methods
Reader Method: href ((torrent torrent))

automatically generated reader method

Source

models.lisp.

Target Slot

href.

Generic Writer: (setf href) (object)
Package

torrents.models.

Methods
Writer Method: (setf href) ((torrent torrent))

automatically generated writer method

Source

models.lisp.

Target Slot

href.

Generic Reader: leechers (object)
Package

torrents.models.

Methods
Reader Method: leechers ((torrent torrent))

automatically generated reader method

Source

models.lisp.

Target Slot

leechers.

Generic Writer: (setf leechers) (object)
Package

torrents.models.

Methods
Writer Method: (setf leechers) ((torrent torrent))

automatically generated writer method

Source

models.lisp.

Target Slot

leechers.

Package

torrents.models.

Methods

automatically generated reader method

Source

models.lisp.

Target Slot

magnet-link.

Package

torrents.models.

Methods

automatically generated writer method

Source

models.lisp.

Target Slot

magnet-link.

Generic Reader: seeders (object)
Package

torrents.models.

Methods
Reader Method: seeders ((torrent torrent))

automatically generated reader method

Source

models.lisp.

Target Slot

seeders.

Generic Writer: (setf seeders) (object)
Package

torrents.models.

Methods
Writer Method: (setf seeders) ((torrent torrent))

automatically generated writer method

Source

models.lisp.

Target Slot

seeders.

Generic Reader: size (object)
Package

torrents.models.

Methods
Reader Method: size ((it torrent))

Print this torrent’s size.
If the slot is unbound (old cache results), log and return nil.

Source

models.lisp.

Target Slot

size.

Generic Writer: (setf size) (object)
Package

torrents.models.

Methods
Writer Method: (setf size) ((torrent torrent))

automatically generated writer method

Source

models.lisp.

Target Slot

size.

Generic Reader: size-unit (object)
Package

torrents.models.

Methods
Reader Method: size-unit ((it torrent))

Deal with older cache results for which the size-unit slot is unbound.

Source

models.lisp.

Target Slot

size-unit.

Generic Writer: (setf size-unit) (object)
Package

torrents.models.

Methods
Writer Method: (setf size-unit) ((torrent torrent))

automatically generated writer method

Source

models.lisp.

Target Slot

size-unit.

Generic Reader: source (object)
Package

torrents.models.

Methods
Reader Method: source ((torrent torrent))

automatically generated reader method

Source

models.lisp.

Target Slot

source.

Generic Writer: (setf source) (object)
Package

torrents.models.

Methods
Writer Method: (setf source) ((torrent torrent))

automatically generated writer method

Source

models.lisp.

Target Slot

source.

Generic Reader: title (object)
Package

torrents.models.

Methods
Reader Method: title ((torrent torrent))

automatically generated reader method

Source

models.lisp.

Target Slot

title.

Generic Writer: (setf title) (object)
Package

torrents.models.

Methods
Writer Method: (setf title) ((torrent torrent))

automatically generated writer method

Source

models.lisp.

Target Slot

title.


6.1.5 Standalone methods

Method: print-object ((it torrent) stream)
Source

models.lisp.


6.2 Internals


6.2.1 Special variables

Special Variable: *base-url*
Package

torrentcd.

Source

torrentcd.lisp.

Special Variable: *base-url*
Package

torrents.1337.

Source

1337.lisp.

Special Variable: *base-url*
Package

kat.

Source

kat.lisp.

Special Variable: *base-url*
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Special Variable: *cache-directory*

The directory where cl-torrents stores its cache.

Package

torrents.

Source

torrents.lisp.

Special Variable: *colors*

Functions to colorize text.

Package

torrents.utils.

Source

utils.lisp.

Special Variable: *commands*

List of alist tuples, a verb and its doc, for completion on the REPL.

Package

torrents.

Source

torrents.lisp.

Special Variable: *config-directory*

The directory to put configuration files.

Package

torrents.

Source

torrents.lisp.

Special Variable: *ids-completion-list*

The list of ids (index of search results) to use at the completion, when we want to filter it. They must be strings, not numbers.

Package

torrents.

Source

torrents.lisp.

Special Variable: *keywords*

List of keywords given as input by the user.

Package

torrents.

Source

torrents.lisp.

Special Variable: *keywords*

List of keywords given as input by the user.

Package

torrents.utils.

Source

utils.lisp.

Special Variable: *keywords-colors*

alist associating a keyword with a color. See ‘keyword-color-pairs’.

Package

torrents.

Source

torrents.lisp.

Special Variable: *max-results*

Max number of results to return. To not clutter our output.

Package

torrents.torrents-paradise.

Source

torrents-paradise.lisp.

Special Variable: *prefilter-selector*

Call before we extract the search results.

Package

tpb.

Source

tpb.lisp.

Special Variable: *remote-client*

The remote client we are connected to (instance of remote-client).

Package

torrents.

Source

torrents.lisp.

Special Variable: *remote-client-name*

Name of the remote client we will connect to.

Package

torrents.

Source

torrents.lisp.

Special Variable: *remote-clients-alist*

An alist that associates a remote client name (a string, taken from the user’s config file) and a function to create an instance of it.

Package

torrents.

Source

torrents.lisp.

Special Variable: *results-selector*

CSS selector to get a list of items inside the search results.

Package

torrents.1337.

Source

1337.lisp.

Special Variable: *results-selector*

CSS selector to get a list of items inside the search results.

Package

kat.

Source

kat.lisp.

Special Variable: *results-selector*

CSS selector to get a list of items inside the search results.

Package

torrents.downloadsme.

Source

downloadsme.lisp.

Special Variable: *scrapers-alist*

Alist to associate a scraper name (str, for a user config) to its symbol function to call.

Package

torrents.

Source

torrents.lisp.

Special Variable: *search-results*

List of the last search results (plump nodes) (to eas e2e tests).

Package

torrents.1337.

Source

1337.lisp.

Special Variable: *search-results*

List of the last search results (plump nodes) (to eas e2e tests).

Package

torrents.downloadsme.

Source

downloadsme.lisp.

Special Variable: *search-url*

Base search API end point. KEYWORDS to be replaced by the search terms (a string with +-separated words).

Package

torrents.torrents-paradise.

Source

torrents-paradise.lisp.

Special Variable: *search-url*

Base search url. KEYWORDS to be replaced by the search terms (a string with +-separated words).

Package

tpb.

Source

tpb.lisp.

Special Variable: *search-url*

Base url for a search. A POST request is necessary to get sorted results by seeds

Package

torrentcd.

Source

torrentcd.lisp.

Special Variable: *search-url*

Base url for a search. Sorted by seeders

Package

torrents.1337.

Source

1337.lisp.

Special Variable: *search-url*

Base url for a search. Sorted by seeders

Package

kat.

Source

kat.lisp.

Special Variable: *search-url*

Base url for a search. Sorted by seeders

Package

torrents.downloadsme.

Source

downloadsme.lisp.

Special Variable: *selectors*
Package

tpb.

Source

tpb.lisp.

Special Variable: *source*

Source short name for human presentation.

Package

torrents.1337.

Source

1337.lisp.

Special Variable: *source*

Source short name for human presentation.

Package

torrents.downloadsme.

Source

downloadsme.lisp.

Special Variable: *source-name*

Human readable name of this source.

Package

torrents.torrents-paradise.

Source

torrents-paradise.lisp.

Special Variable: *source-name-short*

Short name to display data, for example in a 80-chars width window.

Package

torrents.torrents-paradise.

Source

torrents-paradise.lisp.

Special Variable: *store*

Cache. The directory must exist.

Package

torrents.

Source

torrents.lisp.

Special Variable: *torrent-clients-list*

List of available torrent clients, along with the optional command line options.

Package

torrents.

Source

torrents.lisp.

Special Variable: *torrents-list*

List of scraper functions to call. Modified after reading the user’s conf files.

Package

torrents.

Source

torrents.lisp.

Special Variable: *verbs*

List of verbs for completion. Strings.

Package

torrents.

Source

torrents.lisp.

Special Variable: *version*
Package

torrents.

Source

torrents.lisp.


6.2.2 Ordinary functions

Function: arg-parser-failed (condition)
Package

torrents.utils.

Source

utils.lisp.

Function: assoc-value (alist key &key test)
Package

torrents.

Source

torrents.lisp.

Function: browse-elt (index)
Package

torrents.

Source

torrents.lisp.

Function: colorize-all-keywords (title kw-color)

Colorize all the user’s search keywords in the given title. ‘kw-color’: list of pairs with a keyword and a color (function).

Package

torrents.utils.

Source

utils.lisp.

Function: colorize-keyword-in-string (title keyword color-f)

Colorize the given keyword in the title.
Keep the letters’ possible mixed up or down case. ‘color-f’: color function (cl-ansi-text).

Package

torrents.utils.

Source

utils.lisp.

Function: common-prefix (items)

Find the common prefix between strings.

Uses the built-in ‘mismatch’, that returns the position at which the strings fail to match.

Example: ‘(str:common-prefix ’("foobar" "foozz"))‘ => "foo"

- items: list of strings
- Return: a string.

Package

torrents.

Source

torrents.lisp.

Function: config-scrapers ()

Filter the global ‘*scrapers-alist*‘ with the ‘scrapers‘ parameter in config. Return the list of torrent functions to search with.

Package

torrents.

Source

config.lisp.

Function: create-remote-client ()
Package

torrents.

Source

torrents.lisp.

Function: custom-complete (text start end)

Complete a symbol when the cursor is at the beginning of the prompt.

Package

torrents.

Source

torrents.lisp.

Function: display-results (&key results stream nb-results details)

Results: list of plump nodes. We want to print a numbered list with the needed information (torrent title, the number of seeders,... Print at most *nb-results*.

Package

torrents.

Source

torrents.lisp.

Function: ensure-cache ()
Package

torrents.

Source

torrents.lisp.

Function: ensure-cache-and-store ()
Package

torrents.

Source

torrents.lisp.

Function: get-cached-results (terms &key store)
Package

torrents.

Source

torrents.lisp.

From this ID, construct the magnet link.

Package

torrents.torrents-paradise.

Source

torrents-paradise.lisp.

Function: join-for-query (entry)

From a string (space-separated words), return a +-separated string.

Package

torrents.utils.

Source

utils.lisp.

Function: keyword-color-pairs (&optional keywords)

Associate each keyword with a different color and return a list of pairs.

Package

torrents.utils.

Source

utils.lisp.

Package

torrents.

Source

torrents.lisp.

Function: looks-like-url-p (s)
Package

torrents.

Source

torrents.lisp.

Function: next-color ()

At each call, return the next color of the list -and start over. Uses *colors*.

Package

torrents.utils.

Source

utils.lisp.

Function: parse (html)
Package

torrentcd.

Source

torrentcd.lisp.

Function: parse (html)
Package

torrents.1337.

Source

1337.lisp.

Function: parse (html)
Package

kat.

Source

kat.lisp.

Function: parse (html)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: process-options ()

Post-process options that need it.
Here, get and set the scrapers list (they are read as a simple string). Reading and setting options was done with replic.config:apply-config.

Package

torrents.

Source

torrents.lisp.

Function: query (parsed)
Package

torrentcd.

Source

torrentcd.lisp.

Function: query (parsed)
Package

torrents.1337.

Source

1337.lisp.

Function: query (parsed)
Package

kat.

Source

kat.lisp.

Function: query (parsed)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: request (url)

Wrapper around dex:get. Fetch an url.

Package

torrents.torrents-paradise.

Source

torrents-paradise.lisp.

Function: request (url)

Wrapper around dex:get. Fetch an url.

Package

tpb.

Source

tpb.lisp.

Function: request (search &optional url)

Request to torrent.cd. POST request in order to get results sorted by seeders.

Package

torrentcd.

Source

torrentcd.lisp.

Function: request (url)
Package

torrents.1337.

Source

1337.lisp.

Function: request (url)
Package

kat.

Source

kat.lisp.

Function: request (url)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: request-details (url)

Get the html page of the given url. Mocked in unit tests.

Package

torrents.

Source

torrents.lisp.

Function: reset-color ()
Package

torrents.utils.

Source

utils.lisp.

Function: result-href (node)
Package

tpb.

Source

tpb.lisp.

Function: result-href (node)
Package

torrentcd.

Source

torrentcd.lisp.

Function: result-href (node)
Package

torrents.1337.

Source

1337.lisp.

Function: result-href (node)
Package

kat.

Source

kat.lisp.

Function: result-href (node)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: result-leechers (node)
Package

tpb.

Source

tpb.lisp.

Function: result-leechers (node)
Package

torrentcd.

Source

torrentcd.lisp.

Function: result-leechers (node)
Package

torrents.1337.

Source

1337.lisp.

Function: result-leechers (node)
Package

kat.

Source

kat.lisp.

Function: result-leechers (node)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: result-peers (node)
Package

tpb.

Source

tpb.lisp.

Function: result-peers-or-leechers (node index)

Return the number of peers (int) of a search result (node: a plump node). index 0 => peers, index 1 => leechers.

Package

tpb.

Source

tpb.lisp.

Function: result-seeders (node)
Package

torrentcd.

Source

torrentcd.lisp.

Function: result-seeders (node)
Package

torrents.1337.

Source

1337.lisp.

Function: result-seeders (node)
Package

kat.

Source

kat.lisp.

Function: result-seeders (node)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: result-size (node)
Package

torrents.1337.

Source

1337.lisp.

Function: result-size (node)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: result-title (node)

Return the title of a search result.

Package

tpb.

Source

tpb.lisp.

Function: result-title (node)
Package

torrentcd.

Source

torrentcd.lisp.

Function: result-title (node)
Package

torrents.1337.

Source

1337.lisp.

Function: result-title (node)
Package

kat.

Source

kat.lisp.

Function: result-title (node)
Package

torrents.downloadsme.

Source

downloadsme.lisp.

Function: save-results (terms val &key store)

Save results in cache.

Package

torrents.

Source

torrents.lisp.

Function: select-completions (text list)

Select all verbs from ‘list’ that start with ‘text’.

Package

torrents.

Source

torrents.lisp.


6.2.3 Generic functions

Generic Reader: instance (object)
Generic Writer: (setf instance) (object)
Package

torrents.

Methods
Reader Method: instance ((remote-client remote-client))
Writer Method: (setf instance) ((remote-client remote-client))

Here comes the real object of the remote client.

Source

torrents.lisp.

Target Slot

instance.

Generic Reader: name (object)
Generic Writer: (setf name) (object)
Package

torrents.

Methods
Reader Method: name ((remote-client remote-client))
Writer Method: (setf name) ((remote-client remote-client))

The name isn’t very important.

Source

torrents.lisp.

Target Slot

name.

Generic Function: remote-client-add (client magnet/file)
Package

torrents.

Methods
Method: remote-client-add ((client remote-client) magnet/file)
Source

torrents.lisp.

Generic Function: remote-client-connect (client)
Package

torrents.

Methods
Method: remote-client-connect ((client remote-client))
Source

torrents.lisp.


6.2.4 Classes

Class: remote-client
Package

torrents.

Source

torrents.lisp.

Direct methods
Direct slots
Slot: name

The name isn’t very important.

Type

string

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: instance

Here comes the real object of the remote client.

Initargs

:instance

Readers

instance.

Writers

(setf instance).

Class: torrent
Package

torrents.models.

Source

models.lisp.

Direct methods
Direct slots
Slot: title
Initform

""

Initargs

:title

Readers

title.

Writers

(setf title).

Slot: href
Initform

""

Initargs

:href

Readers

href.

Writers

(setf href).

Slot: seeders
Initargs

:seeders

Readers

seeders.

Writers

(setf seeders).

Slot: leechers
Initargs

:leechers

Readers

leechers.

Writers

(setf leechers).

Slot: size
Initargs

:size

Readers

size.

Writers

(setf size).

Slot: size-unit
Initargs

:size-unit

Readers

size-unit.

Writers

(setf size-unit).

Initargs

:magnet-link

Readers

magnet-link.

Writers

(setf magnet-link).

Slot: source
Initargs

:source

Readers

source.

Writers

(setf source).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   J   K   L   M   N   P   Q   R   S   T   U   W  
Index Entry  Section

(
(setf href): Public generic functions
(setf href): Public generic functions
(setf instance): Private generic functions
(setf instance): Private generic functions
(setf leechers): Public generic functions
(setf leechers): Public generic functions
(setf magnet-link): Public generic functions
(setf magnet-link): Public generic functions
(setf name): Private generic functions
(setf name): Private generic functions
(setf seeders): Public generic functions
(setf seeders): Public generic functions
(setf size): Public generic functions
(setf size): Public generic functions
(setf size-unit): Public generic functions
(setf size-unit): Public generic functions
(setf source): Public generic functions
(setf source): Public generic functions
(setf title): Public generic functions
(setf title): Public generic functions

A
arg-parser-failed: Private ordinary functions
assoc-value: Private ordinary functions
async-torrents: Public ordinary functions

B
browse: Public ordinary functions
browse-elt: Private ordinary functions

C
colorize-all-keywords: Private ordinary functions
colorize-keyword-in-string: Private ordinary functions
common-prefix: Private ordinary functions
config-scrapers: Private ordinary functions
create-remote-client: Private ordinary functions
custom-complete: Private ordinary functions

D
display-results: Private ordinary functions
download: Public ordinary functions

E
ensure-cache: Private ordinary functions
ensure-cache-and-store: Private ordinary functions
exit: Public ordinary functions

F
filter: Public ordinary functions
find-magnet-link: Public ordinary functions
format-size: Public ordinary functions
Function, arg-parser-failed: Private ordinary functions
Function, assoc-value: Private ordinary functions
Function, async-torrents: Public ordinary functions
Function, browse: Public ordinary functions
Function, browse-elt: Private ordinary functions
Function, colorize-all-keywords: Private ordinary functions
Function, colorize-keyword-in-string: Private ordinary functions
Function, common-prefix: Private ordinary functions
Function, config-scrapers: Private ordinary functions
Function, create-remote-client: Private ordinary functions
Function, custom-complete: Private ordinary functions
Function, display-results: Private ordinary functions
Function, download: Public ordinary functions
Function, ensure-cache: Private ordinary functions
Function, ensure-cache-and-store: Private ordinary functions
Function, exit: Public ordinary functions
Function, filter: Public ordinary functions
Function, find-magnet-link: Public ordinary functions
Function, format-size: Public ordinary functions
Function, get-cached-results: Private ordinary functions
Function, get-magnet-link: Private ordinary functions
Function, join-for-query: Private ordinary functions
Function, keyword-color-pairs: Private ordinary functions
Function, looks-like-magnet-link-p: Private ordinary functions
Function, looks-like-url-p: Private ordinary functions
Function, magnet: Public ordinary functions
Function, magnet: Public ordinary functions
Function, magnet-link-from: Public ordinary functions
Function, main: Public ordinary functions
Function, make-torrent: Public ordinary functions
Function, missing-arg: Public ordinary functions
Function, next-color: Private ordinary functions
Function, parse: Private ordinary functions
Function, parse: Private ordinary functions
Function, parse: Private ordinary functions
Function, parse: Private ordinary functions
Function, parse-size: Public ordinary functions
Function, process-options: Private ordinary functions
Function, query: Private ordinary functions
Function, query: Private ordinary functions
Function, query: Private ordinary functions
Function, query: Private ordinary functions
Function, remote-download: Public ordinary functions
Function, request: Private ordinary functions
Function, request: Private ordinary functions
Function, request: Private ordinary functions
Function, request: Private ordinary functions
Function, request: Private ordinary functions
Function, request: Private ordinary functions
Function, request-details: Private ordinary functions
Function, reset-color: Private ordinary functions
Function, result-href: Private ordinary functions
Function, result-href: Private ordinary functions
Function, result-href: Private ordinary functions
Function, result-href: Private ordinary functions
Function, result-href: Private ordinary functions
Function, result-leechers: Private ordinary functions
Function, result-leechers: Private ordinary functions
Function, result-leechers: Private ordinary functions
Function, result-leechers: Private ordinary functions
Function, result-leechers: Private ordinary functions
Function, result-peers: Private ordinary functions
Function, result-peers-or-leechers: Private ordinary functions
Function, result-seeders: Private ordinary functions
Function, result-seeders: Private ordinary functions
Function, result-seeders: Private ordinary functions
Function, result-seeders: Private ordinary functions
Function, result-size: Private ordinary functions
Function, result-size: Private ordinary functions
Function, result-title: Private ordinary functions
Function, result-title: Private ordinary functions
Function, result-title: Private ordinary functions
Function, result-title: Private ordinary functions
Function, result-title: Private ordinary functions
Function, save-results: Private ordinary functions
Function, search: Public ordinary functions
Function, search-torrents: Public ordinary functions
Function, select-completions: Private ordinary functions
Function, sublist: Public ordinary functions
Function, torrents: Public ordinary functions
Function, torrents: Public ordinary functions
Function, torrents: Public ordinary functions
Function, torrents: Public ordinary functions
Function, torrents: Public ordinary functions
Function, torrents: Public ordinary functions
Function, unknown-option: Public ordinary functions
Function, url: Public ordinary functions
Function, url: Public ordinary functions

G
Generic Function, (setf href): Public generic functions
Generic Function, (setf instance): Private generic functions
Generic Function, (setf leechers): Public generic functions
Generic Function, (setf magnet-link): Public generic functions
Generic Function, (setf name): Private generic functions
Generic Function, (setf seeders): Public generic functions
Generic Function, (setf size): Public generic functions
Generic Function, (setf size-unit): Public generic functions
Generic Function, (setf source): Public generic functions
Generic Function, (setf title): Public generic functions
Generic Function, href: Public generic functions
Generic Function, instance: Private generic functions
Generic Function, leechers: Public generic functions
Generic Function, magnet-link: Public generic functions
Generic Function, name: Private generic functions
Generic Function, remote-client-add: Private generic functions
Generic Function, remote-client-connect: Private generic functions
Generic Function, seeders: Public generic functions
Generic Function, size: Public generic functions
Generic Function, size-unit: Public generic functions
Generic Function, source: Public generic functions
Generic Function, title: Public generic functions
get-cached-results: Private ordinary functions
get-magnet-link: Private ordinary functions

H
href: Public generic functions
href: Public generic functions

I
instance: Private generic functions
instance: Private generic functions

J
join-for-query: Private ordinary functions

K
keyword-color-pairs: Private ordinary functions

L
leechers: Public generic functions
leechers: Public generic functions
looks-like-magnet-link-p: Private ordinary functions
looks-like-url-p: Private ordinary functions

M
Macro, when-option: Public macros
magnet: Public ordinary functions
magnet: Public ordinary functions
magnet-link: Public generic functions
magnet-link: Public generic functions
magnet-link-from: Public ordinary functions
main: Public ordinary functions
make-torrent: Public ordinary functions
Method, (setf href): Public generic functions
Method, (setf instance): Private generic functions
Method, (setf leechers): Public generic functions
Method, (setf magnet-link): Public generic functions
Method, (setf name): Private generic functions
Method, (setf seeders): Public generic functions
Method, (setf size): Public generic functions
Method, (setf size-unit): Public generic functions
Method, (setf source): Public generic functions
Method, (setf title): Public generic functions
Method, href: Public generic functions
Method, instance: Private generic functions
Method, leechers: Public generic functions
Method, magnet-link: Public generic functions
Method, name: Private generic functions
Method, print-object: Public standalone methods
Method, remote-client-add: Private generic functions
Method, remote-client-connect: Private generic functions
Method, seeders: Public generic functions
Method, size: Public generic functions
Method, size-unit: Public generic functions
Method, source: Public generic functions
Method, title: Public generic functions
missing-arg: Public ordinary functions

N
name: Private generic functions
name: Private generic functions
next-color: Private ordinary functions

P
parse: Private ordinary functions
parse: Private ordinary functions
parse: Private ordinary functions
parse: Private ordinary functions
parse-size: Public ordinary functions
print-object: Public standalone methods
process-options: Private ordinary functions

Q
query: Private ordinary functions
query: Private ordinary functions
query: Private ordinary functions
query: Private ordinary functions

R
remote-client-add: Private generic functions
remote-client-add: Private generic functions
remote-client-connect: Private generic functions
remote-client-connect: Private generic functions
remote-download: Public ordinary functions
request: Private ordinary functions
request: Private ordinary functions
request: Private ordinary functions
request: Private ordinary functions
request: Private ordinary functions
request: Private ordinary functions
request-details: Private ordinary functions
reset-color: Private ordinary functions
result-href: Private ordinary functions
result-href: Private ordinary functions
result-href: Private ordinary functions
result-href: Private ordinary functions
result-href: Private ordinary functions
result-leechers: Private ordinary functions
result-leechers: Private ordinary functions
result-leechers: Private ordinary functions
result-leechers: Private ordinary functions
result-leechers: Private ordinary functions
result-peers: Private ordinary functions
result-peers-or-leechers: Private ordinary functions
result-seeders: Private ordinary functions
result-seeders: Private ordinary functions
result-seeders: Private ordinary functions
result-seeders: Private ordinary functions
result-size: Private ordinary functions
result-size: Private ordinary functions
result-title: Private ordinary functions
result-title: Private ordinary functions
result-title: Private ordinary functions
result-title: Private ordinary functions
result-title: Private ordinary functions

S
save-results: Private ordinary functions
search: Public ordinary functions
search-torrents: Public ordinary functions
seeders: Public generic functions
seeders: Public generic functions
select-completions: Private ordinary functions
size: Public generic functions
size: Public generic functions
size-unit: Public generic functions
size-unit: Public generic functions
source: Public generic functions
source: Public generic functions
sublist: Public ordinary functions

T
title: Public generic functions
title: Public generic functions
torrents: Public ordinary functions
torrents: Public ordinary functions
torrents: Public ordinary functions
torrents: Public ordinary functions
torrents: Public ordinary functions
torrents: Public ordinary functions

U
unknown-option: Public ordinary functions
url: Public ordinary functions
url: Public ordinary functions

W
when-option: Public macros


A.3 Variables

Jump to:   *  
H   I   L   M   N   S   T  
Index Entry  Section

*
*base-url*: Private special variables
*base-url*: Private special variables
*base-url*: Private special variables
*base-url*: Private special variables
*browser*: Public special variables
*cache-directory*: Private special variables
*cache-p*: Public special variables
*colors*: Private special variables
*commands*: Private special variables
*config-directory*: Private special variables
*details*: Public special variables
*ids-completion-list*: Private special variables
*keywords*: Private special variables
*keywords*: Private special variables
*keywords-colors*: Private special variables
*last-results*: Public special variables
*max-results*: Private special variables
*nb-results*: Public special variables
*prefilter-selector*: Private special variables
*remote-client*: Private special variables
*remote-client-name*: Private special variables
*remote-client-password*: Public special variables
*remote-client-url*: Public special variables
*remote-client-username*: Public special variables
*remote-clients-alist*: Private special variables
*results-selector*: Private special variables
*results-selector*: Private special variables
*results-selector*: Private special variables
*scrapers-alist*: Private special variables
*search-results*: Private special variables
*search-results*: Private special variables
*search-url*: Private special variables
*search-url*: Private special variables
*search-url*: Private special variables
*search-url*: Private special variables
*search-url*: Private special variables
*search-url*: Private special variables
*selectors*: Private special variables
*source*: Private special variables
*source*: Private special variables
*source-name*: Private special variables
*source-name-short*: Private special variables
*store*: Private special variables
*torrent-client*: Public special variables
*torrent-clients-list*: Private special variables
*torrents-list*: Private special variables
*verbs*: Private special variables
*version*: Private special variables

H
href: Private classes

I
instance: Private classes

L
leechers: Private classes

M
magnet-link: Private classes

N
name: Private classes

S
seeders: Private classes
size: Private classes
size-unit: Private classes
Slot, href: Private classes
Slot, instance: Private classes
Slot, leechers: Private classes
Slot, magnet-link: Private classes
Slot, name: Private classes
Slot, seeders: Private classes
Slot, size: Private classes
Slot, size-unit: Private classes
Slot, source: Private classes
Slot, title: Private classes
source: Private classes
Special Variable, *base-url*: Private special variables
Special Variable, *base-url*: Private special variables
Special Variable, *base-url*: Private special variables
Special Variable, *base-url*: Private special variables
Special Variable, *browser*: Public special variables
Special Variable, *cache-directory*: Private special variables
Special Variable, *cache-p*: Public special variables
Special Variable, *colors*: Private special variables
Special Variable, *commands*: Private special variables
Special Variable, *config-directory*: Private special variables
Special Variable, *details*: Public special variables
Special Variable, *ids-completion-list*: Private special variables
Special Variable, *keywords*: Private special variables
Special Variable, *keywords*: Private special variables
Special Variable, *keywords-colors*: Private special variables
Special Variable, *last-results*: Public special variables
Special Variable, *max-results*: Private special variables
Special Variable, *nb-results*: Public special variables
Special Variable, *prefilter-selector*: Private special variables
Special Variable, *remote-client*: Private special variables
Special Variable, *remote-client-name*: Private special variables
Special Variable, *remote-client-password*: Public special variables
Special Variable, *remote-client-url*: Public special variables
Special Variable, *remote-client-username*: Public special variables
Special Variable, *remote-clients-alist*: Private special variables
Special Variable, *results-selector*: Private special variables
Special Variable, *results-selector*: Private special variables
Special Variable, *results-selector*: Private special variables
Special Variable, *scrapers-alist*: Private special variables
Special Variable, *search-results*: Private special variables
Special Variable, *search-results*: Private special variables
Special Variable, *search-url*: Private special variables
Special Variable, *search-url*: Private special variables
Special Variable, *search-url*: Private special variables
Special Variable, *search-url*: Private special variables
Special Variable, *search-url*: Private special variables
Special Variable, *search-url*: Private special variables
Special Variable, *selectors*: Private special variables
Special Variable, *source*: Private special variables
Special Variable, *source*: Private special variables
Special Variable, *source-name*: Private special variables
Special Variable, *source-name-short*: Private special variables
Special Variable, *store*: Private special variables
Special Variable, *torrent-client*: Public special variables
Special Variable, *torrent-clients-list*: Private special variables
Special Variable, *torrents-list*: Private special variables
Special Variable, *verbs*: Private special variables
Special Variable, *version*: Private special variables

T
title: Private classes


A.4 Data types

Jump to:   1  
C   D   F   K   M   P   R   S   T   U  
Index Entry  Section

1
1337.lisp: The torrents/src/1337․lisp file

C
Class, remote-client: Private classes
Class, torrent: Private classes
commands.lisp: The torrents/src/commands․lisp file
config.lisp: The torrents/src/config․lisp file

D
downloadsme.lisp: The torrents/src/downloadsme․lisp file

F
File, 1337.lisp: The torrents/src/1337․lisp file
File, commands.lisp: The torrents/src/commands․lisp file
File, config.lisp: The torrents/src/config․lisp file
File, downloadsme.lisp: The torrents/src/downloadsme․lisp file
File, kat.lisp: The torrents/src/kat․lisp file
File, models.lisp: The torrents/src/models․lisp file
File, torrentcd.lisp: The torrents/src/torrentcd․lisp file
File, torrents-paradise.lisp: The torrents/src/torrents-paradise․lisp file
File, torrents.asd: The torrents/torrents․asd file
File, torrents.lisp: The torrents/src/torrents․lisp file
File, tpb.lisp: The torrents/src/tpb․lisp file
File, utils.lisp: The torrents/src/utils․lisp file

K
kat: The kat package
kat.lisp: The torrents/src/kat․lisp file

M
models.lisp: The torrents/src/models․lisp file
Module, src: The torrents/src module

P
Package, kat: The kat package
Package, torrentcd: The torrentcd package
Package, torrents: The torrents package
Package, torrents-asd: The torrents-asd package
Package, torrents.1337: The torrents․1337 package
Package, torrents.commands: The torrents․commands package
Package, torrents.downloadsme: The torrents․downloadsme package
Package, torrents.models: The torrents․models package
Package, torrents.torrents-paradise: The torrents․torrents-paradise package
Package, torrents.user: The torrents․user package
Package, torrents.utils: The torrents․utils package
Package, tpb: The tpb package

R
remote-client: Private classes

S
src: The torrents/src module
System, torrents: The torrents system

T
torrent: Private classes
torrentcd: The torrentcd package
torrentcd.lisp: The torrents/src/torrentcd․lisp file
torrents: The torrents system
torrents: The torrents package
torrents-asd: The torrents-asd package
torrents-paradise.lisp: The torrents/src/torrents-paradise․lisp file
torrents.1337: The torrents․1337 package
torrents.asd: The torrents/torrents․asd file
torrents.commands: The torrents․commands package
torrents.downloadsme: The torrents․downloadsme package
torrents.lisp: The torrents/src/torrents․lisp file
torrents.models: The torrents․models package
torrents.torrents-paradise: The torrents․torrents-paradise package
torrents.user: The torrents․user package
torrents.utils: The torrents․utils package
tpb: The tpb package
tpb.lisp: The torrents/src/tpb․lisp file

U
utils.lisp: The torrents/src/utils․lisp file