Skip to content

Commit

Permalink
Merge pull request #11 from ronaldgrn/v0.5
Browse files Browse the repository at this point in the history
v0.5 release
  • Loading branch information
ronaldgrn authored Jul 16, 2022
2 parents e801d7c + ff16cda commit 3e800af
Show file tree
Hide file tree
Showing 6 changed files with 201 additions and 166 deletions.
13 changes: 10 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ SHORTENER_LENGTH

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.
Each failure will result in length temporarily being increased by 1.

SHORTENER_ENABLE_TEST_PATH
Default: False
Expand Down Expand Up @@ -138,19 +138,26 @@ Internal temporary link usage (such as on nodeferret.com). 100 Temp links per mi
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.3 / 0.4 --> 0.5**

::

pip install django-link-shortener==0.4
pip install django-link-shortener==0.5
python manage.py migrate
Binary file added dist/django-link-shortener-0.5.tar.gz
Binary file not shown.
Binary file added dist/django_link_shortener-0.5-py3-none-any.whl
Binary file not shown.
339 changes: 179 additions & 160 deletions django_link_shortener.egg-info/PKG-INFO
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


Loading

0 comments on commit 3e800af

Please sign in to comment.