aboutsummaryrefslogtreecommitdiffstats
path: root/brevisurl/backends
diff options
context:
space:
mode:
authorVladimír Gorej2012-06-20 09:42:25 -0700
committerVladimír Gorej2012-06-20 09:42:25 -0700
commitcbac6fdf16899ba94691a753703fc9a31ba75e73 (patch)
tree689a2a9e2a8219cb501b32814eeee57b18378299 /brevisurl/backends
parent6a0aabe7e1b2120e441f9b8801812a242b70aa25 (diff)
parente56895d6bf400dcacbdbf66abeef50e81b5d6d71 (diff)
downloaddjango-brevisurl-cbac6fdf16899ba94691a753703fc9a31ba75e73.tar.bz2
Merge pull request #8 from unaizalakain/master
Merge pull request #8 from unaizalakain/master
Diffstat (limited to 'brevisurl/backends')
-rw-r--r--brevisurl/backends/local.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/brevisurl/backends/local.py b/brevisurl/backends/local.py
index 1b72e64..69944e8 100644
--- a/brevisurl/backends/local.py
+++ b/brevisurl/backends/local.py
@@ -12,6 +12,8 @@ from brevisurl.models import ShortUrl
log = logging.getLogger(__name__)
+class TokensExhausted(Exception):
+ pass
class BrevisUrlBackend(BaseBrevisUrlBackend):
@@ -53,9 +55,11 @@ class BrevisUrlBackend(BaseBrevisUrlBackend):
def __generate_token(self, size=5):
chars = list(string.ascii_letters + string.digits)
+ if ShortUrl.objects.count() >= len(chars) ** size:
+ raise TokensExhausted('Consider incrementing the token length or chars list')
random.shuffle(chars)
while True:
token = ''.join([random.choice(chars) for x in range(size)])
if not ShortUrl.objects.filter(backend=self.class_path, shortened_url__endswith=token).count():
break
- return token \ No newline at end of file
+ return token