Skip to content

add_metalink ¤

Command to add metalinks.

Functions:

add_metalinks(
    api: API,
    metalink_files: list[str | Path] | None = None,
    from_file: str | None = None,
    options: dict | None = None,
    position: int | None = None,
) -> int

Add metalink subcommand.

Parameters:

  • api (API) –

    The API instance to use.

  • metalink_files (list[str | Path] | None, default: None ) –

    The paths to the metalink files.

  • from_file (str | None, default: None ) –

    Path to the file to metalink files paths from.

  • options (dict | None, default: None ) –

    String of aria2c options to add to download.

  • position (int | None, default: None ) –

    Position to add new download in the queue.

Returns:

  • int ( int ) –

    0 if OK else 1.

Source code in src/aria2p/cli/commands/add_metalink.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
def add_metalinks(
    api: API,
    metalink_files: list[str | Path] | None = None,
    from_file: str | None = None,
    options: dict | None = None,
    position: int | None = None,
) -> int:
    """Add metalink subcommand.

    Parameters:
        api: The API instance to use.
        metalink_files: The paths to the metalink files.
        from_file: Path to the file to metalink files paths from.
        options: String of aria2c options to add to download.
        position: Position to add new download in the queue.

    Returns:
        int: 0 if OK else 1.
    """
    ok = True

    if not metalink_files:
        metalink_files = []

    if from_file:
        try:
            metalink_files.extend(read_lines(from_file))
        except OSError:
            print(f"Cannot open file: {from_file}", file=sys.stderr)
            ok = False

    for metalink_file in metalink_files:
        new_downloads = api.add_metalink(metalink_file, options=options, position=position)
        for download in new_downloads:
            print(f"Created download {download.gid}")

    return 0 if ok else 1