# utils.py import os from werkzeug.utils import secure_filename from datetime import datetime from models import Photo, Like from database import db ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'webp'} def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS def save_photo(file, upload_folder): if file and allowed_file(file.filename): filename = secure_filename(file.filename) timestamp = datetime.now().strftime('%Y%m%d_%H%M%S_') filename = timestamp + filename filepath = os.path.join(upload_folder, filename) file.save(filepath) return filename return None def get_trending_photos(limit=3): # Ambil foto dengan like terbanyak return Photo.query.order_by(Photo.likes_count.desc()).limit(limit).all()