diff options
| author | Vladimír Gorej | 2012-06-20 09:42:25 -0700 |
|---|---|---|
| committer | Vladimír Gorej | 2012-06-20 09:42:25 -0700 |
| commit | cbac6fdf16899ba94691a753703fc9a31ba75e73 (patch) | |
| tree | 689a2a9e2a8219cb501b32814eeee57b18378299 /brevisurl/backends/local.py | |
| parent | 6a0aabe7e1b2120e441f9b8801812a242b70aa25 (diff) | |
| parent | e56895d6bf400dcacbdbf66abeef50e81b5d6d71 (diff) | |
| download | django-brevisurl-cbac6fdf16899ba94691a753703fc9a31ba75e73.tar.bz2 | |
Merge pull request #8 from unaizalakain/master
Merge pull request #8 from unaizalakain/master
Diffstat (limited to 'brevisurl/backends/local.py')
| -rw-r--r-- | brevisurl/backends/local.py | 6 |
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 |
