Mercurial > p > roundup > code
view roundup/cgi/timestamp.py @ 7812:ecc34b7917e2
chore(refactor): multiple changes/cleanups
Simplify 'for x in [list val]; alist.append(x)' to 'alist = list([list
val])'. Easier to read as copy of list. Also twice as fast although
speed not an issue.
Remove unneeded list() wrappers. Replace set(list comprehension) with
set comprehension.
Also add trailing ,'s to last element in tuples/lists.
Add some noqa items for acceptable operations in context.
Switch " ... \" ...\" ..." to: ' ... " ... " ...' to remove need to
escape internal '"'.
Change 'not x in y' to 'x not in y'.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 16 Mar 2024 21:08:16 -0400 |
| parents | 216662fbaaee |
| children |
line wrap: on
line source
'''Set of functions of adding/checking timestamp to be used to limit form submission for cgi actions. ''' import base64 import binascii import struct import time from roundup.cgi.exceptions import FormError from roundup.i18n import _ from roundup.anypy.strings import b2s, s2b def pack_timestamp(): return b2s(base64.b64encode(struct.pack("i", int(time.time()))).strip()) def unpack_timestamp(s): try: timestamp = struct.unpack("i", base64.b64decode(s2b(s)))[0] except (struct.error, binascii.Error, TypeError): raise FormError(_("Form is corrupted.")) return timestamp class Timestamped: def timecheck(self, field, delay): try: created = unpack_timestamp(self.form[field].value) except KeyError: raise FormError(_("Form is corrupted, missing: %s.") % field) if time.time() - created < delay: raise FormError(_("Responding to form too quickly.")) return True
