Files
Goddess/README.md
TutorialsGHG b011c7ad75 Initial commit
2026-04-12 21:57:21 +02:00

121 lines
3.6 KiB
Markdown

# NotifyPulse V2
A fast, polished Windows background notification app with a desktop Web UI and a **mobile PWA** for wallpaper delivery.
---
## What's new in V2
| Feature | V1 | V2 |
|---|---|---|
| Architecture | Monolithic single file | Modular: backend + `/ui` + `/pwa` |
| PWA support | ❌ | ✅ iOS + Android |
| Mobile wallpaper push | ❌ | ✅ Lockscreen + Background |
| Settings persistence | Config file only | `settings.json` + live UI |
| Settings options | Name + interval + stretch | +opacity, +duration, +sound, +hotkey, +auth token, +startup behavior |
| Poll speed | 5s file watch / 1s UI | 4s file watch / 1s UI / 3s countdown |
| CORS | ❌ | ✅ (needed for PWA) |
| API | Basic | Extended: `/api/fire_now`, `/api/entries` CRUD, `/api/log`, `/api/pwa/*` |
| Desktop UI | Inline HTML in .py | Separate `ui/index.html` (sidebar layout) |
---
## Folder structure
```
NotifyPulse/
├── notifier.py ← Main app
├── make_ico.py ← Icon generator
├── requirements.txt
├── build.bat
├── ui/
│ └── index.html ← Desktop Web UI
└── pwa/
├── index.html ← Mobile PWA
├── manifest.json
└── sw.js ← Service Worker
```
Config lives in `%APPDATA%\Roaming\NotifyPulse\`:
```
NotifyPulse/
├── notifications.txt ← Your entries (auto-reload on save)
├── settings.json ← Persisted settings
├── icon.png ← Optional custom icon
├── wallpapers/ ← PC wallpapers
├── Overlay/ ← Screen overlay images
└── Mobile/
├── Lockscreen.jpg ← Mobile lock screen image
└── Background.jpg ← Mobile home screen background
```
---
## Quick start
```bat
pip install -r requirements.txt
python make_ico.py
python notifier.py
```
Or build an `.exe`:
```bat
build.bat
```
---
## Mobile PWA setup
1. Start NotifyPulse on your PC.
2. Find your PC's local IP (e.g. `192.168.1.50`).
3. On your phone, open: `http://192.168.1.50:5000/pwa`
4. **iOS**: tap Share → Add to Home Screen
5. **Android**: tap ⋮ → Install App
The PWA polls the PC every 4 seconds. When a `change.wallpaper.mobile` entry fires (or you click "Request New Wallpaper"), the PWA instantly receives the `Lockscreen` and `Background` images and lets you save them to your camera roll.
---
## notifications.txt syntax
```
@name My App Name
@interval 10 30 # min/max minutes
# Weighted random (picks by % weight)
Take a break! | 35%
Drink water! | 30%
# Daily at fixed time
Morning standup | 09:00
End of day | 17:30
# Special commands
change.wallpaper | 20% # change PC wallpaper
change.wallpaper.mobile | 10% # push new wallpaper to phone
show.overlay | 15% # fullscreen image overlay (6s)
show.overlay.10 | 10% # overlay for 10s
```
---
## API reference
| Method | Endpoint | Description |
|---|---|---|
| GET | `/api/state` | Full app state |
| POST | `/api/pause` | Toggle pause |
| POST | `/api/fire_now` | Fire random entry now |
| GET/POST | `/api/entries` | Read/write notifications.txt |
| GET/POST | `/api/settings` | Read/write settings |
| GET | `/api/log` | Event log |
| POST | `/api/test_notification` | Send test toast |
| POST | `/api/test_wallpaper` | Test PC wallpaper change |
| POST | `/api/test_overlay` | Test screen overlay |
| POST | `/api/test_mobile_wallpaper` | Push mobile wallpaper |
| POST | `/api/pwa/ping` | PWA heartbeat |
| GET | `/api/pwa/wallpaper` | PWA polls for pending wallpaper |
| POST | `/api/pwa/trigger_wallpaper` | PWA requests new wallpaper |