Skip to main content

Programm zum Flotten Einfachen Runterladen von Dateien

Project description

PFERD

Programm zum Flotten, Einfachen Runterladen von Dateien

Other resources:

Installation

Direct download

Binaries for Linux, Windows and Mac can be downloaded directly from the latest release.

With pip

Ensure you have at least Python 3.11 installed. Run the following command to install PFERD or upgrade it to the latest version:

# install from GitHub
$ pip install --upgrade git+https://github.com/Garmelon/PFERD@latest
# install from PyPi
$ pip install PFERD

The use of venv is recommended.

With package managers

Unofficial packages are available for:

See also PFERD's repology page.

Basic usage

PFERD can be run directly from the command line with no config file. Run pferd -h to get an overview of available commands and options. Run pferd <command> -h to see which options a command has.

For example, you can download your personal desktop from the KIT ILIAS like this:

$ pferd kit-ilias-web desktop <output_directory>

Also, you can download most ILIAS pages directly like this:

$ pferd kit-ilias-web <url> <output_directory>

PFERD supports other ILIAS instances as well, using the ilias-web crawler (see the config section on ilias-web for more detail on the base-url and client-id parameters):

$ pferd ilias-web \
    --base-url https://ilias.my-university.example \
    --client-id My_University desktop \
    <output_directory>

However, the CLI only lets you download a single thing at a time, and the resulting command can grow long quite quickly. Because of this, PFERD can also be used with a config file.

To get started, just take a command you've been using and add --dump-config directly after pferd, like this:

$ pferd --dump-config kit-ilias-web <url> <output_directory>

This will make PFERD write its current configuration to its default config file path. You can then run pferd without a command and it will execute the config file. Alternatively, you can use --dump-config-to and specify a path yourself. Using --dump-config-to - will print the configuration to stdout instead of a file, which is a good way to see what is actually going on when using a CLI command.

Another good way to see what PFERD is doing is the --explain option. When enabled, PFERD explains in detail what it is doing and why. This can help with debugging your own config.

If you don't want to run all crawlers from your config file, you can specify the crawlers you want to run with --crawler or -C, like this:

$ pferd -C crawler1 -C crawler2

Advanced usage

PFERD supports lots of different options. For example, you can configure PFERD to use your system's keyring instead of prompting you for your username and password. PFERD also supports transformation rules that let you rename or exclude certain files.

For more details, see the comprehensive config format documentation.

Example

This example downloads a few courses from the KIT ILIAS with a common keyring authenticator. It reorganizes and ignores some files.

[DEFAULT]
# All paths will be relative to this.
# The crawler output directories will be <working_dir>/Foo and <working_dir>/Bar.
working_dir = ~/stud
# If files vanish from ILIAS the local files are not deleted, allowing us to
# take a look at them before deleting them ourselves.
on_conflict = no-delete

[auth:ilias]
type = keyring
username = foo

[crawl:Foo]
type = kit-ilias-web
auth = auth:ilias
# Crawl a course by its ID (found as `ref_id=ID` in the URL)
target = 1234567

# Plaintext files are easier to read by other tools
links = plaintext

transform =
  # Ignore unneeded folders
  Online-Tests --> !
  Vorlesungswerbung --> !

  # Rename folders
  Lehrbücher --> Vorlesung
  # Note the ">>" arrow head which lets us apply further rules to files moved to "Übung"
  Übungsunterlagen -->> Übung

  # Move exercises to own folder. Rename them to "Blatt-XX.pdf" to make them sort properly
  "Übung/(\d+). Übungsblatt.pdf" -re-> Blätter/Blatt-{i1:02}.pdf
  # Move solutions to own folder. Rename them to "Blatt-XX-Lösung.pdf" to make them sort properly
  "Übung/(\d+). Übungsblatt.*Musterlösung.pdf" -re-> Blätter/Blatt-{i1:02}-Lösung.pdf

  # The course has nested folders with the same name - flatten them
  "Übung/(.+?)/\\1" -re-> Übung/{g1}

[crawl:Bar]
type = kit-ilias-web
auth = auth:ilias
target = 1337420

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pferd-3.9.2.tar.gz (72.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pferd-3.9.2-py3-none-any.whl (86.8 kB view details)

Uploaded Python 3

File details

Details for the file pferd-3.9.2.tar.gz.

File metadata

  • Download URL: pferd-3.9.2.tar.gz
  • Upload date:
  • Size: 72.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pferd-3.9.2.tar.gz
Algorithm Hash digest
SHA256 33a59e9e766e94943c8b2565dd24e3388b8605778903c63ecbcd0714342d3c31
MD5 53a1c86c3a802ff2ec58e0363100fbf9
BLAKE2b-256 f32b9e5d3704d74a5118c10e4e70a3d209bf0e81ba7550f5cfe82e2a8366aeb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pferd-3.9.2.tar.gz:

Publisher: build-and-release.yml on Garmelon/PFERD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pferd-3.9.2-py3-none-any.whl.

File metadata

  • Download URL: pferd-3.9.2-py3-none-any.whl
  • Upload date:
  • Size: 86.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pferd-3.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1ac21294de877063564f944de152b5d6d14d25307bce422c62d7b4a49d1b9050
MD5 aac617d86dd2a92017b944107993ba06
BLAKE2b-256 6bbfc64c0cd63460c49a6f1024e647a05241f82da9d60942986d40668bb69659

See more details on using hashes here.

Provenance

The following attestation bundles were made for pferd-3.9.2-py3-none-any.whl:

Publisher: build-and-release.yml on Garmelon/PFERD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page