Metadata-Version: 2.1
Name: springer
Version: 0.7.2
Summary: Bulk Springer Textbook Downloader
Home-page: http://github.com/JnyJny/springer_downloader
License: Apache-2.0
Author: JnyJny
Author-email: erik.oshaughnessy@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Dist: loguru (>=0.4.1,<0.5.0)
Requires-Dist: pandas (>=1.0.3,<2.0.0)
Requires-Dist: requests (>=2.23.0,<3.0.0)
Requires-Dist: typer (>=0.1.1,<0.2.0)
Requires-Dist: xlrd (>=1.2.0,<2.0.0)
Project-URL: Repository, http://github.com/JnyJny/springer_downloader
Description-Content-Type: text/markdown

# `springer`

Springer Textbook Bulk Download Tool

NOTICE:

Author not affiliated with Springer and this tool is not authorized
or supported by Springer. Thank you to Springer for making these
high quality textbooks available at no cost. 

From `https://www.springernature.com/gp/librarians/news-events/all-news-articles/industry-news-initiatives/free-access-to-textbooks-for-institutions-affected-by-coronaviru/17855960`:

"With the Coronavirus outbreak having an unpretextbookscedented
impact on education, Springer Nature is launching a global program
to support learning and teaching at higher education institutions
worldwide. Remote access to educational resources has become
essential. We want to support lecturers, teachers and students
during this challenging period and hope that this initiative will go
some way to help. 

Institutions will be able to access more than 500 key textbooks
across Springer Nature’s eBook subject collections for free. In
addition, we are making a number of German-language Springer medical
training books on emergency nursing freely accessible.  These books
will be available via SpringerLink until at least the end of July."

This tool automates the tasks of downloading the Excel-formatted
catalogs and downloading the files described in the catalog.

**Usage**:

```console
$ springer [OPTIONS] COMMAND [ARGS]...
```

**Options**:

* `-L, --lang [en|de]`: Choose catalog language  [default: en]
* `-C, --category [all|med]`: Choose a catalog catagory.  [default: all]
* `--install-completion`: Install completion for the current shell.
* `--show-completion`: Show completion for the current shell, to copy it or customize the installation.
* `--help`: Show this message and exit.

**Commands**:

* `catalogs`: List available catalogs.
* `clean`: Removes the cached catalog.
* `download`: Download textbooks from Springer.
* `list`: List titles of textbooks in the catalog.
* `refresh`: Refresh the cached catalog of Springer...

## `springer catalogs`

List available catalogs.
    

**Usage**:

```console
$ springer catalogs [OPTIONS]
```

**Options**:

* `--help`: Show this message and exit.

## `springer clean`

Removes the cached catalog.
    

**Usage**:

```console
$ springer clean [OPTIONS]
```

**Options**:

* `-F, --force`
* `--all`
* `--help`: Show this message and exit.

## `springer download`

Download textbooks from Springer.

This command will download all the textbooks found in the catalog
of free textbooks provided by Springer. The default file format 
is PDF and the files are saved by default to the current working
directory.

If a download is interrupted, you can re-start the download and it
will skip over files that have been previously downloaded and pick up
where it left off. 

If the --all option is specified, the --dest-path option specifies the
root directory where files will be stored. Each catalog will save 
it's textbooks to:

dest_path/language/category/book_file_name.fmt

Files that fail to download will be logged to a file named:

dest_path/DOWNLOAD_ERRORS.txt

The log entries will have the date and time of the attempt,
the HTTP status code and the URL that was attempted.


EXAMPLES

Download all books in PDF format to the current directory:

$ springer download

Download all books in EPUB format to the current directory:

$ springer download --format epub

Download all books in PDF format to a directory `pdfs`:

$ springer download --dest-path pdfs

Download books in PDF format to `pdfs` with overwriting:

$ springer download --dest-path pdfs --over-write

Download all books in PDF from the German all disciplines catalog:

$ springer -L de -C all download --dest-path german/all/pdfs

Download all books from all catelogs in epub format:

$ springer download --all --dest-path books --format epub

**Usage**:

```console
$ springer download [OPTIONS]
```

**Options**:

* `-d, --dest-path PATH`: Destination directory for downloaded files.  [default: /Users/ejo/local/springer]
* `-f, --format [pdf|epub]`: [default: pdf]
* `-W, --over-write`: Over write downloaded files.  [default: False]
* `--all`: Downloads books from all catalogs.
* `--help`: Show this message and exit.

## `springer list`

List titles of textbooks in the catalog.

Examples

List titles available in the default catalog (en-all):

$ springer list

List titles available in the German language, all disciplines catalog:

$ springer --language de --category all list

**Usage**:

```console
$ springer list [OPTIONS]
```

**Options**:

* `-f, --format [pdf|epub]`: [default: pdf]
* `-p, --show-path`: Show generated filename for each book.
* `--help`: Show this message and exit.

## `springer refresh`

Refresh the cached catalog of Springer textbooks.

If --all is specified, the --url option is ignored.

Examples

Update English language catalog:

$ springer --language en refresh

Update German language catalog whose category is 'all':

$ springer --language de --category all refresh

Update German language catalog whose category is 'med' with a new URL:

$ springer -L de -C med refresh --url https://example.com/api/endpoint/something/v11

Update all catalogs:

$ springer refresh --all

**Usage**:

```console
$ springer refresh [OPTIONS]
```

**Options**:

* `-u, --url TEXT`: URL for Excel-formatted catalog
* `--all`
* `--help`: Show this message and exit.

