Metadata-Version: 1.1
Name: django-url-shortening
Version: 1.0.0
Summary: A URL shortening app for Django.
Home-page: https://github.com/doubletapp/django-url-shortening
Author: Doubletapp
Author-email: info@doubletapp.ru
License: BSD
Description: django-url-shortening
        =====================
        
        A custom URL shortening app for Django with API.
        
        Usage
        =====
        
        1. Add ``urlshortening`` app to your ``INSTALLED_APPS`` and do
           ``migrate``
        
        2. Wire up the redirect view by adding to your URLconf
        
           ::
        
               ('^linkshortening/', include('urlshortening.urls'))
        
        3. Add settings (more about parameters further)
        
           ::
        
               INITIAL_URL_LEN = 6
               RETRY_COUNT = 5
               SHORT_URL_PATH = 'http://example.com/short-prefix/'
               REDIRECT_PREFIX = 'r'
        
        4. Now you can use API to make short links
        
           ``POST linkshortening/short/``
        
           With json data ``{"full_url": "http://example.com/a/b/c/d/e"}``
        
           And get response
        
           ::
        
               {"data": {
                   "short_id": "123456",
                   "short_url_path": "http://example.com/short-prefix/"
                }, "error": ""}
        
        5. You could also use ``urlshortening`` right from code
        
           ::
        
               from urlshortening.models import get_short_url, invalidate_url, get_full_url
        
           ::
        
               url = "http://example.com/a/b/c/d/e"
               short_url = get_short_url(url) # Url object
               print(short_url.short_id) # id for short url
        
           ::
        
               full_url = get_full_url(short_url.short_id) # Url object
               print(full_url.url) # "http://example.com/a/b/c/d/e"
        
           ::
        
               # You could also invalidate url
               invalidate_url(full_url.short_id)
        
        API
        ===
        
        **Get short link**
        
        -  **URL**
        
           ::
        
               /short/
        
        -  **Method:** ``POST``
        
        -  **Data Params**
        
           -  full\_url
        
        -  **Success Response:**
        
           -  **Code:** 200 **Content:**
              ``{ data: { "short_url_path": "000001" }, error: "" }``
        
        -  **Error Response:**
        
           -  **Code:** 400 **Content:** ``{ error : "full_url is empty" }``
        
           -  **Code:** 400 **Content:** ``{ error : "full_url is too long" }``
        
        **Get full link**
        
        -  **URL**
        
           ::
        
               /expand/:short_id/
        
        -  **Method:** ``GET``
        
        -  **URL Params**
        
           ::
        
               short_id=[string]
        
        -  **Success Response:**
        
           -  **Code:** 200 **Content:**
              ``{ error : "", data: { full_url: "http://example.com/to-000001" }}``
        
        -  **Error Response:**
        
           -  **Code:** 404 **Content:** ``{ error : "Link is expired" }``
        
           -  **Code:** 404 **Content:** ``{ error : "Url doesn\'t exist" }``
        
        **Get redirect**
        
        -  **URL**
        
           ::
        
               /REDIRECT_PREFIX/expand/:short_id/
        
        -  **Method:** ``GET``
        
        -  **URL Params**
        
           ::
        
               short_id=[string]
        
        -  **Success Response:**
        
           -  **Code:** 302
        
        -  **Error Response:**
        
           -  **Code:** 404 **Content:** ``{ error : "Link is expired" }``
        
           -  **Code:** 404 **Content:** ``{ error : "Url doesn\'t exist" }``
        
        **Invalidate url**
        
        -  **URL**
        
           ::
        
               /invalidate/
        
        -  **Method:** ``POST``
        
        -  **Data Params**
        
           -  short\_id
        
        -  **Success Response:**
        
           -  **Code:** 200 **Content:**
              ``{ error : "", data: { "short_id": "000001", "invalidated": "true" } }``
        
        -  **Error Response:**
        
           -  **Code:** 400 **Content:** ``{ error : "short_id is empty" }``
        
           -  **Code:** 400 **Content:**
              ``{ error : "Link is already expired" }``
        
           -  **Code:** 404 **Content:** ``{ error : "Url doesn\'t exist" }``
        
        Settings
        ========
        
        Available settings are:
        
        -  ``INITIAL_URL_LEN``
        
           Initial length of short id for url. Once you get more short id's than
           is possible in all combinations of ``INITIAL_URL_LEN`` symbols it
           will increase by one
        
        -  ``RETRY_COUNT``
        
           How many times do we to check before increasing ``INITIAL_URL_LEN``.
        
        -  ``SHORT_URL_PATH``
        
           Url that will be returned with ``short_id`` on
           ``POST linkshortening/short/`` request. It might help you to
           construct full url.
        
        -  ``REDIRECT_PREFIX``
        
           Select prefix to use redirect links. For example
           ``REDIRECT_PREFIX="r"`` and we get redirect links with format
           ``/r/expand/{short_id}/``
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Internet :: WWW/HTTP
