aboutsummaryrefslogtreecommitdiff
path: root/src/utils.py
diff options
context:
space:
mode:
authorJoris2024-05-20 09:40:11 +0200
committerJoris2024-05-20 09:40:11 +0200
commit436ddf6f23242eb709b591cd5e9cbf1553f8d390 (patch)
treedfed58b5e553f131fd3009f03f095ca40efc5949 /src/utils.py
parent6baa0419d3b5eb63c70be446226a321f900e433d (diff)
Allow to upload file and download from given link
Diffstat (limited to 'src/utils.py')
-rw-r--r--src/utils.py19
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())