global option

This commit is contained in:
mi
2025-11-07 18:21:01 +10:00
parent 52920e8fa8
commit a69f64de7a
2 changed files with 29 additions and 7 deletions

28
app.py
View File

@@ -1,6 +1,6 @@
import os
from flask import Flask, render_template, abort, jsonify, request
from comics_data import COMICS
from comics_data import COMICS, FULL_WIDTH_DEFAULT
app = Flask(__name__)
@@ -8,18 +8,36 @@ app = Flask(__name__)
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'your-secret-key')
def is_full_width(comic):
"""Determine if a comic should be full width based on global and per-comic settings"""
# If comic explicitly sets full_width, use that value
if 'full_width' in comic:
return comic['full_width']
# Otherwise use the global default
return FULL_WIDTH_DEFAULT
def enrich_comic(comic):
"""Add computed properties to comic data"""
if comic is None:
return None
enriched = comic.copy()
enriched['full_width'] = is_full_width(comic)
return enriched
def get_comic_by_number(number):
"""Get a comic by its number"""
for comic in COMICS:
if comic['number'] == number:
return comic
return enrich_comic(comic)
return None
def get_latest_comic():
"""Get the most recent comic"""
if COMICS:
return COMICS[-1]
return enrich_comic(COMICS[-1])
return None
@@ -48,7 +66,7 @@ def comic(comic_id):
def archive():
"""Archive page showing all comics"""
# Reverse order to show newest first
comics = list(reversed(COMICS))
comics = [enrich_comic(comic) for comic in reversed(COMICS)]
return render_template('archive.html', title='Archive',
comics=comics)
@@ -62,7 +80,7 @@ def about():
@app.route('/api/comics')
def api_comics():
"""API endpoint - returns all comics as JSON"""
return jsonify(COMICS)
return jsonify([enrich_comic(comic) for comic in COMICS])
@app.route('/api/comics/<int:comic_id>')

View File

@@ -1,6 +1,10 @@
# Comic data
# Edit this file to add, remove, or modify comics
# Global setting: Set to True to make all comics full-width by default
# Individual comics can override this with 'full_width': False
FULL_WIDTH_DEFAULT = False
COMICS = [
{
'number': 1,
@@ -9,14 +13,14 @@ COMICS = [
'date': '2025-01-01',
'alt_text': 'The very first comic',
'author_note': 'This is where your comic journey begins!',
'full_width': True # Optional: removes border and expands image width
'full_width': True # Optional: override FULL_WIDTH_DEFAULT for this comic
},
{
'number': 2,
'filename': 'comic-002.jpg',
'date': '2025-01-08',
'alt_text': 'The second comic',
'full_width': True
'full_width': True # Override FULL_WIDTH_DEFAULT
},
{
'number': 3,