-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #11 from ronaldgrn/v0.5
v0.5 release
- Loading branch information
Showing
6 changed files
with
201 additions
and
166 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,177 +1,196 @@ | ||
Metadata-Version: 1.1 | ||
Metadata-Version: 2.1 | ||
Name: django-link-shortener | ||
Version: 0.4 | ||
Version: 0.5 | ||
Summary: A simple Django Url Shortener. | ||
Home-page: https://github.com/ronaldgrn/django-link-shortener | ||
Author: Petronald Green | ||
Author-email: [email protected] | ||
License: MIT License | ||
Description: ===================== | ||
django-link-shortener | ||
===================== | ||
|
||
.. image:: https://travis-ci.org/ronaldgrn/django-link-shortener.svg?branch=master | ||
:target: https://travis-ci.org/ronaldgrn/django-link-shortener | ||
|
||
.. image:: https://img.shields.io/pypi/l/django-link-shortener.svg | ||
:alt: PyPI - License | ||
:target: https://pypi.org/project/django-link-shortener/ | ||
|
||
.. image:: https://img.shields.io/pypi/v/django-link-shortener.svg | ||
:alt: PyPI | ||
:target: https://pypi.org/project/django-link-shortener/ | ||
|
||
.. image:: https://coveralls.io/repos/github/ronaldgrn/django-link-shortener/badge.svg?branch=master | ||
:target: https://coveralls.io/github/ronaldgrn/django-link-shortener?branch=master | ||
|
||
|
||
django-link-shortener is a simple time and usage sensitive url shortening app. | ||
|
||
Uses A-Za-z0-9 with the exception of I, i and 1. | ||
|
||
Requires user to be logged in for link creation. | ||
|
||
|
||
Usage | ||
----- | ||
|
||
1. pip install django-link-shortener | ||
|
||
2. Add "shortener" to your INSTALLED_APPS setting like this:: | ||
|
||
INSTALLED_APPS = [ | ||
... | ||
'shortener', | ||
] | ||
|
||
3. Include the polls URLconf in your project urls.py like this:: | ||
|
||
path('s/', include('shortener.urls')), | ||
|
||
4. Run `python manage.py migrate` to create the shortener models. | ||
|
||
|
||
Testing | ||
------- | ||
1. Add the following to settings | ||
|
||
``` | ||
SHORTENER_ENABLE_TEST_PATH = True | ||
``` | ||
|
||
1. Start the development server and visit http://127.0.0.1:8000/s/test/<My-URL-HERE> | ||
to create a test shortcode. | ||
|
||
or | ||
|
||
Use shortener.create(user, link) to generate a link via code. Use shortener.expand(link) | ||
to revert | ||
|
||
6. Visit http://127.0.0.1:8000/s/<shortcode>/ to be redirected | ||
|
||
Configuration Options | ||
--------------------- | ||
Place in settings.py. Each setting be overridden on a per-user basis using the admin UrlProfile section | ||
|
||
SHORTENER_ENABLED | ||
Default: True | ||
|
||
Controls whether users without a shortener profile can create shortlinks. | ||
|
||
SHORTENER_MAX_URLS | ||
Default: -1 | ||
|
||
Controls the default maximum limit of generated urls per account. | ||
-1 sets infinite. | ||
|
||
SHORTENER_MAX_CONCURRENT | ||
Default: -1 | ||
|
||
Controls the default maximum limit of *concurrent* (active) generated urls per account. | ||
-1 sets infinite | ||
|
||
SHORTENER_LIFESPAN | ||
Default: -1 | ||
|
||
Sets the default lifespan of links in seconds | ||
-1 sets infinite | ||
|
||
SHORTENER_MAX_USES | ||
Default: -1 | ||
|
||
Sets the default amount of times a link can be followed | ||
-1 sets infinite | ||
|
||
SHORTENER_LENGTH | ||
Default: 5 | ||
|
||
Note: Omitted from UrlProfile | ||
|
||
Sets how many digits should be used for links. | ||
Tries up to three times to generate a unique shortcode where | ||
Each failure will result in length temporaily being increased by 1. | ||
|
||
SHORTENER_ENABLE_TEST_PATH | ||
Default: False | ||
|
||
If true, creates shortlinks for logged in users at s/test/<<url>>/ | ||
|
||
The response is the shortcode to use used at s/<<shortcode>> | ||
|
||
|
||
Common Use Cases | ||
---------------- | ||
goo.gl type usage (default). Unlimited concurrent links for an unlimited length of time | ||
|
||
:: | ||
|
||
SHORTENER_ENABLED = True | ||
SHORTENER_MAX_URLS = -1 | ||
SHORTENER_MAX_CONCURRENT = -1 | ||
SHORTENER_LIFESPAN = -1 | ||
SHORTENER_MAX_USES = -1 | ||
|
||
|
||
Internal temporary link usage (such as on nodeferret.com). 100 Temp links per minute. 1 usage per link. | ||
|
||
:: | ||
|
||
SHORTENER_ENABLED = True | ||
SHORTENER_MAX_URLS = -1 | ||
SHORTENER_MAX_CONCURRENT = 100 # To prevent spamming | ||
SHORTENER_LIFESPAN = 600 | ||
SHORTENER_MAX_USES = 1 | ||
|
||
|
||
Changelog | ||
--------- | ||
|
||
**v0.4** | ||
|
||
- Allow null values in UrlProfile; null fields will use global values | ||
- str representation of UrlProfile in admin | ||
- add user to str representation of UrlMap | ||
- removed 256 char limit on full_url (Credit: Khaeshah) | ||
|
||
Upgrade Instructions | ||
-------------------- | ||
|
||
**0.3 -> 0.4** | ||
|
||
:: | ||
|
||
pip install django-link-shortener==0.4 | ||
python manage.py migrate | ||
Keywords: url shortener,link shortener | ||
Platform: UNKNOWN | ||
Classifier: Development Status :: 5 - Production/Stable | ||
Classifier: Environment :: Web Environment | ||
Classifier: Framework :: Django | ||
Classifier: Framework :: Django :: 2.0 | ||
Classifier: Framework :: Django :: 2.2 | ||
Classifier: Framework :: Django :: 3.0 | ||
Classifier: Framework :: Django :: 3.1 | ||
Classifier: Framework :: Django :: 3.2 | ||
Classifier: Framework :: Django :: 4.0 | ||
Classifier: Intended Audience :: Developers | ||
Classifier: License :: OSI Approved :: MIT License | ||
Classifier: Operating System :: OS Independent | ||
Classifier: Programming Language :: Python | ||
Classifier: Programming Language :: Python :: 3.5 | ||
Classifier: Programming Language :: Python :: 3.6 | ||
Classifier: Programming Language :: Python :: 3.7 | ||
Classifier: Programming Language :: Python :: 3.8 | ||
Classifier: Programming Language :: Python :: 3.9 | ||
Classifier: Programming Language :: Python :: 3.10 | ||
Classifier: Topic :: Internet :: WWW/HTTP | ||
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content | ||
License-File: LICENSE | ||
|
||
===================== | ||
django-link-shortener | ||
===================== | ||
|
||
.. image:: https://github.com/ronaldgrn/django-link-shortener/actions/workflows/django-tests.yml/badge.svg | ||
:target: https://github.com/ronaldgrn/django-link-shortener/actions/workflows/django-tests.yml | ||
|
||
.. image:: https://img.shields.io/pypi/l/django-link-shortener.svg | ||
:alt: PyPI - License | ||
:target: https://pypi.org/project/django-link-shortener/ | ||
|
||
.. image:: https://img.shields.io/pypi/v/django-link-shortener.svg | ||
:alt: PyPI | ||
:target: https://pypi.org/project/django-link-shortener/ | ||
|
||
.. image:: https://coveralls.io/repos/github/ronaldgrn/django-link-shortener/badge.svg?branch=master | ||
:target: https://coveralls.io/github/ronaldgrn/django-link-shortener?branch=master | ||
|
||
|
||
django-link-shortener is a simple time and usage sensitive url shortening app. | ||
|
||
Uses A-Za-z0-9 with the exception of I, i and 1. | ||
|
||
Requires user to be logged in for link creation. | ||
|
||
|
||
Usage | ||
----- | ||
|
||
1. pip install django-link-shortener | ||
|
||
2. Add '`shortener'` to your INSTALLED_APPS setting:: | ||
|
||
INSTALLED_APPS = [ | ||
... | ||
'shortener', | ||
] | ||
|
||
3. Include `shortener.urls` in your project urls.py:: | ||
|
||
path('s/', include('shortener.urls')), | ||
|
||
4. Run `python manage.py migrate` to create the shortener models. | ||
|
||
|
||
Testing | ||
------- | ||
1. Add the following to settings | ||
|
||
``` | ||
SHORTENER_ENABLE_TEST_PATH = True | ||
``` | ||
|
||
1. Start the development server and visit http://127.0.0.1:8000/s/test/<My-URL-HERE> | ||
to create a test shortcode. | ||
|
||
or | ||
|
||
Use shortener.create(user, link) to generate a link via code. Use shortener.expand(link) | ||
to revert | ||
|
||
6. Visit http://127.0.0.1:8000/s/<shortcode>/ to be redirected | ||
|
||
Configuration Options | ||
--------------------- | ||
Place in settings.py. Each setting be overridden on a per-user basis using the admin UrlProfile section | ||
|
||
SHORTENER_ENABLED | ||
Default: True | ||
|
||
Controls whether users without a shortener profile can create shortlinks. | ||
|
||
SHORTENER_MAX_URLS | ||
Default: -1 | ||
|
||
Controls the default maximum limit of generated urls per account. | ||
-1 sets infinite. | ||
|
||
SHORTENER_MAX_CONCURRENT | ||
Default: -1 | ||
|
||
Controls the default maximum limit of *concurrent* (active) generated urls per account. | ||
-1 sets infinite | ||
|
||
SHORTENER_LIFESPAN | ||
Default: -1 | ||
|
||
Sets the default lifespan of links in seconds | ||
-1 sets infinite | ||
|
||
SHORTENER_MAX_USES | ||
Default: -1 | ||
|
||
Sets the default amount of times a link can be followed | ||
-1 sets infinite | ||
|
||
SHORTENER_LENGTH | ||
Default: 5 | ||
|
||
Note: Omitted from UrlProfile | ||
|
||
Sets how many digits should be used for links. | ||
Tries up to three times to generate a unique shortcode where | ||
Each failure will result in length temporarily being increased by 1. | ||
|
||
SHORTENER_ENABLE_TEST_PATH | ||
Default: False | ||
|
||
If true, creates shortlinks for logged in users at s/test/<<url>>/ | ||
|
||
The response is the shortcode to use used at s/<<shortcode>> | ||
|
||
|
||
Common Use Cases | ||
---------------- | ||
goo.gl type usage (default). Unlimited concurrent links for an unlimited length of time | ||
|
||
:: | ||
|
||
SHORTENER_ENABLED = True | ||
SHORTENER_MAX_URLS = -1 | ||
SHORTENER_MAX_CONCURRENT = -1 | ||
SHORTENER_LIFESPAN = -1 | ||
SHORTENER_MAX_USES = -1 | ||
|
||
|
||
Internal temporary link usage (such as on nodeferret.com). 100 Temp links per minute. 1 usage per link. | ||
|
||
:: | ||
|
||
SHORTENER_ENABLED = True | ||
SHORTENER_MAX_URLS = -1 | ||
SHORTENER_MAX_CONCURRENT = 100 # To prevent spamming | ||
SHORTENER_LIFESPAN = 600 | ||
SHORTENER_MAX_USES = 1 | ||
|
||
|
||
Changelog | ||
--------- | ||
|
||
**v0.5** | ||
|
||
- Replaced NullBooleanField with BooleanField (Credit: sen-den) | ||
- Replaced travis-ci with github actions | ||
|
||
|
||
**v0.4** | ||
|
||
- Allow null values in UrlProfile; null fields will use global values | ||
- str representation of UrlProfile in admin | ||
- add user to str representation of UrlMap | ||
- removed 256 char limit on full_url (Credit: Khaeshah) | ||
|
||
|
||
Upgrade Instructions | ||
-------------------- | ||
|
||
**0.3 / 0.4 --> 0.5** | ||
|
||
:: | ||
|
||
pip install django-link-shortener==0.5 | ||
python manage.py migrate | ||
|
||
|
Oops, something went wrong.