-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimage_manager.py
More file actions
64 lines (55 loc) · 2.24 KB
/
image_manager.py
File metadata and controls
64 lines (55 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from os import listdir, remove
from os.path import isfile
UPLOAD_FOLDER = 'static/images_users'
UPLOAD_FOLDER_AVATARS = 'static/avatars'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
def allowedFile(filename):
return '.' in filename and \
filename.rsplit('.', 1)[-1].lower() in ALLOWED_EXTENSIONS
def getImagesCount(upload_folder=UPLOAD_FOLDER):
return len([f for f in listdir(upload_folder) if "_" not in f])
def SaveImg(img, upload_folder=UPLOAD_FOLDER, img_id=0):
fileName = img.filename.split(".")
fileName[0] = str(getImagesCount() + 1) if img_id == 0 else img_id
fileName = f"{fileName[0]}.{fileName[-1]}"
img.save(f"{upload_folder}/{fileName}")
return fileName
def EditImg(img, obj, upload_folder=UPLOAD_FOLDER):
if isfile(f"{upload_folder}/{getImageNameById(obj.id)}"):
remove(f"{upload_folder}/{getImageNameById(obj.id)}")
fileName = img.filename.split(".")
fileName[0] = str(obj.id)
fileName = f"{fileName[0]}.{fileName[-1]}"
img.save(f"{upload_folder}/{fileName}")
return fileName
def SaveMedia(images, upload_folder=UPLOAD_FOLDER, img_id=0):
i = 1
indexes = []
for img in images:
fileName = img.filename.split(".")
fileName[0] = f"{str(getImagesCount() + 1) if img_id == 0 else img_id}_{i}"
fileName = f"{fileName[0]}.{fileName[-1]}"
img.save(f"{upload_folder}/{fileName}")
indexes.append(fileName)
i += 1
return " ".join(indexes)
def EditMedia(images, project, upload_folder=UPLOAD_FOLDER):
indexes = []
media = getMediaNamesByIds(project.mediaNames)
for m in media:
if isfile(f"{upload_folder}/{m}"):
remove(f"{upload_folder}/{m}")
for i in range(len(images)):
fileName = images[i].filename.split(".")
fileName[0] = f"{project.id}_{i + 1}"
fileName = f"{fileName[0]}.{fileName[-1]}"
images[i].save(f"{upload_folder}/{fileName}")
indexes.append(fileName)
return " ".join(indexes)
def getImageNameById(id, upload_folder=UPLOAD_FOLDER):
names = [f.split(".") for f in listdir(upload_folder) if "_" not in f]
for name in names:
if int(name[0]) == id:
return f"{name[0]}.{name[-1]}"
def getMediaNamesByIds(ids):
return ids.split(" ")