summaryrefslogtreecommitdiff
path: root/old/server/app/main/utils.py
blob: 62d9c95f596e05a5a48508165bbd072509d3a8a4 (plain)
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
from flask import current_app as app
from PIL import Image
import numpy as np
import cv2 as cv
import os
from os.path import join

def ensure_pil(im):
    try:
        im.verify()
        return im
    except:
        return Image.fromarray(im.astype('uint8'), 'RGB')

def ensure_np(im):
    if type(im) == np.ndarray:
        return im
    return np.asarray(im, np.uint8)

def get_recent_uploads(limit=10):
    d_uploads = app.config['UPLOADS']
    d_renders = app.config['RENDERS']

    # list all files in uploads dir
    filenames = [s for s in os.listdir(d_uploads)
         if os.path.isfile(os.path.join(d_uploads, s))]
    # sort uploaded files by date
    filenames.sort(key=lambda s: os.path.getmtime(os.path.join(d_uploads, s)),reverse=True)
    basenames = [os.path.splitext(os.path.basename(f))[0] for f in filenames]
    basenames = basenames[:limit]
    filenames = [f for f in basenames if os.path.isfile(join(d_renders,'{}_dull.jpg'.format(f)))]

    # create list for uploads and renders
    uploads = [join('/img/uploads',f) for f in filenames]
    renders = [join('/img/renders','{}_dull'.format(f)) for f in filenames]
    urls = [join('/d',f) for f in basenames]
    return uploads, renders, urls