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
This commit is contained in:
42
README.md
Normal file
42
README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# PI Weekly Newspaper
|
||||
|
||||
Generates weekly ePub "newspapers" from the [Plymouth Independent](https://www.plymouthindependent.org/) RSS feed, optimized for the Xtreink X4 e-reader (800x480 screen).
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
source .venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
python app.py
|
||||
```
|
||||
|
||||
Open http://localhost:5000 in your browser.
|
||||
|
||||
## Features
|
||||
|
||||
- **Periodic RSS fetching** with configurable interval
|
||||
- **Automatic image processing** — downloads, resizes to e-reader constraints, converts to baseline JPEG
|
||||
- **ePub generation** with articles as chapters, table of contents, and embedded images
|
||||
- **AI-generated covers** via Pollinations.ai (free, no API key) with text fallback
|
||||
- **Web UI** accessible from any device on your network
|
||||
- **Scheduled or manual publishing**
|
||||
|
||||
## Usage
|
||||
|
||||
1. Click **Fetch Now** on the dashboard to pull articles
|
||||
2. Go to **Publish**, select the target week, toggle articles on/off
|
||||
3. Choose a cover method (AI or Text) and click **Generate Issue**
|
||||
4. Download the `.epub` from the **Issues** archive
|
||||
|
||||
## Configuration
|
||||
|
||||
Settings are editable via the web UI at `/settings`, or in `config.py`:
|
||||
|
||||
- `FEED_URL` — RSS feed URL
|
||||
- `FETCH_INTERVAL_HOURS` — how often to check for new articles
|
||||
- `IMAGE_MAX_LANDSCAPE` / `IMAGE_MAX_PORTRAIT` — image bounding box dimensions
|
||||
|
||||
## Access from Other Devices
|
||||
|
||||
The app binds to `0.0.0.0:5000`, so access it from any device on your network using your Mac's IP address (e.g., `http://192.168.1.x:5000`).
|
||||
Reference in New Issue
Block a user