34 lines
928 B
Python
34 lines
928 B
Python
# coding: utf-8
|
|
"""
|
|
Filtering functions to handle images.
|
|
|
|
This includes functions to download images.
|
|
"""
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
import logging
|
|
import os
|
|
|
|
from flatisfy.filters.cache import ImageCache
|
|
|
|
|
|
LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def download_images(flats_list, config):
|
|
"""
|
|
Download images for all flats in the list, to serve them locally.
|
|
|
|
:param flats_list: A list of flats dicts.
|
|
:param config: A config dict.
|
|
"""
|
|
photo_cache = ImageCache(storage_dir=os.path.join(config["data_directory"], "images"))
|
|
for flat in flats_list:
|
|
for photo in flat["photos"]:
|
|
# Download photo
|
|
image = photo_cache.get(photo["url"])
|
|
# And store the local image
|
|
# Only add it if fetching was successful
|
|
if image:
|
|
photo["local"] = photo_cache.compute_filename(photo["url"])
|