make_post_sell/CHANGELOG.rst
russell@unturf.com f780f0dab6 Redesign ring header into structured 2-row grid, show full now-playing title and thumbnail
Ring header restructured from flat 1fr/auto grid into two semantic rows:
- Info row: title + badges left, progress counter right
- Controls row: Reverse and Autoplay toggles right-aligned

Now-playing row shows full title (no line-clamp truncation) and product
thumbnail. JS reads og:image meta tag for current thumbnail during SPA
navigation. SPA updates for edit button, download button, file info,
comments, and canonical link. Footer and docs updates.
2026-02-09 11:46:54 -05:00

154 lines
4.9 KiB
ReStructuredText

Changelog
=========
All notable changes to this project will be documented in this file.
2026-02-09
----------
DJ Crossfade
~~~~~~~~~~~~
* 7-second audio + visual crossfade starts before current video ends
* Volume ramps down on outgoing, ramps up on incoming simultaneously
* Opacity crossfade dissolves between videos during transition
* Countdown overlay shows during crossfade with Play Now / Cancel controls
* User-initiated transitions (click related item, queue) also get visual crossfade
* Falls back to standard countdown when preloaded data isn't ready or media types differ
Footer & Links
~~~~~~~~~~~~~~
* Fixed apex domain link to use ``www.makepostsell.com`` in shop footer
* Added Source Code (GitLab) and PyPI links to shop footer
2026-02-08
----------
Watch Mode v2
~~~~~~~~~~~~~
* Continuous playback with crossfade transitions between media
* Discovery ring: deterministic content traversal precomputed per shop
* Up Next sidebar with compact rows, numbered index, and queue management
* Countdown overlay (7s) as frosted-glass bottom bar between items
* Queue system: add/remove items, reorder playback
* Autoplay toggle switch inline with Up Next heading
* Two-phase preload: fast JSON fetch, then buffer media 30s before end
* Recently-played tracking: filter items from Up Next for 4 hours
* Support for video, audio, and static content (PDFs, images) with auto-advance
* Sticky video on desktop scroll (offset below ribbon)
* ``watch.js`` — new standalone JS module for all watch mode logic
Pop-out Media Player
~~~~~~~~~~~~~~~~~~~~
* Draggable pop-out window with prev/next navigation
* Keyboard shortcuts and responsive controls
* Auto-advance for images/PDFs (60s timer, reset on scroll)
* ``player.js`` — new standalone JS module
* ``/random`` and ``/tv`` endpoints for media playback
Lazy Cart Creation
~~~~~~~~~~~~~~~~~~
* Anonymous session carts are now in-memory until a product is added
* Prevents bots and crawlers from creating empty cart rows in the database
* UUID stays stable across requests via session cookie
* Transient cart guard in authentication merge flow
AJAX Comments
~~~~~~~~~~~~~
* Comment form submits via fetch when JS is available
* Preserves media playback — no page reload interrupts
* Falls back to normal POST + redirect without JS
* ``comments.js`` — new standalone JS module
Email Subscriptions
~~~~~~~~~~~~~~~~~~~
* Email digest subscriptions with configurable frequency
* @mentions in comments notify mentioned users
* RSS and Atom feed autodiscovery in ``<head>``
* Subscribe link in shop nav bar
Related Content
~~~~~~~~~~~~~~~
* Jaccard similarity for related content ranking
* Related content thumbnails in sidebar
Feeds & SEO
~~~~~~~~~~~~
* Sitemap generation (``/sitemap.xml``)
* RSS (``/rss.xml``) and Atom (``/atom.xml``) feeds
* Google site verification meta tag support
* Feeds served as ``application/xml`` for browser rendering
* Feed links open in new window
Adyen Integration
~~~~~~~~~~~~~~~~~
* Added Adyen as a payment processor
* Per-shop enable/disable toggle
* See ``docs/ADYEN.md`` for details
Stripe Improvements
~~~~~~~~~~~~~~~~~~~
* Payment tracking and webhook resilience
* Per-shop Stripe enable/disable
UI & Layout
~~~~~~~~~~~
* Sticky ribbon + logo/nav on desktop scroll
* Footer pushed to bottom of viewport on short pages
* Product media uses viewport-relative sizing (``max-height: 42vh``)
* Reduced heading font sizes for tighter layout
* Product/content dates toggle (``show_dates`` shop setting)
* Inline video playback on thumbnail click (replaced pop-up)
Infrastructure
~~~~~~~~~~~~~~
* ``/version`` endpoint with baked git hash for deploy verification
* ``GIT_HASH`` tracked in repo, baked at install time
* Removed jQuery — all vanilla JavaScript
* Replaced JS toggles with pure CSS ``<details>`` elements
* Pinned ``setuptools<81`` for Python 3.12+ compatibility
2025-12-22 (2:30 PM)
--------------------
PayPal Integration
~~~~~~~~~~~~~~~~~~
* Added PayPal as a payment processor alongside Stripe and crypto payments
* New ``PayPalUserShop`` model for saved payment methods
* Invoice model extended with ``paypal_order_id`` and ``paypal_capture_id`` columns
* Shop settings now include PayPal client ID and secret configuration
* Checkout page supports PayPal payment option when enabled
* Added PayPal saved payment methods (vault) support
* Added ``/billing/disconnect-paypal`` route for users to manage saved PayPal
* See ``docs/PAYPAL.md`` for details
CSS Grid Lanes
~~~~~~~~~~~~~~
* Added toggleable CSS Grid Lanes (masonry layout) setting per shop
* New ``grid_lanes_enabled`` column on Shop model
Video Thumbnails
~~~~~~~~~~~~~~~~
* Added play button overlay on video thumbnails for unlocked content
* Styled video play overlay with red tint and click-to-play text
Meta Tags
~~~~~~~~~
* Added Twitter card meta tags for proper link unfurling on Matrix/Discord
* Increased meta description truncation to 500 chars