Skip to main content

A Python library for easier and faster downloading.

Project description

persepolis_lib

About

A Python library for easier and faster downloading

Features

  • Multi-segment downloading(64 connections)
  • Resuming downloads

Installation

persepolis_lib is available on pypi.

pip install persepolis_lib

Usage

#!/usr/bin/python3

# import Download class
from persepolis_lib.persepolis_lib import Download

# create a dictionary that contains download infromation.
download_dict = {'link': http://example.com/example.jpg, # your download link
                       'out': None, # You can choose a name for your file if you want. If you don't want to, choose None for its value.
                       'download_path': /home/example_user/Downloads, # Choose download path. You must choose valid download path!
                       'ip': None, # set ip of your proxy, If you don't use proxy, set None value for it.
                       'port': None, # set port of your proxy, If you don't use proxy, set None value for it.
                       'proxy_user': None, # set proxy user, If you don't use proxy, set None value for it.
                       'proxy_passwd': None, # set proxy pass word, If you don't use proxy, set None value for it.
                       'proxy_type': None, # set proxy type, http or socks5. If you don't use proxy, set None value for it.
                       'download_user': None, # set username, If your download link requires user name,Otherwise, set its value to ٔNone.
                       'download_passwd': None, # set password, If your download link requires user name and password,Otherwise, set its value to ٔNone.
                       'header': None, # set header if you want, Otherwise, set its value to ٔNone.
                       'user_agent': None, # set user-agent if you want, Otherwise, set its value to ٔNone. persepolis_lib/version is default user agent.
                       'load_cookies': None, # set cookies path if you want, Otherwise, set its value to ٔNone.
                       'referer': None} # set referrer if you want, Otherwise, set its value to ٔNone.
# persepolis supports Multi-segment downloading. set number of threads. maximum value is 64. minimum value is 1. default is 64.
segments = 64

# set python requests chunk size in KiB.
# checkout this link for more informaton. https://stackoverflow.com/questions/46205586/why-to-use-iter-content-and-chunk-size-in-python-requests
# default is 100 KiB
pytho_requests_chunk_size = 100 # KiB

# create a download session
# set timeout value in seconds. default is 5.
# set number of retries if download failed. default is 5.
# set progress_bar value to True If you want the progress bar to be shown in the console. default is False
# set threads_progress_bar to True If you want the size downloaded by each thread to be displayed in the progress bar. default is False.
download_session = Download(add_link_dictionary=download_dict, number_of_threads=segments,
                             chunk_size=pytho_requests_chunk_size, timeout=5, retry=5, progress_bar=False, threads_progress_bar=False)
# start download. Use thread if you want!
download_session.start()

# stop download
download_session.stop()

# pause download
download_session.downloadPause()

# Unpause
download_session.downloadUnPause()

# limit download speed.
# limit_value is between 1 to 10.
# 10 means no limit speed.
download_session.limitSpeed(5)

# get download information in dictionary format
status_dict = download_session.tellStatus()
print(status_dict)

persepolis_lib creates download file and log file and conrol file in json format with .persepolis extension in download path. control file contains download information. Persepolis_lib can resume download, If control file exists.

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

persepolis_lib-1.0.2.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

persepolis_lib-1.0.2-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file persepolis_lib-1.0.2.tar.gz.

File metadata

  • Download URL: persepolis_lib-1.0.2.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for persepolis_lib-1.0.2.tar.gz
Algorithm Hash digest
SHA256 96b3185679d4943c15c4c3c556034c170e352566c4ff437bb6f8ea6f81cd4346
MD5 6aec8cc2f3067084d88e0d893832c958
BLAKE2b-256 f910883ac27de4ba3ec339dea2da2cf7eb9323b415208728128d7a3617d7a088

See more details on using hashes here.

File details

Details for the file persepolis_lib-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for persepolis_lib-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 73d68459b1e2ec9820acdeb6f12ccd97e0b7f22f6db47b626431dcedff05544a
MD5 e209d7affcc0432819daa4c8de3bd6a6
BLAKE2b-256 b29143c64a01f7be0b356fce2cd18179dc3bd4757d9cc35291411b1f9159169c

See more details on using hashes here.

Supported by

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