diff options
| -rw-r--r-- | brevisurl/backends/local.py | 3 | ||||
| -rw-r--r-- | brevisurl/settings.py | 9 | ||||
| -rw-r--r-- | brevisurl/urls.py | 3 | 
3 files changed, 12 insertions, 3 deletions
| diff --git a/brevisurl/backends/local.py b/brevisurl/backends/local.py index 6c3f6b4..9cb37a6 100644 --- a/brevisurl/backends/local.py +++ b/brevisurl/backends/local.py @@ -57,8 +57,9 @@ class BrevisUrlBackend(BaseBrevisUrlBackend):                  log.exception('Unknown exception raised while shortening url "%s"', original_url)                  raise -    def __generate_token(self, size=5): +    def __generate_token(self):          chars = brevisurl.settings.LOCAL_BACKEND_TOKEN_CHARS +        size = brevisurl.settings.LOCAL_BACKEND_TOKEN_LENGTH          if ShortUrl.objects.count() >= math.pow(len(chars), size):              raise TokensExhaustedError('Consider incrementing the token length or change the char list')          random.shuffle(chars) diff --git a/brevisurl/settings.py b/brevisurl/settings.py index 32d7fbf..5037a07 100644 --- a/brevisurl/settings.py +++ b/brevisurl/settings.py @@ -10,4 +10,11 @@ DEFAULT_BACKEND = getattr(settings, 'BREVISURL_BACKEND', 'brevisurl.backends.loc  LOCAL_BACKEND_DOMAIN = getattr(settings, 'BREVISURL_BACKEND_LOCAL_DOMAIN', None)  # Characters that are used to generate tokens for local backend -LOCAL_BACKEND_TOKEN_CHARS = getattr(settings, 'BREVISURL_LOCAL_BACKEND_TOKEN_CHARS', list(string.ascii_letters + string.digits))
\ No newline at end of file +LOCAL_BACKEND_TOKEN_CHARS = getattr(settings, 'BREVISURL_LOCAL_BACKEND_TOKEN_CHARS', list(string.ascii_letters + string.digits)) + +# Settings for token length +LOCAL_BACKEND_TOKEN_LENGTH = getattr(settings, 'BREVISURL_LOCAL_BACKEND_TOKEN_LENGTH', 5) + +# Settings for url pattern +LOCAL_BACKEND_URL_PATTERN = getattr(settings, 'BREVISURL_LOCAL_BACKEND_URL_PATTERN', +                                    r'^(?P<token>[a-zA-Z0-9]{' + str(LOCAL_BACKEND_TOKEN_LENGTH) + r'})$')
\ No newline at end of file diff --git a/brevisurl/urls.py b/brevisurl/urls.py index e2ca7e9..cf9b51a 100644 --- a/brevisurl/urls.py +++ b/brevisurl/urls.py @@ -1,8 +1,9 @@  from django.conf.urls import patterns, url +import brevisurl.settings  from brevisurl import views  urlpatterns = patterns('brevisurl.views', -    url(r'^(?P<token>[a-zA-Z0-9]{5})$', views.BrevisUrlRedirectView.as_view(), name='brevisurl_redirect'), +    url(brevisurl.settings.LOCAL_BACKEND_URL_PATTERN, views.BrevisUrlRedirectView.as_view(), name='brevisurl_redirect'),  )
\ No newline at end of file | 
