The torrents Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The torrents Reference Manual

This is the torrents Reference Manual, version 0.12, generated automatically by Declt version 2.4 patchlevel 1 "Will Decker" on Mon Apr 08 13:39:17 2019 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

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

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

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

* cl-torrents

  This is  a little  tool for  the *lisp REPL*  or the  *command line*
  (also with  a readline *interactive  prompt*) to search  for torrents  and get
  magnet links.

/update feb, 2019/: a little *GUI* is in the works.

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

** Installation

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

   The Lisp lib  is not  distributed with  Quicklisp (or Roswell) (yet?).  Clone this  repo
   where Quicklisp can find it:

: git clone git@github.com:vindarel/cl-torrents.git ~/quicklisp/local-projects/

Clone its dependency, [[https://github.com/vindarel/replic/][replic]], a  library that helps build the readline
interface:

: git clone https://github.com/vindarel/replic.git ~/quicklisp/local-projects/

and install it:

: (ql:quickload "torrents")

To build the executable:

: make build

Search:

: (torrents:search-torrents "matrix")

_Troubleshooting_

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/=.

*** 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: 

(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 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:

*** 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 =, where /i/ is a result index, - =open= or =firefox =: open the given torrent page in a web browser - =download =: open a magnet link with a torrent client (transmission-gtk by default) - =highlight= (and =unhighlight=): highlight the given words in yellow, for this session. - =url = - =nb-results= =n= to set the number of results to print to /n/ - =details=: toggle the display of details - =quit= (or =C-c=) 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. #+html:

*** 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. 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. You can copy the example below in =~/.torrents.lisp= and re-run =torrents -i= to try that 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 ** Tutorial 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 this tutorial 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. ** Ideas, todos - [X] cache (on files) v0.3 - [X] CI - local copy of TPB - more command line options (specially verbosity) - [X] =-i= print url - [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 - add the torrent to a remote transmission client, with [[https://github.com/libre-man/cl-transmission/][cl-transmission]]. - self-contained web app ([[https://lispcookbook.github.io/cl-cookbook/scripting.html][doc]]),... - [X] interactive prompt, with completion of commands. ** Release notes [[https://gitlab.com/vindarel/cl-torrents/tags][https://gitlab.com/vindarel/cl-torrents/tags]] *** dev (upcoming v0.11) - 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 We use our [[https://github.com/vindarel/replic/][replic]] library to automatically build the readline repl: : git clone https://github.com/vindarel/replic/ ~/quicklisp/local-projects/ Clone also cl-torrents in =~/quicklisp/local-projects=, now you can =(ql:quickload :torrents)=. Unit tests: : make test End-to-end tests (checking that the websites respond and our scrapers still work): : make test-end2end * 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. * Setting up a Common Lisp environment The easiest solution of all is to try [[https://portacle.github.io/][Portacle]], a portable and multiplatform CL environment shipping: Emacs25 and Slime (slightly customized), SBCL, Quicklisp and Git. Emacs isn't the only editor though, see [[https://lispcookbook.github.io/cl-cookbook/editor-support.html][https://lispcookbook.github.io/cl-cookbook/editor-support.html]] for Vim plugins, to discover Lem (ncurses and Electron frontends), Atom-Slime, notebooks and the ipython-like [[https://github.com/koji-kojiro/cl-repl][cl-repl]]. Anyway: : apt install sbcl and install Quicklisp (two commands) and Slime for Emacs (in MELPA, with package.el). See [[https://lispcookbook.github.io/cl-cookbook/getting-started.html][https://lispcookbook.github.io/cl-cookbook/getting-started.html]].

Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 torrents

Author

vindarel

License

MIT

Description
Long Description

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

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

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

* cl-torrents

This is a little tool for the *lisp REPL* or the *command line*
(also with a readline *interactive prompt*) to search for torrents and get
magnet links.

/update feb, 2019/: a little *GUI* is in the works.

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

** Installation

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

The Lisp lib is not distributed with Quicklisp (or Roswell) (yet?). Clone this repo
where Quicklisp can find it:

: git clone git@github.com:vindarel/cl-torrents.git ~/quicklisp/local-projects/

Clone its dependency, [[https://github.com/vindarel/replic/][replic]], a library that helps build the readline
interface:

: git clone https://github.com/vindarel/replic.git ~/quicklisp/local-projects/

and install it:

: (ql:quickload "torrents")

To build the executable:

: make build

Search:

: (torrents:search-torrents "matrix")

_Troubleshooting_

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/=.

*** 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="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

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=’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)
- =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=)

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.

#+html: <p align=’center’><img src=’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.

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.

You can copy the example below in =~/.torrents.lisp= and re-run
=torrents -i= to try that 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

** Tutorial

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 this tutorial 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.

** Ideas, todos

- [X] cache (on files) v0.3
- [X] CI
- local copy of TPB
- more command line options (specially verbosity)
- [X] =-i= print url
- [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
- add the torrent to a remote transmission client, with [[https://github.com/libre-man/cl-transmission/][cl-transmission]].
- self-contained web app ([[https://lispcookbook.github.io/cl-cookbook/scripting.html][doc]]),...
- [X] interactive prompt, with completion of commands.

** Release notes

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

*** dev (upcoming v0.11)

- 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

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

: git clone https://github.com/vindarel/replic/ ~/quicklisp/local-projects/

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

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

Unit tests:

: make test

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

: make test-end2end

* 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.

* Setting up a Common Lisp environment

The easiest solution of all is to try [[https://portacle.github.io/][Portacle]], a portable and
multiplatform CL environment shipping: Emacs25 and Slime (slightly
customized), SBCL, Quicklisp and Git.

Emacs isn’t the only editor though, see [[https://lispcookbook.github.io/cl-cookbook/editor-support.html][https://lispcookbook.github.io/cl-cookbook/editor-support.html]] for Vim plugins, to discover Lem (ncurses and Electron frontends), Atom-Slime, notebooks
and the ipython-like [[https://github.com/koji-kojiro/cl-repl][cl-repl]].

Anyway:

: apt install sbcl

and install Quicklisp (two commands) and Slime for Emacs (in MELPA,
with package.el). See [[https://lispcookbook.github.io/cl-cookbook/getting-started.html][https://lispcookbook.github.io/cl-cookbook/getting-started.html]].

Version

0.12

Dependencies
  • replic
  • dexador
  • plump
  • str
  • lparallel
  • cl-ansi-text
  • unix-opts
  • clache
  • mockingbird
  • lquery
  • py-configparser
  • cl-readline
  • log4cl
Source

torrents.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

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


Previous: , Up: Modules   [Contents][Index]

3.1 torrents/src

Parent

torrents (system)

Location

src/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

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


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


4.1.1 torrents.asd

Location

torrents.asd

Systems

torrents (system)

Packages

torrents-asd


4.1.2 torrents/src/utils.lisp

Parent

src (module)

Location

src/utils.lisp

Packages

torrents.utils

Exported Definitions
Internal Definitions

4.1.3 torrents/src/models.lisp

Parent

src (module)

Location

src/models.lisp

Packages

torrents.models

Exported Definitions
Internal Definitions

torrent (class)


4.1.4 torrents/src/tpb.lisp

Parent

src (module)

Location

src/tpb.lisp

Packages

tpb

Exported Definitions

torrents (function)

Internal Definitions

4.1.5 torrents/src/torrentcd.lisp

Parent

src (module)

Location

src/torrentcd.lisp

Packages

torrentcd

Exported Definitions

torrents (function)

Internal Definitions

4.1.6 torrents/src/kat.lisp

Parent

src (module)

Location

src/kat.lisp

Packages

kat

Exported Definitions

torrents (function)

Internal Definitions

4.1.7 torrents/src/1337.lisp

Parent

src (module)

Location

src/1337.lisp

Packages

torrents.1337

Exported Definitions

torrents (function)

Internal Definitions

4.1.8 torrents/src/downloadsme.lisp

Parent

src (module)

Location

src/downloadsme.lisp

Packages

torrents.downloadsme

Exported Definitions

torrents (function)

Internal Definitions

4.1.9 torrents/src/torrents.lisp

Parent

src (module)

Location

src/torrents.lisp

Packages
Exported Definitions
Internal Definitions

4.1.10 torrents/src/commands.lisp

Parent

src (module)

Location

src/commands.lisp

Packages

torrents.commands

Exported Definitions

4.1.11 torrents/src/config.lisp

Parent

src (module)

Location

src/config.lisp

Internal Definitions

config-scrapers (function)


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


5.1 torrents-asd

Source

torrents.asd

Use List
  • asdf/interface
  • common-lisp

5.2 torrents.utils

Source

utils.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

5.3 torrents.models

Source

models.lisp (file)

Use List

common-lisp

Used By List

torrents

Exported Definitions
Internal Definitions

torrent (class)


5.4 tpb

Source

tpb.lisp (file)

Use List

common-lisp

Exported Definitions

torrents (function)

Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.5 torrentcd

Source

torrentcd.lisp (file)

Use List

common-lisp

Exported Definitions

torrents (function)

Internal Definitions

5.6 kat

Source

kat.lisp (file)

Use List

common-lisp

Exported Definitions

torrents (function)

Internal Definitions

5.7 torrents.1337

Source

1337.lisp (file)

Use List

common-lisp

Exported Definitions

torrents (function)

Internal Definitions

5.8 torrents.downloadsme

Source

downloadsme.lisp (file)

Use List

common-lisp

Exported Definitions

torrents (function)

Internal Definitions

5.9 torrents.user

Source

torrents.lisp (file)

Use List

common-lisp


5.10 torrents

Source

torrents.lisp (file)

Use List
Exported Definitions
Internal Definitions

5.11 torrents.commands

Source

commands.lisp (file)

Use List

common-lisp

Exported Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

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


6.1 Exported definitions


6.1.1 Special variables

Special Variable: *browser*

Default browser, in case $BROWSER is not set.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *cache-p*

If true, use the cache.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *last-search*

Remembering the last search.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *nb-results*

Maximum number of search results to display.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *torrent-client*

Default torrent client.

Package

torrents

Source

torrents.lisp (file)


6.1.2 Macros

Macro: when-option (OPTIONS OPT) &body BODY
Package

torrents.utils

Source

utils.lisp (file)


6.1.3 Functions

Function: async-torrents WORDS &key LOG-STREAM

Call the scrapers in parallel and sort by seeders.

Package

torrents

Source

torrents.lisp (file)

Function: browse INDEX

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

Package

torrents

Source

torrents.lisp (file)

Function: download INDEX &optional SOFT

Download with a torrent client.

Package

torrents

Source

torrents.lisp (file)

Function: exit &optional STATUS

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

Package

torrents.utils

Source

utils.lisp (file)

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

parsed: plump node.

Package

torrents.utils

Source

utils.lisp (file)

Function: magnet INDEX

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

Package

torrents

Source

torrents.lisp (file)

Function: magnet INDEX
Package

torrents.commands

Source

commands.lisp (file)

Extract the magnet link from a ‘torrent’ result.

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

Package

torrents

Source

torrents.lisp (file)

Function: main ()

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

Package

torrents

Source

torrents.lisp (file)

Function: make-torrent &key TITLE HREF SEEDERS LEECHERS SOURCE
Package

torrents.models

Source

models.lisp (file)

Function: missing-arg CONDITION
Package

torrents.utils

Source

utils.lisp (file)

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

Package

torrents.commands

Source

commands.lisp (file)

Function: search-torrents WORDS &key STREAM NB-RESULTS LOG-STREAM

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.

Package

torrents

Source

torrents.lisp (file)

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 (file)

Function: torrents WORDS &key STREAM

Search torrents.

Package

tpb

Source

tpb.lisp (file)

Function: torrents WORDS &key STREAM

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

Package

torrentcd

Source

torrentcd.lisp (file)

Function: torrents WORDS &key STREAM

Return a list of...

Package

kat

Source

kat.lisp (file)

Function: torrents WORDS &key STREAM

Return a list of...

Package

torrents.1337

Source

1337.lisp (file)

Function: torrents WORDS &key STREAM

Return a list of...

Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Function: unknown-option CONDITION
Package

torrents.utils

Source

utils.lisp (file)

Function: url INDEX

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

Package

torrents

Source

torrents.lisp (file)

Function: url INDEX
Package

torrents.commands

Source

commands.lisp (file)


6.1.4 Generic functions

Generic Function: href OBJECT
Generic Function: (setf href) NEW-VALUE OBJECT
Package

torrents.models

Methods
Method: href (TORRENT torrent)

automatically generated reader method

Source

models.lisp (file)

Method: (setf href) NEW-VALUE (TORRENT torrent)

automatically generated writer method

Source

models.lisp (file)

Generic Function: leechers OBJECT
Generic Function: (setf leechers) NEW-VALUE OBJECT
Package

torrents.models

Methods
Method: leechers (TORRENT torrent)

automatically generated reader method

Source

models.lisp (file)

Method: (setf leechers) NEW-VALUE (TORRENT torrent)

automatically generated writer method

Source

models.lisp (file)

Generic Function: seeders OBJECT
Generic Function: (setf seeders) NEW-VALUE OBJECT
Package

torrents.models

Methods
Method: seeders (TORRENT torrent)

automatically generated reader method

Source

models.lisp (file)

Method: (setf seeders) NEW-VALUE (TORRENT torrent)

automatically generated writer method

Source

models.lisp (file)

Generic Function: source OBJECT
Generic Function: (setf source) NEW-VALUE OBJECT
Package

torrents.models

Methods
Method: source (TORRENT torrent)

automatically generated reader method

Source

models.lisp (file)

Method: (setf source) NEW-VALUE (TORRENT torrent)

automatically generated writer method

Source

models.lisp (file)

Generic Function: title OBJECT
Generic Function: (setf title) NEW-VALUE OBJECT
Package

torrents.models

Methods
Method: title (TORRENT torrent)

automatically generated reader method

Source

models.lisp (file)

Method: (setf title) NEW-VALUE (TORRENT torrent)

automatically generated writer method

Source

models.lisp (file)


6.2 Internal definitions


6.2.1 Special variables

Special Variable: *base-url*
Package

torrentcd

Source

torrentcd.lisp (file)

Special Variable: *base-url*
Package

kat

Source

kat.lisp (file)

Special Variable: *base-url*
Package

torrents.1337

Source

1337.lisp (file)

Special Variable: *base-url*
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Special Variable: *cache-directory*

The directory where cl-torrents stores its cache.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *colors*

Functions to colorize text.

Package

torrents.utils

Source

utils.lisp (file)

Special Variable: *commands*

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

Package

torrents

Source

torrents.lisp (file)

Special Variable: *config-directory*

The directory to put configuration files.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *keywords*

List of keywords given as input by the user.

Package

torrents.utils

Source

utils.lisp (file)

Special Variable: *keywords*

List of keywords given as input by the user.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *keywords-colors*

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

Package

torrents

Source

torrents.lisp (file)

Special Variable: *prefilter-selector*

Call before we extract the search results.

Package

tpb

Source

tpb.lisp (file)

Special Variable: *results-selector*

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

Package

kat

Source

kat.lisp (file)

Special Variable: *results-selector*

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

Package

torrents.1337

Source

1337.lisp (file)

Special Variable: *results-selector*

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

Package

torrents.downloadsme

Source

downloadsme.lisp (file)

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 (file)

Special Variable: *search-results*

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

Package

torrents.1337

Source

1337.lisp (file)

Special Variable: *search-results*

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

Package

torrents.downloadsme

Source

downloadsme.lisp (file)

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 (file)

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 (file)

Special Variable: *search-url*

Base url for a search. Sorted by seeders

Package

kat

Source

kat.lisp (file)

Special Variable: *search-url*

Base url for a search. Sorted by seeders

Package

torrents.1337

Source

1337.lisp (file)

Special Variable: *search-url*

Base url for a search. Sorted by seeders

Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Special Variable: *selectors*
Package

tpb

Source

tpb.lisp (file)

Special Variable: *source*

Source short name for human presentation.

Package

torrents.1337

Source

1337.lisp (file)

Special Variable: *source*

Source short name for human presentation.

Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Special Variable: *store*

Cache. The directory must exist.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *torrent-clients-list*

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

Package

torrents

Source

torrents.lisp (file)

Special Variable: *torrents-list*

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

Package

torrents

Source

torrents.lisp (file)

Special Variable: *verbs*

List of verbs for completion. Strings.

Package

torrents

Source

torrents.lisp (file)

Special Variable: *version*
Package

torrents

Source

torrents.lisp (file)


6.2.2 Functions

Function: arg-parser-failed CONDITION
Package

torrents.utils

Source

utils.lisp (file)

Function: assoc-value ALIST KEY &key TEST
Package

torrents

Source

torrents.lisp (file)

Function: browse-elt INDEX
Package

torrents

Source

torrents.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

Function: custom-complete TEXT START END

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

Package

torrents

Source

torrents.lisp (file)

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 (file)

Function: ensure-cache ()
Package

torrents

Source

torrents.lisp (file)

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

torrents

Source

torrents.lisp (file)

Function: get-cached-results TERMS &key STORE
Package

torrents

Source

torrents.lisp (file)

Function: join-for-query ENTRY

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

Package

torrents.utils

Source

utils.lisp (file)

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 (file)

Function: next-color ()

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

Package

torrents.utils

Source

utils.lisp (file)

Function: parse HTML
Package

torrentcd

Source

torrentcd.lisp (file)

Function: parse HTML
Package

kat

Source

kat.lisp (file)

Function: parse HTML
Package

torrents.1337

Source

1337.lisp (file)

Function: parse HTML
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

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 (file)

Function: query PARSED
Package

torrentcd

Source

torrentcd.lisp (file)

Function: query PARSED
Package

kat

Source

kat.lisp (file)

Function: query PARSED
Package

torrents.1337

Source

1337.lisp (file)

Function: query PARSED
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Function: request URL

Wrapper around dex:get. Fetch an url.

Package

tpb

Source

tpb.lisp (file)

Function: request SEARCH &optional URL

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

Package

torrentcd

Source

torrentcd.lisp (file)

Function: request URL
Package

kat

Source

kat.lisp (file)

Function: request URL
Package

torrents.1337

Source

1337.lisp (file)

Function: request URL
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Function: request-details URL

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

Package

torrents

Source

torrents.lisp (file)

Function: reset-color ()
Package

torrents.utils

Source

utils.lisp (file)

Function: result-href NODE
Package

tpb

Source

tpb.lisp (file)

Function: result-href NODE
Package

torrentcd

Source

torrentcd.lisp (file)

Function: result-href NODE
Package

kat

Source

kat.lisp (file)

Function: result-href NODE
Package

torrents.1337

Source

1337.lisp (file)

Function: result-href NODE
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Function: result-leechers NODE
Package

tpb

Source

tpb.lisp (file)

Function: result-leechers NODE
Package

torrentcd

Source

torrentcd.lisp (file)

Function: result-leechers NODE
Package

kat

Source

kat.lisp (file)

Function: result-leechers NODE
Package

torrents.1337

Source

1337.lisp (file)

Function: result-leechers NODE
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Function: result-peers NODE
Package

tpb

Source

tpb.lisp (file)

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 (file)

Function: result-seeders NODE
Package

torrentcd

Source

torrentcd.lisp (file)

Function: result-seeders NODE
Package

kat

Source

kat.lisp (file)

Function: result-seeders NODE
Package

torrents.1337

Source

1337.lisp (file)

Function: result-seeders NODE
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Function: result-title NODE

Return the title of a search result.

Package

tpb

Source

tpb.lisp (file)

Function: result-title NODE
Package

torrentcd

Source

torrentcd.lisp (file)

Function: result-title NODE
Package

kat

Source

kat.lisp (file)

Function: result-title NODE
Package

torrents.1337

Source

1337.lisp (file)

Function: result-title NODE
Package

torrents.downloadsme

Source

downloadsme.lisp (file)

Function: save-results TERMS VAL &key STORE

Save results in cache.

Package

torrents

Source

torrents.lisp (file)

Function: select-completions TEXT LIST

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

Package

torrents

Source

torrents.lisp (file)


6.2.3 Classes

Class: torrent ()
Package

torrents.models

Source

models.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
  • print-object (method)
  • source (method)
  • source (method)
  • leechers (method)
  • leechers (method)
  • seeders (method)
  • seeders (method)
  • href (method)
  • href (method)
  • title (method)
  • title (method)
Direct slots
Slot: title
Initargs

:title

Initform

""

Readers

title (generic function)

Writers

(setf title) (generic function)

Slot: href
Initargs

:href

Readers

href (generic function)

Writers

(setf href) (generic function)

Slot: seeders
Initargs

:seeders

Readers

seeders (generic function)

Writers

(setf seeders) (generic function)

Slot: leechers
Initargs

:leechers

Readers

leechers (generic function)

Writers

(setf leechers) (generic function)

Slot: source
Initargs

:source

Readers

source (generic function)

Writers

(setf source) (generic function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L   M   T  
Index Entry  Section

F
File, Lisp, torrents.asd: The torrents<dot>asd file
File, Lisp, torrents/src/1337.lisp: The torrents/src/1337<dot>lisp file
File, Lisp, torrents/src/commands.lisp: The torrents/src/commands<dot>lisp file
File, Lisp, torrents/src/config.lisp: The torrents/src/config<dot>lisp file
File, Lisp, torrents/src/downloadsme.lisp: The torrents/src/downloadsme<dot>lisp file
File, Lisp, torrents/src/kat.lisp: The torrents/src/kat<dot>lisp file
File, Lisp, torrents/src/models.lisp: The torrents/src/models<dot>lisp file
File, Lisp, torrents/src/torrentcd.lisp: The torrents/src/torrentcd<dot>lisp file
File, Lisp, torrents/src/torrents.lisp: The torrents/src/torrents<dot>lisp file
File, Lisp, torrents/src/tpb.lisp: The torrents/src/tpb<dot>lisp file
File, Lisp, torrents/src/utils.lisp: The torrents/src/utils<dot>lisp file

L
Lisp File, torrents.asd: The torrents<dot>asd file
Lisp File, torrents/src/1337.lisp: The torrents/src/1337<dot>lisp file
Lisp File, torrents/src/commands.lisp: The torrents/src/commands<dot>lisp file
Lisp File, torrents/src/config.lisp: The torrents/src/config<dot>lisp file
Lisp File, torrents/src/downloadsme.lisp: The torrents/src/downloadsme<dot>lisp file
Lisp File, torrents/src/kat.lisp: The torrents/src/kat<dot>lisp file
Lisp File, torrents/src/models.lisp: The torrents/src/models<dot>lisp file
Lisp File, torrents/src/torrentcd.lisp: The torrents/src/torrentcd<dot>lisp file
Lisp File, torrents/src/torrents.lisp: The torrents/src/torrents<dot>lisp file
Lisp File, torrents/src/tpb.lisp: The torrents/src/tpb<dot>lisp file
Lisp File, torrents/src/utils.lisp: The torrents/src/utils<dot>lisp file

M
Module, torrents/src: The torrents/src module

T
torrents.asd: The torrents<dot>asd file
torrents/src: The torrents/src module
torrents/src/1337.lisp: The torrents/src/1337<dot>lisp file
torrents/src/commands.lisp: The torrents/src/commands<dot>lisp file
torrents/src/config.lisp: The torrents/src/config<dot>lisp file
torrents/src/downloadsme.lisp: The torrents/src/downloadsme<dot>lisp file
torrents/src/kat.lisp: The torrents/src/kat<dot>lisp file
torrents/src/models.lisp: The torrents/src/models<dot>lisp file
torrents/src/torrentcd.lisp: The torrents/src/torrentcd<dot>lisp file
torrents/src/torrents.lisp: The torrents/src/torrents<dot>lisp file
torrents/src/tpb.lisp: The torrents/src/tpb<dot>lisp file
torrents/src/utils.lisp: The torrents/src/utils<dot>lisp file

Jump to:   F   L   M   T  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

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

(
(setf href): Exported generic functions
(setf href): Exported generic functions
(setf leechers): Exported generic functions
(setf leechers): Exported generic functions
(setf seeders): Exported generic functions
(setf seeders): Exported generic functions
(setf source): Exported generic functions
(setf source): Exported generic functions
(setf title): Exported generic functions
(setf title): Exported generic functions

A
arg-parser-failed: Internal functions
assoc-value: Internal functions
async-torrents: Exported functions

B
browse: Exported functions
browse-elt: Internal functions

C
colorize-all-keywords: Internal functions
colorize-keyword-in-string: Internal functions
common-prefix: Internal functions
config-scrapers: Internal functions
custom-complete: Internal functions

D
display-results: Internal functions
download: Exported functions

E
ensure-cache: Internal functions
ensure-cache-and-store: Internal functions
exit: Exported functions

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

G
Generic Function, (setf href): Exported generic functions
Generic Function, (setf leechers): Exported generic functions
Generic Function, (setf seeders): Exported generic functions
Generic Function, (setf source): Exported generic functions
Generic Function, (setf title): Exported generic functions
Generic Function, href: Exported generic functions
Generic Function, leechers: Exported generic functions
Generic Function, seeders: Exported generic functions
Generic Function, source: Exported generic functions
Generic Function, title: Exported generic functions
get-cached-results: Internal functions

H
href: Exported generic functions
href: Exported generic functions

J
join-for-query: Internal functions

K
keyword-color-pairs: Internal functions

L
leechers: Exported generic functions
leechers: Exported generic functions

M
Macro, when-option: Exported macros
magnet: Exported functions
magnet: Exported functions
magnet-link-from: Exported functions
main: Exported functions
make-torrent: Exported functions
Method, (setf href): Exported generic functions
Method, (setf leechers): Exported generic functions
Method, (setf seeders): Exported generic functions
Method, (setf source): Exported generic functions
Method, (setf title): Exported generic functions
Method, href: Exported generic functions
Method, leechers: Exported generic functions
Method, seeders: Exported generic functions
Method, source: Exported generic functions
Method, title: Exported generic functions
missing-arg: Exported functions

N
next-color: Internal functions

P
parse: Internal functions
parse: Internal functions
parse: Internal functions
parse: Internal functions
process-options: Internal functions

Q
query: Internal functions
query: Internal functions
query: Internal functions
query: Internal functions

R
request: Internal functions
request: Internal functions
request: Internal functions
request: Internal functions
request: Internal functions
request-details: Internal functions
reset-color: Internal functions
result-href: Internal functions
result-href: Internal functions
result-href: Internal functions
result-href: Internal functions
result-href: Internal functions
result-leechers: Internal functions
result-leechers: Internal functions
result-leechers: Internal functions
result-leechers: Internal functions
result-leechers: Internal functions
result-peers: Internal functions
result-peers-or-leechers: Internal functions
result-seeders: Internal functions
result-seeders: Internal functions
result-seeders: Internal functions
result-seeders: Internal functions
result-title: Internal functions
result-title: Internal functions
result-title: Internal functions
result-title: Internal functions
result-title: Internal functions

S
save-results: Internal functions
search: Exported functions
search-torrents: Exported functions
seeders: Exported generic functions
seeders: Exported generic functions
select-completions: Internal functions
source: Exported generic functions
source: Exported generic functions
sublist: Exported functions

T
title: Exported generic functions
title: Exported generic functions
torrents: Exported functions
torrents: Exported functions
torrents: Exported functions
torrents: Exported functions
torrents: Exported functions

U
unknown-option: Exported functions
url: Exported functions
url: Exported functions

W
when-option: Exported macros

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

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
H   L   S   T  
Index Entry  Section

*
*base-url*: Internal special variables
*base-url*: Internal special variables
*base-url*: Internal special variables
*base-url*: Internal special variables
*browser*: Exported special variables
*cache-directory*: Internal special variables
*cache-p*: Exported special variables
*colors*: Internal special variables
*commands*: Internal special variables
*config-directory*: Internal special variables
*keywords*: Internal special variables
*keywords*: Internal special variables
*keywords-colors*: Internal special variables
*last-search*: Exported special variables
*nb-results*: Exported special variables
*prefilter-selector*: Internal special variables
*results-selector*: Internal special variables
*results-selector*: Internal special variables
*results-selector*: Internal special variables
*scrapers-alist*: Internal special variables
*search-results*: Internal special variables
*search-results*: Internal special variables
*search-url*: Internal special variables
*search-url*: Internal special variables
*search-url*: Internal special variables
*search-url*: Internal special variables
*search-url*: Internal special variables
*selectors*: Internal special variables
*source*: Internal special variables
*source*: Internal special variables
*store*: Internal special variables
*torrent-client*: Exported special variables
*torrent-clients-list*: Internal special variables
*torrents-list*: Internal special variables
*verbs*: Internal special variables
*version*: Internal special variables

H
href: Internal classes

L
leechers: Internal classes

S
seeders: Internal classes
Slot, href: Internal classes
Slot, leechers: Internal classes
Slot, seeders: Internal classes
Slot, source: Internal classes
Slot, title: Internal classes
source: Internal classes
Special Variable, *base-url*: Internal special variables
Special Variable, *base-url*: Internal special variables
Special Variable, *base-url*: Internal special variables
Special Variable, *base-url*: Internal special variables
Special Variable, *browser*: Exported special variables
Special Variable, *cache-directory*: Internal special variables
Special Variable, *cache-p*: Exported special variables
Special Variable, *colors*: Internal special variables
Special Variable, *commands*: Internal special variables
Special Variable, *config-directory*: Internal special variables
Special Variable, *keywords*: Internal special variables
Special Variable, *keywords*: Internal special variables
Special Variable, *keywords-colors*: Internal special variables
Special Variable, *last-search*: Exported special variables
Special Variable, *nb-results*: Exported special variables
Special Variable, *prefilter-selector*: Internal special variables
Special Variable, *results-selector*: Internal special variables
Special Variable, *results-selector*: Internal special variables
Special Variable, *results-selector*: Internal special variables
Special Variable, *scrapers-alist*: Internal special variables
Special Variable, *search-results*: Internal special variables
Special Variable, *search-results*: Internal special variables
Special Variable, *search-url*: Internal special variables
Special Variable, *search-url*: Internal special variables
Special Variable, *search-url*: Internal special variables
Special Variable, *search-url*: Internal special variables
Special Variable, *search-url*: Internal special variables
Special Variable, *selectors*: Internal special variables
Special Variable, *source*: Internal special variables
Special Variable, *source*: Internal special variables
Special Variable, *store*: Internal special variables
Special Variable, *torrent-client*: Exported special variables
Special Variable, *torrent-clients-list*: Internal special variables
Special Variable, *torrents-list*: Internal special variables
Special Variable, *verbs*: Internal special variables
Special Variable, *version*: Internal special variables

T
title: Internal classes

Jump to:   *  
H   L   S   T  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   K   P   S   T  
Index Entry  Section

C
Class, torrent: Internal classes

K
kat: The kat package

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<dot>1337 package
Package, torrents.commands: The torrents<dot>commands package
Package, torrents.downloadsme: The torrents<dot>downloadsme package
Package, torrents.models: The torrents<dot>models package
Package, torrents.user: The torrents<dot>user package
Package, torrents.utils: The torrents<dot>utils package
Package, tpb: The tpb package

S
System, torrents: The torrents system

T
torrent: Internal classes
torrentcd: The torrentcd package
torrents: The torrents system
torrents: The torrents package
torrents-asd: The torrents-asd package
torrents.1337: The torrents<dot>1337 package
torrents.commands: The torrents<dot>commands package
torrents.downloadsme: The torrents<dot>downloadsme package
torrents.models: The torrents<dot>models package
torrents.user: The torrents<dot>user package
torrents.utils: The torrents<dot>utils package
tpb: The tpb package

Jump to:   C   K   P   S   T