diff options
author | Joris | 2024-05-20 09:40:11 +0200 |
---|---|---|
committer | Joris | 2024-05-20 09:40:11 +0200 |
commit | 436ddf6f23242eb709b591cd5e9cbf1553f8d390 (patch) | |
tree | dfed58b5e553f131fd3009f03f095ca40efc5949 /src/utils.py | |
parent | 6baa0419d3b5eb63c70be446226a321f900e433d (diff) |
Allow to upload file and download from given link
Diffstat (limited to 'src/utils.py')
-rw-r--r-- | src/utils.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/utils.py b/src/utils.py new file mode 100644 index 0000000..ccf92c0 --- /dev/null +++ b/src/utils.py @@ -0,0 +1,19 @@ +import io + +def transfer(reader, writer, content_length = None, buffer_size = io.DEFAULT_BUFFER_SIZE): + if content_length is None: + while (data := reader.read(buffer_size)): + writer.write(data) + else: + remaining = content_length + while remaining > 0: + size = min(buffer_size, remaining) + writer.write(reader.read(size)) + remaining -= size + +def sanitize_filename(s: str) -> str: + return '.'.join([sanitize_filename_part(p) for p in s.split('.')]) + +def sanitize_filename_part(s: str) -> str: + alnum_or_space = ''.join([c if c.isalnum() else ' ' for c in s]) + return '-'.join(alnum_or_space.split()) |