Skip to main content

Multithreaded concurrent da.gd URL shortener with in-memory cache

Project description

dagdshort

dagdshort is a Python based multithreaded URL shortener with a memory-cache. It uses the da.gd service.

As a disclaimer, this is an unofficial package and it has no association with da.gd. If you use this package extensively, making a financial donation to da.gd is encouraged.

Other operations are outside the scope of this package.

cicd badge

Links

Caption Link
Repo https://github.com/impredicative/dagdshort/
Changelog https://github.com/impredicative/dagdshort/releases
Package https://pypi.org/project/dagdshort/

Requirements

Python

Python ≥3.9 is required. An older version of Python will not work.

Usage

To install the package, run:

$ pip install dagdshort

Usage example:

>>> import dagdshort

# Setup
>>> shortener = dagdshort.Shortener(user_agent_suffix='<YourGitUsername>/<YourGitRepoName>', max_cache_size=256)

# Shorten
>>> long_urls = ['https://github.com/impredicative/dagdshort/', 'https://pypi.org/project/dagdshort/']
>>> shortener.shorten_urls(long_urls)
{'https://github.com/impredicative/dagdshort/': 'https://da.gd/W9s06',
 'https://pypi.org/project/dagdshort/': 'https://da.gd/KtGTB'}

# Show cache info
>>> shortener.cache_info
{'Shortener._shorten_url': CacheInfo(hits=0, misses=2, maxsize=256, currsize=2)}

To obtain the fastest response, URLs must be shortened together in a batch as in the examples above. Up to 8 concurrent workers are automatically used. The max limit can, if really necessary, be changed by setting config.MAX_WORKERS before initializing the shortener.

Errors

If a "Blacklisted long URL" error is experienced for a reasonable website which should not be blacklisted, it can be reported here. As an example, see this issue.

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

dagdshort-0.2.0.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

dagdshort-0.2.0-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file dagdshort-0.2.0.tar.gz.

File metadata

  • Download URL: dagdshort-0.2.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for dagdshort-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d77896560e5709b32bd191a443698af44c4c6972ddbe3a638b8cb123ebe0d261
MD5 dec57f6f8b18041cceb6e3a901daf5d7
BLAKE2b-256 9a2746a64c9c7ade79ea88dbd99beaccbce1c1502412641151d2be45f29e8f0e

See more details on using hashes here.

File details

Details for the file dagdshort-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dagdshort-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for dagdshort-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42dbeec05e78f5a0498de44f614d128cfbadce607a7ced32526a9f7d2e2a354b
MD5 9c986946739c851715415362433b4130
BLAKE2b-256 e226bc0c3755f66c39e418ff2890e3abf39c3a26ab3672b650ac28b9945d6ef5

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