aboutsummaryrefslogtreecommitdiffstats
path: root/brevisurl
diff options
context:
space:
mode:
Diffstat (limited to 'brevisurl')
-rw-r--r--brevisurl/backends/local.py3
-rw-r--r--brevisurl/settings.py9
-rw-r--r--brevisurl/urls.py3
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