diff options
Diffstat (limited to 'brevisurl')
| -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 |
