Commit Graph

29 Commits

Author SHA1 Message Date
cottongin
bdab628953 feat: update UI labels and remove unused config for mosaic cover
Made-with: Cursor
2026-04-06 19:29:59 -04:00
cottongin
9c4fe7a0be feat: pass image paths to cover generator in scheduler
Made-with: Cursor
2026-04-06 19:27:49 -04:00
cottongin
1b9f5324ed feat: pass image paths to cover generator in publish route
Made-with: Cursor
2026-04-06 19:25:14 -04:00
cottongin
362e0c9b8e feat: implement mosaic cover generation logic
Made-with: Cursor
2026-04-06 19:21:55 -04:00
cottongin
b2d084cd69 docs: add mosaic cover implementation plan
Made-with: Cursor
2026-04-06 19:18:18 -04:00
cottongin
8deb71b81a docs: add mosaic cover design spec
Made-with: Cursor
2026-04-06 19:16:12 -04:00
cottongin
33de384ab5 fix: correct conftest import in test_fetcher
tests/ has no __init__.py so "from tests.conftest" fails. Use
"from conftest" which pytest resolves automatically.

Made-with: Cursor
2026-04-06 19:02:36 -04:00
cottongin
a017abfa03 test: add obituary headline filtering test
Made-with: Cursor
2026-04-06 19:00:30 -04:00
cottongin
67c35f7e9c feat(cover): filter obituaries from cover headlines
Exclude articles categorized as "Obituaries" from the headline list
passed to cover generation. Applied in all three call sites: manual
publish, issue regenerate, and auto-publish scheduler.

Made-with: Cursor
2026-04-06 18:59:51 -04:00
cottongin
9a8b586292 feat(cover): pixel-width headline truncation and larger font
Replace character-count truncation (45 chars) with Pillow textbbox
pixel-width measurement. Bump headline font 14→18, line spacing 22→26.

Made-with: Cursor
2026-04-06 18:58:42 -04:00
cottongin
d6cef67420 Add cover refinements implementation plan
Five-task plan covering pixel-width truncation, font size bump,
and obituary filtering across three call sites.

Made-with: Cursor
2026-04-06 18:56:38 -04:00
cottongin
c4300b02b8 Add cover refinements design spec
Spec for three cover generation improvements: omit obituaries
from headlines, increase font size, and use pixel-width truncation.

Made-with: Cursor
2026-04-06 18:54:49 -04:00
cottongin
872d90d9d9 fix: delete issues, ePub reader (JSZip, linear cover, fonts), Pico dialog, UI polish
- Add POST /issues/<id>/delete route with file cleanup
- Fix ePub reader: add JSZip dependency, make cover linear in spine,
  inject system fonts into rendition
- Replace browser confirm() with Pico CSS dialog component
- Fix dashboard button sizing and consistency
- Add favicon, override Pico font stack to suppress Firefox warnings
- Compact issue action buttons

Made-with: Cursor
2026-04-06 18:40:04 -04:00
cottongin
c7c6cd979b chore: add run.py entrypoint, update .gitignore and README
Moved the app entrypoint from app.py __main__ block to a dedicated
run.py. Updated .gitignore to exclude editor, superpowers, and OS files.

Made-with: Cursor
2026-04-06 18:39:49 -04:00
cottongin
45e94d68da style: UI consistency — tab bar, calendar, button classes, consistent element sizing
Made-with: Cursor
2026-04-06 17:41:21 -04:00
cottongin
8d58fa92b6 feat: in-app ePub reader with epub.js, TOC sidebar, chapter navigation
Made-with: Cursor
2026-04-06 17:39:37 -04:00
cottongin
5ca7156723 feat: publish UI rewrite — tabs, calendar widget, multi-week and single-article support
Made-with: Cursor
2026-04-06 17:06:52 -04:00
cottongin
807ab8610d fix: tighten ePub image spacing — CSS margins, HTML cleanup for empty tags and wrappers
Made-with: Cursor
2026-04-06 17:04:40 -04:00
cottongin
49acf09aa1 feat: rewrite cover generation — 480×800 portrait, themed AI backgrounds, two-layer pipeline
Made-with: Cursor
2026-04-06 17:02:36 -04:00
cottongin
5fec07c287 feat: add COVER_SIZE config, issue_type column to Issue model
Made-with: Cursor
2026-04-06 16:59:27 -04:00
cottongin
5c924f7dba feat: full integration — app.py wiring, scheduler startup, route registration, README
- Wire blueprints and scheduler into create_app()
- Add start_scheduler param to skip scheduler in tests
- Fix Setting.get/set to use modern db.session.get()
- Remove unused imports from conftest and models
- Add README with quick start and usage guide

Made-with: Cursor
2026-04-06 15:22:38 -04:00
cottongin
ec9f31f072 feat: complete web UI — dashboard, articles, publish, settings, issues
Made-with: Cursor
2026-04-06 15:21:18 -04:00
cottongin
50ff2e1533 feat: APScheduler manager with fetch interval and auto-publish
Made-with: Cursor
2026-04-06 15:18:37 -04:00
cottongin
01f8366e85 feat: ePub builder with chapters, images, TOC, cover
Made-with: Cursor
2026-04-06 15:17:21 -04:00
cottongin
d88a0817b7 feat: cover generation with Pollinations.ai and text fallback
Made-with: Cursor
2026-04-06 15:12:01 -04:00
cottongin
46796b8bf8 feat: RSS fetcher with dedup, image download, HTML rewriting
Made-with: Cursor
2026-04-06 15:03:55 -04:00
cottongin
58fe002c6f feat: image download, resize-to-fit, baseline JPEG conversion
Made-with: Cursor
2026-04-06 15:01:03 -04:00
cottongin
b0e1ed20bd feat: SQLAlchemy models for Article, Image, Issue, Setting 2026-04-06 14:56:45 -04:00
cottongin
88e359069d scaffold: project structure, config, Flask app factory, test fixtures
Made-with: Cursor
2026-04-06 14:54:00 -04:00