Repository navigation
v0.1.2
Added
• Mark All as Played: Added a "Mark All Played" button in the podcast detail header with an unplayed episode count confirmation prompt (db.js, web-api.js, index.html, app.js).
• Episode Multi-Select and Batch Actions: Added selection mode to the episode list toolbar, selectable episode cards with checkboxes, and a batch action bar with Select All, Deselect All, Mark Selected as Played, and Done actions (index.html, app.css, app.js).
• Batch Played Sync Endpoints: Added POST /api/episodes/mark-played-batch and POST /api/podcasts/:id/mark-all-played endpoints with SQLite transaction handling and delta action logging (action = 'play') for two-way AntennaPod synchronization (web-api.js, db.js).
• OPML Subscription Export: Added GET /api/subscriptions/export.opml endpoint and an "Export OPML" button in the Settings view to export all active subscriptions in standard OPML 2.0 XML format (feed-parser.js, web-api.js, index.html).
• Test Suite: Added unit and integration tests covering batch playback state updates, mark-all-played filtering, and AntennaPod sync action recording (batch-mark-played.test.js).
Fixed
• HTML Entity Decoding: Fixed raw HTML entity escape sequences (such as ', ", &, ’, and numeric character references like ’ or ') rendering literally in podcast titles, episode titles, authors, and show notes (feed-parser.js, db.js, app.js).
Changed
• Documentation: Updated README.md feature list to include OPML export, batch episode actions, and the Mark All Played functionality.
• Assets: Refreshed UI screenshot in screenshot.png to display recent interface elements.
Full Changelog: v0.1.2...v0.1.2